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

feat: db state sync by merk chunking #292

Merged
merged 31 commits into from
May 1, 2024

suggestions

b76af60
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

feat: db state sync by merk chunking #292

suggestions
b76af60
Select commit
Loading
Failed to load commit list.
GitHub Actions / clippy succeeded May 1, 2024 in 0s

clippy

21 warnings

Details

Results

Message level Amount
Internal compiler error 0
Error 0
Warning 21
Note 0
Help 0

Versions

  • rustc 1.77.2 (25ef9e3d8 2024-04-09)
  • cargo 1.77.2 (e52e36006 2024-03-26)
  • clippy 0.1.77 (25ef9e3 2024-04-09)

Annotations

Check warning on line 644 in /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/macros/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

unused `std::result::Result` that must be used

warning: unused `std::result::Result` that must be used
  --> grovedb/src/replication.rs:64:13
   |
64 | /             writeln!(
65 | |                 f,
66 | |                 " prefix:{:?} -> path:{:?}\n",
67 | |                 hex::encode(prefix),
68 | |                 metadata_path_str
69 | |             );
   | |_____________^
   |
   = note: this `Result` may be an `Err` variant, which should be handled
   = note: `#[warn(unused_must_use)]` on by default
   = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)

Check warning on line 941 in grovedb/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
   --> grovedb/src/lib.rs:941:10
    |
941 |     ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity

Check warning on line 871 in grovedb/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
   --> grovedb/src/lib.rs:871:10
    |
871 |     ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity

Check warning on line 845 in grovedb/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
   --> grovedb/src/lib.rs:845:10
    |
845 |     ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
    = note: `#[warn(clippy::type_complexity)]` on by default

Check warning on line 268 in grovedb/src/replication.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this expression creates a reference which is immediately dereferenced by the compiler

warning: this expression creates a reference which is immediately dereferenced by the compiler
   --> grovedb/src/replication.rs:268:75
    |
268 | ...                   .open_transactional_merk_at_path(path.into(), &t, None)
    |                                                                     ^^ help: change this to: `t`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
    = note: `#[warn(clippy::needless_borrow)]` on by default

Check warning on line 498 in grovedb/src/operations/proof/generate.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (9/7)

warning: this function has too many arguments (9/7)
   --> grovedb/src/operations/proof/generate.rs:488:5
    |
488 | /     fn generate_and_store_merk_proof<'a, S, B>(
489 | |         &self,
490 | |         path: &SubtreePath<B>,
491 | |         subtree: &'a Merk<S>,
...   |
497 | |         key: &[u8],
498 | |     ) -> CostResult<(Option<u16>, Option<u16>), Error>
    | |______________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 181 in grovedb/src/operations/proof/generate.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/proof/generate.rs:172:5
    |
