Speeding up OpenCMS : Moving auto-commit logic from Jaybird to the Firebird

Smyatkin Maxim from RedSoft proposed the following changes in this pull request for Jaybird :

Jaybird shows horrible performance in auto-commit mode while executing
lots of small queries.
Reasons:
1. Every time a statement is being executed a new transaction starts and
commits.
2. Even if there were no changes at all (e.g., simple select statement)
Jaybird starts and commits transaction.

Solution: Firebird API has its own auto-commit flag. Firebird knows for
sure if anything did actually change, so Jaybird might rely on it. As a
result:
1. It saves start and commit calls;
2. It executes commits only if something really changed;
3. Internally it works faster even if changes appeared because it doesn’t
restart a transaction.
Practical results: it allowed me to make OpenCMS work 3-5 times faster
with Firebird. I suppose it’s not the only case, because some systems
(especially the ones using ORMs) tend to execute lots of small selects.

Main changes in code are:
1. Removed AutocommitTransactionCoordinator. LocalTransactionCoordinator
with enabled autoCommit flag does exactly what we need.
2. When we change autoCoommit to true/false – we commit previous
transaction manually, so that it restarts with new TPB.

Jaybird milestone : removal of JNI C++ wrappers

Removal of old GDS API:

The old GDS API (org.firebirdsql.gds.GDS) has been removed. This removal
includes a number of related classes and methods.

Type 2 (native) and embedded driver

Jaybird no longer needs a jaybirdxx.dll or jaybirdxx.so for the Type 2 and embedded driver. Jaybird now uses JNA to access the client library.

If you want to use the Type 2 driver, or Firebird embedded, then you need to include the jna-x.x.x.jar on the classpath. The fbclient.dll, fbembed.dll, libfbclient.so, or libfbembed.so need to be on the path.

SQL Relay 0.59 is released

SQL Relay version 0.59 is now available
Firebird Related Changes:

  • added global temp table tracking for firebird
  • added droptemptables parameter for firebird
  • added globaltemptables parameter for oracle and firebird
  • fixed blob-input binds on firebird

Firebird recently added support for global temporary tables. Their implementation is very similar to Oracle’s. SQL Relay now manages global temporary tables identically for Oracle and Firebird. There is even a droptemptables parameter in the Firebird connection configuration, analogous to the same parameter for Oracle.

In fact, support for global temporary tables has been generally improved. In the past, tables created during the current SQL Relay session were tracked and truncated at the end of the session, but global temporary tables created during previous runs of SQL Relay or outside of SQL Relay altogether were ignored, leading to those global temporary tables not being truncated at the end of the session. The Oracle and Firebird connections now support a globaltemptables parameter that can be set to a list of tables that should be truncated at the end of each session, or to “%”, which causes SQL Relay to query the database for the list of global temp tables to truncate.

Firebird 3.0 Revision 61479 uploaded to #ubuntu firebird3.0 ppa

Firebird 3.0 Revision 61479 was uploaded to Debian/experimental.

Now you can install on  Ubuntu 14.04 LTS  or latest release  15.04 (Vivid) from firebird3.0 ppa

Changes:
* Remove extra ‘;a=summary’ from the Vcs-Browser URL
* -server.postinst: s/LOGDIR/LOG_DIR/ spelling mistake (This solved an package install issue – basically it stopped the installation process)
* Imported Upstream subversion snapshot r61579
* fix populating -dev with include/firebird/* content

1 55 56 57 58 59 294