Files
qdrant/tests
Tim Visée 41c817c2a1 Non-blocking snapshots (#3420)
* Initial non-blocking snapshot implementation

* Minor refactoring

* Add some comments, improve log messages

* Propagate proxy segment changes into wrapped segment when unproxying

* Use upgradable read lock for propagating proxy segment changes

* Extract proxy/unproxy functions for segments, better error handling

* Don't stop early on error, always clean up proxied segments

* Propagate proxy changes in two batches to minimize write locking

* Use upgradable read lock when propagating proxy changes in two batches

* Do not fall back to non-appendable segment configurations

* Resolve remaining TODOs

* Use LockedSegmentHolder type alias everywhere

* Better state handling in method to proxy all segments

* When proxying all segments, lock only after creating temporary segment

* Pass actual proxied segments around to minimize segment holder locking

* Propagate proxy segment changes to wrapped on drop, not to writable

* Minor improvements

* Fix proxy logic returning non-proxied segments

* Share single segment holder lock and upgrade/downgrade it

* Minor improvements

* Make appendable segment check more efficient

* Do not explicitly drop segments lock, it's not necessary

* Add consensus test to assert data consistency while snapshotting

* Fix incorrect documentation

* Extract payload storage type decision logic to collection params function

* Resolve TODO, we always expect to get a shard here

* Only upgrade propagate to wrapped readers if lists are not empty

* Set correct operation versions

* review fixes

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-04-22 10:29:07 +02:00
..
2023-10-06 12:35:23 +02:00