v0.61.2 (2024-04-01) - Actually check it driver processes have exited, instead of sleeping the expected length, before killing client processes v0.61.1 (2024-03-19) - Fix post-process unit test for sqlite3 - Remove SAPDB support - Add --rows-per-commit to `build` script to pass on through to database specific scripts to pass to datagen. - Install python into the AppImage again for easier management of the environment and dependencies of python packages - Fix AppImage use of rst2html5 with manual override of !# in rst2html5 to use python in the AppImage environment - Build Pango for AppImage with reduced dependencies - Bump touchstone-tools version to v0.8.0 in AppImage v0.61.0 (2024-03-14) - Support TOML configuration files for executing tests with `run` script - Update `run` script to use PID files to stop processes instead of killall with program names - Refactor `run` script output - Reorganize documentation v0.60.0 (2024-02-29) - driver3 will now continually attempt to retry connecting to the database for the duration of the test if the database connectivity code returns a RECONNECT code - libpq interface now returns a RECONNECT code if a PGRES_FATAL_ERROR is returned from any database call - Add -retry-delay flag to driver3 to adjust the delay between - Remove lingering hard coded fontconfig path from AppImage - Fix check for existing database in pgsql-create-db - Use CREATE DATABASE SQL statement instead of createdb binary in pgsql-create-db - Use VACUUM SQL statement insetead of vacuumdb binary in pgsql-build-db - Remove unnecessary binaries from AppImage - Create AppImage on Debian 10 (buster), previously Ubuntu 14.04 (Trust Tahr) - Bump minimum CMake version to 3.5 per deprecation warnings - Use Linux system call to get thread id instead of using the thread's address - Fix `run` script execution of stats and profile collection for 1-tier tests - Add --row-per-commit to datagen to control the number of rows loaded before committing when directly loading a database v0.53.10 (2024-02-22) - Fix pgsql-load-db to not start multiple processes for single partition data loading, which weren't doing anything - Parallelize some of the plotting in the generate-report and pgsql-report scripts - psql: run TRUNCATE and COPY within a transaction if data is not partitioned - Use linuxdeploy to create AppImage - Build gnuplot explicitly disabling unnecessary options for AppImage - Now only installing psql into AppImage - Install touchstone-tools v0.7.3 into AppImage - Remove `activate` script in favor of just executing AppRun - Fix pgsql-load-stored-procs to install from AppImage by default when run from the AppImage - PostgreSQL load scripts are now BDR aware v0.53.9 (2024-02-07) - Fix pgsql-create-db logic for checking if the database already exists v0.53.8 (2024-01-08) - Fix test for touchstone tools in "run" script v0.53.7 (2023-09-29) - Remove dated psql scripts - psql: Do not attempt to create database if it already exists, so that errors due to a lack of permissions to create database can be effectively trapped - Add --tablespaces option to dbt2-build script to specify where tablespace devices are mounted or symlinked - Fix handling of tablespace flag for creating tables when using dbt2-pgsql-build-db v0.53.6 (2023-09-04) - driver3 now processes -L flag to limit number of connections by limited the number of processes forked - pgsql-build-db: fix execution of pgsql-load-db and pgsql-create-index so that parameters are handled correctly when the -l argument is not used v0.53.5 (2023-08-25) - Handle host names greater than 31 characters, now up to 255. - Fix detection of touchstone tools for collecting database stats v0.53.4 (2023-07-11) - Fix version flag usage with AppImages - Add OpenSSH to AppImage - Fix dbt2-run --client-connections= command line handling - Add ssh to the AppImage v0.53.3 (2023-06-29) - Update touchstone tool commands to use "ts", enabling use of ts-tools AppImage, requires at minimum touchstone-tools v0.6.x - Update scripts to use "dbt2" where appropriate, enabling use of dbt2 AppImage - Fix handling of -altered flag in "run" script for driver mode 1 - Bump touchstone-tools version to v0.7.1 for gathering postgresql stats supporting v15 - Restrict AppImage "activate" script to bash shells v0.53.2 (2023-06-19) - Quiet sqlite3 post-process script from displaying an error when there are no New Order transactions - Rename post-process.sql to post-process.sqlite3 - Update AppImage container file to use Ubuntu 14.04 - Add missing libraries to AppImage for gnuplot - Add fonts to Appimage for gnuplot - Replace readlink with realpath - Remove dependency on bc from sqlite3 post-process script v0.53.1 (2023-05-20) - AppImage checks for existing LD_LIBRARY_PATH before updating - Add missing libraries for gnuplot to AppImage - Fix installation of dbt2-build man page - Update dbt2.desktop syntax for aarch64 AppImage - Add "activate" script to AppImage v0.53.0 (2023-05-17) - Add "report" script to handle both post-process and generate-report scripts - Update AppImage to use touchstone-tools v0.5.2 - Update format of transaction summary output - Update "build" and "run" to use "dbt2" command - Quiet find commands in generate-report - Update "run" script to pass on user and port information to ts-pgsql-stat - Add quick-start section to documentation v0.52.0 (2023-04-30) - Use profiling scripts from touchstone-tools to collect readprofile, oprofile, or perf if requested and available - Add command line flag to pgsql-load-stored-procs and pgsql-build-db to specify alternative location for pl/pgsql stored functions - Rename run-workload script to run - Update run script to use touchstone-tools v0.5.1 - Refactor run logic for handling 1-tier, 2-tier, and 3-tier testing test execution and stats collection. - Remove "easy" script and instead make its parameters the default execution method, thus breaking down the traditional benchmark specification behavior into additional options - Refactor option handling to incorporate long parameter names - Add "run" script man page. - Add "build" script to simplify running database build commands, with man page v0.51.0 (2023-04-25) - Add "version" script to show kit version and version of software that may be used by the kit - Update AppImage to install dbttools v0.5.0 for its version information reporting, and updated reporting scripts - Use .svg file for AppImage; remove .png file. - Use ARGV0 instead of hard coding name in AppRun - Remove Julia version of dbt2-post-process - Add SQLite3 version of dbt2-post-process - Calculate type 1 quantiles - Rename container directory to tools - Use touchstone-tools v0.4.2 for gnuplot based sar, pidstat and postgresql stats plotting - Remove dbt2-sysstat in favor of touchstone-tools ts-sysstat version. - Update general and postgresql report generation based on touchstone-tools differing chart filenames and directory layout - Stop generating PDF reports with pandoc unless specified to save time - Remove sar post-processing since ts-sysstat handles that - Move profiling, stats and information collection into the db directory for 1-tier test execution with run-workload script - Remove postgresql stats collection in favor of touchstone-tools ts-pgsql-stat - Update appimage container file with dbttools v0.5.0 and touchstone-tools v0.4.2 - Add OS memory paging charts to report; previously omitted - Remove Julia from the AppImage. v0.50.1 (2023-03-03) - Update README with correct DBT Tools version v0.4.0 v0.50.0 (2023-02-28) - Stop forking plot generation when generating reports since this may cause the system to run out of memory - Update container scripts to use -u flag, per changed in v0.49.0 - Set ARCH to x86_64, if not otherwise specified, for creating AppImage - Fix generate-report bug where pidstat.txt was not being processed to create pidstat.csv files - Fix generate-report HTML and PDF generation logic where .rst and .html files were not being processed correctly - Fix generate-report handling of identifying driver and client processes - Rewrite rst2html5.py's #! back to /usr/bin/env python3 for the AppImage - Post processing (post-process) in R now reports p-value for visual inspection of goodness of warehouse distribution, as well as district distribution per warehouse, as opposed to displaying the raw counts; also added to Julia version - Add tools to creating flame graphs to the AppImage - Require DBT Tools (dbttools) v0.4.0 - Add perl to AppImage v0.49.1 (2023-02-17) - Update pgsql-build-db to take database name as a command line argument - Update to post-process script to install Julia packages only after verifying the Julia version of the script exists - Add Z flag for mounting source directory when building the AppImage with container/build-appimage for shared volume labeling v0.49.0 (2023-02-09) - Fix use of ignore file for podman use - Allow user to specify container engine - Add some C directives to support building on older C tool chains, in particular CentOS 7 - Add AppImage files for creating standalone single binary with limited functionality - Add Podman files for creating an AppImage - Convert doc/ files to reStructuredText - Reconstruct Changelog of information prior to v0.8 and remove old saved CVS ChangeLog - Convert DBMS and OS READMEs to reStructuredText and incorporate them into the the doc/ directory - Convert INSTALL to reStructuredText with updated instructions - Reorganized PostgreSQL, SAP DB, and SQLite specific details from the user's guide into their respective section - Update the user guide - Update PostgreSQL documentation - Build CockroachDB support only if PostgreSQL 11+ is available since pg_type_c.h is required for binary mode support - Fix datagen partitioning logic - Add tests to verify datagen partitioning correctness - Add test to check output of post-process - Port post-process script from R to Julia - Distribute Julia and package post-process package dependencies in AppImage - Driver automatically sets wmin and wmax to 1 and max warehouses, resp, if not specified on the command line - Add "easy" script for simple testing with driver3 that runs without keying or thinking time. - Add dates to ChangeLog - Make plpgsql stored functions the default for PostgreSQL for ease of use, as opposed to performance reasons, but same extra steps as before can still be used to load C stored functions - Reverse use of unprivileged -u flag to specified whether user has privileges for ease of use; e.g. by assuming that it is easier to not restart the database system unless the user knows they have privileges to do so v0.48.7 (2022-12-02) - Fix white space trimming of scale factor in report generator v0.48.6 (2022-12-01) - Fix calculation of ramp up time when processing multiple mix files - Fix driver3 ramp up and stop time calculations - Fix use of ignore file for container use v0.48.5 (2022-11-28) - Increase the buffer size of sname to accommodate hostnames longer than 64 characters - Change how throughput, duration, unknown errors, and ramp up time is displayed - Add scale factor and database version to report - Stop checking known hosts for ease of testing in run-workload script - Update container scripts to prefer podman - Add instructions on how to use podman to test scripts - Use Fedora instead of Debian in container scripts - Fix calculation of driver rampup time when using driver3 v0.48.4 (2022-11-02) - Fix some scripting bugs in collecting PostgreSQL database stats - Stop throwing errors from missing docutils or pandoc in report generation v0.48.3 (2022-06-28) - Create detailed-summary.rst in the results directory instead of current path v0.48.2 (2022-06-10) - Add separate CockroackDB load-db script - Fix setting the database port for PostgreSQL and MySQL in the driver3 - Update Docker scripts to support CockroachDB - Update CockroackDB load-db script to be single stream and have an adjustable rate on how many warehouses to load before committing - Add separate YugabyteDB load-db script to be single stream and have an adjustable rate on how many warehouses to load before committing - Update Docker scripts to support YugabyteDB - Fix libpq debug printing of time stamps v0.48.1 (2022-05-10) - Update PostgreSQL report script - Update Docker helper scripts to use Makefile.cmake - Update run-workload with -F flag to control number of database connections per processor for driver3 - Update post-process script to take a list of mix files to process - Use dbttools generic transaction rate plotting script - Check for rst2html5 in additional to rst2html5.py - Switch distro used in Dockerfile from Rocky to Debian v0.48.0 (2022-04-25) - Clean up CPack rules - Fix logic issue when starting PostgreSQL database after initialization - Replace HTML generated with reStructuredText, which can be converted to HTML and PDF, or other formats. - Fix how OS information is saved - Add per process statistics to report - Generate flame graphs for report - Add undocumented support for driver3 in run-workload and reporting scripts - Reorganize where data is saved when using run-workload script - Move database system specific reporting into database specific reporting script - Rename helper Makefile to Makefile.cmake v0.47.0 (2022-03-30) - Add experimental multi-process driver2 that uses event callbacks (libev) - Add new standalone driver (driver3) combining event callbacks with multi-process parallelism model, replacing previous thread based standalone driver - Parallelize PostgreSQL vacuuming when building the database - pgsql: Disable autovacuum on a table while it is being loaded v0.46.2 (2022-03-29) - Fix post-process script to ignore transaction errors in statistical calculations v0.46.1 (2022-03-24) - Fix data generator quoting bug introduced in v0.46.0 - Clean up client usage message with additions in v0.46.0 - Fix inconsistencies with handling output directory - Reformat driver usage to be consistent with other programs - Clean up datagen usage message - Fix post-process script to correctly handle merged mix logs v0.46.0 (2022-03-07) - Refactor client code for libpq to automatically build support if libraries exist - Remove support for Drizzle; discontinued since 2016 - Allow specifying partitioning options in PostgreSQL data load script - Refactor client code for sqlite3 to automatically build support if libraries exist - Refactor client code for MySQL to automatically build support if libraries exist - Refactor client code for unixODBC to automatically build support if libraries exist - Fix some issues in CockroachDB transaction code. - Use function pointers for managing output of timestamps in datagen - Replace macros with functions in datagen v0.45.1 (2022-03-02) - Rename PostgreSQL dbt2 extension's SQL file v0.45.0 (2022-03-01) - Fix memory clobbering bug introduced when using libpq functions in binary mode - Increase size of additional data structures for UTF-8 v0.44.0 (2022-02-21) - Made some changes to Docker scripts to help customize PostgreSQL version used - Add scripts to build a database on CockroachDB - Add transaction logic to the client for CockroachDB - Update workload scripts for CockroachDB - Add scripts to build a database on YugabyteDB - Update libpq client code to transmit and receive data in binary mode. v0.43.0 (2022-02-07) - Adopt Artistic License 2.0 - Fix run-workload script to work on single tier configuration, bugs introduced v0.42 - Driver now logs w_id and d_id per transaction - Fix segmentation fault when limiting the total number of driver threads - Increase buffer size for the database hostname in the client to 64 bytes - Add -y flag to run-workload script to specify database is a service - Fix driver's rampup calculation when limiting total emulated terminals - Update Dockerfile to use Rocky Linux instead of CentOS - Fix driver execution when limited to a single terminal v0.42 (2021-10-26) - Add Docker files and scripts to test building and evaluate a PostgreSQL database. - Update for CMake policy CMP0037. - Replace obsolete bzero with memset - Replace obsolete gethostbyname and gethostbyaddr with getaddrinfo - Use PCG Fast pseudo random number generator - Update data generator to use UTF-8 - Refactor datagen parallelism - Update PostgreSQL pl/pgsql stored functions - Support basic 3-tier execution with run-workload script - Refactored altered mode driver execution with finer grained controls v0.41 (2010-12-01) - Renamed the 'scripts' directory to 'bin'. - Added SQLite support. - Renamed all the script with 'dbt2-' prefixes to facilitate a better 'make install' in the future. - Use cmake over autotools. - Added Drizzle support. - Removed use of Test::Parser and Test::Presenter perl modules and require use of dbttools instead. - Use R for post processing. - Run scripts capable of running multiple instances of clients and drivers. - Direct load data for Postgres. v0.40 (2006-11-27) - Various fixes with all the scripts. - Ability to run in a two-tier environment. - Added scripts to run a test against a pull from PostgreSQL's CVS repository. - Fixed 90th percentile and steady state metric calculations. - Added support for pgpool. - Fixed memory violation with datagen. v0.39 (2006-10-03) - Merged run_mysql.sh script into run_workload.sh script. - Various fixes with all scripts. - Fixed up autoconf scripts. Now database libraries aren't linked to datagen. v0.38 (2006-09-29) - Various fixes with all scripts. - Improved configure.ac to use pg_config for PostgreSQL. - Updated PostgreSQL scripts to work with PostgreSQL 8.1 and newer. - Updated PostgreSQL stored functions for 8.1 and newer. v0.37 (2005-11-02) - Removed use of the $SHELL environment variable so the kit is more portable. v0.36 (2005-10-20) - Added a check for ulimit -n. - Fixed the response time calculations to be after all threads have started. v0.35 (2005-10-10) - Critial fix for the data generator. - Critial fix for the Payment transaction when using MySQL. - Changed the database integrity check into a command line option. v0.34 (2005-09-27) - Calculate 90th percentile reponse times in scripts/mix_analyzer.pl. - Fix up in run_mysql.sh.in. v0.33 (2005-08-31) - Script improvements. - Fixed the Makefile for funcs.so. - Collect callgraph data with oprofile. Only really works for ia32 and ARM due to oprofile support. v0.32 (2005-08-11) - Updated the autoconf scripts to not fail if pg_autovacuum is not found. With 8.1 coming up, it is part of the backend now. - Fixed scripts/pgsql/analyze_stats.pl to work correctly. v0.31 (2005-07-25) - Modified the table creation and index creation scripts so that the primary keys are created as part of the index builds. - Modified the autoconf scripts so that using odbc libraries is a feature that needs to be enabled with the database that will be tested. - Fixed some compiler warnings and errors when building against odbc. - Fixed a bug in src/libpq/dbc_payment.c where the wrong parameter was being passed. v0.30 (2005-06-21) - Added x- and y-axis lines for the PostgreSQL database charts. - Fixed the autoconf files to include files for MySQL with no stored procedures. v0.29 (2005-06-17) - Removed default configure to PostgreSQL in configure.ac. It will prompt for the database to be specified if none is given. - Tidied up the autoconf files a little more. - Added x- and y-axis lines to scripts/notpm.input. - Fixed mix_analyzer.pl to stop counting failed transactions as successful transactions. v0.28 (2005-05-31) - Improved configure.ac to check for headers for PostgreSQL. - Fixed Makefile.am to include the README-* files in a 'make dist'. v0.27 (2005-05-24) - Fixed Makefiles for 'make dist'. - Modified scripts for PostgreSQL so that tablespaces can be used. README-POSTGRESQL has been updated with notes on how to use tablespaces. v0.26 (2005-05-18) - Improved configure.in to set executable permission onfiles it generated. - More fixes related to setting the stack size in the C programs. - Added headers to files where previously missing. v0.25 (2005-03-01) - PostgreSQL requires pg_autovacuum now, but you could edit the kit so it can still run without it. - Removed results and moved its functionality into mix_analyzer.pl. - Now you don't need to modify pg_config_manual.h in order to use the kit with PostgreSQL. - Various little script fixes and enhancements. - Fixed a problem with getting plans for PostgreSQL during the run. - Stock setting stack size in the shell scripts. Setting the stack size where appropriate in the C programs. - gen_html.sh is now used automatically to generate results in HTML. - Other misc. script fixes and enhancements for PostgreSQL. v0.24 (2004-12-02) - Changed the format of the vmstat data files that are graphed. - Fix for results.c for some 64 bit platform. v0.23 (2004-06-25) - MySQL support. - Minor bug fix with generating data for the payment transaction. v0.22 (2004-03-24) - Build environment updates v0.21.1 (2004-02-04) - User Guide updates. v0.21 (2003-11-18) - Fixed a bug in in _accept(). - Updated the user's guide. - Changed the column data types in various tables for performance. v0.20 (2003-09-26) - Fixed a bug in the New-Order transaction that was introduced into v0.19 by accident. v0.19 (2003-09-25) - Fixed a query in the New-Order transaction to reduce the number of rollbacks. v0.18 (2003-09-05) - Fixed a bug in the driver regarding the assignment of warehouse id's to each thread. v0.17 (2003-09-04) - Fixed a bug in the New-Order transaction in the PostgreSQL C function. - More work on the run_workload.sh script. v0.16 (2003-08-19) - Replaced the OpenOffice text documents with LaTeX versions. - Fixed the rollback logic for the New-Order transaction with SAP DB. - Added backup and restore scripts for PostgreSQL. v0.15 (2003-08-08) - Fixed the rollback logic in the New-Order transaction. - Added more status output in the client. - Fixed a bug in get_node that cause memory violations for multiple connections. - Really fixed the stored procedures for SAP DB 7.3.0.25 this time. - Fixed logic in New-Order that screwed up the stock table. v0.14 (2003-08-08) - Removed nonblocking socket code. v0.13 (2003-08-06) - Fixed the default stored procedures to work with 7.3.0.25. - Undid code to use nonblocking sockets, I just don't know how to do it right. - Fixed a bug with get_node() in listener.c. - Fixed the sleep control for the connection rates between components in a multi-tier environment. - Added more status output in the client. v0.12 (2003-08-05) - Started using nonblocking sockets for communication with the client. - Added some more status information to the client. - Control the sleep time between openning connections to the client in a multi-tier environment. Maybe cause problems when attempting to drive many many users. v0.11 (2003-08-04) - Fixed db_setup.sh.in for SAP DB to generate the correct data. - Fixed the tools directory Makefile.in for SAP DB. v0.10 (2003-08-01) - Changed default altered mode to 0. - Cleaned out lingering CVS directories. v0.9 (2003-08-01) - Fixed funcs.c (the stored functions) to correctly escape a couple more characters. - Fixed the random seeding of threads. - Fixed passing of transaction status in the multi-tier environment. v0.8 (2003-07-31) - Fixed the client and driver to work in a multi-tier environment with PostgreSQL. v0.7 (2003-06-19) - Add PostgreSQL support - Add PostgreSQL setup README - Update configure rules to select database connectivity library - Refactor commit/rollback logic in client code - PostgreSQL pl/pgsql stored functions updated to return record sets v0.6 (2003-04-30) - Refactor support for large file support on linux - Fix bug with order_line data generation - Fix bugs with altered execution mode - Enable support on FreeBSD - Update documentation - Use thread-safe localtime - Fix bug in get_random() - Log each transaction's rate and unknown errors - Refactor summary report; do not display transactions per seconds in addition to minutes - Refactor datagen command line parsing to use getopt v0.5 (2003-02-28) - Fix keying and thinking time override handling - Add ability to update SQPDB table statistics - Handle SAPDB SQL error codes - Refactor transaction send/receive code - Add debug code to track thread states - Remove stock table cardinality override - Add script to capture SAPDB execution plans - Refactor SAPDB index names - Support setting output directory for datagen - Allow terminals per warehouse to be overridden - Refactor SAPDB stored procedures - Fix SAPDB create index script - Fix bug in SAPDB stock level transaction - Add scripts to collect SAPDB statistics - Use primary keys, as opposed to regular basic indexes - Hard code large file support on linux - Support unixODBC - Add script to capture system stats - Add scripts for managing SAPDB - Create a standalone, combined 1-tier client/driver binary - Update SAPDB restore scripts - Add altered execution mode - Update indexes in SAPDB tables - Fix bug in SAPDB delivery transaction - Add ISOLATION levels to SAPDB transactions - Now logging transaction error counts - Now tracking rollbacks - Run altered mode by default - Update SAPDB transaction code to spec - Fix new order transaction calculations - Add script to post process sar for gnuplot - Refactor script names - Calculate rollbacks per transaction - Create user's guide - Allow seed to be overridden at command line - Fix bug with generated warehouse references to warehouses other than assigned warehouse v0.4 (2002-08-21) - First working functionally complete kit - Fix SAPDB customer table definition - Allow keying and thinking time overrides - Allow warehouse range to be specified in driver v0.3 (2002-08-15) - Implement transaction mix, keying time and thinking time logic - Refactor code used for debugging transaction data - Fix SAPDB table definitions to use correct data sizes - Refactor use of global variables - Refactor Makefiles v0.2 (2002-08-06) - Create a transaction test program - Add transaction queue framework v0.1 (2002-07-23 ) - Initial version of data generator, SAPDB transaction logic, client, and scripts - Fix bug in accepting tcp/ip connections - Handle dropped tcp/ip connection in the client