mirror of
https://github.com/qdrant/qdrant.git
synced 2026-08-05 01:20:53 -05:00
* 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>