diff --git a/rocksdb/main.cpp b/rocksdb/main.cpp index b7f799f..75a0be2 100644 --- a/rocksdb/main.cpp +++ b/rocksdb/main.cpp @@ -111,6 +111,10 @@ int main(int argc, char *argv[]) { rocksdb::ColumnFamilyOptions cfo{}; cfo.enable_blob_files = true; cfo.min_blob_size = args.blob_size; + // rocksdb::BlockBasedTableOptions top{}; + // top.use_delta_encoding = false; + // cfo.table_factory.reset(rocksdb::NewBlockBasedTableFactory(top)); + // use 1GB block cache auto cache = rocksdb::NewLRUCache(1 << 30); rocksdb::BlockBasedTableOptions table_options{}; @@ -250,6 +254,7 @@ int main(int argc, char *argv[]) { delete kv; } } else if (args.mode == "scan") { + // ropt.pin_data = true; auto *iter = db->NewIterator(ropt); iter->Seek(prefix); size_t n = 0; diff --git a/scripts/mace.sh b/scripts/mace.sh index 28f7d91..78b98a0 100755 --- a/scripts/mace.sh +++ b/scripts/mace.sh @@ -2,8 +2,8 @@ if [ "$#" -ne 1 ] then - printf "\033[m$0 path\033[0m\n" - exit 1 + printf "\033[m$0 path\033[0m\n" + exit 1 fi pushd . @@ -13,6 +13,7 @@ cargo build --release 1>/dev/null 2> /dev/null function samples() { export RUST_BACKTRACE=full kv_sz=(16 16 100 1024 1024 1024 16 10240) + mode=(insert get mixed scan) # set -x db_root=$1 @@ -21,30 +22,15 @@ function samples() { do for ((j = 0; j < ${#kv_sz[@]}; j += 2)) do - ./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode insert --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} - if test $? -ne 0 - then - echo "insert threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi - ./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode get --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} - if test $? -ne 0 - then - echo "get threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi - ./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode mixed --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 30 - if test $? -ne 0 - then - echo "mixed threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi - ./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode scan --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 30 - if test $? -ne 0 - then - echo "mixed threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi + for ((k = 0; k < ${#mode[@]}; k += 1)) + do + ./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} + if test $? -ne 0 + then + echo "${mode[k]} threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" + exit 1 + fi + done done done } diff --git a/scripts/rocksdb.sh b/scripts/rocksdb.sh index 7ff6b57..46a3314 100755 --- a/scripts/rocksdb.sh +++ b/scripts/rocksdb.sh @@ -13,6 +13,7 @@ cmake --build --preset release 1>/dev/null 2>/dev/null function samples() { kv_sz=(16 16 100 1024 1024 1024 16 10240) + mode=(insert get mixed scan) # set -x db_root=$1 cnt=100000 @@ -20,30 +21,15 @@ function samples() { do for ((j = 0; j < ${#kv_sz[@]}; j += 2)) do - ./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode insert --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} - if test $? -ne 0 - then - echo "insert threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi - ./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode get --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} - if test $? -ne 0 - then - echo "get threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi - ./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode mixed --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 30 - if test $? -ne 0 - then - echo "mixed threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi - ./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode scan --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 30 - if test $? -ne 0 - then - echo "mixed threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" - exit 1 - fi + for ((k = 0; k < ${#mode[@]}; k += 1)) + do + ./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} + if test $? -ne 0 + then + echo "${mode[k]} threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail" + exit 1 + fi + done done done }