diff --git a/CHANGELOG.md b/CHANGELOG.md index 25dd1a97da6..9261b1355b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,11 +33,17 @@ as necessary. Empty sections will not end in the release notes. - Nessie commit author(s) and "signed off by" can now be configured for both Nessie clients and Iceberg REST clients. More info on [projectnessie.org](https://projectnessie.org/guides/iceberg-rest/#customizing-nessie-commit-author-et-al). +- Introduce new `JDBC2` version store type, which is has the same functionality as the `JDBC` version + store type, but uses way less columns, which reduces storage overhead for example in PostgreSQL a lot. ### Changes ### Deprecations +- The current version store type `JDBC` is deprecated, please migrate to the new `JDBC2` version store + type. Please use the [Nessie Server Admin Tool](https://projectnessie.org/nessie-latest/export_import) + to migrate from the `JDBC` version store type to `JDBC2`. + ### Fixes ### Commits diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts index e195fa2a65a..bd0a11ba85d 100644 --- a/bom/build.gradle.kts +++ b/bom/build.gradle.kts @@ -91,6 +91,8 @@ dependencies { api(project(":nessie-versioned-storage-inmemory-tests")) api(project(":nessie-versioned-storage-jdbc")) api(project(":nessie-versioned-storage-jdbc-tests")) + api(project(":nessie-versioned-storage-jdbc2")) + api(project(":nessie-versioned-storage-jdbc2-tests")) api(project(":nessie-versioned-storage-mongodb")) api(project(":nessie-versioned-storage-mongodb-tests")) api(project(":nessie-versioned-storage-rocksdb")) diff --git a/gradle/projects.main.properties b/gradle/projects.main.properties index c082937c3e8..3617bdd4b4e 100644 --- a/gradle/projects.main.properties +++ b/gradle/projects.main.properties @@ -78,6 +78,8 @@ nessie-versioned-storage-inmemory=versioned/storage/inmemory nessie-versioned-storage-inmemory-tests=versioned/storage/inmemory-tests nessie-versioned-storage-jdbc=versioned/storage/jdbc nessie-versioned-storage-jdbc-tests=versioned/storage/jdbc-tests +nessie-versioned-storage-jdbc2=versioned/storage/jdbc2 +nessie-versioned-storage-jdbc2-tests=versioned/storage/jdbc2-tests nessie-versioned-storage-mongodb=versioned/storage/mongodb nessie-versioned-storage-mongodb-tests=versioned/storage/mongodb-tests nessie-versioned-storage-rocksdb=versioned/storage/rocksdb diff --git a/helm/nessie/values.yaml b/helm/nessie/values.yaml index 3e066c45a27..705adca9060 100644 --- a/helm/nessie/values.yaml +++ b/helm/nessie/values.yaml @@ -28,11 +28,8 @@ imagePullSecrets: [] # `quarkus.log.category."io.smallrye.config".level: DEBUG` logLevel: INFO -# -- Which type of version store to use: IN_MEMORY, ROCKSDB, DYNAMODB, MONGODB, CASSANDRA, JDBC, BIGTABLE. -# (Legacy version store types are: INMEMORY, ROCKS, DYNAMO, MONGO, TRANSACTIONAL. If you are using -# one of these legacy version store types, migrate your existing repositories to the new version -# store types using the nessie-server-admin-tool's export/import functionality; support for these -# legacy version store types has been removed in Nessie 0.75.0.) +# -- Which type of version store to use: IN_MEMORY, ROCKSDB, DYNAMODB, MONGODB, CASSANDRA, JDBC2, BIGTABLE. +# Note: the version store type JDBC is deprecated, please use the Nessie Server Admin Tool to migrate to JDBC2. versionStoreType: IN_MEMORY # Cassandra settings. Only required when using CASSANDRA version store type; ignored otherwise. diff --git a/servers/jax-rs-tests/build.gradle.kts b/servers/jax-rs-tests/build.gradle.kts index abf359348ab..6d8b51fa088 100644 --- a/servers/jax-rs-tests/build.gradle.kts +++ b/servers/jax-rs-tests/build.gradle.kts @@ -41,7 +41,7 @@ dependencies { compileOnly("com.fasterxml.jackson.core:jackson-annotations") testImplementation(project(":nessie-versioned-storage-inmemory-tests")) - testImplementation(project(":nessie-versioned-storage-jdbc-tests")) + testImplementation(project(":nessie-versioned-storage-jdbc2-tests")) testRuntimeOnly(libs.agroal.pool) testImplementation(project(":nessie-jaxrs-testextension")) diff --git a/servers/jax-rs-tests/src/test/java/org/projectnessie/jaxrs/tests/TestRestH2Persist.java b/servers/jax-rs-tests/src/test/java/org/projectnessie/jaxrs/tests/TestRestH2Persist.java index 658f8e97838..e661d8418c5 100644 --- a/servers/jax-rs-tests/src/test/java/org/projectnessie/jaxrs/tests/TestRestH2Persist.java +++ b/servers/jax-rs-tests/src/test/java/org/projectnessie/jaxrs/tests/TestRestH2Persist.java @@ -15,7 +15,7 @@ */ package org.projectnessie.jaxrs.tests; -import org.projectnessie.versioned.storage.jdbctests.H2BackendTestFactory; +import org.projectnessie.versioned.storage.jdbc2tests.H2BackendTestFactory; import org.projectnessie.versioned.storage.testextension.NessieBackend; @NessieBackend(H2BackendTestFactory.class) diff --git a/servers/quarkus-common/build.gradle.kts b/servers/quarkus-common/build.gradle.kts index 3ed5278b61f..d552b0163bc 100644 --- a/servers/quarkus-common/build.gradle.kts +++ b/servers/quarkus-common/build.gradle.kts @@ -47,6 +47,7 @@ dependencies { implementation(project(":nessie-versioned-storage-dynamodb")) implementation(project(":nessie-versioned-storage-inmemory")) implementation(project(":nessie-versioned-storage-jdbc")) + implementation(project(":nessie-versioned-storage-jdbc2")) implementation(project(":nessie-versioned-storage-mongodb")) implementation(project(":nessie-versioned-storage-rocksdb")) implementation(project(":nessie-versioned-storage-store")) diff --git a/servers/quarkus-common/src/main/java/org/projectnessie/quarkus/config/QuarkusJdbcConfig.java b/servers/quarkus-common/src/main/java/org/projectnessie/quarkus/config/QuarkusJdbcConfig.java index e55942c435b..93e14322453 100644 --- a/servers/quarkus-common/src/main/java/org/projectnessie/quarkus/config/QuarkusJdbcConfig.java +++ b/servers/quarkus-common/src/main/java/org/projectnessie/quarkus/config/QuarkusJdbcConfig.java @@ -19,10 +19,10 @@ import io.smallrye.config.ConfigMapping; import io.smallrye.config.WithName; import java.util.Optional; -import org.projectnessie.versioned.storage.jdbc.JdbcBackendBaseConfig; +import org.projectnessie.versioned.storage.jdbc2.Jdbc2BackendBaseConfig; /** - * Setting {@code nessie.version.store.type=JDBC} enables transactional/RDBMS as the version store + * Setting {@code nessie.version.store.type=JDBC2} enables transactional/RDBMS as the version store * used by the Nessie server. * *

Configuration of the datastore will be done by Quarkus and depends on many factors, such as @@ -34,7 +34,7 @@ *

For example, to configure a PostgresQL connection, the following configuration should be used: * *