About




HammerDB is a graphical open source database load testing and benchmarking tool for Linux and Windows to test databases running on any operating system. HammerDB is automated, multi-threaded and extensible with dynamic scripting support. Learn more by browsing the Frequently asked questions about HammerDB


FAQ



  • What is HammerDB used for?

HammerDB is a database load testing and benchmarking tool. You use HammerDB to create a tsst schema, load it with data and simulate the workload of multiple virtual users against the database for both transactional and analytic scenarios. This workload can then be used to derive meaningful information about your environment such as hardware performance comparisons and software configurations. 

  • Who uses HammerDB?

HammerDB is used by all leading database and technology companies. It has been downloaded hundreds of thousands of times to more than 180 countries in the world. Example usage can be seen in the the Benchmarks section from companies such as Oracle, IBM, intel, Dell/EMC HPE, Huawei, Lenovo and hundreds more.

  • Where do I start with HammerDB?

Firstly go to the downoads page to download HammerDB for your favorite database, then follow the installation guide and quick start guide in the documentation.

  • Where do I download HammerDB?

From the downoads page on this site or directly from the HammerDB sourceforge project . Do not download HammerDB from any third party site or other location, there is no guarantee that HammerDB from any other source has not been modified.

  • it says "Download of Hammerora" - what is Hammerora?

Hammerora is the original project name of HammerDB. HammerDB started initially supporting Oracle only however by popular demand additional database support was added. The name HammerDB was suggested given the wide range of support and this name was adopted. Consequently the DB suffix does not imply that HammerDB is a database but is an acknowledgement of the original ORA extension. Download of Hammerora is what you should see for the officially sanctioned download.

  • Where can I get the checksum for downloaded files?

From the downloads page follow the link  Browse for older releases of HammerDB. Navigate to to the file of your choice and click the information icon to the right of the line. Checksum information such as the following will be shown against which you can validate the file you have downloaded.

SHA1: 3ac039d7d10d05e7858278033910d162fe25ebfa
MD5: c0c7896cefb2fe0c67c2a36e102cb4ae

  • Where is the source code for HammerDB?

All HammerDB source code is included with every download and installation. This source code can be browsed in the hdb-components and hdb-modules directory. Source code is also committed into the HammerDB GIT repository to coincide with every release where changes between each release can be viewed. Development is not pushed to the public GIT repository between releases. HammerDB is also released with pre-compiled database library extensions for Windows and Linux, the source code for these extensions is available from their respective websites.

  • How is HammerDB licensed and copyrighted?

HammerDB is licensed under the GPL, which is included with every release in the file hammerdb.license and copyright notice in the file COPYRIGHT, these files must be included with any redistribution. 

  • Can I use the HammerDB Logo?

Yes, you can use the HammerDB logo under the following conditions. The HammerDB Logo and HammerDB 'H' Logo are protected under copyright law with all rights reserved. The HammerDB logo's may be reproduced in their original color form only. The logo may be reproduced without links however where the logo has  a "clickable" link it must lead directly to http://www.hammerdb.com.

  • How do I get help with HammerDB?

Support is given through the HammerDB sourceforge project site accessed through the Support page. Each support request is alerted to the developers. Assistance is given typically during European daytime hours according to workload. Every support request is answered however as support is not a paid service please allow for the level of resources to focus on support. Support requests posted on 3rd party or general websites will not receive a response from the development team.

  • What other software does HammerDB need?

HammerDB requires the installation of client libraries provided by the database vendor to enable connection to your database environment. Note that in the case of Oracle, SQL Server and DB2 these libraries are proprietary and not permitted for redistribution, you must therefore download and install them yourself. Client libraries are nearly always included with a full database installation and therefore do not usually require a separate install if the database has been installed on the same system as HammerDB. Only the client libraries for the database you are working with are required however this client library must match exactly the operating system and HammerDB software whether 32 or 64-bit.  You must also correctly specify the PATH environment variable for Windows and LD_LIBRARY_PATH environment variable for Linux for HammerDB to be able to find the correct library. On Windows a reboot may be required between modifying settings for the correct library to be located. If a library error is seen on running HammerDB consult the documentation on how to troubleshoot using the command line tool.

  • Where do I find published benchmarks?

Known pulbished benchmarks and white papers using HammerDB are referenced in  the Benchmarks section of the HammerDB website. Due to the extensive number of these published benchmarks HammerDB does not approve or validate any publications and these links are shared for the database testing community to share information.

  • Can I publish my own benchmarks?

Approval is not required for HammerDB benchmarks and no restrictions are placed on publication by HammerDB. Consequently with open source database benchmarks you are free to publish the results of any of your tests as you wish. However commercial databases often contain a clause commonly known as a "De Witt" clause that prevents the external publication of benchmarks against their database, Considerable information is available regarding these clauses and HammerDB does not offer legal guidance on compliance or otherwise.

  • What databases does HammerDB support?

