refactor!: read-write separation and merge rocksdb instance#1338
Merged
refactor!: read-write separation and merge rocksdb instance#1338
Conversation
084580c to
abbb23d
Compare
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as outdated.
This comment was marked as outdated.
6d8fd32 to
c6e57ce
Compare
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as outdated.
This comment was marked as outdated.
chaoticlonghair
previously approved these changes
Aug 22, 2023
driftluo
previously approved these changes
Aug 22, 2023
This comment was marked as off-topic.
This comment was marked as off-topic.
CI tests run on commit:
CI test list:
Please check ci test results later. |
chaoticlonghair
approved these changes
Aug 22, 2023
driftluo
approved these changes
Aug 22, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it?
This PR contains two part:
The part 1 is the precondition of part 2.
Read-write separation
Storagetrait intoReadOnlyStorageandStorage. TheReadOnlyStoragecontains all theget*methods and theStoragetrait inherit theReadOnlyStoragetrait.ExecutorAdaptortrait intoReadOnlyExecutorAdaptorandExecutorAdaptor. The difference is that theExecutorAdaptorrequires theApplyBackendtrait.consensusmodule and executor module useStorageandAPImodule andmempoolmodule useReadOnlyStorageconsensusmodule useExecutorAdaptorandAPImodule,interoperationmodule andmempoolmodule useReadOnlyExecutorAdaptorMerge RocksDB instance
This PR abstracts the adapter module in the
core/storagecrate into a new standalone crate namedcore/db. The new crate contains memory DB and RocksDB wrapper functionalities. Bothcore/storageandcore/executornow directly depend oncore/db, which is a change from the previous setup. The formerstate_db,metadata_db, andheader_cell_dbare now represented asc8,c9, andc10column families within the main RocksDB instance. This restructuring enhances modularity and efficiency in managing database components.What is the impact of this PR?
The previous data folder layout:
The current data folder layout:
Special notes for your reviewer
Because of this PR change so many files, review it commit by commit.
Which issue(s) this PR fixes:
CI Settings
CI Usage
Tip: Check the CI you want to run below, and then comment
/run-ci.CI Switch