Releases: brianfrankcooper/YCSB
YCSB 0.3.1
This is a patch release that should only contain fixes for problems found in prior releases. All users
are encouraged to upgrade. MongoDB users in particular should consider the impact of #344.
Known Issues
- β Current Cassandra CQL binding does not work with Cassandra 2.1+ (see #293, #369).
- Current HBase binding does not work with HBase 0.94, 0.96, or 0.98 (see #343).
- The
mongodb
binding does not honor themaxPoolSize=XX
parameter and instead opens a connection per client thread (see #317). βΌοΈ Running directly from a source checkout on Windows is not supported (see #335).- Running directly from a source checkout against the Basic datastore fails (see #336).
- Several unsupported datastore bindings are still listed in CLI help (see #328).
- The Accumulo binding may report errors during cleanup (see #340).
- The HBase binding does not report a clear error message on encountering version incompatibility (see #343).
- Unclear error message when java is not found in launcher script (see #345).
Datastore Bindings
Tested Support
The following datastore bindings have been verified as working as of this release:
- Apache Accumulo 1.6.0 via the
accumulo
binding. - Apache Cassandra 2.0.15 via the
cassandra-cql
andcassandra-10
bindings. - Apache HBase 1.0.0 via the
hbase-10
binding. - MongoDB 2.0.9, 2.2.7, 2.4.14, 2.6.10, 3.0.4 via the
mongodb
andmongodb-async
bindings. Additionally MongoDB 1.8.5 via themongodb-async
binding.- β Scan workloads now work with the MongDB binding (see #344)
- Tarantool 1.6.1 via the
tarantool
binding. - Aerospike 3.5.15 via the
aerospike
binding.
Untested
The following datastore bindings are present but have not been confirmed as a part of release testing. Referenced issue numbers are those fixed as a part of this release.
- Apache Cassandra versions prior to 2.0
- Couchbase 1.1
- DynamoDB 1.3
- ElasticSearch
- Gemfire 8.1
- Infinispan 7.2.2
- JDBC
- OrientDB 1.7.5
- Redis 2.0
- HyperTable 0.9
Framework Changes
Miscellaneous changes
Additional updates and fixes to the core package are in this release:
0.3.1 Release Candidate 1
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release version 0.3.1. Please see #391 for testing instructions and where to leave your feedback.
Compared to the previous release, this candidate includes
- #362 Update MongoDB driver to 3.0.3
- #381 Work around HDRHistogram initialization bug
- #359 Shutdown the client as soon as all workers are complete
- #239 Print estimated time remaining in status thread
Additionally, it includes some project internals (#366, #389, #393)
YCSB 0.3.0
Known Issues
- β Current Cassandra CQL binding does not work with Cassandra 2.1+ (see #293, #369).
- Current HBase binding does not work with HBase 0.94, 0.96, or 0.98 (see #343).
- β MongoDB's current driver doesn't properly handle scan workloads (see #344)
- The
mongodb
binding does not honor themaxPoolSize=XX
parameter and instead opens a connection per client thread (see #317). βΌοΈ Running directly from a source checkout on Windows is not supported (see #335).- Running directly from a source checkout against the Basic datastore fails (see #336).
- Several unsupported datastore bindings are still listed in CLI help (see #328).
- The Accumulo binding may report errors during cleanup (see #340).
- The HBase binding does not report a clear error message on encountering version incompatibility (see #343).
- Unclear error message when java is not found in launcher script (see #345).
Datastore Bindings
Tested Support
The following datastore bindings have been verified as working as of this release:
- Apache Accumulo 1.6.0 via the
accumulo
binding (see #340). - Apache Cassandra 2.0.15 via the
cassandra-cql
andcassandra-10
bindings. - Apache HBase 1.0.0 via the
hbase-10
binding. - MongoDB 2.0.9, 2.2.7, 2.4.14, 2.6.10, 3.0.4 via the
mongodb
andmongodb-async
bindings. Additionally MongoDB 1.8.5 via themongodb-async
binding.- There are several fixes and updates to the MongoDB client.
- Tarantool 1.6.1 via the
tarantool
binding (see #292, #319). - π Aerospike 3.5.15 via the
aerospike
binding (see #113).
Untested
The following datastore bindings are present but have not been confirmed as a part of release testing. Referenced issue numbers are those fixed as a part of this release.
- Apache Cassandra versions prior to 2.0
- Couchbase 1.1
- DynamoDB 1.3
- ElasticSearch
- Gemfire 8.1
- Infinispan 7.2.2
- New client implementation for Infinispan 5.x running in client-server mode (see #228).
- JDBC
- OrientDB 1.7.5 (#183)
- Redis 2.0
- HyperTable 0.9
Framework Changes
Miscellaneous changes
Additional updates and fixes to the core package are in this release:
- Execute correct number of operations, even if not a multiple of thread count (see PR #338).
0.3.0 Release Candidate 3
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release version 0.3.0. Please see #358 for testing instructions and where to leave your feedback.
Relative to the previous release candidate, this candidate includes the following changes:
- Fix codestyle in measurements section of code (missing commit in RC2).
0.3.0 Release Candidate 2
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release version 0.3.0. Please see #358 for testing instructions and where to leave your feedback.
Relative to the previous release candidate, this candidate includes the following changes:
- [core] Move returncode handling to OneMeasurement
0.3.0 Release Candidate 1
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release version 0.3.0. Please see #358 for testing instructions and where to leave your feedback.
Relative to the previous release, this candidate includes the following changes:
- Add support for Aerospike.
- Refactoring of infinispan binding.
- Upgrade of OrientDB from 1.0.1 -> 1.7.5-SNAPSHOT.
- Fixes and updates to the MongoDB client.
- Change the port of Cassandra to be a parameter instead of a constant.
- Execute correct number of operations, even if not a multiple of thread count.
- More reasonable write overload handling.
- Document correct default timeout.
YCSB 0.2.0
Incompatible Changes
Datastore Bindings
βΌοΈ The Voldemort binding has been removed due to lack of published client artifacts (see #297)βΌοΈ The MapKeeper binding has been removed due to lack of published client artifacts (see #210)- The HBase binding no longer supports HBase versions prior to 0.94 (previously 0.90 worked)
- The Gemfire binding has updated its expected version to Gemfire 8
Framework
- β The latency measurements reported for Read-Modify-Write workloads have changed from milliseconds to microseconds (see #86)
Other
- The WIP script
bin/ycsb.sh
has been removed (see #191) - YCSB no longer provides a CHANGES.txt file (see #294)
Known Issues
- β Current Cassandra CQL binding does not work with Cassandra 2.1 (see #293)
- Current HBase binding does not work with HBase 0.94, 0.96, or 0.98 (see #343)
- β MongoDB's current driver doesn't properly handle scan workloads (see #344)
- Client status thread continues to run for several seconds after operations are completed (see #316)
- The
mongodb
binding does not honor themaxPoolSize=XX
parameter and instead opens a connection per client thread (see #317) βΌοΈ Running directly from a source checkout on Windows is not supported (see #335)- Running directly from a source checkout against the Basic datastore fails (see #336)
- Several unsupported datastore bindings are still listed in CLI help (see #328)
Datastore Bindings
Tested Support
The following datastore bindings have been verified as working as of this release:
- π Apache Accumulo 1.6.0 via the
accumulo
binding (see #170) - Apache Cassandra 2.0.15 via the
cassandra-cql
andcassandra-10
bindings- The Cassandra binding has been updated to use CQL. Downstream users are advised to transition. (see #145)
- Apache HBase 1.0.0 via the
hbase-10
binding - MongoDB 2.0.9, 2.2.7, 2.4.14, 2.6.10, 3.0.4 via the
mongodb
andmongodb-async
bindings. Additionally MongoDB 1.8.5 via themongodb-async
binding. - π Tarantool 1.6.1 via the
tarantool
binding (see #292, #319)
Untested
The following datastore bindings are present but have not been confirmed as a part of release testing. Referenced issue numbers are those fixed as a part of this release.
- Apache Cassandra versions prior to 2.0 (#89)
- π Couchbase 1.1 (#136)
- π DynamoDB 1.3 (#88, #97)
- π ElasticSearch 0.19 (#93, #108)
- Gemfire 8.1 (#94, #123, #268)
- π HyperTable 0.9 (#85)
- Infinispan 7.1
- JDBC (#47)
- π OrientDB 1.0 (#76)
- Redis 2.0 (#167, #173)
Framework Changes
Latency capture via HDRHistogram
Users may opt-in to having transaction latencies measured via the HdrHistogram library by specifying hdrhistogram
for the measurementtype
property.
$ bin/ycsb load basic -P workloads/workloada -p measurementtype=hdrhistogram
See #214 and HdrHistogram: A better latency capture method for more information.
Measuring transaction latency against a fixed schedule
This release incorporates changes to properly measure latency against a regular schedule of transactions (also referred to as the coordinated omission problem). Users must opt-in to this methodology by setting the measurement.interval
property to intended
.
$ bin/ycsb load basic -P workloads/workloada -p measurement.interval=intended
See #214 and Correcting YCSB's Coordinated Omission problem for more information.
Verifying written data
Users may opt-in to writing a verifiable data set and having the correctness of stored values checked via the dataintegrity
property. Note that turning on this feature changes the kinds of values that are written as a part of the test.
$ bin/ycsb load basic -P workloads/workloada -p dataintegrity=true
See #91 for more information
Exporting measurements as a JSON array
In addition to the extant ability to export measurements as a series of JSON objects, users may now opt-in to exporting measurements as a single JSON array by setting the exporter
property to the JSONArrayMeasurementsExporter
class.
$ bin/ycsb load basic -P workloads/workloada -p exportfile=somefile.json -p exporter=com.yahoo.ycsb.measurements.exporter.JSONArrayMeasurementsExporter
See #289 for more information.
Measurements changes
- #100 YCSB now measures the cleanup phase of testing in microseconds. For datastore bindings that include the option of client-side buffering, such as HBase, the clean up period should also be measured by the datastore binding as an UPDAE to cover the final flush to the datastore.
- #207 Measurements.getSummary is now synchronized.
Workload changes
- #275 Zipfian generator now respects min/max parameters
- #288 RandomByteIterator now generates bytes between 0x20 and 0x7F (previously 0x20 and 0x3F)
Other Changes
Datastore binding specific binary artifacts
YCSB now provides convenience binary artifacts that contain just the files needed to run against a particular datastore (e.g. just MongoDB). These artifacts should work just like the normal distribution but will be substantially smaller in size.
Artifacts are generated during the build for any datastore binding that provides a README.md. Artifacts are published as a part of the release process if they are tested during the release process.
See #250 for more information.
Workload Template
Users interested in creating their own workloads can now start from the set of all available properties; found in workloads/workload_template
.
See #92 for more information
Status output changes
Status updates during a job run now include a timestamp. (#111)
Travis-CI for testing
YCSB now uses Travis-CI to test proposed patches. Contributors who add new datastore bindings are encouraged to leverage Travis-CI's support for standing up local test datastore instances to provide better tests.
0.2.0 Release Candidate 3
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release 0.2.0. Please see #266 for testing instructions and where to leave your feedback.
Compared to RC2, this RC changes:
- MongoDB binding now correctly uses the 'mongodb.url' parameter and defaults to a database named 'ycsb'
- HBase binding now aborts during initialization if the passed table does not exist.
- Tarantool binding now properly handles scans
- HBase README now explains pre-splitting
- running from a source checkout now works
- running a datastore binding with a name that doesn't match directory (e.g. hbase-10, cassandra-cql) now works
- CHANGELOG has been removed
0.2.0 Release Candidate 2
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release 0.2.0. Please see #266 for testing instructions and where to leave your feedback.
Compared to RC1, this RC changes:
- The YCSB client launching utility has been updated to only include the libraries and configuration directory of the datastore binding that is currently in use
0.2.0 Release Candidate 1
UPPERCASE WARNING: THIS IS A RELEASE CANDIDATE AND IS NOT INTENDED FOR DOWNSTREAM USE.
This source is a candidate for release 0.2.0. Please see #266 for testing instructions and where to leave your feedback.