Commit Graph

5 Commits

Author SHA1 Message Date
Ivan Boldyrev
56799122b0 Split SegmentEntry into appendable and non-appendable part (#8047)
* Split `SegmentEntry`

Add `ImmutableSegmentEntry` for operations that can be applied to
immutable segments, and make the `SegmentEntry` as it subtrait.

* Rename to `NonAppendableSegmentEntry`

It differs semantically from `ImmutableSegmentEntry` by allowing point
deletion.  Move point deletion to the trait too.

* Fix docstring

* use NonAppendableSegmentEntry where possible

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2026-02-05 15:46:58 +01:00
Andrey Vasnetsov
8dd915c0b1 non appendable proxies (#7345)
* WIP: make proxy segment non-appendable

* make deleted points and index changes private to Proxy Segment

* consistently remove empty unused segment from holder on unproxifying and the end of optimization

* remove/fix obsolete test

* Fix comment, some general adjustments

* Also don't remove non-original segments

* Use ahash for map of proxy index changes

* Inline format arguments

* Simplify has point branching

* Assert that proxy flushes to latest wrapped segment version

* make vector deletetion a CoW operation

* relax debug assertions

* Update lib/shard/src/proxy_segment/mod.rs

* fix test_partial_snapshot_empty

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Tim Visée <tim+github@visee.me>
2025-10-08 00:19:41 +02:00
Arnaud Gourlay
60de32949e Chain nested locks for proxy segments (#7196)
* Chain nested locks for proxy segments

* Remove get_cloned function on locked segment

---------

Co-authored-by: timvisee <tim@visee.me>
2025-09-02 12:54:12 +02:00
Tim Visée
bb51da71ea Use locked segment by reference without cloning Arc (#7176)
* Use locked segment by reference without cloning Arc

* Remove unnecessary clone

* Return list of lock references
2025-08-29 13:26:51 +02:00
Roman Titov
60e0c07b0a Move ProxySegment from collection into shard crate (#7093) 2025-08-19 14:01:43 +02:00