Skip to content

Releases: scalar-labs/scalardb

v3.6.0

08 Jul 14:35
Compare
Choose a tag to compare

Summary

This release has a lot of API changes while preserving backward compatibility. Please see Java API Guide for the details of the API.
Also, it has a lot of enhancements, improvements, bug fixes, vulnerability fixes, and document improvements. Please see the following Change logs for the details.

Change logs

Enhancements

  • Add suspend method to TwoPhaseCommitTransactionManager (#588)
  • Allow null values (#512)
  • Add factory methods to Key (#517)
  • Add factory methods to Scan.Ordering (#520)
  • Add ConditionBuilder (#519)
  • Add creating and dropping index support to DistributedStorageAdmin (#526)
  • Introduce DistributedTransactionAdmin (#528)
  • Add support for isNull and isNotNull conditions (#529)
  • Add SQL API (#525)
  • Support parameterized statement in SQL API (#547)
  • Introduce ScanAll operation (#548)
  • Release SNAPSHOT versions (#561)
  • Add scanAll for cassandra storage (#570)
  • Add DistributedTransactionAdminService to Scalar DB Server (#575)
  • Add ScanAll for Cosmos DB storage (#578)
  • Add new steps in the release.yaml to push container to Azure Container Registry (#580)
  • Add ScanAll for DynamoDB storage (#577)
  • Add ScanAll for JDBC storage (#582)
  • Implement the checkPaused service according to scalar-admin 1.2.0 (#583)
  • Add ScanAll to GRPC storage (#584)
  • Use max_pause_wait_time in AdminService (#585)
  • Implement ScanAll for Consensus Commit (#586)
  • Add builder for Put, Delete, Scan and Get operations (#601)
  • Add some useful methods (#614)
  • Introduce GetWithIndex and ScanWithIndex operations (#618)
  • Add methods to repair table and coordinator table to the Admin interfaces (#613)
  • Add repair table command to the Schema Loader Tool (#622)

Improvements

  • Refactor ImmutableLinkedHashSet (#513)
  • Hide Value from users (#515)
  • Add more explicit methods to Put (#516)
  • Deprecate the methods for default namespace and table (#518)
  • Add conditional mutation integration test (#522)
  • Add a method to get DataType of the column to Value (#523)
  • Introduce Column (#527)
  • Extract Admin interface from XXXAdmin (#531)
  • Add a integration test putting a null value for secondary index column (#530)
  • Extract an interface for transaction CRUD operations (#533)
  • Move commonly used classes to common package (#532)
  • Execute conditional mutation integration tests in parallel (#536)
  • Refactor SQL API (#538)
  • Add more methods to SQL builders (#540)
  • Rename metadata cache expiration time configuration name (#539)
  • Support alias in SQL API (#542)
  • Cache metadata in SQL API (#543)
  • Fix typo in the integrationTestTwoPhaseConsensusCommit gradle task name (#546)
  • Use collectors in Guava (#545)
  • Update the base image jre8 to 1.1.0 (#551)
  • Invalidate metadata cache when schema change happens in SQL API (#549)
  • Change Gradle dependencies format (#554)
  • Add validations for create table statements in SQL API (#552)
  • Migrate CI to GitHub actions (#541)
  • Upgrade JUnit to 5 (#555)
  • Trigger CI for "push" event on the master branch (#557)
  • Rearrange integration tests (#558)
  • Update the base image jre8 to 1.1.1 (#560)
  • Add transaction integration tests (#559)
  • Rearrange schema loader integration tests (#565)
  • Rearrange server integration tests (#566)
  • Add integration tests for SQL API (#567)
  • Add docker check to CI (#568)
  • Add ifNotExists and ifExists flags to RPC (#569)
  • Add CI triggers for "push" events on support and release branches (#572)
  • Refactor DistributedTransactionAdmin (#574)
  • Remove SQL API (#576)
  • Refactor DatabaseConfig related things (#579)
  • Enable PITR for metadata table in Dynamo DB adapter (#581)
  • Update jre8 base image to 1.1.2 (#587)
  • Update dependencies to fix CVE-2022-25647 (#589)
  • Use dockerize command by default in the Dockerfile (#590)
  • Handle projections in query for Cosmos DB (#591)
  • For Dynamo storage, throw an exception when a Put set a secondary index column value to null (#593)
  • Do not return primary key columns by default for selection operation in Storage mode (#592)
  • Add check for empty key (#594)
  • Add integration test for scanning table without clustering key (#595)
  • Merge protocVersion and protobufVersion (#596)
  • Add toString() to condition related classes (#599)
  • Add a way to disable metadata cache (#598)
  • Refactor ConsensusCommitUtils (#600)
  • Remove copyDependencies task (#602)
  • Fix CVE-2022-1664 (#604)
  • Refactor Gradle Plugin things (#606)
  • Introduce Column in Protocol Buffers (#607)
  • Upgrade SpotBugs (#597)
  • Refactor Scalar DB Server (#609)
  • Add @deprecated javadoc to overriding methods (#610)
  • Fix non constant names (#611)
  • Refactor Guice modules (#608)
  • Use ThreadLocal for Random in integration test (#612)
  • Fix CVE-2022-2068 (#623)
  • Add Scanner paging support for scan operations to the Cosmos adapter (#619)
  • Remove non useful operation in ScannerImpl from the Cosmos DB adapter (#624)
  • Rename getCreateOptions() to getCreationOptions() in integration tests (#629)
  • Refactor Schema Loader (#631)
  • Rename transactional to transaction (#632)
  • Reduce Intellij warnings (#633)

Bug fixes

  • Fix typo in the javadoc (#514)
  • Handle lastEvaluatedKey for query in DynamoDB (#534)
  • Fix Query condition missed key schema element error in DynamoDB (#544)
  • Fix SQL syntax error that happens when scanning a table without clustering key in JDBC adapter (#550)
  • Fix equals method of Value for bytes type (#553)
  • Upgrade grpc_health_probe (#562)
  • Upgrade PostgreSQL driver (#563)
  • Upgrade Cosmos DB client (#564)
  • Update the docs (#603)
  • Fix incompatible change (#605)

Documentation

  • Update ScalarDB compatibility test matrix (#510)
  • Change terms in data model (#521)
  • Update CI status badge in index.md (#556)
  • Update backup creation and restoration procedures (#571)
  • Update Javadoc (#615)
  • Update documents (#616)
  • Update Getting Started (#617)
  • Add documentation for Consensus Commit configurations (#621)
  • Add API guide (#620)
  • Add myself in the released pom file "developers" information (#628)
  • Add documentation for Storage abstraction (#625)
  • Refactor Scalar DB Server documentation (#627)
  • Add GraphQL and SQL to License section in README (#626)
  • Fix typo (#630)
  • Small modifications for documentation (#634)

v3.5.3

08 Jul 04:11
Compare
Choose a tag to compare

Improvements

v3.4.5

08 Jul 03:41
Compare
Choose a tag to compare

Improvements

v3.3.5

08 Jul 02:53
Compare
Choose a tag to compare

Improvements

v3.5.2

28 Apr 05:41
Compare
Choose a tag to compare

Enhancements

  • Release SNAPSHOT versions (#561)

Improvements

  • Fix typo in the integrationTestTwoPhaseConsensusCommit gradle task name (#546)
  • Update the base image jre8 to 1.1.0 (#551)
  • Migrate CI to GitHub actions (#541)
  • Trigger CI for "push" event on the master branch (#557)
  • Update the base image jre8 to 1.1.1 (#560)
  • Add docker check to CI (#568)
  • Add CI triggers for "push" events on support and release branches (#572)

Bug fixes

  • Fix Query condition missed key schema element error in DynamoDB (#544)
  • Fix SQL syntax error that happens when scanning a table without clustering key in JDBC adapter (#550)
  • Upgrade grpc_health_probe (#562)
  • Upgrade PostgreSQL driver (#563)
  • Upgrade Cosmos DB client (#564)

Documentation

  • Update CI status badge in index.md (#556)

v3.4.4

28 Apr 05:14
Compare
Choose a tag to compare

Enhancements

  • Release SNAPSHOT versions (#561)

Improvements

  • Fix typo in the integrationTestTwoPhaseConsensusCommit gradle task name (#546)
  • Update the base image jre8 to 1.1.0 (#551)
  • Migrate CI to GitHub actions (#541)
  • Trigger CI for "push" event on the master branch (#557)
  • Update the base image jre8 to 1.1.1 (#560)
  • Add docker check to CI (#568)
  • Add CI triggers for "push" events on support and release branches (#572)

Bug fixes

  • Fix Query condition missed key schema element error in DynamoDB (#544)
  • Fix SQL syntax error that happens when scanning a table without clustering key in JDBC adapter (#550)
  • Upgrade grpc_health_probe (#562)
  • Upgrade PostgreSQL driver (#563)
  • Upgrade Cosmos DB client (#564)

Documentation

  • Update CI status badge in index.md (#556)

v3.3.4

28 Apr 04:49
Compare
Choose a tag to compare

Enhancements

  • Release SNAPSHOT versions (#561)

Improvements

  • Add dockerize to Dockerfile for grpc-server (#376)
  • Add -XX:MaxRAMPercentage parameter to SCALARDB_SERVER_OPTS (#392)
  • Use the internal JRE Docker image to avoid CVE fixing commands (#420)
  • Fix typo in the integrationTestTwoPhaseConsensusCommit gradle task name (#546)
  • Update the base image jre8 to 1.1.0 (#551)
  • Migrate CI to GitHub actions (#541)
  • Trigger CI for "push" event on the master branch (#557)
  • Update the base image jre8 to 1.1.1 (#560)
  • Add docker check to CI (#568)
  • Add CI triggers for "push" events on support and release branches (#572)

Bug fixes

  • Log in GitHub Container Registry first (#421)
  • Fix Query condition missed key schema element error in DynamoDB (#544)
  • Fix SQL syntax error that happens when scanning a table without clustering key in JDBC adapter (#550)
  • Upgrade grpc_health_probe (#562)
  • Upgrade PostgreSQL driver (#563)
  • Upgrade Cosmos DB client (#564)

Documentation

  • Update CI status badge in index.md (#556)

v3.5.1

28 Mar 05:33
Compare
Choose a tag to compare

Bug fixes

  • Handle lastEvaluatedKey for query in DynamoDB (#534)
  • Should return primary key when key is contained in WriteSet and ReadSet but the result in ReadSet is empty in Consensus Commit (#535)

v3.4.3

28 Mar 05:19
Compare
Choose a tag to compare

Improvements

  • Use the internal JRE Docker image to avoid CVE fixing commands (#420)
  • Refactor integration tests (#442)

Bug fixes

  • Log in GitHub Container Registry first (#421)
  • Handle lastEvaluatedKey for query in DynamoDB (#534)

v3.5.0

16 Feb 05:40
Compare
Choose a tag to compare

Enhancements

  • Make JDBC isolation level configurable (#412)
  • Support parallel preparation/commit/rollback in Consensus Commit (#438)
  • Support async commit/rollback in Consensus Commit (#445)
  • Add connection pool configurations for JdbcAdmin (#458)
  • Add TransactionalTableMetadataManager (#465)
  • Support parallel validation for EXTRA_READ in Consensus Commit (#459)
  • Add ByteBuffer support for Blob type (#497)
  • Add ByteBuffer support to Value (#508)

Improvements

  • Refactor DistributedStorageAdmin (#405)
  • Move ReadRepairableExecutionException to the Cassandra package (#411)
  • Throw RetriableExecutionException when TransactionConflict happens in the Dynamo adapter (#407)
  • Throw RetriableExecutionException in mutate operations when conflicts happen in the JDBC adapter (#408)
  • Handle RetriableExecutionException in ConsensusCommit (#409)
  • Move Isolation to the consensuscommit package (#404)
  • Result.getClusteringKey() should return empty when there is no clustering key (#410)
  • Use the internal JRE Docker image to avoid CVE fixing commands (#420)
  • Revisit logging in Consensus Commit (#419)
  • Remove synchronized from ConsensusCommitManager (#418)
  • Upgrade supported storage database version in the CI (#416)
  • Refactor OperationChecker (#423)
  • Add SCALAR_DB_SERVER_PORT to database.properties.tmpl (#426)
  • Rename utility classes for consistency (#425)
  • Upgrade log4j version (#429)
  • Filter transactional columns and support projection for get/scan in Consensus Commit (#428)
  • Use different datasource for table metadata in JDBC adapter (#431)
  • Remove TransactionRuntimeException (#430)
  • Move CoordinatorException to the consensuscommit package (#434)
  • Upgrade log4j to 2.17.0 (#436)
  • Add end-to-end test for schema loader to CI (#349)
  • Refactor integration tests (#442)
  • Upgrade log4j to 2.17.1 (#449)
  • Refactor Schema Loader (#448)
  • Rename JdbcDatabaseAdmin to JdbcAdmin (#456)
  • Deprecate XXXService classes (#455)
  • Refactor TableMetadataManager (#454)
  • Refactor JDBC adapter (#468)
  • Sort order for Scan without orderings should follow clustering order in Cosmos adapter (#473)
  • Allow getting already written data in Consensus Commit (#474)
  • Rename JDBC integration tests (#475)
  • Handle SQL Server conflict error (#478)
  • Add more integration tests for Scan (#477)
  • Increase no_output_timeout for Cosmos DB adapter CI (#483)
  • Use only id and version to check if a read record is not changed in the validation in EXTRA_READ (#482)
  • Add annotations (#491)
  • Move ResultImpl to the util package (#492)
  • Unnecessary columns are not read any more in Consensus Commit (#488)
  • Add constructors to ConditionalExpression (#496)
  • Use before image column names from TransactionalTableMetadata in RollbackMutationComposer (#494)
  • Revisit Key construction (#447)
  • Should not change states of operation instances passed as arguments (#498)
  • Classes/Methods deprecated in 3.x should be removed in 5.0.0 (#506)
  • Reduce Intellij warnings (#503)
  • Change Key builder (#504)
  • Move the rollbackRecords method from RecoveryHandler to CommitHandler (#500)
  • Revisit logging (#502)
  • Refactor Scalar DB Server code (#453)
  • Add ConfigUtils.getStringArray() (#501)
  • Rename keyspace to namespace in unit tests (#507)

Bug fixes

  • Add mergeServiceFiles for shadowJar in Schema Loader (#406)
  • Fix get tables in Dynamo adapter when actual number of tables exceed the maximum in a response. (#415)
  • Restore JdbcUtils.initDataSource(JdbcConfig config) (#417)
  • Log in GitHub Container Registry first (#421)
  • Add -u option for Cosmos DB in schema loader for backward compatibility (#440)
  • Should close FileInputStream in XXXConfig (#451)
  • Should rollback a transaction when expiring it in Two-phase commit transactions (#452)
  • Transactions that have multiple scans are always rejected in EXTRA_READ (#457)
  • Handling namespaces/tables/columns with reserved keywords in Cassandra and JDBC adapters (#441)
  • Handling namespaces/tables/columns with reserved keywords in DynamoDB adapter (#462)
  • Handling namespaces/tables/columns with reserved keywords in Cosmos DB adapter (#461)
  • Fix OperationChecker for mutation operations (#476)
  • Fix Scan logic in CrudHandler in Consensus Commit (#479)
  • Should not publish a fat jar for Schema Loader to the maven repository (#490)
  • Update PostgreSQL driver version for vulnerability fix (#493)

Documentation

  • Update the Scalar DB version in README (#403)
  • Update schema-loader javadoc to fix warning (#413)
  • Update the Scalar DB version of the dependency in README (#433)
  • Improve Getting Started with Scalar DB on X (#432)
  • Add gRPC deadline duration configuration to the Scalar DB Server documentation (#437)
  • Update the Getting Started doc and code (#446)
  • Add A Guide on How to Handle Exceptions (#450)
  • Update Scalar DB backup and restoration guide (#486)
  • Support SQL Server and Amazon Aurora officially (#499)
  • Update the Scalar DB version of the dependency in README (#509)