Skip to content

Releases: diennea/herddb

v0.28.0

27 Sep 10:38
Compare
Choose a tag to compare

Higtlights:

  • support for the new "vector of float" (FLOATA) data type
  • new scalar functions cosine_similarity, euclidean_distance and dot_product
  • Upgrade BookKeeper to 4.16.3

See #812

Sample table:

CREATE TABLE DOCUMENTS (
            FILENAME string
            CHUNKID int, "
            TEXT string, "
             EMBEDDINGSVECTOR floata,
             PRIMARY KEY(filename, chinkid)
)

Sample Vector Search query

SELECT text
FROM DOCUMENTS
ORDER BY cosine_similarity(embeddingsvector,cast(? as FLOAT ARRAY)) DESC
LIMIT 10

v0.27.0

05 Sep 14:35
Compare
Choose a tag to compare
  • Converted herddb-cli to a lightway jar, to start a server from cli now you require a herddb-services
  • Added SASL username/password auth

v0.26.1

17 Jan 08:35
Compare
Choose a tag to compare
  • Fixed a memory leak within local JVM connections #798

v0.26.0

29 Nov 17:36
Compare
Choose a tag to compare

Bumped the version of some libraries:

  • netty from 4.1.72 to 4.1.85
  • bouncycastle from 1.65 to 1.70
  • calcite from 1.30.0 to 1.32.0
  • jacson from 2.12.3 to 2.14.1
  • zookeeper from 3.6.2 to 3.8.0
  • curator from 5.1.0 to 5.4.0
  • slf4j from 1.7.29 to 2.0.4

v0.25.0

28 Apr 08:37
Compare
Choose a tag to compare

Notes:

  • Upgrade Apache Calcite from 1.28.0 to 1.30.0
  • Improved logging for data fetch errors

v0.24.0

10 Jan 13:37
Compare
Choose a tag to compare

Notes:

  • Upgrade Apache Calcite: this is a big jump, in contains the switch to the Search Operator (SARG)
  • Upgrade other dependencies
  • Some changes on the Docker image (remove log4j2, stick to Java Util Logging)

Docker image:
https://hub.docker.com/layers/herddb/herddb/0.24.0/images/sha256-f2a461f5635311e7c25c70e0284dbbf0f970039e004a229a5e8e88446c76b260?context=explore

v0.23.0

01 Sep 13:36
Compare
Choose a tag to compare
  • Simplified memory configuration and added configurable separation between data and index memory spaces (#757)
  • Upgrade Jetty to 9.4.41.v20210516 (#751)
  • Upgrade BookKeeper to 4.14.2 (#750)
  • Upgrade commons-io to 2.7 (#747)
  • Upgrade Netty to 4.1.59.Final (#738)
  • Beta support for real time capture data change (CDC), streaming data directly from BookKeeper

Compatibility:
This release is 100% compatible with old versions

v0.22.0

23 Nov 13:43
Compare
Choose a tag to compare
  • 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

v0.21.0

15 Oct 14:17
Compare
Choose a tag to compare

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.

v0.20.0BETA

01 Oct 10:14
Compare
Choose a tag to compare

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)