v1.38.5
v1.38.5 - LSM store performance improvements, Batch vectorization potencial deadlocks Fix, Allocation free reference cacher improvement
Changed 7
- Open dimensions bucket once per shard with sequential-access hint
- Reuse read buffer in objectsByDocID
- Reuse read buffer in docID resolution loops
- Cache immutable memtable tombstone snapshot for queries
- Enable lock-free tombstone reads and write-side lock split
- Make in-place segment cleanup switch crash-atomic
- Warn when collection cycles overlap the collection interval
Fixed 12
- Never hold version-map locks across LSM operations
- Repair search time entrypoint
- Fix batch vectorization deadlocks
- Fix vectors invisible to flat cached search after restart with unflushed data
- Ensure tombstone metric is cleared when resetting the HNSW graph
- Thread per-query budget into sroar merge fan-out
- Sort WALs before recovery so the newest stays the active memtable
- Make class settings optional in generative-google to avoid sending defaults to Gemini
- Skip lazy-unloaded tenant shards in TTL sweep
- Fix HTTP client concurrency in acceptance tests
- Retry memberlist join with deadline
- Expose structured where-filter on the MCP hybrid search tool
Breaking Changes
none
New Features
none
Fixes
- fix(hfresh): never hold version-map locks across LSM operations by @asdine in https://github.com/weaviate/weaviate/pull/12119
- Search time entrypoint repair by @trengrj in https://github.com/weaviate/weaviate/pull/11956
- Fix batch vectorization deadlocks by @dirkkul in https://github.com/weaviate/weaviate/pull/12070
- flat: fix vectors invisible to flat cached search after restart with unflushed data by @asdine in https://github.com/weaviate/weaviate/pull/12132
- perf(usage): open dimensions bucket once per shard with sequential-access hint by @antas-marcin in https://github.com/weaviate/weaviate/pull/12106
- When resetting the HNSW graph, ensure tombstone metric is cleared by @trengrj in https://github.com/weaviate/weaviate/pull/12131
- Fix flaky GQL accptance test with EC issues by @dirkkul in https://github.com/weaviate/weaviate/pull/12140
- fix(concurrency): thread per-query budget into sroar merge fan-out (P1a) by @etiennedi in https://github.com/weaviate/weaviate/pull/12076
- ci: switch acceptance tests to use ubicloud-standard-4 runner by @antas-marcin in https://github.com/weaviate/weaviate/pull/12148
- fix(lsmkv): sort WALs before recovery so the newest stays the active memtable by @antas-marcin in https://github.com/weaviate/weaviate/pull/12138
- ci: switch integration and module tests to ubicloud runners by @antas-marcin in https://github.com/weaviate/weaviate/pull/12153
- perf(inverted): reuse read buffer in objectsByDocID by @amourao in https://github.com/weaviate/weaviate/pull/12142
- perf(sorter,group-by): reuse read buffer in docID resolution loops by @amourao in https://github.com/weaviate/weaviate/pull/12143
- perf(lsmkv): cache immutable memtable tombstone snapshot for queries by @amourao in https://github.com/weaviate/weaviate/pull/12051
- perf(lsmkv): lock-free tombstone reads + write-side lock split by @amourao in https://github.com/weaviate/weaviate/pull/12052
- feat(lsmkv): make in-place segment cleanup switch crash-atomic by @antas-marcin in https://github.com/weaviate/weaviate/pull/12156
- fix(generative-google): make class settings optional to avoid sending defaults to Gemini by @antas-marcin in https://github.com/weaviate/weaviate/pull/12123
- feat(usage): warn when collection cycles overlap the collection interval by @antas-marcin in https://github.com/weaviate/weaviate/pull/12174
- Skip lazy-unloaded tenant shards in TTL sweep by @dirkkul in https://github.com/weaviate/weaviate/pull/12178
- refatc(diagnostic): add slow raft apply log gate by @moogacs in https://github.com/weaviate/weaviate/pull/12180
- backport: fix(acceptance-test): handle http client concurrency by @moogacs in https://github.com/weaviate/weaviate/pull/12182
- backport: fix(memberlist): retry on join with deadline by @moogacs in https://github.com/weaviate/weaviate/pull/12183
- chore(rplc-mvmnt): remove
consumer.syncfrom happy path due to redundancy by @tsmith023 in https://github.com/weaviate/weaviate/pull/12179 - perf(search): eliminate per-call allocations in SelectProperties lookups by @etiennedi in https://github.com/weaviate/weaviate/pull/12134
- perf(internode): exact-size single-alloc marshalling for fan-out payloads (slice 1/3) by @etiennedi in https://github.com/weaviate/weaviate/pull/12135
- fix(test): widen flaky RansomNote aggregate count assertion by @etiennedi in https://github.com/weaviate/weaviate/pull/12194
- fix(hnsw): entrypoint repair test flake by @trengrj in https://github.com/weaviate/weaviate/pull/12205
- fix(replica-movement): atomic LWW on change-log replay by @moogacs in https://github.com/weaviate/weaviate/pull/12190
- fix(lsmkv): reclaim deleted docs' property lengths at compaction by @amourao in https://github.com/weaviate/weaviate/pull/12147
- fix(lsmkv): track live-set avgdl at compaction so BM25 scores don't drift with deletes (#311) by @amourao in https://github.com/weaviate/weaviate/pull/12168
- [Reindex Fixes A] fix: atomic tokenization+bucket snapshot per BM25 query (LiveQueries flake) by @etiennedi in https://github.com/weaviate/weaviate/pull/11540
- chore(rplc-mvmnt): add more debug logging to ccl usage by @tsmith023 in https://github.com/weaviate/weaviate/pull/12175
- Namespace suspend scaffolding (errors etc) by @dirkkul in https://github.com/weaviate/weaviate/pull/12204
- fix(rbac): error on unknown command version instead of looping forever during migration by @antas-marcin in https://github.com/weaviate/weaviate/pull/12196
- ci: split unit tests into adapters / non-adapters parts by @antas-marcin in https://github.com/weaviate/weaviate/pull/12185
- fix(db): propagate usage-file removal error in NewShard instead of discarding it by @antas-marcin in https://github.com/weaviate/weaviate/pull/12191
- Expose structured where-filter on the MCP hybrid search tool by @g-despot in https://github.com/weaviate/weaviate/pull/11755
- [Reindex Fixes B] fix: partial-state cleanup deleted live class-level deferred-finalize dirs by @etiennedi in https://github.com/weaviate/weaviate/pull/11982
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.38.4...v1.38.5