Skip to content

Remove PartialEq requirement from Actions#4558

Open
AhmedSoliman wants to merge 5 commits intomainfrom
pr4558
Open

Remove PartialEq requirement from Actions#4558
AhmedSoliman wants to merge 5 commits intomainfrom
pr4558

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

github-actions bot commented Apr 3, 2026

Test Results

  7 files   -  1    7 suites   - 1   2m 40s ⏱️ - 1m 3s
 47 tests  -  6   47 ✅  -  6  0 💤 ±0  0 ❌ ±0 
200 runs   - 33  200 ✅  - 33  0 💤 ±0  0 ❌ ±0 

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

This pull request removes 6 tests.
dev.restate.sdktesting.tests.Combinators ‑ awakeableOrTimeoutUsingAwaitAny(Client)
dev.restate.sdktesting.tests.Combinators ‑ firstSuccessfulCompletedAwakeable(Client)
dev.restate.sdktesting.tests.UserErrors ‑ failSeveralTimesWithMetadata(URI)
dev.restate.sdktesting.tests.UserErrors ‑ internalCallFailurePropagationWithMetadata(URI)
dev.restate.sdktesting.tests.UserErrors ‑ invokeTerminallyFailingCallWithMetadata(URI)
dev.restate.sdktesting.tests.UserErrors ‑ sideEffectWithTerminalErrorWithMetadata(URI)

♻️ 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