1. Release Notes

The following are the release notes for HammerDB v5.0.

1.1. Binary releases now based on single-file executables

HammerDB v5.0 on both Windows and Linux has moved to binary releases based on single-file executables for hammerdb (GUI), hammerdbcli (CLI) and hammerdbws (web service). HammerDB v5.0 does not include the bin, lib, src or modules directories included with previous releases. Note that a pylib directory will continue to be include as Python continues to be dependent on external libraries. All source code with continue to be available on the HammerDB GitHub site and building from source will also generate a runnable developers edition that includes the source code in the same way a previous versions. HammerDB will also provide pre-built developers releases to HammerDB contributors on request. The developers releases are strictly for HammerDB development and code contribution and not supported for running production HammerDB database workloads.

Note: all versions of HammerDB including v5.0 are released under the GNU GENERAL PUBLIC LICENSE v3.0 and remain fully and completely open source, there is no license change with the move to single-file executable binary releases.

1.2. HammerDB port and improved performance

HammerDB v5.0 has been extensively rewritten with an update to all 'C' packages and a port of the core multi-threaded engine to the brand new release of Tcl/Tk 9 changes can be reviewed in Pull Request #777. The new release of HammerDB v5.0 brings performance improvements within the core engine, however it should be noted that HammerDB is designed to stress the database and not the client application with all workloads written in SQL and driven from packages written in each databases native 'C' interface, therefore performance improvements in database workloads compared to HammerDB v4.X should be within the range of 2-5% for TPROC-C based workloads and negligible for TPROC-H and this should be accounted for when making comparisons with previous results.

1.3. Improved thread count on Windows

HammerDB on Windows up to version 4.X had an additional thread count of 3X per virtual user to simulate Linux/Unix stdin/stdout/stderr, this has been resolved in Tcl/Tk 9 and now the thread count is equivalent to the number of Virtual Users. Many thanks for Ashok Nadkarni for providing this update.

1.4. Linux wayland display server has slow refresh on Ubuntu

From v5.0 HammerDB has standardised on scalable SVG graphics. On Ubuntu the default wayland display server can result in a slow refresh of the HammerDB GUI windows. This issue does not occur with wayland on Red Hat and can be resolved by switching to the Xorg display driver on Ubuntu.

1.5. Known Third-Party Driver Issues

HammerDB has a dependency on 3rd party driver libraries to connect to the target databases. The following are known issues with some of the 3rd party drivers that HammerDB uses.

1.5.1. Oracle on Windows: Oracle Bug 12733000 OCIStmtRelease crashes or hangs if called after freeing the service context handle

If you are running HammerDB against Oracle on Windows there is long established bug in Oracle that can cause application crashes for multi-threaded applications on Windows.This bug can be investigated on the My Oracle Support website with the following reference. Bug 12733000 OCIStmtRelease crashes or hangs if called after freeing the service context handle. To resolve this Oracle issue add the following entry to the SQLNET.ORA file on your HammerDB client.

SQLNET.AUTHENTICATION_SERVICES = (NTS)
DIAG_ADR_ENABLED=OFF 
DIAG_SIGHANDLER_ENABLED=FALSE
DIAG_DDE_ENABLED=FALSE

1.5.2. SQL Server on Linux: unixODBC's handle validation may become a performance bottleneck

Using the HammerDB client for SQL Server on Linux can be slower than the same client on Windows when using the default installed unixODBC drivers on many Linux distributions. As described in the SQL Server Programming Guidelines "When using the driver with highly multithreaded applications, unixODBC's handle validation may become a performance bottleneck. In such scenarios, significantly more performance may be obtained by compiling unixODBC with the --enable-fastvalidate option. However, beware that this may cause applications which pass invalid handles to ODBC APIs to crash instead of returning SQL_INVALID_HANDLE errors." Recompiling unixODBC with the --enable-fastvalidate option has been measured to improve client performance by 2X. Example configure options used to build unixODBC are shown as follows:

./configure --prefix=/usr/local/unixODBC --enable-gui=no --enable-drivers=no --enable-iconv 
--with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16LE --enable-threads=yes --enable-fastvalidate

1.5.3. Db2 driver is not included in the HammerDB Docker image or build

When running the HammerDB Docker image, drivers for all databases are pre-installed except for Db2. This is because the required redistributable IBM® Data Server Driver for ODBC and CLI is not available to be pulled automatically within the build and the IBM documentation lacks clarity on the conditions for whether a copy of the redistributable package can be made available by HammerDB "royalty-free". Therefore any user of Db2 must download and install their own Db2 client after installing Docker. This issue is tracked in Issue #404 and continues to await resolution from IBM.

1.6. Linux Xft Font and Cairo Graphics Pre-Installation Requirements

On Linux if installing from the .rpm file for Red Hat or .deb for Ubuntu there are dependencies on installing Xft fonts and Cairo graphics. If installing from the .tar.gz files these dependencies must be resolved manually. The HammerDB GUI requires the Xft FreeType-based font drawing library for X installed as follows:

Ubuntu:

$ sudo apt-get install libxft-dev

Red Hat:

$ yum install libXft

On Linux the HammerDB GUI also requires Cairo Graphics installed to support the graphical transaction counter and can be installed as follows:

Ubuntu:

sudo apt-get install libcairo2-dev

Red Hat:

ymu install cairo-devel