Skip to content

Adds high-level restate-types Scope, ServiceName, and LockName#4556

Open
AhmedSoliman wants to merge 3 commits intomainfrom
pr4556
Open

Adds high-level restate-types Scope, ServiceName, and LockName#4556
AhmedSoliman wants to merge 3 commits intomainfrom
pr4556

Conversation

@AhmedSoliman
Copy link
Copy Markdown
Contributor

@AhmedSoliman AhmedSoliman commented Apr 3, 2026

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)
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 3, 2026

Test Results

  8 files  ±0    8 suites  ±0   5m 9s ⏱️ + 1m 26s
 53 tests ±0   53 ✅ ±0  0 💤 ±0  0 ❌ ±0 
233 runs  ±0  233 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit da7cae2. ± Comparison against base commit 6725361.

♻️ This comment has been updated with latest results.

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).
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