Releases: FgForrest/evitaDB
v2024.6.0
Changes
- Readiness & liveness probes @novoj (#563)
- fix(#556): Add support for comparing OffsetDateTime against DateTimeR… @novoj (#562)
- fix(#531): Random errors and NullPointerExceptions in ChainIndex @novoj (#561)
- perf(#559): Entity fetching optimization @novoj (#560)
- fix(#557): memory leak during transaction handling @novoj (#558)
- build(deps): bump org.bouncycastle:bcprov-jdk18on from 1.77 to 1.78 @dependabot (#555)
- 550 provide health check for docker image @novoj (#554)
v2024.5.5
v2024.5.4
v2024.5.3
v2024.5.2
Changes
- Bugfix patch @novoj (#544)
- refactor(#542): Limit allocations when no changes in indexes occur @novoj (#543)
- fix(#537): Incorrect facet statistics difference when userFilter is used @novoj (#541)
- fix (#536): Invalid OffsetDateTime comparison taking offset difference into an account @novoj (#539)
- fix(#534): log exception with log message so that consumers can better work with the multiline text inside @lukashornych (#535)
- fix(#532): NPE when GQL query is sent without a name and tracing is enabled @lukashornych (#533)
v2024.5.1
v2024.5.0
Changes
- Patch bundle @novoj (#526)
- fix(#522): Mismatches in query language when sorting by PK of referen… @novoj (#525)
- feat(#523): trace GraphQL operations and their names, trace all GraphQL handler processing, even serialization of result @lukashornych (#524)
- fix(#520): Non-first page of entities empty when ordering by price @novoj (#521)
v2024.4.1
v2024.4.0
Multi-version concurrency control
This version completely overhauls transactional updates in evitaDB and introduces a proper MVCC engine that ensures transactions maintain SNAPSHOT isolation. We now first record all transactional updates in the Write Ahead Log and then process them asynchronously in a reactive manner using the Java Flow API. When the transaction commits its work, the isolated WAL is propagated to the shared WAL, which is incorporated into a shared data structure in an atomic way, and when it's done, it's used in every new session opened for the catalog. All previously opened sessions will still use the previous version that was valid/actual at the time the session was started. This process also saves a lot of memory in situations where there are a lot of in-the-fly transactions or long-running transactions, since we don't have to keep all the changes in memory, but they are safely recorded in the WAL (either isolated or shared).
The WAL also opens the door to time machine features, which we'll introduce next. You'll be able to list all changes in the evitaLab application, revert your catalog contents to a specific point in time, replay the WAL from there, or skip it altogether. WAL also allows us to continue with the CDC feature, which will eventually allow us to upgrade evitaDB to a database that operates in a cluster with multiple replicas and eventually achieve high availability mode.
Open Telemetry Integration
Our colleague @Khertys added support for OTEL which allows you to track evitaDB queries and session calls within your own (micro)services. This gives you the ability to see evitaDB usage patterns in your application in a broader and more understandable way. We believe this will enable you to create more efficient and performant applications!
Changes in detail
- feat(#16): Multi-version concurrency control transactions by @novoj in #506
- feat(#487): Rename enum for price handling first occurrence to lowest price by @novoj in #507
- fix(#18): support for passing OpenTelemetry context between threads by @lukashornych in #505
- feat(#498): don't allow attributeIs constraint for nonnull attributes by @lukashornych in #516
- fix(#491): Reference
stocks
was not fetched along with the entity. … by @novoj in #517