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 idsite.ycsb
and Java packages have changed to be insite.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
, andasynchbase
bindings and CDH6 viahbase20
binding - Apache Ignite (incubating) 2.6.0 (via
ignite
andignite-sql
)- client versoin bump (#1270)
- 🆕 Azure Cosmos DB (#1264 #1298 #1300)
- and Azure Cosmos DB Cassandra API via the
cassandra-cql
binding 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
postgrenosql
binding (#1242) - 🆕 Table Store from Alibaba Cloud (#1286)
- 🆕 Toshiba GridDB (#1258)
- 🆕 VoltDB v9.1.1 via the
voltdb
binding (#1319)
Unchanged in this release and previously verified
- Apache Accumulo 1.9.2 and 1.7.2-cdh5.5.0 (via
accumulo1.7
andaccumulo1.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
azuretablestorage
binding). - Couchbase2 4.0 and 4.5 (via
couchbase2
binding). - DynamoDB using AWS SDK 1.10.48 (via
dynamodb
binding).
- FoundationDB 5.2.5 (via
foundationdb
)
- Google Cloud Datastore (via
googledatastore
) - MapR 6.0.1 (via
maprdb
andmaprjsondb
) - Riak 2.x.y (via
riak
binding). - Redis 4.0.9 in non-cluster mode (via
redis
) - REST (via
rest
binding).
- RocksDB (via
rocksdb
)
- Tarantool 1.6.6-249, 1.6.8, 1.7-alpha (via
tarantool
binding). - 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)