Skip to content
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

Support the Hot Archive in TX apply #4584

Closed
SirTyson opened this issue Dec 18, 2024 · 0 comments · Fixed by #4603
Closed

Support the Hot Archive in TX apply #4584

SirTyson opened this issue Dec 18, 2024 · 0 comments · Fixed by #4603
Assignees
Labels

Comments

@SirTyson
Copy link
Contributor

For protocol 23, we need to check both the live BucketList and the Hot Archive BucketList when checking for Archived keys. We also need to allow the restore operation to restore state from the Archived BucketList.

@SirTyson SirTyson added the bug label Dec 18, 2024
@SirTyson SirTyson self-assigned this Dec 18, 2024
@SirTyson SirTyson mentioned this issue Jan 2, 2025
6 tasks
github-merge-queue bot pushed a commit that referenced this issue Jan 15, 2025
# Description

Resolves #4584

This PR adds support for the Hot Archive to TX apply. Specifically,
`InvokeHostFunctionOp` will check both the live BucketList and Hot
Archive BucketList for archived entries. The `RestoreFootprintOp` can
now restore entries from both the live BucketList and Hot Archive.

Additionally, restore meta has also changed for p23. The
`LEDGER_ENTRY_RESTORED` type has been added for the restore op. When an
entry is restored. both the `LedgerEntry` of the restored data and the
corresponding `TTL` entry are emitted as `LEDGER_ENTRY_RESTORED
LedgerEntryChangeType`. If the entry has not yet been evicted (such that
the entry and it's TTL still exist in the live BucketList), the
preexisting TTL value will be emitted as `LEDGER_ENTRY_STATE`. If the
entry has been evicted such that the TTL value has been previously
deleted, only a single change type of `LEDGER_ENTRY_RESTORED` will be
emitted for the new value. For the data being restored,
`LEDGER_ENTRY_STATE` is never emitted.

Rebased on #4585.

# Checklist
- [x] Reviewed the
[contributing](https://github.com/stellar/stellar-core/blob/master/CONTRIBUTING.md#submitting-changes)
document
- [x] Rebased on top of master (no merge commits)
- [x] Ran `clang-format` v8.0.0 (via `make format` or the Visual Studio
extension)
- [x] Compiles
- [x] Ran all tests
- [ ] If change impacts performance, include supporting evidence per the
[performance
document](https://github.com/stellar/stellar-core/blob/master/performance-eval/performance-eval.md)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant