YCSB 0.14.0
Downstream users should note that these release notes cover some changes already included in the 0.13.0 non-production release.
Incompatible Changes
- [generators] Our key generators have changed from using the
int
primitive type tolong
as a step towards providing greater key ranges. If you've implemented your own generator, measurements, or db binding this change will likely impact you. (see #911) - [core] Our DB API now makes use of the more basic interfaces of Java Collections Framework instead of HashMaps directly. If you've implemented your own db bindings this change will likely impact you. (see #553)
- ❗ [JDBC] The JDBC binding now expects fields to be
TEXT
instead ofVARCHAR
. The Table setup utility has been updated to reflect this. - ❗ [Geode] Our Geode client binding now requires a minimum cluster version of 1.2.0. (see #995)
- ❗️ The HBase binding specific to testing HBase 0.94 clusters has been removed. (see #1032)
Known Issues
- The mongodb binding does not honor the maxPoolSize=XX parameter and instead opens a connection per client thread. (see #317)
- Datastore drivers that lack timeouts may result in YCSB failing to honor the maxexecutiontime parameter. (see #618)
- "Latest" distribution does not work properly on update transactions. (see #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. (see #699)
- JDK 9 and JDK 10 are not supported. (see #704)
- ArangoDB client bindings fail to work with ArangoDB authentication (see #1155)
- HBase 2.0 client bindings doesn't include an slf4j logging-binding and so doesn't provide log messages from the client library (see #1173)
Tested Datastores
New or changed, tested and verified to work in this release
- Apache Accumulo 1.9.1 (via
accumulo1.8
) - Aerospike 4.2.0.3 (via
aerospike
)- #937 write policy updated to REPLACE_ONLY
- Apache Cassandra 3.11.2 (via
cassandra-cql
)- #1051 CassandraCQLClient now uses PreparedStatement for better performance
- Google Cloud Datastore (via
googledatastore
)- #984 use default credentials when available
- Apache Geode 1.2.0, 1.3.0, and 1.6.0 (via
geode
) - Apache HBase 1.2 (CDH 5.14.2) and 2.0 (CDH 6.0.0-beta1) (via
hbase10
,hbase12
,hbase14
, andhbase20
) - Apache Kudu 1.8.0 (via
kudu
) - 🆕 MapR 6.0.1 (via
maprdb
andmaprjsondb
) - MongoDB 3.6.4 (via
mongodb
andmongodb-async
)- #1138 update client library to 3.6.3
- Redis 4.0.9 in non-cluster mode (via
redis
)- #1072 Add cluster mode option
- Amazon S3 (via
s3
) - 🆕 YugaByte DB 1.0.0 (via
cassandra-cql
)
Tested in previous releases, unchanged in this release
- AsyncHBase 1.7 (via
asynchbase
binding). - Google Bigtable (via
googlebigtable
binding). - Google Bigtable accessing using the HBase client (via
hbase10
binding) - Couchbase2 4.0 and 4.5 (via
couchbase2
binding). - DynamoDB using AWS SDK 1.10.48 (via
dynamodb
binding). - OrientDB 2.2.10 (via
orientdb
binding). - REST (via
rest
binding). - Riak 2.x.y (via
riak
binding). - Azure Table Storage (via
azuretablestorage
binding). - Tarantool 1.6.6-249, 1.6.8, 1.7-alpha (via
tarantool
binding).
Untested Datastores
- Apache Accumulo versions prior to 1.9
- ArangoDB
- Apache Cassandra versions prior to 3
- Couchbase versions prior to 4
- Google Cloud Bigtable
- Google Cloud Spanner
- Azure DocumentDB
- Elastic Search
- HyperTable
- Infinispan
- JDBC
- Mapkeeper
- Memcached
- MongoDB versions prior to 3.6
- NoSQLDB
- Rados
- Redis versions prior to 4
- Redis in cluster mode
- Apache Solr 5 and 6
Framework Changes
Basic no-op binding added operations counting
The built-in no-op binding basicdb
has added a property basicdb.count
. When set to true, we'll count operations that happen. Defaults to false. (see #1005)
New workload base for timeseries testing (experimental)
The core of YCSB now contains a new base workload type to enable building timeseries based workloads. The current state is in flux and should be considered experimental by folks who would like to build on it. For details on work to date, see #1008, #1091, #1095. Interested parties are encouraged to check in on PR #1068 for ongoing work.
Packaging Changes
- Running the platform-specific scripts (i.e. ycsb.sh) from a source checkout now works. (see #908)
Thanks
Special thanks for helping to test this release goes out to: @twblamer, @robertpang, @metatype, @upthewaterspout, @fwang29, @haih-g, @bosher, @ctubbsii , @rohanjayaraj, @isuntsov-gridgain, @petersomogyi, @jojochuang