-
Notifications
You must be signed in to change notification settings - Fork 5
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
chore: reorganize storage modules #1880
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
Final benchmark: |
User description
leading to the creation of a trait for
StratusStorage
with multiple implementations, I reorganized how the structure of src/eth/storage modulesPR Type
Enhancement
Description
Changes walkthrough 📝
14 files
rocks_cf.rs
Implement RocksDB Column Family handling
src/eth/storage/permanent/rocks/rocks_cf.rs
cf_versions.rs
Implement Column Family versioning
src/eth/storage/permanent/rocks/cf_versions.rs
inmemory.rs
Implement in-memory temporary storage
src/eth/storage/temporary/inmemory.rs
inmemory.rs
Implement in-memory permanent storage
src/eth/storage/permanent/inmemory.rs
postgres.rs
Refactor PostgresExternalRpc implementation
src/eth/external_rpc/postgres.rs
stratus_storage.rs
Update StratusStorage implementation
src/eth/storage/stratus_storage.rs
evm_input.rs
Update EvmInput to use PointInTime
src/eth/executor/evm_input.rs
block.rs
Implement BlockRocksdb for RocksDB storage
src/eth/storage/permanent/rocks/types/block.rs
rocks_state.rs
Update RocksStorageState to use PointInTime
src/eth/storage/permanent/rocks/rocks_state.rs
StoragePointInTime
mod.rs
Add RocksDB type definitions and tests
src/eth/storage/permanent/rocks/types/mod.rs
executor.rs
Update Executor to use PointInTime
src/eth/executor/executor.rs
transaction_input.rs
Implement TransactionInputRocksdb for RocksDB storage
src/eth/storage/permanent/rocks/types/transaction_input.rs
TransactionInputRocksdb
mod.rs
Refactor ExternalRpc trait and implementations
src/eth/external_rpc/mod.rs
rpc_downloader.rs
Update rpc_downloader to use new ExternalRpc trait
src/bin/rpc_downloader.rs
1 files
rocks_config.rs
Implement RocksDB configuration options
src/eth/storage/permanent/rocks/rocks_config.rs
Default)
22 files
point_in_time.rs
...
src/eth/primitives/point_in_time.rs
...
address.rs
...
src/eth/storage/permanent/rocks/types/address.rs
...
index.rs
...
src/eth/storage/permanent/rocks/types/index.rs
...
unix_time.rs
...
src/eth/storage/permanent/rocks/types/unix_time.rs
...
gas.rs
...
src/eth/storage/permanent/rocks/types/gas.rs
...
size.rs
...
src/eth/storage/permanent/rocks/types/size.rs
...
miner_nonce.rs
...
src/eth/storage/permanent/rocks/types/miner_nonce.rs
...
chain_id.rs
...
src/eth/storage/permanent/rocks/types/chain_id.rs
...
difficulty.rs
...
src/eth/storage/permanent/rocks/types/difficulty.rs
...
hash.rs
...
src/eth/storage/permanent/rocks/types/hash.rs
...
mod.rs
...
src/eth/primitives/mod.rs
...
mod.rs
...
src/eth/storage/permanent/rocks/mod.rs
...
rocks_db.rs
...
src/eth/storage/permanent/rocks/rocks_db.rs
...
mod.rs
...
src/eth/mod.rs
...
rocks_batch_writer.rs
...
src/eth/storage/permanent/rocks/rocks_batch_writer.rs
...
select_external_blocks_and_receipts_in_range.sql
...
src/eth/external_rpc/sql/select_external_blocks_and_receipts_in_range.sql
...
select_external_blocks_in_range.sql
...
src/eth/external_rpc/sql/select_external_blocks_in_range.sql
...
insert_external_block_and_receipts.sql
...
src/eth/external_rpc/sql/insert_external_block_and_receipts.sql
...
insert_external_balance.sql
...
src/eth/external_rpc/sql/insert_external_balance.sql
...
select_max_external_block_in_range.sql
...
src/eth/external_rpc/sql/select_max_external_block_in_range.sql
...
select_external_balances.sql
...
src/eth/external_rpc/sql/select_external_balances.sql
...
select_max_imported_block.sql
...
src/eth/external_rpc/sql/select_max_imported_block.sql
...