HammerDB currently supports Oracle, SQL Server, DB2, TimesTen, MySQL, MariaDB, PostgreSQL, Greenplum, Postgres Plus Advanced Server, Redis Amazon Aurora and Redshift and Trafodion SQL on Hadoop.

  • Will HammerDB support my database?

HammerDB receives multiple requests to support additional databases. All of these requests  are considered on merit. In particular whether the client for the database is available for both Windows and Linux (support for both platforms is essential) and whether the software is freely available for download without restriction and cost to ensure that support can be provided. After these requirements have been met the potential size of the userbase is considered. HammerDB uses the db-engines website to assess popularity and it is unlikely that a database lying outside of the top 20 databases will be considered for inclusion in HammerDB.

  • Does HammerDB support NoSQL/Non-relational Databases?

HammerDB extended support to both Redis and Trafodion SQL on Hadoop to assess the viability of supporting further NoSQL and non-relational databases. As HammerDB focuses upon workloads designed for testing relational databases, support for further NoSQL databases is not planned at the current time.

  • HammerDB is a GUI tool, is there a command-line version?

The main focus of HammerDB is providing a graphical environment on Windows and Linux for implementing database benchmarks.. Automation is fully supported within this graphical environment. There is currently no support for running HammerDB in an entirely command-line format without a DISPLAY and no immediate plans to do so. Some command-line functionality was provided in an extension called Autohammer with the ability to run HammerDB workloads at the command line based on XML configuration files. The design aim was to bring together HammerDB and Autohammer by generating run files from the GUI to run at the CLI. Although this design remains as a potential development task prioritization means that it is not actively under development but may do so at a future date. 

  • How do I use HammerDB to do a comparison of cloud database services?

Oracle have used HammerDB to compare Oracle and Amazon Redshift databases. This functionality is included in HammerDB and available in the section Cloud Analytic Testing in the documentation

  • Some screenshots show a different window theme for HammerDB than I have, how do I change it?

  View the section on Themes in the documentation

  • Why is HammerDB not written in Python?

Python has a 'feature' called the Global Interpreter Lock or GIL - "the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython's memory management is not thread-safe"  This means that an application simulating multiple virtual users becomes serialized on a single mutex preventing scalability. Consequently Python cannot be used to build a  multi-threaded load testing such as HammerDB. Other languages such as Ruby or Perl have similar restrictions with supporting large scale multi-threaded database access whereas Java for example does not support the scripted interface support essential of a testing tool. For these reasons HammerDB is not viable in Python or other languages.

  • What language is HammerDB written in and why?

HammerDB development is done in the languages  C and TCL . Low level Native database interfaces written in C are used for all databases. TCL and TK are used to build the GUI and enable these database interfaces to be accessed by a scripting language. TCL threads are then used to simulate the virtual users. This results in a lightweight yet highly scalable load testing environment. TCL was chosen as the key language for HammerDB for three key reasons. Firstly it was designed from the ground up to interface well with C enabling native database interfaces to be used. Secondly it is scripted with a scripted interface essential for any load testing tool to allow users to modify tests and finally and it has the most complete and mature multithreading interface of all scripting languages.  In particular TCL's threading model is uniquely suited to simulating virtual users. TCL is incredibly lightweight and therefore each thread or virtual user loads their own exclusive interpreter and database interface making HammerDB non-blocking. This means that HammerDB offers linear scalability from 1 to thousands of threads (note when displaying output Windows and Linux displays are not thread safe and therefore all output is sent to the display by a single thread). At the same time all of HammerDB's interfaces are thread-safe ensuring that HammerDB remains robust and stable even when loading millions of transactions per minute. It is without doubt that the TCL based implementation unperpins HammerDBs ability to scale far beyond the capabilities of other load testing tools. 

  • What platforms does HammerDB support?

HammerDB is developed on and supported on Linux and Windows x86 and x86-64 platforms. Both Linux and Windows are primary development platforms of equal importance.  Oracle VM VirtualBox is a key development tool used for testing databases on multiple platforms.

  • Is HammerDB different on Windows and Linux?

No, HammerDB uses almost exactly the same code on both Windows and Linux. The only changes are to implement very minor differences in the GUI to tailor the view to Windows or Linux - however on both systems the code is identical with the differences dynamically chosen at run time. for example you can take the hdb-components directory on Windows or Linux and copy it to the other operating system and HammerDB will run the same. Other minor changes are the addition of bat files for startup on Windows and the interface to capture CPU statistics. Finally the TCL and TK engines and database interfaces use the same source code however have been compiled for the different platforms, therefore building on non Windows or Linux platforms should be possible but has not been tested.

  • Do you support building HammerDB on UNIX or Mainframe?

HammerDB development does not have access to UNIX or Mainframe systems and therefore the opportunity to build, test and provide ongoing support for these platforms is limited. Nevertheless assistance is provided on a best endeavors basis to anyone trying to build the required packages to run on these systems. Similarly the testing of databases on non Windows or Linux platforms has not been tested but supported on a best endeavours basis. In a scenario where HammerDB does not run against these platforms it is advisable to check to see whether the feature set is different on your testing platform compared to Linux or Windows, for example DB2 for Mainframe is known to have different features to DB2 on LUW. in this case the feature set on LUW has been tested.

  • Does HammerDB implement a real TPC-C or TPC-H benchmark?

