Downstream users should note that these release notes cover some changes already included in the 0.16.0 non-production release.
Incompatible Changes
- ‼️ The project's maven coordinates have changed to use group id- site.ycsband Java packages have changed to be in- site.ycsb(#1340)
- ❗ Azure Document DB has been removed (#1295)
- ❗ JDBC binding now semicolon for sharding (#1233)
Known Issues
- The mongodb binding does not honor the maxPoolSize=XX parameter and instead opens a connection per client thread. (see #317)
- Mongodb binding use with AWS DocumentDB requires manually converting SSL CA format (see #1314)
- 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)
- The Accumulo client bindings do not work with kerberos enabled clusters (see #1211)
- Memcached update deletes all fields except the one updated (see #1358)
- Data integrity verification doesn't check the number of fields. (see #1359)
- Workload D reports read failures when used with client side batched inserts (see #1356)
Tested Datastores
Changed in this release and verified to work
- 🆕 Apache Crail (incubating) (#1266)
- Apache HBase  on HDP 2.6.5 via hbase098,hbase10,hbase12,hbase14, andasynchbasebindings and CDH6 viahbase20binding
- Apache Ignite (incubating) 2.6.0 (via igniteandignite-sql)- client versoin bump (#1270)
 
- 🆕 Azure Cosmos DB (#1264 #1298 #1300)
- and Azure Cosmos DB Cassandra API via the cassandra-cqlbinding with SSL (#1294)
 
- and Azure Cosmos DB Cassandra API via the 
- JDBC checked with MsSQL and CockroachDB 2.0.3
- MongoDB versions 4.2.0, 4.0.12. 3.6.14, 3.4.23, 3.2.22, 3.0.15, 2.6.12
- added compatibility for MongoDB v4 (#1217)
 
- 🆕 Postgres NoSQL with Postgres 9.5 and 9.6 via the postgrenosqlbinding (#1242)
- 🆕 Table Store from Alibaba Cloud (#1286)
- 🆕 Toshiba GridDB (#1258)
- 🆕 VoltDB v9.1.1 via the voltdbbinding (#1319)
Unchanged in this release and previously verified
- Apache Accumulo 1.9.2 and 1.7.2-cdh5.5.0 (via accumulo1.7andaccumulo1.8)
- Apache Cassandra 3.11.2 (via cassandra-cql)
- Apache Geode 1.2.0, 1.3.0, and 1.6.0 (via geode)
- Apache Kudu 1.8.0 (via kudu)
- ArangoDB 3.3 and 3.4 (nightly) (via arangodb)
- Azure Table Storage (via azuretablestoragebinding).
- Couchbase2 4.0 and 4.5 (via couchbase2binding).
- DynamoDB using AWS SDK 1.10.48 (via dynamodbbinding).
- FoundationDB 5.2.5 (via foundationdb)
- Google Cloud Datastore (via googledatastore)
- MapR 6.0.1 (via maprdbandmaprjsondb)
- Riak 2.x.y (via riakbinding).
- Redis 4.0.9 in non-cluster mode (via redis)
- REST (via restbinding).
- RocksDB (via rocksdb)
- Tarantool 1.6.6-249, 1.6.8, 1.7-alpha (via tarantoolbinding).
- YugaByte DB 1.0.0 (via cassandra-cql)
Untested Datastores
If you make use of one of these stores and can verify it works, please add a note to #1355
- Apache Accumulo versions prior to 1.7
- Apache Cassandra versions prior to 3
- Apache Solr 5 and 6
- Cloud Spanner
- client version bump (#1293)
 
- Couchbase versions prior to 4
- Elastic Search
- HyperTable
- Infinispan
- Mapkeeper
- memcached
- work done on logic error where individual fields would not get updated (#1153)
 
- NoSQLDB
- OrientDB
- client version bump (#1256)
 
- Rados
- Redis versions prior to 4
- Redis in cluster mode
Framework changes
- Maven Group Id changed to site.ycsb(#1340)
- Java packages changed to site.ycsb(#1340)
- Core and binding-parent artifacts now published to Maven central (#1340)
- Number of threads used by client is capped by number of operations (#1323)
- Allow configuration of field names via fieldnameprefix property (#117)
- JDK 8 or 11 should be used, we no longer test JDK9 or JDK10 (#1253)
- Improvements to some internal byte iterators (notably Strings) (#1112)
- Correct configuration of exponential distribution in the Core workloads (#1260)