Repository navigation
Features
- GigaMap JVector
- Segmented on-disk vector index over a memory-mapped vector file [#861]
- Compression formats and in-memory PQ scoring,
enablePqCompressionnow actually produces a compressed index, and update to jvector 4.0.0-rc.9 [#825] [#834] - Reduced boxing and allocation in search, disk graph writing and index bookkeeping [#849] [#850] [#851] [#852] [#853] [#854]
- GigaMap:
store(Persister)is widened tostore(PersistenceStoring), so aStorercan be passed [#789] - New VanillaJS viewer for the REST service [#822]
Bugfixes
- Storage
- Power-loss corruption caused by a housekeeping transfer after a store [#778]
- Channel-barrier waiters are released on a disruption [#781]
- Storage lock-file manager reworked (lifecycle, exclusion, scheduling) [#783]
- Binary import and export failure handling hardened [#792]
- Reindex disables the missing files check [#839]
- S3 connector no longer hands the AWS SDK a single-use content stream provider [#836]
- Direct buffers are kept reachable while in use [#786]
- GigaMap index correctness
- Bitmap indices: total length mismatch on restart after removing entities from a compressed index, intact level2 block when compression fails, and reset of the add cache when a level2 block was rebuilt or freed [#821] [#866] [#867]
- An index failure during
apply()/update()no longer deletes the committed entity [#810] - Entity ids are derived with long arithmetic and no longer wrap at 2^31 [#806]
- Numeric binary indexers reject null keys with a designed exception instead of a raw
NullPointerException[#805] - The composite index key carrier is cleared before every indexer invocation [#798]
Condition.and()/or()no longer modify the receiver chain, and a query registered as its own sub-query no longer recurses infinitely [#802] [#803]- The entity locator no longer misses entities in evicted lazy segments [#799]
- GigaMap consistency and concurrency
set()into a slot emptied byremoveByIdno longer causes size drift or aClassCastException, and a segment is released when a removal empties it [#793] [#797]- The equalator no longer decides whether
set/replacewrites at all [#800] - Heap eviction no longer deletes from the backing store, and
removeAll()purges evicted entries [#801] - The
Iterablepassed toaddAlland to constraint registration is materialized and traversed exactly once [#788] [#791] - Index registration waits for open readers, like entity mutation does [#787]
- GigaMap reindex and index registration
- GigaMap JVector
- Persisting an empty vector index is a no-op instead of a
NullPointerException[#824] - A newly registered vector index is populated exactly once, and deferred builder operations no longer add an ordinal twice after a persist [#796] [#809]
- Lock order deadlock in the vector index [#848]
- A deleted node is re-inserted when an add reuses its id [#865]
- The result of a computed vectorizer is copied at the index boundary, so vectorizers may reuse a buffer [#862] [#863]
- Persisting an empty vector index is a no-op instead of a
- GigaMap Lucene:
query(Query)on an empty map returns an empty result instead of throwingnumHits must be > 0[#795]
Deprecations
afs-sqlandafs-oraclecloud-objectstorage(including theafs-oraclecloud-parentmodule) are deprecated and will be removed in 5.0.0, there is no replacement- The Vaadin based REST client GUI (
storage-restclient-appandstorage-restclient-app-standalone-assembly) and the console UI ofintegrations-spring-boot3-consoleare deprecated and will be removed in 5.0.0, use the bundled Storage Viewer ofstorage-restservice-javalininstead [#822]
Other Changes
- Dependency updates: Spring Boot, Jetty, Jackson, Vaadin and the AFS connector dependencies [#815] [#816] [#817] [#820] [#858] [#875]
- The SparkJava REST service implementation was removed [#819]
MMapDirectoryCreatoris now final [#840]- Documentation: storer and
BatchStorerbehaviour after a failed store, and corrected Lucene index code samples [#784] [#871]
Documentation
https://docs.eclipsestore.io/manual/intro/changelog.html#_4_3_0
See also https://github.com/eclipse-serializer/serializer/releases/tag/4.3.0