No, this should be absolutely clear from the documentation. HammerDB does not implement full TPC-C (OLTP) and TPC-H (Analytics) benchmarks as the opportunity to run full simulations is incredibly limited, in particular due to the data set size required. HammerDB does not use official TPC terminology such as tpmC or QphH@Size and to do so is inaccurate.  Instead the HammerDB methodology recognizes that both TPC-C and TPC-H are incredibly well-designed benchmarks and have demonstrated a level of scalability unparalleled in the industry before or since.. As the TPC publish their benchmarks at no cost to the public HammerDB takes the essence of these benchmarks and implements in an intensive way that anyone can run. Time has demonstrated that this methodology has proved remarkably accurate at predicting official TPC results at a fraction of the cost. This methodology has also proved perfectly suited to testing cloud environments.

  • Will HammerDB support TPC-E?

Yes, HammerDB has  planned support  for TPC-E once there are official approved TPC-E benchmarks puilshed for the top 3 commercial databases Oracle, SQL Server and DB2. Currently only SQL Server data is available and therefore Oracle and DB2 publications are outstanding. Once these benchmarks are published and reviewed HammerDB will implement the workload. As noted previously HammerDB has proved highly accurate at simulating a methodology to bring TPC-C and TPC-H within the reach of all database users. Without official publications from key database vendors it is difficult to develop a new methodology that provides accurate comparisons. As accurate comparisons are the bedrock of load testing a lack of publications makes TPC-E support difficult. If no publications outside of SQL Server are made TPC-E support may be evaluated however due to the extensive testing and validation there are no plans to do so at the current time. .

  • What is TPM and can I compare TPM between databases?

TPM stands for Transactions per Minute and cannot be compared between differenet databases for the OLTP test. TPM is the value displayed in the online transaction counter and at the end of a timed test as the TPM value. This value cannot be consistent between databases as different databases report different transaction rate metrics in their own online tools - for example Oracle Enterprise Manager reports user commits + user rollbacks whereas SQL Server reports Batches/sec - for consistency with the database vendors own tools HammerDB reports metrics that are the same, for example in Oracle HammerDB TPM is the same as that shown in an AWR report.  This is at the cost of using a different value that is only consistent within HammerDB. Also note that HammerDB reports all transactions occurring in the database and therefore if other workloads are taking place these will be shown in the TPM figure as well. For consistency across databases see NOPM.

  • What is NOPM and can i compare NOPM between databases?

NOPM stands for New Orders per Minute and is a database independent value extracted from the schema itself. For this reason NOPM reported at the end of a timed test is the only way to compare OLTP performance across different database platforms.

  • Why is TPM shown in the transaction counter but not NOPM?

As detailed TPM is extracted from the database vendors transaction data, however NOPM is extracted from the schema. For this reason TPM can be accessed from in-memory read-only data without impacting any test that is running. NOPM however can only be extracted from the schema and doing so on a regular basis has the potential to impact the tests with different databases responding in different ways with locking etc, for this reason only TPM is reported to minimise the impact that reporting has on testing.

  • The GUI shows a slightly different TPM rate to the one reported in the final output of a timed test, why is this?

The TPM value shown in the online transaction counter is an estimated value extrapolated from the data captured across a particular time interval. By default this value is 10 seconds increasing this value to refresh at 60 seconds will report a value consistent with the reported data. Any time value for refresh of less than 60 seconds will slightly over report the TPM value with less accuracy at smaller intervals. The online transaction counter show be use as a guide to observe transactions and in particular confirm a consistent transaction rate, performance test data should be captured from the output of the timed tests. 

  • My transaction rate in the online transaction counter is not flat why is this?

The online transaction counter reports the transaction rate extracted from the database. With an optimal configuration and once most of the data is cached in memory the transaction rate will be consistent and the transaction counter flat. If the reported transaction rate is not flat troubleshoot with database diagnostic tools to pinpoint the issue with your configuration.

  • Can HammerDB be used for automated software testing?

Yes HammerDB includes an Autopilot feature that enables running multiple load tests in sequence with different numbers of virtual users. This feature is fully automated enabling lights-out testing to occur over many hours.

  • How do you contact the project team?

The HammerDB project team can be contacted using the Send Message facility to the project administrator at the HammerDB sourceforge project. Support requests should be directed through the project support page. Not only is the project team alerted immediately but other users benefit from being able to see previously raised and resolved support issues reducing the support effort and ensuring more time is spent on development.

  • Are the HammerDB developers available for public speaking engagements?

Yes, the developers have spoken at numerous technology events worldwide such as Oracle Openworld, Linuxcon, Microsoft SQL Relay and HPE TES. For further information contact the project administrator as detailed above.


Updated Jan 2017  •