Skip to content

New VQueueId#4565

Draft
AhmedSoliman wants to merge 11 commits intomainfrom
pr4565
Draft

New VQueueId#4565
AhmedSoliman wants to merge 11 commits intomainfrom
pr4565

Conversation

Introduces InternedReString, a wrapper around ReString that deduplicates
long strings via a per-thread HashSet. Strings longer than size_of::<String>()
are stored as Arc<str> and looked up on construction and during deserialization
(serde and bilrost), so repeated values share a single heap allocation.

Short strings are stored inline and bypass the interner entirely.

The bilrost decode path is optimized with a fast path for contiguous buffers:
when chunk() covers the full string, we read directly as &str and query the
interner without allocating a temporary buffer.
A macro utility for efficiently formatting a restring which may optimize out the heap allocation if the string can be inlined (<= 24 bytes)
ServiceName uses the new `InternedReString` for thread-local checked interning when it makes sense.

LockName will be used for representing the new service locking mechanism for vqueues that will be introduced in the next commit(s).
- Allows key prefixes and (get) operations no partition store to be encoded without the extra clone into the builder (via the new builder_ref() type).
- Allows table key designers to use Option<T> by implementing their own KeyEncode trait with their own semantic of what "None" means.
@AhmedSoliman AhmedSoliman force-pushed the pr4565 branch 2 times, most recently from 62dbe36 to 4975f44 Compare April 5, 2026 12:17
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