Releases: weaviate/weaviate
Releases · weaviate/weaviate
Release list
v1.39.4 - HFresh recover orphaned postings through reassign-all Fix
Breaking Changes
none
New Features
none
Fixes
- Repeating startup banner by @g-despot in #12912
- chore(dynamic-shard): convert log to warn instead of info by @moogacs in #12974
- fix(replica): bounds-check read repair, guard group-by objects bucket by @moogacs in #12876
- perf(db): skip the startup shard-size sweep when lazy loading is set explicitly by @moogacs in #12979
- perf(contains-pr11): fold a batched Contains filter across workers by @aliszka in #12901
- fix(reindex): rename a rebuilt index into place only once the schema lists it by @etiennedi in #12949
- fix(raft-cluster): barrier a new leader's FSM before it judges proposes by @moogacs in #12915
- fix(nodes): authz logic on
v1/nodes?output=minimalwhen caller hasverboseperms by @tsmith023 in #12981 - feat: node-level query admission control (P1b) by @etiennedi in #12078
- fix(reindex): enable-rangeable becomes a semantic migration by @etiennedi in #12700
- Add Weaviate license and license switch by @etiennedi in #12796
- Pre-compile regexp for role validation by @dirkkul in #13003
- fix(queue): create chunk files with O_EXCL to prevent same-microsecond name collision by @abdelr in #12880
- fix(backup): missed include wildcards are a no-op for users/roles, an error for classes by @tsmith023 in #13027
- fix(hnsw): preserve isolated nodes during compaction by @asdine in #13033
- fix(hfresh): recover orphaned postings through reassign-all by @asdine in #13035
- fix(lsmkv): remove symlink tracing when listing backup files by @tsmith023 in #13032
- feat(debug): make shard optional for HFresh reassignment by @asdine in #13043
Full Changelog: v1.39.3...v1.39.4
v1.39.3 - Aggregate performance improvements, Modules and GraphQL security Fixes, New generative-meta module
Breaking Changes
none
New Features
none
Fixes
- fix: respect named-vector source_properties when re-vectorizing on update by @g-despot in #11789
- Silence expected recovered-panic noise in async replication scheduler unit tests by @jeroiraz in #12808
- fix(hfresh): decode centroid codes with the right quantizer in split/merge reassignment by @asdine in #12795
- chore(gen-code-from-swagger.sh): add code formatting step by @antas-marcin in #12814
- mcp: refuse GET with 405 and run the streamable server stateless by @g-despot in #12789
- fix(kmeans): compute FitBalanced centers from the balanced membership by @abdelr in #12804
- feat(rest): structured reference selection (returnReferences) by @g-despot in #12424
- Back up collections concurrently through one shared worker pool by @dirkkul in #12790
- Stop holding the collection map lock while counting objects on disk by @dirkkul in #12825
- feat(hfresh): debug endpoint to reassign all vectors in place by @asdine in #12820
- Fix count aggregation over shards, and resolve its routing plan once by @dirkkul in #12791
- RQ4 centered quantization by @trengrj in #12502
- Skip vanished files and directories instead of failing shard usage by @dirkkul in #12832
- Fix shard loaded and unloaded metrics by @dirkkul in #12827
- Cache object count for lazy shards by @dirkkul in #12835
- Add weaviate_shards, a shard count by state and eager or lazy loading by @dirkkul in #12831
- Finish the startup shard warmup after a shard fails to load by @dirkkul in #12837
- feat(generative-meta): add Meta AI generative module by @antas-marcin in #12839
- test(generative-aws): remove Cohere's Command-R models from tests by @antas-marcin in #12841
- Disable background lazy tenant loading for small tenants by @dirkkul in #12834
- fix(lsmkv): give test SegmentGroups a logger to stop slow-read nil panic by @antas-marcin in #12843
- Run every row of the object authorization tables by @dirkkul in #12840
- security(deps): bump golang.org/x/crypto dependency to 0.55.0 by @antas-marcin in #12851
- perf(inverted): cut batched Contains extraction allocations and faster segment-index reads by @aliszka in #12436
- lsmkv, inverted: read a batch of roaring set rows through one batch reader by @aliszka in #12530
- Shut down test indexes so background flush cannot race TempDir cleanup by @jeroiraz in #12858
- inverted: hold the batched Contains keys as a sorted slab by @aliszka in #12614
- lsmkv: read the batched Contains keys from a memtable a window at a time by @aliszka in #12701
- fix(kmeans): replace FitBalanced's post-hoc balancing with in-loop size-constrained assignment by @asdine in #12854
- feat(hfresh): cluster posting splits on full-precision vectors by @asdine in #12863
- Refuse property names that collide with migration directories by @etiennedi in #12873
- perf(hfresh): fetch split vectors through a single bucket view by @asdine in #12875
- fix(reindex): only checkpoint reindex progress once the data is durable by @etiennedi in #12877
- security: bump google gRPC dependencies by @antas-marcin in #12897
- test(cluster): fix snapshot-restore flake racing the cluster-ID commit by @moogacs in #12902
- ci: remove multinode-restart-a reindex pipeline by @antas-marcin in #12895
- fix(db): fail queries on a deregistered bucket instead of dereferencing nil by @antas-marcin in #12870
- fix(hfresh): resolve buckets per operation instead of caching them by @antas-marcin in #12887
- Commit replicated puts on object copies to unrace the broadcast marshal by @jeroiraz in #12828
- ci(drop-vector-index): always run drop vector index e2e tests by @antas-marcin in #12910
- fix(reindex): RAFT-numbered directories stop a restart reporting success on an unbuilt index by @etiennedi in #12888
- test(python): pin weaviate-client python dependency to 4.23 version by @antas-marcin in #12908
- perf(asyncrep): prune the scheduler due-count scan via the heap invariant by @jeroiraz in #12929
- fix: nearObject beacon consistency by @trengrj in #12930
- reindex: durable migration record (part 1/2, inert) by @etiennedi in #12847
- perf(lsmkv): read and seek segment indexes without materializing keys by @aliszka in #12856
- perf(asyncrep): reuse per-worker request assembly in root-prefilter clients by @jeroiraz in #12939
- fix(aggregation-pr1): return scan errors rather than partial results or panics by @aliszka in #12883
- hnsw: lock each neighbor before reading its connections in ACORN search by @jfrancoa in #12936
- perf(aggregation-pr2): reuse one object buffer per scan worker by @aliszka in #12899
- perf(aggregation-pr3): scan all objects through one reader per segment by @aliszka in #12911
- perf(aggregation-pr4): take one consistent view for the whole scan by @aliszka in #12913
- perf(aggregation-pr5): read a segment node straight into the caller's buffer by @aliszka in #12914
- perf(aggregation-pr6): let scan workers claim doc IDs one at a time by @aliszka in #12940
- perf(aggregation-pr7): reuse one property map for all objects a scan worker reads by @aliszka in #12941
- perf(inverted): call ctx.Err() directly instead of the ctxExpired helper by @aliszka in #12943
- security(deps): bump golang.org/x/crypto to v0.56.0 by @antas-marcin in #12963
- security: restrict Google module apiEndpoint, region and location to Google API hosts by @antas-marcin in #12961
- backport: stop reading memberlist node fields outside the event callbacks by @jeroiraz in #12947
- perf: cache node host:port resolution behind membership events by @jeroiraz in #12946
Full Changelog: v1.39.2...v1.39.3
v1.38.14 - Aggregate performance improvements, Modules and GraphQL security Fixes
Breaking Changes
none
New Features
none
Fixes
- fix(kmeans): compute FitBalanced centers from the balanced membership by @abdelr in #12804
- feat(rest): structured reference selection (returnReferences) by @g-despot in #12424
- Back up collections concurrently through one shared worker pool by @dirkkul in #12790
- feat(hfresh): debug endpoint to reassign all vectors in place by @asdine in #12820
- test(generative-aws): remove Cohere's Command-R models from tests by @antas-marcin in #12841
- fix(lsmkv): give test SegmentGroups a logger to stop slow-read nil panic by @antas-marcin in #12843
- security(deps): bump golang.org/x/crypto dependency to 0.55.0 by @antas-marcin in #12851
- perf(inverted): cut batched Contains extraction allocations and faster segment-index reads by @aliszka in #12436
- lsmkv, inverted: read a batch of roaring set rows through one batch reader by @aliszka in #12530
- Shut down test indexes so background flush cannot race TempDir cleanup by @jeroiraz in #12858
- inverted: hold the batched Contains keys as a sorted slab by @aliszka in #12614
- lsmkv: read the batched Contains keys from a memtable a window at a time by @aliszka in #12701
- fix(kmeans): replace FitBalanced's post-hoc balancing with in-loop size-constrained assignment by @asdine in #12854
- feat(hfresh): cluster posting splits on full-precision vectors by @asdine in #12863
- perf(hfresh): fetch split vectors through a single bucket view by @asdine in #12875
- security: bump google gRPC dependencies by @antas-marcin in #12897
- test(cluster): fix snapshot-restore flake racing the cluster-ID commit by @moogacs in #12902
- ci: remove multinode-restart-a reindex pipeline by @antas-marcin in #12895
- fix(db): fail queries on a deregistered bucket instead of dereferencing nil by @antas-marcin in #12870
- fix(hfresh): resolve buckets per operation instead of caching them by @antas-marcin in #12887
- test(python): pin weaviate-client python dependency to 4.23 version by @antas-marcin in #12908
- fix: nearObject beacon consistency by @trengrj in #12930
- perf(lsmkv): read and seek segment indexes without materializing keys by @aliszka in #12856
- fix(aggregation-pr1): return scan errors rather than partial results or panics by @aliszka in #12883
- hnsw: lock each neighbor before reading its connections in ACORN search by @jfrancoa in #12936
- perf(aggregation-pr2): reuse one object buffer per scan worker by @aliszka in #12899
- perf(aggregation-pr3): scan all objects through one reader per segment by @aliszka in #12911
- perf(aggregation-pr4): take one consistent view for the whole scan by @aliszka in #12913
- perf(aggregation-pr5): read a segment node straight into the caller's buffer by @aliszka in #12914
- perf(aggregation-pr6): let scan workers claim doc IDs one at a time by @aliszka in #12940
- perf(aggregation-pr7): reuse one property map for all objects a scan worker reads by @aliszka in #12941
- perf(inverted): call ctx.Err() directly instead of the ctxExpired helper by @aliszka in #12943
- security(deps): bump golang.org/x/crypto to v0.56.0 by @antas-marcin in #12963
- security: restrict Google module apiEndpoint, region and location to Google API hosts by @antas-marcin in #12961
Full Changelog: v1.38.13...v1.38.14
v1.37.16 - Modules and GraphQL security Fixes
Breaking Changes
none
New Features
none
Fixes
- fix(kmeans): compute FitBalanced centers from the balanced membership by @abdelr in #12804
- feat(hfresh): debug endpoint to reassign all vectors in place by @asdine in #12820
- test(generative-aws): remove Cohere's Command-R models from tests by @antas-marcin in #12841
- security(deps): bump golang.org/x/crypto dependency to 0.55.0 by @antas-marcin in #12851
- fix(kmeans): replace FitBalanced's post-hoc balancing with in-loop size-constrained assignment by @asdine in #12854
- feat(hfresh): cluster posting splits on full-precision vectors by @asdine in #12863
- perf(hfresh): fetch split vectors through a single bucket view by @asdine in #12875
- security: bump google gRPC dependencies by @antas-marcin in #12897
- fix: nearObject beacon consistency by @trengrj in #12930
- hnsw: lock each neighbor before reading its connections in ACORN search by @jfrancoa in #12936
- security(deps): bump golang.org/x/crypto to v0.56.0 by @antas-marcin in #12963
- security: restrict Google module apiEndpoint, region and location to Google API hosts by @antas-marcin in #12961
Full Changelog: v1.37.15...v1.37.16
v1.38.13 - MCP stateless endpoint Fix, New generative-digitalocean module
Breaking Changes
none
New Features
none
Fixes
- feat(generative-digitalocean): add DigitalOcean generative module by @antas-marcin in #12786
- Backport: drain in-flight references before drop tears the shard store down by @jfrancoa in #12797
- security(docker): pin minimum openssl version so cached builds pull CVE fixes by @antas-marcin in #12799
- chore(Dockerfile): remove unnecessary comments by @antas-marcin in #12803
- feat(users): export/import endpoints for db user API-key hashes by @tsmith023 in #12782
- fix: respect named-vector source_properties when re-vectorizing on update by @g-despot in #11789
- Silence expected recovered-panic noise in async replication scheduler unit tests by @jeroiraz in #12808
- fix(hfresh): decode centroid codes with the right quantizer in split/merge reassignment by @asdine in #12795
- chore(gen-code-from-swagger.sh): add code formatting step by @antas-marcin in #12814
- mcp: refuse GET with 405 and run the streamable server stateless by @g-despot in #12789
Full Changelog: v1.38.12...v1.38.13
v1.37.15 - LSM store and HFresh Fixes, New multi2vec-twelvelabs and generative-digitalocean modules
Breaking Changes
none
New Features
none
Fixes
- Remove support for restoring old backup formats by @dirkkul in #12338
- Route shard access through Index.withShardOrRemote by @dirkkul in #12366
- Allocate per-tenant vector cache memory lazily and proportionally to tenant size by @asdine in #12116
- fix(replication): unify the loading-shard readiness check and fix FetchObjects by @moogacs in #12370
- Add retry to module base client by @dirkkul in #12377
- fix(queue): fix data race in TestPartialChunkRecovery by @asdine in #12383
- feat: add support for cross-property AND matching in BM25 search by @amourao in #11929
- test: pin the nearObject anchor in the unlimited vector search tests by @etiennedi in #12376
- chore(deps): bump x/net and x/text in all three modules (CVE-2026-46600, CVE-2026-56852) by @etiennedi in #12371
- fix(grpc): stop truncating UUIDs in id_as_bytes and batch-delete uuid by @etiennedi in #12348
- log: put actionable error text in msg on the boot and exit paths by @etiennedi in #12354
- Reduce HNSW snapshot allocations by @dirkkul in #12387
- fix(lsmkv): require every Bucket to carry a logger by @etiennedi in #12404
- fix disposable_created size label off-by-one by @etiennedi in #12373
- fix(cyclemanager): roll back shouldAbort when ctx expires while callback runs by @etiennedi in #12265
- fix(cyclemanager): roll back abort when ctx expires while callback runs by @aliszka in #12411
- fix(usage): skip collection tick while previous report is still running by @antas-marcin in #12139
- fix(hnsw): cancel and drain the cache prefill before teardown by @moogacs in #12408
- flat: fix 'quantizer not initialized' search error during RQ lazy initialization by @asdine in #12419
- perf(hnsw): parallelize Muvera late-interaction rescoring by @etiennedi in #10536
- Don't hold the DB index lock across a verbose node-status scan by @dirkkul in #12375
- Reduce allocations in tenant activity tracking by @dirkkul in #12425
- Don't allocate a mutex on every key-locker call by @dirkkul in #12430
- feat(multi2vec-twelvelabs): add TwelveLabs Marengo multimodal vectorizer by @antas-marcin in #12431
- perf(bm25): parallelize block term creation across properties by @amourao in #12020
- perf(hnsw): slab-allocate visited sparse-set segments by @abdelr in #12374
- feat(hnsw): respect per-query concurrency budget in compressed rescore by @asdine in #12421
- Fix usage module with named vectors where one is a prefix of another by @dirkkul in #12428
- fix(panics): handle ECONNRESET errors in handlePanics function by @amourao in #12449
- fix: handle context cancellation in cursor operations to prevent incorrect nil returns by @amourao in #12448
- Remove tmp files in compaction/cleanup on failure by @dirkkul in #12452
- async replication: resolve replicas locally, never implicitly activate a tenant by @jeroiraz in #12256
- docs(backup): mark the non-hardlink backup fallback as deprecated (removed in v1.40) by @etiennedi in #12469
- fix: return the gRPC query profile when a query matches no objects by @etiennedi in #12381
- fix(tools): adapt qa_pr.sh log fetch to gh >= 2.97 escape-sequence guard by @antas-marcin in #12462
- fix(dynamic): clean up partial HNSW commit log on aborted flat->HNSW upgrade (v1.37) by @asdine in #12420
- perf(hfresh): parallelize rescoring with budget-aware workers by @asdine in #12487
- perf(hfresh): read rescore vectors through one bucket view with pooled buffers by @asdine in #12490
- fix(schema): return explicit bm25 b/k1 values of 0 in schema responses by @amourao in #12489
- Remove TestReadSnapshotBufferAllocation which was flaky by @dirkkul in #12493
- perf(hfresh): warm the version map in the background at startup by @asdine in #12504
- fix(async-repl): backport #12079 and #12127 to stable/v1.37 by @jfrancoa in #12547
- perf(lsmkv): targeted replace scan with newest-wins visibility by @amourao in #12396
- perf(lsmkv): read targeted-scan ranges straight from the file by @amourao in #12592
- Fixes bugs segment group tmp file recovery by @dirkkul in #12458
- fix(hfresh): hold the posting lock during version map warmup by @asdine in #12612
- fix(cache): count occupied slots, and add PreloadIfAbsent by @amourao in #12593
- fix(storobj): bound vector reads by their declared segment by @amourao in #12594
- fix(tools): don't let SIGPIPE break the gh escape-sequence feature check by @antas-marcin in #12625
- test(usage): wait for storage to settle instead of relaxing the assertions by @antas-marcin in #12635
- fix(modules): don't panic when a batch has objects with no vectorizable properties by @antas-marcin in #12617
- Add MUVERA specific usage calculations by @trengrj in #12294
- fix(runtime-config): register disable_dimension_metrics as a runtime override by @amourao in #12733
- fix(hnsw): restore cache reads for uncompressed non-MUVERA late-interaction rescore by @trengrj in #12731
- fix(lsmkv): write WAL tombstone pair before publishing inverted doc tombstone by @amourao in #12741
- Fix all linter issues coming form golangci-list v2.13.1 by @dirkkul in #12752
- ci: upgrade modules light and modules api runners to ubicloud-standard-4 by @antas-marcin in #12776
- fix(aggregator): merge remote shard aggregations after JSON round trip (mean/median/mode panic on multi-node) by @amourao in #12746
- feat(generative-digitalocean): add DigitalOcean generative module by @antas-marcin in #12786
- security(docker): pin minimum openssl version so cached builds pull CVE fixes by @antas-marcin in #12799
- chore(Dockerfile): remove unnecessary comments by @antas-marcin in #12803
- fix: respect named-vector source_properties when re-vectorizing on update by @g-despot in #11789
- fix(hfresh): decode centroid codes with the right quantizer in split/merge reassignment by @asdine in #12795
- chore(gen-code-from-swagger.sh): add code formatting step by @antas-marcin in #12814
Full Changelog: v1.37.14...v1.37.15
v1.39.2 - DB user API-key export/import, generative-digitalocean module, async replication & shard lifecycle fixes
Breaking Changes
none
New Features
none
Fixes
- ci: upgrade modules light and modules api runners to ubicloud-standard-4 by @antas-marcin in #12776
- Make the resource scanner's shard status check-and-set atomic by @dirkkul in #12703
- fix(aggregator): merge remote shard aggregations after JSON round trip (mean/median/mode panic on multi-node) by @amourao in #12746
- Keep a per-namespace collection count and report it as a metric by @dirkkul in #12772
- perf(async-replication): batch root pre-filter across classes per target node by @jeroiraz in #12765
- Put both cron jobs on one shared registration helper by @dirkkul in #12758
- feat(generative-digitalocean): add DigitalOcean generative module by @antas-marcin in #12786
- Backport: drain in-flight references before drop tears the shard store down by @jfrancoa in #12797
- security(docker): pin minimum openssl version so cached builds pull CVE fixes by @antas-marcin in #12799
- Stop retrying a shard unload once its collection is closing by @dirkkul in #12779
- chore(Dockerfile): remove unnecessary comments by @antas-marcin in #12803
- feat(users): export/import endpoints for db user API-key hashes by @tsmith023 in #12782
Full Changelog: v1.39.1...v1.39.2
v1.38.12 - Async replication performance, multi-node aggregation & backup fixes
Breaking Changes
none
New Features
none
Fixes
- fix(runtime-config): register disable_dimension_metrics as a runtime override by @amourao in #12733
- fix(hnsw): restore cache reads for uncompressed non-MUVERA late-interaction rescore by @trengrj in #12731
- fix(lsmkv): write WAL tombstone pair before publishing inverted doc tombstone by @amourao in #12741
- Resource scan: Dont load lazy shards and set newly loaded shards to ReadOnly too by @dirkkul in #12674
- Fix all linter issues coming form golangci-list v2.13.1 by @dirkkul in #12752
- perf(router): avoid full shard-list copy on single-shard routing plans by @jeroiraz in #12762
- perf(replication): cap zstd encoder concurrency and window in shared encoders by @jeroiraz in #12761
- perf(async-replication): gate hashbeat debug logging behind level check by @jeroiraz in #12760
- perf(async-replication): size prefilter chunk map by input, release dispatch buckets every pass by @jeroiraz in #12759
- Backup index.db from inactive dynamic tenants by @dirkkul in #12724
- fix(batch):
BatchStreamresult attribution, goroutine leaks, and shutdown races by @tsmith023 in #12627 - fix(restore): route backup restore of RBAC roles and dynamic users through RAFT by @tsmith023 in #12660
- ci: upgrade modules light and modules api runners to ubicloud-standard-4 by @antas-marcin in #12776
- Make the resource scanner's shard status check-and-set atomic by @dirkkul in #12703
- fix(aggregator): merge remote shard aggregations after JSON round trip (mean/median/mode panic on multi-node) by @amourao in #12746
- Keep a per-namespace collection count and report it as a metric by @dirkkul in #12772
- perf(async-replication): batch root pre-filter across classes per target node by @jeroiraz in #12765
Full Changelog: v1.38.11...v1.38.12
v1.39.1 - Search REST endpoints, async replication & LSM performance, Backup, Geo & Usage module fixes
Breaking Changes
none
New Features
none
Fixes
- async replication: resolve replicas locally, never implicitly activate a tenant by @jeroiraz in #12256
- Refresh the memory monitor while shards are read-only by @dirkkul in #12468
- docs(backup): mark the non-hardlink backup fallback as deprecated (removed in v1.40) by @etiennedi in #12469
- fix: return the gRPC query profile when a query matches no objects by @etiennedi in #12381
- Use direct map acces for shard movement teardown by @dirkkul in #12467
- fix(tools): adapt qa_pr.sh log fetch to gh >= 2.97 escape-sequence guard by @antas-marcin in #12462
- fix(async-repl): stop worker-pool grow path leaking goroutines by @jeroiraz in #12107
- fix(async-repl): restore shard after a failed tenant freeze by @jeroiraz in #12108
- test(replication): wait for shard readiness after restart across read_repair suite by @jeroiraz in #12466
- Remove the unused shardReindexerV3 scheduler by @etiennedi in #12478
- fix(dynamic): clean up partial HNSW commit log on aborted flat->HNSW upgrade (v1.37) by @asdine in #12420
- Pool zstd encoders in backups by @dirkkul in #12477
- Backups: never store a partially written chunk by @dirkkul in #12463
- perf(hfresh): parallelize rescoring with budget-aware workers by @asdine in #12487
- perf(hfresh): read rescore vectors through one bucket view with pooled buffers by @asdine in #12490
- fix(schema): return explicit bm25 b/k1 values of 0 in schema responses by @amourao in #12489
- hotfix: RUNTIME_REINDEX_ENABLED kill switch (off by default) by @etiennedi in #12491
- lsmkv: stop CheckExpectedStrategy from heap-allocating its variadic slice by @dirkkul in #12494
- feat(drop-vector-index): resume interrupted strips from the recorded pending set by @antas-marcin in #12442
- Remove TestReadSnapshotBufferAllocation which was flaky by @dirkkul in #12493
- perf(async-repl): size hashbeat digest buffers by set count, not leaf count by @jeroiraz in #12481
- Read the dimensions bucket once per usage sweep by @dirkkul in #12503
- perf(hfresh): warm the version map in the background at startup by @asdine in #12504
- Report the tenant's pre-freeze status on an aborted freeze by @dirkkul in #12508
- Unmarshal namespace snapshot outside of lock by @dirkkul in #12506
- Size the roaringsetrange pread read buffer from the segment payload by @dirkkul in #12499
- fix(modules): skip vectorizing named vectors whose index is mid-drop by @jfrancoa in #12498
- feat(backups): introduce
includeRolesto backup/restore process by @tsmith023 in #12322 - fix flaky teardown in async replication acceptance suites by @jeroiraz in #12520
- Backup-gcs: add opt-in gRPC transport by @dirkkul in #12447
- fix(batch): report one error per object when a shard refuses a batch by @g-despot in #12519
- fix(db): move
st.trackDBLoadProgressinsidest.reloadDBFromSchemaby @tsmith023 in #12524 - fix(async-repl): backport #12079 and #12127 to stable/v1.37 by @jfrancoa in #12547
- Namespaces: Gate tenant actions by @dirkkul in #12513
- Testcontainer endpoint + docstring fixes by @dirkkul in #12540
- Namespaces: Add plumbing for namespace exister by @dirkkul in #12541
- Keep the geo vector cache across deletion cycles by @dirkkul in #12557
- Fix non-compiling test by @dirkkul in #12562
- fix(grpc): don't dereference nil target combination in parseNearVec by @tsmith023 in #12567
- fix(backup): serve a failed backup's reason from the participant status by @etiennedi in #12548
- Keep error type through the objects manager by @dirkkul in #12510
- Read only the geo property when resolving a coordinate by @dirkkul in #12564
- fix(async-repl): surface root-prefilter skips in asyncReplicationStatus by @jeroiraz in #12566
- perf(lsmkv): targeted replace scan with newest-wins visibility by @amourao in #12396
- Keep the parked pread buffer on sequential replace cursor scans by @jeroiraz in #12571
- Complete updateIndexTenants when one tenant fails by @dirkkul in #12507
- Drop per-cycle allocations from the idle compaction path by @dirkkul in #12561
- perf(lsmkv): read targeted-scan ranges straight from the file by @amourao in #12592
- Parse replace nodes without allocating by @dirkkul in #12558
- Fixes bugs segment group tmp file recovery by @dirkkul in #12458
- Include GEO HNSW index in backups by @dirkkul in #12584
- Pin replacement replicas to a namespace's home node by @dirkkul in #12554
- Treat a non-positive vector cache maxSize as unbounded by @dirkkul in #12586
- fix(hfresh): hold the posting lock during version map warmup by @asdine in #12612
- fix(cache): count occupied slots, and add PreloadIfAbsent by @amourao in #12593
- Concurrently prefill geo caches using exinsg prefiller by @dirkkul in #12583
- fix(dtm): treat an unrecognized task status as in-flight by @etiennedi in #12549
- fix(storobj): bound vector reads by their declared segment by @amourao in #12594
- Fix Geo property bugs by @dirkkul in #12616
- feat(rest): bm25 keyword search endpoint (REST Search API 1/4) by @g-despot in #12245
- feat(rest): hybrid search endpoint (REST Search API 2/4) by @g-despot in #12246
- feat(rest): near-object search endpoint (REST Search API 3/4) by @g-despot in #12248
- feat(rest): aggregate counts endpoint (REST Search API 4/4) by @g-despot in #12249
- fix(tools): don't let SIGPIPE break the gh escape-sequence feature check by @antas-marcin in #12625
- Hybrid Aggregation: Apply the filter to the BM25 search by @dirkkul in #12622
- Wait for the local schema before writes that resolve an index by name by @dirkkul in #12587
- feat(auto-schema): create a "default" named vector instead of a legacy one by @antas-marcin in #12620
- Fix three crashes and data corruptions in cluster state handling by @dirkkul in #12626
- fix(lsmkv): remove the partial segment a failed edit-op rewrite leaves behind by @antas-marcin in #12633
- test(usage): wait for storage to settle instead of relaxing the assertions by @antas-marcin in #12635
- fix(async-repl): never publish or load a stale hashtree snapshot by @jeroiraz in #12195
- fix(modules): don't panic when a batch has objects with no vectorizable properties by @antas-marcin in #12617
- fix(schema): reject invalid async replication config before RAFT commit by @jeroiraz in #12261
- Report every shard failure during index reconcile by @dirkkul in #12639
- test(drop-vector-index): retry the write after a leader kill instead of failing on the rejoin blip by @antas-marcin in #12678
- fix(db): stop the reindex cleanup sweep from hydrating every unhydrated tenant shard by @etiennedi in #12551
- fix(hybrid): fetch Boost.Depth-deep candidates in hybrid sub-searches by @hamodywe in #12537
- fix(usage): skip dropped named vectors when computing cold shard usage by @antas-mar...
v1.38.11 - Async replication Fixes
Breaking Changes
none
New Features
none
Fixes
- perf(lsmkv): bound digest-RPC memtable snapshots to the requested key range by @jeroiraz in #12665
- [v1.38] fix(hnsw): drain commit-log maintenance before locking in Drop() (#12100) by @jfrancoa in #12699
- Add MUVERA specific usage calculations by @trengrj in #12294
- Align returns for HOT and COLD tenants from usage module by @dirkkul in #12712
- perf(async-repl): negotiate binary digest encoding on the gRPC HashTreeLevel RPC by @jeroiraz in #12666
- feat(rplc-mvmnt): add automated cleanup of stale replica movement operations by @tsmith023 in #12426
- perf(async-repl): carry byte-ID digests end-to-end on the compare pipeline by @jeroiraz in #12710
Full Changelog: v1.38.10...v1.38.11