-
Notifications
You must be signed in to change notification settings - Fork 9
feat: memory transaction #1299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: memory transaction #1299
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great already.
packages/runner/src/storage/cache.ts
Outdated
| path.slice(0, at).join(".") | ||
| }" in "${address.space}", because target is not an object`, | ||
| ) | ||
| : new NotFound( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should this be a different error type?
or maybe add a field to the error that has an optional path that if the document did exist, it shows what part of the path matched (so the reader can use that as hint from where on the construct things)
Previously 3 subsequent changes could have raced if third change was made after we recieved confirmation for the 1st change but before receiving confirmation for the second one, leading to conflicts. Fix here evicts changes in nursery only if received state equals to local state in nurery closing window for the above race condition.
|
can we link to ticket in linear? |
Current implementation draft of the transaction API.
Summary by cubic
Introduced a new memory transaction API that enables consistent, multi-space read and single-space write operations with commit and abort support.
IStorageManagerV2andIStorageTransactioninterfaces for transactional memory operations.