172 | /     fn prove_subqueries(
173 | |         &self,
174 | |         proofs: &mut Vec<u8>,
175 | |         path: Vec<&[u8]>,
...   |
180 | |         is_verbose: bool,
181 | |     ) -> CostResult<(), Error> {
    | |______________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 558 in grovedb/src/element/query.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (11/7)

warning: this function has too many arguments (11/7)
   --> grovedb/src/element/query.rs:546:5
    |
546 | /     fn query_item(
547 | |         storage: &RocksDbStorage,
548 | |         item: &QueryItem,
549 | |         results: &mut Vec<QueryResultElement>,
...   |
557 | |         add_element_function: fn(PathQueryPushArgs) -> CostResult<(), Error>,
558 | |     ) -> CostResult<(), Error> {
    | |______________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
    = note: `#[warn(clippy::too_many_arguments)]` on by default

Check warning on line 321 in grovedb/src/element/helpers.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this `let...else` may be rewritten with the `?` operator

warning: this `let...else` may be rewritten with the `?` operator
   --> grovedb/src/element/helpers.rs:319:9
    |
319 | /         let Some(value_cost) = self.get_specialized_cost().ok() else {
320 | |             return None;
321 | |         };
    | |__________^ help: replace it with: `let value_cost = self.get_specialized_cost().ok()?;`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark
    = note: `#[warn(clippy::question_mark)]` on by default

Check warning on line 248 in grovedb/src/element/helpers.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

writing `&Vec` instead of `&[_]` involves a new object where a slice will do

warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do
   --> grovedb/src/element/helpers.rs:248:14
    |
248 |         key: &Vec<u8>,
    |              ^^^^^^^^ help: change this to: `&[u8]`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
    = note: `#[warn(clippy::ptr_arg)]` on by default

Check warning on line 12 in grovedb/src/versioning.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

function `read_proof_version` is never used

warning: function `read_proof_version` is never used
  --> grovedb/src/versioning.rs:12:8
   |
12 | pub fn read_proof_version(mut bytes: &[u8]) -> Result<u32, Error> {
   |        ^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

Check warning on line 4 in grovedb/src/replication.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

unused import: `str::Utf8Error`

warning: unused import: `str::Utf8Error`
 --> grovedb/src/replication.rs:4:5
  |
4 |     str::Utf8Error,
  |     ^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

Check warning on line 834 in merk/src/tree/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> merk/src/tree/mod.rs:811:5
    |
811 | /     pub fn put_value_with_reference_value_hash_and_value_cost(
812 | |         mut self,
813 | |         value: Vec<u8>,
814 | |         value_hash: CryptoHash,
...   |
833 | |         >,
834 | |     ) -> CostResult<Self, Error> {
    | |________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 367 in merk/src/tree/walk/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> merk/src/tree/walk/mod.rs:344:5
    |
344 | /     pub fn put_value_with_reference_value_hash_and_value_cost(
345 | |         mut self,
346 | |         value: Vec<u8>,
347 | |         value_hash: CryptoHash,
...   |
366 | |         >,
367 | |     ) -> CostResult<Self, Error> {
    | |________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 728 in merk/src/tree/ops.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (9/7)

warning: this function has too many arguments (9/7)
   --> merk/src/tree/ops.rs:718:5
    |
718 | /     fn recurse<K: AsRef<[u8]>, C, V, U, R>(
719 | |         self,
720 | |         batch: &MerkBatch<K>,
721 | |         mid: usize,
...   |
727 | |         section_removal_bytes: &mut R,
728 | |     ) -> CostResult<(Option<Self>, KeyUpdates), Error>
    | |______________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 33 in merk/src/proofs/chunk.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

module has the same name as its containing module

warning: module has the same name as its containing module
  --> merk/src/proofs/chunk.rs:33:1
   |
33 | pub mod chunk;
   | ^^^^^^^^^^^^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception
   = note: `#[warn(clippy::module_inception)]` on by default

Check warning on line 286 in merk/src/merk/apply.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> merk/src/merk/apply.rs:277:5
    |
277 | /     pub fn apply_unchecked<KB, KA, C, V, U, R>(
278 | |         &mut self,
279 | |         batch: &MerkBatch<KB>,
280 | |         aux: &AuxMerkBatch<KA>,
...   |
285 | |         section_removal_bytes: &mut R,
286 | |     ) -> CostResult<(), Error>
    | |______________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 199 in merk/src/merk/apply.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> merk/src/merk/apply.rs:176:5
    |
176 | /     pub fn apply_with_costs_just_in_time_value_update<KB, KA>(
177 | |         &mut self,
178 | |         batch: &MerkBatch<KB>,
179 | |         aux: &AuxMerkBatch<KA>,
...   |
198 | |         >,
199 | |     ) -> CostResult<(), Error>
    | |______________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
    = note: `#[warn(clippy::too_many_arguments)]` on by default

Check warning on line 374 in merk/src/merk/chunks.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
   --> merk/src/merk/chunks.rs:374:33
    |
374 |     fn next_chunk(&mut self) -> Option<Result<(Vec<Op>, Option<String>), Error>> {
    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
    = note: `#[warn(clippy::type_complexity)]` on by default

Check warning on line 387 in merk/src/merk/restore.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

method `attempt_state_recovery` is never used

warning: method `attempt_state_recovery` is never used
   --> merk/src/merk/restore.rs:387:8
    |
66  | impl<'db, S: StorageContext<'db>> Restorer<S> {
    | --------------------------------------------- method in this implementation
...
387 |     fn attempt_state_recovery(&mut self) -> Result<(), Error> {
    |        ^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

Check warning on line 31 in merk/src/tree/fuzz_tests.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

'test' may be misspelled as 'tests'

warning: 'test' may be misspelled as 'tests'
  --> merk/src/tree/fuzz_tests.rs:31:8
   |
31 | #![cfg(tests)]
   |        ^^^^^ help: did you mean: `test`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#maybe_misused_cfg
   = note: `#[warn(clippy::maybe_misused_cfg)]` on by default