YCSB 0.10.0
Incompatible Changes
- ❗ mongodb-async now returns status OK for all operations when at write concern NONE, rather than the previous NOT_FOUND. See #759 for details.
Known Issues
- The Cassandra CQL clients do not use prepared statements (#458).
- The mongodb binding does not honor the maxPoolSize=XX parameter and instead opens a connection per client thread. (see #317)
- Several unsupported datastore bindings are still listed in CLI help. (see #328)
- The HBase binding does not report a clear error message on encountering version incompatibility. (see #343)
- Datastore drivers that lack timeouts may result in YCSB failing to honor the maxexecutiontime parameter. (See #618)
- Redis Scans are not performant (#636)
- "Latest" distribution does not work properly on update transactions (#640)
- Accumulo client currently always claims success even when the record it's supposed to operate on (e.g. for a read) doesn't exist (#699)
- JDK 9 is not supported (#704)
- The Rados client is missing from the properties file for new platform-specific scripts. #790
Tested Datastores
Datastore bindings that have been changed in this release and verified as working:
- Couchbase2 4.0 and 4.5 (via
couchbase2
binding). - MongoDB 1.8.5(async only), 2.0.9, 2.2.7, 2.4.14, 2.6.12, 3.0.11, 3.2.4 (via
mongodb
andmongodb-async
bindings). - MySQL 5.5 via its JDBC driver (via
jdbc
binding)- #755 [jdbc] add batched inserts to JDBC binding
- 🆕 PostgreSQL 9.5.2's JDBC4 Driver and MySQL 5.5 (via
jdbc
binding)- #755 [jdbc] add batched inserts to JDBC binding
- 🆕 Rados store from Ceph Jewel 10.2.2 (via
rados
binding) #670
Supported bindings, tested in previous releases, unchanged in this release:
- Aerospike (via
aerospike
binding). - Amazon S3 (via
s3
binding). - Apache Accumulo 1.6.0 (via
accumulo
binding). - Apache Geode (incubating) 1.0.0-incubating.M2 (via
geode
binding). - Apache HBase 0.98 (via
hbase098
binding). - Apache HBase 1.0.0 (CDH5.5.2) (via
hbase10
bindings). - Apache Kudu (incubating) (via
kudu
binding). - Apache Solr 5.4.0 (via
solr
binding). - Async HBase 1.7 (via
asynchbase
binding). - DynamoDB using AWS SDK 1.10.48 (via
dynamodb
binding). - Elasticsearch 2.0.2, 2.1.2, 2.2.2, 2.3.2 (via
elasticsearch
binding). - Google Bigtable (via
googlebigtable
binding). - Google Bigtable accessing using the HBase client (via
hbase10
binding) - Google Cloud Datastore (via
googledatastore
binding). - Memcached 1.4.4 (via
memcached
binding). - Riak 2.x.y (via
riak
binding). - Tarantool 1.6.6-249, 1.6.8, 1.7-alpha (via
tarantool
binding).
Untested Datastores:
- Apache Cassandra versions prior to 2.0 (via
cassandra-7
,cassandra-8
,cassandra-10
bindings) - Apache Cassandra 2.0+ (via
cassandra2-cql
binding) - Apache Cassandra version 3+ (via
cassandra2-cql
binding) - Apache HBase prior to 0.98 (via
hbase094
binding). - HyperTable (via
hypertable
binding). - Infinispan (via
infinispan
andinfinispan-cs
bindings) - Mapkeeper (via
mapkeeper
binding) - NoSQLDB (via
nosqldb
binding) - OrientDB 2.1.2 (via
orientdb
binding).
Framework Changes
Platform specific launching scripts
This release includes a first-pass implementation of Windows and Posix specific launching scripts for YCSB. They can be found along side the normal python script in the bin
directory. Downstream users are encouraged to begin testing use of these scripts, since the Python bin\ycsb
is expected to be removed in a future version. (#737, #777, #784)
Other Changes
- #751 [core] correct calculation of weighted histograms
Packaging Changes
Cassandra2 module included in convenience artifacts
The prebuilt artifact should include the cassandra2 module again. See #766.
Running from source on Windows
The known issue "Running directly from a source checkout on Windows is not supported. (see #335)" should now be solved, so long as downstream users rely on the Windows-specific YCSB launcher bin/ycsb.bat
. See #737 and #777
Thanks
Special thanks for helping to test this release goes out to: @allanbank, @cmatser, @daschl, @jaemyoun, and @sekikn!