Skip to content

Take WorkTablesIndex 0.0.9 - #70

Merged
pathscale merged 1 commit into
masterfrom
wti-0.0.9
Sep 1, 2026
Merged

Take WorkTablesIndex 0.0.9#70
pathscale merged 1 commit into
masterfrom
wti-0.0.9

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Middle link of the beta.15 cascade. data_bucket pins WorkTablesIndex exactly, so it has to move before WorkTable can build against a published index.

  1. Remove RandomMultiPair and make (key, value) the only entry identity WorkTablesIndex#13, removes RandomMultiPair
  2. this
  3. Identify multimap entries by (key, value) and drop the discriminator WorkTable#80, WorkTable beta.15

Why 0.0.9

RandomMultiPair::insert scanned every entry already stored under the key, because the value did not participate in the order and a stored entry could not be located by it. O(n) per insert, quadratic to fill one key.

values under one key 0.0.7 0.0.8 0.0.9
1,000 259 ns 21.95 us 877 ns
16,000 416 ns 356.31 us 333 ns

MultiPair is now OrdMultiPair, identified and ordered by its (key, value) pair.

Impact here

None beyond the bump. Nothing in this crate constructs a MultiPair field by field; the From<MultiPair<T, L>> for IndexValue<T> and SizeMeasurable/VariableSizeMeasurable impls are generic over the alias and carry over unchanged.

Tests

69 lib + 2 doc, all passing, built against WorkTablesIndex#13.

0.0.9 removes RandomMultiPair, whose insert scanned every entry sharing the key because
the value did not participate in the order. Filling one key was quadratic: 356 us per
insert at 16,000 values against 333 ns after.

MultiPair is now OrdMultiPair, identified and ordered by its (key, value) pair. Nothing
here constructs a MultiPair field by field, so the From and SizeMeasurable impls carry
over unchanged and this is a dependency bump.

Needed so WorkTable beta.15 can build against a published index: WorkTable depends on
both crates and this one pins the index exactly.
@pathscale
pathscale merged commit c60aeeb into master Sep 1, 2026
1 of 3 checks passed
@pathscale
pathscale deleted the wti-0.0.9 branch September 1, 2026 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant