Skip to content

@nicoloboschi nicoloboschi released this Nov 23, 2020

  • Add support for Foreign Keys
  • Upgrade BookKeeper to 4.12.0 and support "bookieId"
  • Move Pull request validation to GitHub Actions, use Ephemeral ports for tests
  • Enhance support for OpenJPA

Compatibility:
This release is 100% compatible with old versions

Assets 3

@eolivelli eolivelli released this Oct 15, 2020

Feature highlights

  • implement REPEATABLE_READ transaction isolation, the default will be READ_COMMITTED, that holds less row-level locks
  • implement "UNIQUE" indexes (experimental)
  • improve SQL conformance of handling NULL values (this may be considered as a breaking change!)
  • implement simple jSQLParser based planner (server.plannertype=jsqlparser)
  • implement automatic fallback to Calcite in case of a query that is not plannable with the simple planner (server.plannertype=auto)
    default planner is still Apache Calcite based, as it offers full SQL support and cost based Volcano planner
  • several improvements on the JDBC driver (thanks to @rmannibucau )
  • several performance improvement for in-JVM communications (bypass Netty stack at all)
  • performance improvements in "local" mode (skip auth, apply better defaults, skip useless logging) (thanks to @rmannibucau )
  • ability to drop dependencies to most of Calcite third party dependencies in case of using server.plannertype=jsqlparser (in order to - make a smaller dependency set and resulting size of the JDBC Driver)
  • new "DUAL" table like Oracle
  • ability to replace the PK of a record
  • remove JsonPath and Geometry dependencies
  • cache ZooKeeper handle on the client to reduce the number of sessions

see
https://github.com/diennea/herddb/milestone/5?closed=1

Compatibility:
This release is 100% compatible with old versions, except from 0.20.0BETA, that was an experimental version.

Assets 3

@eolivelli eolivelli released this Oct 1, 2020

This release has been marked as BETA because it introduces a lot of experimental features, like UNIQUE indexes, the new jSQLParser based simple planner and the REPEATABLE_READ transaction isolation).
The JDBC client is temporary not compatible with previous versions (this will be fixed as soon as we drop the BETA label)

Feature hightlights

  • implement REPEATABLE_READ transaction isolation, the default will be READ_COMMITTED, that holds less row-level locks
  • implement "UNIQUE" indexes (experimental)
  • improve SQL conformance of handling NULL values (this may be considered as a breaking change!)
  • implement simple jSQLParser based planner (server.plannertype=jsqlparser)
  • implement automatic fallback to Calcite in case of a query that is not plannable with the simple planner (server.plannertype=auto)
  • default planner is still Apache Calcite based, as it offers full SQL support and cost based Volcano planner
  • several improvements on the JDBC driver (thanks to @rmannibucau )
  • several performance improvement for in-JVM communications (bypass Netty stack at all)
  • performance improvements in "local" mode (skip auth, apply better defaults, skip useless logging) (thanks to @rmannibucau )
  • ability to drop dependencies to most of Calcite third party dependencies in case of using server.plannertype=jsqlparser (in order to make a smaller dependency set and resulting size of the JDBC Driver)

Compatibility with old versions:

  • if you want to use the 0.20.0BETA client with 0.19.0 server you have to set transactionIsolation=REPEATABLE_READ, this way the behavior will be the same as before and the wire protocol will be 100% compatible
  • handling of NULL values is now consistent with SQL, so the behavior of comparisons and order by is different in presence of NULL (we tried to be as much as compatible as before, but actually something changed)
Assets 3

@eolivelli eolivelli released this Sep 2, 2020

Release highlights:

  • Speed up execution in "local" mode (bypass Netty stack, and drop Kryo dependency)
  • Diskless Cluster Mode v2 - still experimental
  • Introduce replica='*' to indicate that every node is a replica for a given tablespace
  • Allow "ALTER TABLE" to run inside a transaction
  • Create minimal JDBC driver

See the full list of notable changes:
https://github.com/diennea/herddb/milestone/4?closed=1

Client and server are 100% compatible with previous releases, apart from diskless-cluster mode, that has been reworked and the layout of metadata is no more compatible

Assets 3

@eolivelli eolivelli released this Jul 22, 2020

Release highlights:

  • Unified per-tablespace replication configuration (from this release expectedreplicacount TableSpace option will affect the replication factor (writequorumsize) of BookKeeperCommitLog)
  • new Apache OpenJPA DBDictionary (from next release of OpenJPA it will be bundled with the official distribution)
  • more JDBC Driver implementations
  • basic support of "DATE" and "TIME" types, treated mostly as "TIMESTAMP"

Breaking change:
From this version when you configure expectedreplicacount = X on a tablespace, this will be the minimum number of bookies to use when writing the write-ahead-log.
Benefits:

  • you configure replication factor per-tablespace and only with one single parameter
  • you save human errors by not configuring the server.bookkeeper.ensemblesize property consistently on every server (this configuration is now deprecated, but still useful)
Assets 2

@eolivelli eolivelli released this Jul 10, 2020

Release HighLights

  • now secondary indexes support NULL values (both single column and multi columm indexes)
  • support for "NOT NULL" on every datatype
  • more support for DATETIME functions

JDBC Driver

  • enhance JDBC metadata
  • simple implementation for many other JDBC APIs, especially about LOBs and all supported datatypes
  • speed up JDBC Driver users that use DriverManager (do not create an useless pool)
  • clean up third party dependencies on JDBC Driver
  • new jdbc:herddb:local:databasename connection string, support launching more "local" databases inside the same process

Local server mode (embedded unit tests)

  • speed up "local" server mode, by not initializing Netty Epoll (useless in local mode)
  • speed up "local" server mode by skipping a few steps during initialization
  • speed up "local" server mode by not creating useless Netty threadpools

Core

  • fix a few bugs about transaction ref counts and JOINs
  • fix a few bugs about tablespace autodiscovery

Integrations

  • new OpenJPA provider and integration tests

Standalone

  • dropped a few useless dependencies in order to shrink the package
Assets 3

@eolivelli eolivelli released this Jun 16, 2020

This is an hotfix release.
It includes a fix about recovery of a leader node in case of missing ledger on BK cluster

Assets 3

@eolivelli eolivelli released this Jun 11, 2020

Feature highlights:

  • Diskless cluster mode (experimental, not production ready)
  • Cluster consistency checker (thanks to @hamadodene !)
  • Upgrade to Apache ZooKeeper 3.6.1 client
  • Upgrade to Apache Calcite 1.23

This release includes a few important bug fixes about replication.
No disk or wire protocol changes (if you are not using the consistency checker).

Assets 3
Apr 30, 2020
[maven-release-plugin] copy for tag v0.15.3

@eolivelli eolivelli released this Apr 14, 2020

Highlights:
Enhance HerdDB Collections ValueSerializer API in order to enable the implementation of efficient serialization mechanisms and save memory allocations.

Assets 3