Skip to content

Commit

Permalink
Add shared object version manager (#16790)
Browse files Browse the repository at this point in the history
## Description 

This PR moves all the shared object version calculation logic out to a
separate file.
Previously we would accumulate shared object version assignment one by
one as we process each transaction.
This PR changes it such that we simply process all of them in the end
when we have the list of verified transactions.
This has a few benefits:
1. It simplifies the consensus transaction processing
2. Makes it easier to reason about the version assignment logic
3. Allows better code sharing (this will be needed in the benchmark)
4. A side benefit is that we could also batch assign version for a
vector of effects from checkpoint_executor

## Test Plan 

CI

---
If your changes are not user-facing and do not break anything, you can
skip the following section. Otherwise, please briefly describe what has
changed under the Release Notes section.

### Type of Change (Check all that apply)

- [ ] protocol change
- [ ] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration

### Release notes
  • Loading branch information
lxfind authored Mar 25, 2024
1 parent 87e0004 commit 7786451
Show file tree
Hide file tree
Showing 3 changed files with 278 additions and 210 deletions.
1 change: 1 addition & 0 deletions crates/sui-core/src/authority.rs
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ pub mod authority_store_pruner;
pub mod authority_store_tables;
pub mod authority_store_types;
pub mod epoch_start_configuration;
pub mod shared_object_version_manager;
pub mod test_authority_builder;

pub(crate) mod authority_notify_read;
Expand Down
Loading

0 comments on commit 7786451

Please sign in to comment.