‼️ 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
- ❗ The latency measurements reported for Read-Modify-Write workloads have changed from milliseconds to microseconds (see #86)
- The WIP script
bin/ycsb.sh
has been removed (see #191) - YCSB no longer provides a CHANGES.txt file (see #294)
- ❗ 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)
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- The HBase binding has added support for the new stable HBase 1 API (see #225). Several bug fixes are also present (#79, #100, #141, #188, #256, #274, #278, #283, #325); notably, HBase clients no longer buffer client side by default.
- 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.- The MongoDB binding has added a new binding that leverages a third-party asynchronous client (see #180). Additionally, several bug fixes are present (#81, #82, #95, #137, #253, #277, #301).
- 🆕 Tarantool 1.6.1 via the
tarantool
binding (see #292, #319)
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)
- Infinispan 7.1
- JDBC (#47)
- 🆕 OrientDB 1.0 (#76)
- Redis 2.0 (#167, #173)
- 🆕 HyperTable 0.9 (#85)
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.
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.
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
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.
- #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.
- #275 Zipfian generator now respects min/max parameters
- #288 RandomByteIterator now generates bytes between 0x20 and 0x7F (previously 0x20 and 0x3F)
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.
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 updates during a job run now include a timestamp. (#111)
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.
See #164 and #284 for more information.