diff --git a/Cargo.lock b/Cargo.lock index b3907122..0360e683 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -305,7 +305,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1826f2e4cfc2cd19ee53c42fbf68e2f81ec21108e0b7ecf6a71cf062137360fc" dependencies = [ - "bindgen 0.72.1", + "bindgen", "cc", "cmake", "dunce", @@ -466,24 +466,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn", -] - [[package]] name = "bindgen" version = "0.72.1" @@ -3868,10 +3850,10 @@ dependencies = [ [[package]] name = "rust-librocksdb-sys" -version = "0.37.0+10.2.1" -source = "git+https://github.com/matrix-construct/rust-rocksdb?rev=225a42519276e502205bdc845cebdb22d70ee245#225a42519276e502205bdc845cebdb22d70ee245" +version = "0.40.0+10.7.5" +source = "git+https://github.com/matrix-construct/rust-rocksdb?rev=f111d191918372e3178a3662f5e4b210c0ce2505#f111d191918372e3178a3662f5e4b210c0ce2505" dependencies = [ - "bindgen 0.71.1", + "bindgen", "bzip2-sys", "cc", "glob", @@ -3885,11 +3867,13 @@ dependencies = [ [[package]] name = "rust-rocksdb" -version = "0.41.0" -source = "git+https://github.com/matrix-construct/rust-rocksdb?rev=225a42519276e502205bdc845cebdb22d70ee245#225a42519276e502205bdc845cebdb22d70ee245" +version = "0.44.2" +source = "git+https://github.com/matrix-construct/rust-rocksdb?rev=f111d191918372e3178a3662f5e4b210c0ce2505#f111d191918372e3178a3662f5e4b210c0ce2505" dependencies = [ "libc", + "parking_lot", "rust-librocksdb-sys", + "serde", ] [[package]] @@ -6153,7 +6137,7 @@ version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ - "bindgen 0.72.1", + "bindgen", "cc", "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index c4e64963..a1c42c14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -368,14 +368,16 @@ default-features = false [workspace.dependencies.rust-rocksdb] git = "https://github.com/matrix-construct/rust-rocksdb" -rev = "225a42519276e502205bdc845cebdb22d70ee245" +rev = "f111d191918372e3178a3662f5e4b210c0ce2505" default-features = false features = [ "bzip2", + "lto", "lz4", "multi-threaded-cf", - "mt_static", + "serde1", "zstd", + "zstd-static-linking-only", ] [workspace.dependencies.sanitize-filename] diff --git a/docker/bake.hcl b/docker/bake.hcl index 36ce080c..cacb55fe 100644 --- a/docker/bake.hcl +++ b/docker/bake.hcl @@ -1420,7 +1420,7 @@ target "deps-base" { join(" ", static_rustflags), join(" ", static_nightly_rustflags), join(" ", native_rustflags), - "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME + "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/15", #FIXME contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? "-C link-arg=-l:libbz2.a": "", contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? @@ -1442,7 +1442,7 @@ target "deps-base" { join(" ", static_nightly_rustflags), sys_target_triple(sys_target) == "x86_64-linux-gnu"? "-C target-cpu=${sys_target_isa(sys_target)}": "", - "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME + "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/15", #FIXME contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? "-C link-arg=-l:libbz2.a": "", contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? @@ -1462,7 +1462,7 @@ target "deps-base" { join(" ", static_rustflags), sys_target_triple(sys_target) == "x86_64-linux-gnu"? "-C target-cpu=${sys_target_isa(sys_target)}": "", - "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME + "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/15", #FIXME contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? "-C link-arg=-l:libbz2.a": "", contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? @@ -1482,7 +1482,7 @@ target "deps-base" { join(" ", static_rustflags), sys_target_triple(sys_target) == "x86_64-linux-gnu"? "-C target-cpu=${sys_target_isa(sys_target)}": "", - "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/14", #FIXME + "-C link-arg=-L/usr/lib/gcc/${sys_target_triple(sys_target)}/15", #FIXME contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? "-C link-arg=-l:libbz2.a": "", contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? @@ -1815,6 +1815,7 @@ kitchen_packages = [ "gzip", "jq", "libc6-dev", + "libclang-dev", "libnuma-dev", "libssl-dev", "libsqlite3-dev", diff --git a/flake.lock b/flake.lock index 6b8347da..ed6a9957 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1761150191, - "narHash": "sha256-fPQmV+K836jR/Tu6slfMdm9HL3p0IEPB5x5I7Zc6v5E=", + "lastModified": 1763236786, + "narHash": "sha256-JB19RGXDr6loKSdqwvA15jhRHwf6+9Crq2glqqVar84=", "owner": "cachix", "repo": "cachix", - "rev": "5629a7d84c91df9c06650b18eb428cce4166c4fc", + "rev": "938a275857047c300596092beaabaee6d892e243", "type": "github" }, "original": { @@ -85,11 +85,11 @@ "complement": { "flake": false, "locked": { - "lastModified": 1756358878, - "narHash": "sha256-H/4TkbFcGsMRDZ7gNaXZ7NxeO3b1YgkVt9zPb+3ATSg=", + "lastModified": 1761739261, + "narHash": "sha256-XdzSBbJIYG6thrHbo44/qBiMu5R4bayfy/dlWo9AXBA=", "owner": "matrix-construct", "repo": "complement", - "rev": "403840348f6bcc9cc8ed1671dc2f638c2b1ce4ac", + "rev": "350d7666cab14cb0051ef53da7a1b0b3216d7269", "type": "github" }, "original": { @@ -116,11 +116,11 @@ }, "crane_2": { "locked": { - "lastModified": 1760924934, - "narHash": "sha256-tuuqY5aU7cUkR71sO2TraVKK2boYrdW3gCSXUkF4i44=", + "lastModified": 1763511871, + "narHash": "sha256-KKZWi+ij7oT0Ag8yC6MQkzfHGcytyjMJDD+47ZV1YNU=", "owner": "ipetkov", "repo": "crane", - "rev": "c6b4d5308293d0d04fcfeee92705017537cad02f", + "rev": "099f9014bc8d0cd6e445470ea1df0fd691d5a548", "type": "github" }, "original": { @@ -170,11 +170,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1761547629, - "narHash": "sha256-4OH1CVm2PdjKRqEJ3RLfkQMDSBdn7VId6iyYCwKOK+U=", + "lastModified": 1763707297, + "narHash": "sha256-Bd9VGavwFBLpyU4pjiWfv73gUibNj8dc3xmOW8ff3bI=", "owner": "nix-community", "repo": "fenix", - "rev": "d82a7c64ea441e397914577c9a18f2867e5b364b", + "rev": "7c2d3a165a4a080fdcb6c191d8f9768281c99f75", "type": "github" }, "original": { @@ -219,11 +219,11 @@ "flake-compat_3": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -346,11 +346,11 @@ "liburing": { "flake": false, "locked": { - "lastModified": 1761487364, - "narHash": "sha256-PmRdt9dQUFGcVrX7XCh7z2FpRm1SqKgiYbIwpkJPjRU=", + "lastModified": 1763758538, + "narHash": "sha256-cDsxLOqeC7imBcArolTHvejSnWoadgpvDy1DJ2/3MOw=", "owner": "axboe", "repo": "liburing", - "rev": "65ec4223032a38870dde2bce646ba4de13d2feff", + "rev": "e1ef1e680ee38ed9116989155fca47921698c25f", "type": "github" }, "original": { @@ -493,11 +493,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1761349956, - "narHash": "sha256-tH3wHnOJms+U4k/rK2Nn1RfBrhffX92jLP/2VndSn0w=", + "lastModified": 1763618868, + "narHash": "sha256-v5afmLjn/uyD9EQuPBn7nZuaZVV9r+JerayK/4wvdWA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "02f2cb8e0feb4596d20cc52fda73ccee960e3538", + "rev": "a8d610af3f1a5fb71e23e08434d8d61a466fc942", "type": "github" }, "original": { @@ -510,11 +510,11 @@ "rocksdb": { "flake": false, "locked": { - "lastModified": 1749358049, - "narHash": "sha256-ZSjvAZBfZkJrBIpw8ANZMbJVb8AeuogvuAipGVE4Qe4=", + "lastModified": 1763593074, + "narHash": "sha256-aOV/jJjRjNJ3hrRqhCsXlIz05NvEhDF/j5Q5UOQuvp8=", "owner": "matrix-construct", "repo": "rocksdb", - "rev": "cf7f65d0b377af019661c240f9165b3ef60640c3", + "rev": "9a3a213b55df0b11408102c899a940675c0d90e4", "type": "github" }, "original": { @@ -542,11 +542,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1761500479, - "narHash": "sha256-syeBTCCU96qPJHcVpwHeCwmPCiLTDHHgYQYhpZ0iwLo=", + "lastModified": 1763648203, + "narHash": "sha256-/WJdebbRD+m5vr2xy/bJdCpqd7YHSMapjuXAM/0lvtA=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "049767e6faa84b2d1a951d8f227e6ebd99d728a2", + "rev": "eaaa2da9fbbfd7a79ff501e0563351cb2004574a", "type": "github" }, "original": { diff --git a/src/database/engine/db_opts.rs b/src/database/engine/db_opts.rs index 9c0c788f..f067bf03 100644 --- a/src/database/engine/db_opts.rs +++ b/src/database/engine/db_opts.rs @@ -37,11 +37,10 @@ pub(crate) fn db_options(config: &Config, env: &Env, row_cache: &Cache) -> Resul opts.set_use_direct_io_for_flush_and_compaction(true); } if config.rocksdb_optimize_for_spinning_disks { - // speeds up opening DB on hard drives - opts.set_skip_checking_sst_file_sizes_on_db_open(true); opts.set_skip_stats_update_on_db_open(true); //opts.set_max_file_opening_threads(threads.try_into().unwrap()); } else { + opts.set_max_file_opening_threads(num_threads(config)?); opts.set_compaction_readahead_size(1024 * 512); } @@ -123,7 +122,7 @@ fn set_logging_defaults(opts: &mut Options, config: &Config) { if config.rocksdb_log_stderr { opts.set_stderr_logger(rocksdb_log_level, "rocksdb"); } else { - opts.set_callback_logger(rocksdb_log_level, &handle_log); + opts.set_callback_logger(rocksdb_log_level, handle_log); } } diff --git a/src/database/map/insert.rs b/src/database/map/insert.rs index 694543e9..3eeb2012 100644 --- a/src/database/map/insert.rs +++ b/src/database/map/insert.rs @@ -51,7 +51,7 @@ where let write_options = &self.write_options; self.engine .db - .write_opt(batch, write_options) + .write_opt(&batch, write_options) .or_else(or_else) .expect("database insert batch error");