From 8894ef0e156ac7bbb72e5d3aaab3e98c4e6f48d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:11:52 +0200 Subject: [PATCH] Update docker.io/scylladb/scylla Docker tag to v6 (#9397) * Update docker.io/scylladb/scylla Docker tag to v6 * Adopt test code --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Robert Stupp --- site/in-dev/configuration.md | 28 +++++++++---------- .../AbstractCassandraBackendTestFactory.java | 8 ++++-- .../Dockerfile-scylladb-version | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/site/in-dev/configuration.md b/site/in-dev/configuration.md index 8cfd7cfd3d0..5bfcedff577 100644 --- a/site/in-dev/configuration.md +++ b/site/in-dev/configuration.md @@ -189,20 +189,20 @@ Related Quarkus settings: ### Support for the database specific implementations -| Database | Status | Configuration value for `nessie.version.store.type` | Notes | -|------------------|--------------------------------------------------|---------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| "in memory" | only for development and local testing | `IN_MEMORY` | Do not use for any serious use case. | -| RocksDB | production, single node only | `ROCKSDB` | | -| Google BigTable | production | `BIGTABLE` | | -| MongoDB | production | `MONGODB` | | -| Amazon DynamoDB | beta, only tested against the simulator | `DYNAMODB` | Not recommended for use with Nessie Catalog (Iceberg REST) due to its restrictive row-size limit. | -| PostgreSQL | production | `JDBC` | | -| H2 | only for development and local testing | `JDBC` | Do not use for any serious use case. | -| MariaDB | experimental, feedback welcome | `JDBC` | | -| MySQL | experimental, feedback welcome | `JDBC` | Works by connecting the MariaDB driver to a MySQL server. | -| CockroachDB | experimental, known issues | `JDBC` | Known to raise user-facing "write too old" errors under contention. | -| Apache Cassandra | experimental, known issues | `CASSANDRA` | Known to raise user-facing errors due to Cassandra's concept of letting the driver timeout too early, or database timeouts. | -| ScyllaDB | experimental, known issues | `CASSANDRA` | Known to raise user-facing errors due to Cassandra's concept of letting the driver timeout too early, or database timeouts. Known to be slow in container based testing. Unclear how good Scylla's LWT implementation performs. | +| Database | Status | Configuration value for `nessie.version.store.type` | Notes | +|------------------|--------------------------------------------------|---------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| "in memory" | only for development and local testing | `IN_MEMORY` | Do not use for any serious use case. | +| RocksDB | production, single node only | `ROCKSDB` | | +| Google BigTable | production | `BIGTABLE` | | +| MongoDB | production | `MONGODB` | | +| Amazon DynamoDB | beta, only tested against the simulator | `DYNAMODB` | Not recommended for use with Nessie Catalog (Iceberg REST) due to its restrictive row-size limit. | +| PostgreSQL | production | `JDBC` | | +| H2 | only for development and local testing | `JDBC` | Do not use for any serious use case. | +| MariaDB | experimental, feedback welcome | `JDBC` | | +| MySQL | experimental, feedback welcome | `JDBC` | Works by connecting the MariaDB driver to a MySQL server. | +| CockroachDB | experimental, known issues | `JDBC` | Known to raise user-facing "write too old" errors under contention. | +| Apache Cassandra | experimental, known issues | `CASSANDRA` | Known to raise user-facing errors due to Cassandra's concept of letting the driver timeout too early, or database timeouts. | +| ScyllaDB | experimental, known issues | `CASSANDRA` | Known to raise user-facing errors due to Cassandra's concept of letting the driver timeout too early, or database timeouts. Known to be slow in container based testing. Unclear how good Scylla's LWT implementation performs. With Scylla version 6, you need to use a keyspace with "tablets" disabled. | !!! note Relational databases are generally slower and tend to become a bottleneck when concurrent Nessie commits against diff --git a/versioned/storage/cassandra-tests/src/main/java/org/projectnessie/versioned/storage/cassandratests/AbstractCassandraBackendTestFactory.java b/versioned/storage/cassandra-tests/src/main/java/org/projectnessie/versioned/storage/cassandratests/AbstractCassandraBackendTestFactory.java index 2c5e8435857..b92638f7911 100644 --- a/versioned/storage/cassandra-tests/src/main/java/org/projectnessie/versioned/storage/cassandratests/AbstractCassandraBackendTestFactory.java +++ b/versioned/storage/cassandra-tests/src/main/java/org/projectnessie/versioned/storage/cassandratests/AbstractCassandraBackendTestFactory.java @@ -81,10 +81,14 @@ private void maybeCreateKeyspace(CqlSession session) { .map(dc -> format("'%s': %d", dc, replicationFactor)) .collect(Collectors.joining(", ")); + // Disable tablets in ScyllaDB, because those are not compatible with LWTs (yet?). See + // https://opensource.docs.scylladb.com/stable/architecture/tablets.html#limitations-and-unsupported-features + String scyllaClause = "scylladb".equals(dbName) ? " AND tablets = {'enabled': false}" : ""; + session.execute( format( - "CREATE KEYSPACE IF NOT EXISTS %s WITH replication = {'class': 'NetworkTopologyStrategy', %s};", - KEYSPACE_FOR_TEST, datacenters)); + "CREATE KEYSPACE IF NOT EXISTS %s WITH replication = {'class': 'NetworkTopologyStrategy', %s}%s;", + KEYSPACE_FOR_TEST, datacenters, scyllaClause)); session.refreshSchema(); } diff --git a/versioned/storage/cassandra-tests/src/main/resources/org/projectnessie/versioned/storage/cassandratests/Dockerfile-scylladb-version b/versioned/storage/cassandra-tests/src/main/resources/org/projectnessie/versioned/storage/cassandratests/Dockerfile-scylladb-version index 914c34a459b..65e8891ebf5 100644 --- a/versioned/storage/cassandra-tests/src/main/resources/org/projectnessie/versioned/storage/cassandratests/Dockerfile-scylladb-version +++ b/versioned/storage/cassandra-tests/src/main/resources/org/projectnessie/versioned/storage/cassandratests/Dockerfile-scylladb-version @@ -1,3 +1,3 @@ # Dockerfile to provide the image name and tag to a test. # Version is managed by Renovate - do not edit. -FROM docker.io/scylladb/scylla:5.4.9 +FROM docker.io/scylladb/scylla:6.1.0