diff --git a/benchmark_data.md b/benchmark_data.md new file mode 100644 index 0000000..ed39740 --- /dev/null +++ b/benchmark_data.md @@ -0,0 +1,1592 @@ +# db_bench V0 + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sun Jan 5 14:40:05 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 18.288 micros/op; 261.6 MB/s +fillsync : 1467.256 micros/op; 3.3 MB/s (1000 ops) +fillrandom : 180.092 micros/op; 26.6 MB/s +overwrite : 223.800 micros/op; 21.4 MB/s +readrandom : 26.436 micros/op; (864322 of 1000000 found) +readrandom : 17.695 micros/op; (864083 of 1000000 found) +readseq : 0.586 micros/op; 8166.4 MB/s +readreverse : 0.841 micros/op; 5687.0 MB/s +compact : 15983532.000 micros/op; +readrandom : 10.778 micros/op; (864105 of 1000000 found) +readseq : 0.471 micros/op; 10166.7 MB/s +readreverse : 0.751 micros/op; 6370.9 MB/s +fill100K : 516.302 micros/op; 184.7 MB/s (1000 ops) +crc32c : 0.560 micros/op; 6981.2 MB/s (4K per op) +snappycomp : 876.000 micros/op; (snappy failure) +snappyuncomp : 812.000 micros/op; (snappy failure) +zstdcomp : 884.000 micros/op; (zstd failure) +zstduncomp : 849.000 micros/op; (zstd failure) +``` + + + +# db_bench V3 + +### origin + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 21:42:01 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.424 micros/op; 507.6 MB/s +fillsync : 1322.246 micros/op; 3.6 MB/s (1000 ops) +fillrandom : 16.385 micros/op; 292.0 MB/s +overwrite : 43.718 micros/op; 109.4 MB/s +readrandom : 5.891 micros/op; (864322 of 1000000 found) +readrandom : 5.257 micros/op; (864083 of 1000000 found) +readunorderseq : 1.249 micros/op; 3828.8 MB/s +readseq : 3.241 micros/op; 1475.9 MB/s +readreverse : 3.325 micros/op; 1438.7 MB/s +compact : 151395.000 micros/op; +readrandom : 30.305 micros/op; (864482 of 1000000 found) +readunorderseq : 1.287 micros/op; 3717.1 MB/s +readseq : 3.357 micros/op; 1424.9 MB/s +readreverse : 3.332 micros/op; 1435.9 MB/s +fill100K : 49.125 micros/op; 1941.6 MB/s (1000 ops) +crc32c : 0.576 micros/op; 6784.2 MB/s (4K per op) +snappycomp : 894.000 micros/op; (snappy failure) +snappyuncomp : 837.000 micros/op; (snappy failure) +zstdcomp : 849.000 micros/op; (zstd failure) +zstduncomp : 861.000 micros/op; (zstd failure) +``` + +Options.valuelog_crc=true + ReadOptions.verify_checksums=true + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 21:54:09 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 11.596 micros/op; 412.5 MB/s +fillsync : 1295.241 micros/op; 3.7 MB/s (1000 ops) +fillrandom : 15.880 micros/op; 301.2 MB/s +overwrite : 47.611 micros/op; 100.5 MB/s +readrandom : 6.641 micros/op; (864322 of 1000000 found) +readrandom : 4.998 micros/op; (864083 of 1000000 found) +readunorderseq : 1.256 micros/op; 3810.1 MB/s +readseq : 3.114 micros/op; 1536.0 MB/s +readreverse : 3.202 micros/op; 1493.9 MB/s +compact : 164088.000 micros/op; +readrandom : 32.763 micros/op; (864482 of 1000000 found) +readunorderseq : 1.270 micros/op; 3767.4 MB/s +readseq : 3.389 micros/op; 1411.5 MB/s +readreverse : 4.951 micros/op; 966.2 MB/s +fill100K : 62.256 micros/op; 1532.1 MB/s (1000 ops) +crc32c : 0.561 micros/op; 6967.7 MB/s (4K per op) +snappycomp : 1226.000 micros/op; (snappy failure) +snappyuncomp : 1341.000 micros/op; (snappy failure) +zstdcomp : 1312.000 micros/op; (zstd failure) +zstduncomp : 1069.000 micros/op; (zstd failure) +``` + +options.max_unorder_iter_memory_usage=64<<24; + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 22:01:02 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 10.441 micros/op; 458.1 MB/s +fillsync : 1407.271 micros/op; 3.4 MB/s (1000 ops) +fillrandom : 13.759 micros/op; 347.7 MB/s +overwrite : 44.691 micros/op; 107.0 MB/s +readrandom : 5.752 micros/op; (864322 of 1000000 found) +readrandom : 4.213 micros/op; (864083 of 1000000 found) +readunorderseq : 1.252 micros/op; 3822.2 MB/s +readseq : 3.117 micros/op; 1534.8 MB/s +readreverse : 3.200 micros/op; 1494.8 MB/s +compact : 151401.000 micros/op; +readrandom : 29.261 micros/op; (864482 of 1000000 found) +readunorderseq : 1.351 micros/op; 3540.8 MB/s +readseq : 3.096 micros/op; 1545.2 MB/s +readreverse : 3.146 micros/op; 1520.6 MB/s +fill100K : 46.554 micros/op; 2048.9 MB/s (1000 ops) +crc32c : 0.553 micros/op; 7070.0 MB/s (4K per op) +snappycomp : 1136.000 micros/op; (snappy failure) +snappyuncomp : 839.000 micros/op; (snappy failure) +zstdcomp : 817.000 micros/op; (zstd failure) +zstduncomp : 811.000 micros/op; (zstd failure) +``` + + + +options.max_unorder_iter_memory_usage=64<<22; + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 22:09:37 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.149 micros/op; 522.9 MB/s +fillsync : 1260.337 micros/op; 3.8 MB/s (1000 ops) +fillrandom : 16.319 micros/op; 293.1 MB/s +overwrite : 43.827 micros/op; 109.1 MB/s +readrandom : 5.710 micros/op; (864322 of 1000000 found) +readrandom : 4.262 micros/op; (864083 of 1000000 found) +readunorderseq : 1.242 micros/op; 3850.3 MB/s +readseq : 4.794 micros/op; 997.8 MB/s +readreverse : 3.254 micros/op; 1470.1 MB/s +compact : 146958.000 micros/op; +readrandom : 30.457 micros/op; (864482 of 1000000 found) +readunorderseq : 1.238 micros/op; 3864.2 MB/s +readseq : 3.074 micros/op; 1556.0 MB/s +readreverse : 3.119 micros/op; 1533.8 MB/s +fill100K : 45.835 micros/op; 2081.0 MB/s (1000 ops) +crc32c : 0.545 micros/op; 7166.9 MB/s (4K per op) +snappycomp : 858.000 micros/op; (snappy failure) +snappyuncomp : 821.000 micros/op; (snappy failure) +zstdcomp : 840.000 micros/op; (zstd failure) +zstduncomp : 845.000 micros/op; (zstd failure) +``` + +options.max_unorder_iter_memory_usage=64<<18; + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 22:13:46 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.094 micros/op; 526.0 MB/s +fillsync : 1267.120 micros/op; 3.8 MB/s (1000 ops) +fillrandom : 16.316 micros/op; 293.2 MB/s +overwrite : 43.970 micros/op; 108.8 MB/s +readrandom : 5.859 micros/op; (864322 of 1000000 found) +readrandom : 4.303 micros/op; (864083 of 1000000 found) +readunorderseq : 1.255 micros/op; 3810.6 MB/s +readseq : 3.203 micros/op; 1493.6 MB/s +readreverse : 4.932 micros/op; 969.9 MB/s +compact : 149083.000 micros/op; +readrandom : 29.995 micros/op; (864482 of 1000000 found) +readunorderseq : 1.208 micros/op; 3958.6 MB/s +readseq : 3.100 micros/op; 1542.9 MB/s +readreverse : 3.137 micros/op; 1524.7 MB/s +fill100K : 48.072 micros/op; 1984.2 MB/s (1000 ops) +crc32c : 0.571 micros/op; 6842.8 MB/s (4K per op) +snappycomp : 928.000 micros/op; (snappy failure) +snappyuncomp : 828.000 micros/op; (snappy failure) +zstdcomp : 1233.000 micros/op; (zstd failure) +zstduncomp : 1360.000 micros/op; (zstd failure) +``` + + + +options.mem_value_log_number=512; + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 22:18:38 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.431 micros/op; 507.2 MB/s +fillsync : 1407.629 micros/op; 3.4 MB/s (1000 ops) +fillrandom : 15.357 micros/op; 311.5 MB/s +overwrite : 43.646 micros/op; 109.6 MB/s +readrandom : 4.007 micros/op; (864322 of 1000000 found) +readrandom : 2.150 micros/op; (864083 of 1000000 found) +readunorderseq : 1.298 micros/op; 3684.5 MB/s +readseq : 2.678 micros/op; 1786.2 MB/s +readreverse : 1.019 micros/op; 4693.5 MB/s +compact : 121448.000 micros/op; +readrandom : 22.242 micros/op; (864482 of 1000000 found) +readunorderseq : 1.296 micros/op; 3691.2 MB/s +readseq : 3.521 micros/op; 1358.5 MB/s +readreverse : 1.003 micros/op; 4770.5 MB/s +fill100K : 47.101 micros/op; 2025.1 MB/s (1000 ops) +crc32c : 0.567 micros/op; 6889.1 MB/s (4K per op) +snappycomp : 874.000 micros/op; (snappy failure) +snappyuncomp : 831.000 micros/op; (snappy failure) +zstdcomp : 840.000 micros/op; (zstd failure) +zstduncomp : 806.000 micros/op; (zstd failure) + +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 22:22:50 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.114 micros/op; 524.8 MB/s +fillsync : 1350.784 micros/op; 3.5 MB/s (1000 ops) +fillrandom : 16.186 micros/op; 295.5 MB/s +overwrite : 45.896 micros/op; 104.2 MB/s +readrandom : 3.767 micros/op; (864322 of 1000000 found) +readrandom : 3.586 micros/op; (864083 of 1000000 found) +readunorderseq : 1.335 micros/op; 3583.2 MB/s +readseq : 0.969 micros/op; 4935.5 MB/s +readreverse : 1.035 micros/op; 4621.9 MB/s +compact : 124413.000 micros/op; +readrandom : 22.616 micros/op; (864482 of 1000000 found) +readunorderseq : 1.379 micros/op; 3468.0 MB/s +readseq : 4.246 micros/op; 1126.5 MB/s +readreverse : 1.041 micros/op; 4594.6 MB/s +fill100K : 45.569 micros/op; 2093.1 MB/s (1000 ops) +crc32c : 0.564 micros/op; 6929.8 MB/s (4K per op) +snappycomp : 860.000 micros/op; (snappy failure) +snappyuncomp : 831.000 micros/op; (snappy failure) +zstdcomp : 809.000 micros/op; (zstd failure) +zstduncomp : 809.000 micros/op; (zstd failure) + +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 22:25:35 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 10.441 micros/op; 458.2 MB/s +fillsync : 1352.363 micros/op; 3.5 MB/s (1000 ops) +fillrandom : 14.264 micros/op; 335.4 MB/s +overwrite : 47.653 micros/op; 100.4 MB/s +readrandom : 3.749 micros/op; (864322 of 1000000 found) +readrandom : 2.173 micros/op; (864083 of 1000000 found) +readunorderseq : 1.313 micros/op; 3644.4 MB/s +readseq : 0.994 micros/op; 4812.8 MB/s +readreverse : 1.056 micros/op; 4531.1 MB/s +compact : 146978.000 micros/op; +readrandom : 26.075 micros/op; (864482 of 1000000 found) +readunorderseq : 1.373 micros/op; 3484.7 MB/s +readseq : 1.621 micros/op; 2950.7 MB/s +readreverse : 1.050 micros/op; 4557.6 MB/s +fill100K : 52.272 micros/op; 1824.7 MB/s (1000 ops) +crc32c : 0.571 micros/op; 6839.2 MB/s (4K per op) +snappycomp : 910.000 micros/op; (snappy failure) +snappyuncomp : 968.000 micros/op; (snappy failure) +zstdcomp : 1295.000 micros/op; (zstd failure) +zstduncomp : 982.000 micros/op; (zstd failure) +``` + + + +options.mem_value_log_number=32 + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 23:12:43 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.187 micros/op; 520.7 MB/s +fillsync : 1394.107 micros/op; 3.4 MB/s (1000 ops) +fillrandom : 14.321 micros/op; 334.0 MB/s +overwrite : 43.685 micros/op; 109.5 MB/s +readrandom : 11.576 micros/op; (864322 of 1000000 found) +readrandom : 8.912 micros/op; (864083 of 1000000 found) +readunorderseq : 1.293 micros/op; 3699.4 MB/s +readseq : 7.223 micros/op; 662.3 MB/s +readreverse : 7.414 micros/op; 645.3 MB/s +compact : 159015.000 micros/op; +readrandom : 29.700 micros/op; (864482 of 1000000 found) +readunorderseq : 1.204 micros/op; 3974.4 MB/s +readseq : 7.955 micros/op; 601.3 MB/s +readreverse : 7.085 micros/op; 675.2 MB/s +fill100K : 49.873 micros/op; 1912.5 MB/s (1000 ops) +crc32c : 0.560 micros/op; 6972.8 MB/s (4K per op) +snappycomp : 860.000 micros/op; (snappy failure) +snappyuncomp : 1290.000 micros/op; (snappy failure) +zstdcomp : 1075.000 micros/op; (zstd failure) +zstduncomp : 871.000 micros/op; (zstd failure) +``` + +options.mem_value_log_number=128 + +``` +xxy@LAPTOP-LOMHUK6P:~/bench/XOY-leveldb-exp2/build$ ./db_bench +LevelDB: version 1.23 +Date: Sat Jan 4 23:17:53 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +WARNING: Snappy compression is not enabled +------------------------------------------------ +fillseq : 9.080 micros/op; 526.9 MB/s +fillsync : 1450.453 micros/op; 3.3 MB/s (1000 ops) +fillrandom : 15.214 micros/op; 314.4 MB/s +overwrite : 43.780 micros/op; 109.3 MB/s +readrandom : 7.183 micros/op; (864322 of 1000000 found) +readrandom : 5.007 micros/op; (864083 of 1000000 found) +readunorderseq : 1.322 micros/op; 3618.4 MB/s +readseq : 3.460 micros/op; 1382.4 MB/s +readreverse : 3.477 micros/op; 1375.7 MB/s +compact : 164147.000 micros/op; +readrandom : 29.408 micros/op; (864482 of 1000000 found) +readunorderseq : 1.243 micros/op; 3848.2 MB/s +readseq : 0.959 micros/op; 4986.3 MB/s +readreverse : 1.015 micros/op; 4714.0 MB/s +fill100K : 47.614 micros/op; 2003.2 MB/s (1000 ops) +crc32c : 0.568 micros/op; 6872.3 MB/s (4K per op) +snappycomp : 1566.000 micros/op; (snappy failure) +snappyuncomp : 855.000 micros/op; (snappy failure) +zstdcomp : 848.000 micros/op; (zstd failure) +zstduncomp : 851.000 micros/op; (zstd failure) +``` + + + + + +# YCSB-Leveldb:V0 + +## 10fields*500field-len + +workloada-1000000-10*500 + +``` + LD ycsb +2025-01-05 15:21:57 0 sec: 0 operations; +2025-01-05 15:22:07 10 sec: 387047 operations; [INSERT: Count=387047 Max=19218.43 Min=4.14 Avg=20.17 90=9.13 99=1058.82 99.9=1184.77 99.99=1378.30] +2025-01-05 15:22:18 21 sec: 531270 operations; [INSERT: Count=531270 Max=541589.50 Min=4.14 Avg=33.85 90=9.46 99=1091.58 99.9=1216.51 99.99=1587.20] +2025-01-05 15:22:28 31 sec: 758899 operations; [INSERT: Count=758899 Max=541589.50 Min=4.05 Avg=35.18 90=9.11 99=1094.65 99.9=1217.54 99.99=1601.54] +2025-01-05 15:22:38 41 sec: 876919 operations; [INSERT: Count=876919 Max=541589.50 Min=4.05 Avg=41.07 90=9.10 99=1108.99 99.9=1232.89 99.99=1723.39] +2025-01-05 15:22:48 51 sec: 1000000 operations; [INSERT: Count=1000000 Max=541589.50 Min=4.05 Avg=45.72 90=9.22 99=1116.16 99.9=1240.06 99.99=2420.74] +Load runtime(sec): 51.4745 +Load operations(ops): 1000000 +Load throughput(ops/sec): 19427.1 +2025-01-05 15:22:48 0 sec: 0 operations; +2025-01-05 15:22:58 10 sec: 398304 operations; [READ: Count=198696 Max=969.22 Min=0.57 Avg=8.87 90=15.71 99=33.76 99.9=76.99 99.99=139.39] [UPDATE: Count=199608 Max=12533.76 Min=4.98 Avg=39.61 90=27.41 99=1102.85 99.9=1236.99 99.99=1721.34] +2025-01-05 15:23:08 20 sec: 808664 operations; [READ: Count=404154 Max=10747.90 Min=0.57 Avg=9.20 90=16.61 99=35.30 99.9=79.36 99.99=157.69] [UPDATE: Count=404510 Max=22724.61 Min=4.98 Avg=38.76 90=28.70 99=1099.78 99.9=1232.89 99.99=1820.67] +2025-01-05 15:23:11 22 sec: 1000000 operations; [READ: Count=499823 Max=10747.90 Min=0.54 Avg=8.73 90=15.61 99=33.34 99.9=76.29 99.99=156.29] [UPDATE: Count=500177 Max=22724.61 Min=4.88 Avg=34.47 90=26.73 99=1090.56 99.9=1223.68 99.99=1739.78] +Run runtime(sec): 22.4951 +Run operations(ops): 1000000 +Run throughput(ops/sec): 44454.2 +All steps completed successfully! +``` + +workloadb-1000000-10*500 + +``` + LD ycsb +2025-01-05 15:24:32 0 sec: 0 operations; +2025-01-05 15:24:42 10 sec: 396743 operations; [INSERT: Count=396743 Max=17350.65 Min=4.31 Avg=19.59 90=9.34 99=1055.74 99.9=1165.31 99.99=1427.45] +2025-01-05 15:24:53 21 sec: 602651 operations; [INSERT: Count=602651 Max=530317.31 Min=4.31 Avg=29.29 90=9.12 99=1077.25 99.9=1192.96 99.99=1670.14] +2025-01-05 15:25:03 31 sec: 808638 operations; [INSERT: Count=808638 Max=530317.31 Min=4.31 Avg=32.71 90=9.21 99=1088.51 99.9=1205.25 99.99=1756.16] +2025-01-05 15:25:13 41 sec: 983428 operations; [INSERT: Count=983428 Max=530317.31 Min=4.31 Avg=36.02 90=9.35 99=1098.75 99.9=1216.51 99.99=1893.38] +2025-01-05 15:25:14 41 sec: 1000000 operations; [INSERT: Count=1000000 Max=530317.31 Min=4.08 Avg=35.54 90=9.33 99=1097.73 99.9=1215.49 99.99=1852.41] +Load runtime(sec): 41.294 +Load operations(ops): 1000000 +Load throughput(ops/sec): 24216.6 +2025-01-05 15:25:14 0 sec: 0 operations; +2025-01-05 15:25:25 11 sec: 646218 operations; [READ: Count=613744 Max=547356.67 Min=0.52 Avg=8.96 90=12.94 99=35.45 99.9=77.44 99.99=143.87] [UPDATE: Count=32474 Max=23003.13 Min=5.17 Avg=156.86 90=1071.10 99=1207.30 99.9=1357.82 99.99=14540.80] +2025-01-05 15:25:27 13 sec: 1000000 operations; [READ: Count=949848 Max=547356.67 Min=0.52 Avg=7.82 90=11.11 99=30.88 99.9=68.22 99.99=130.62] [UPDATE: Count=50152 Max=23003.13 Min=5.17 Avg=109.12 90=51.90 99=1185.79 99.9=1314.82 99.99=8921.09] +Run runtime(sec): 13.6057 +Run operations(ops): 1000000 +Run throughput(ops/sec): 73498.6 +All steps completed successfully! +``` + +workloadc-1000000-10*500 + +``` + LD ycsb +2025-01-05 15:26:29 0 sec: 0 operations; +2025-01-05 15:26:39 10 sec: 398110 operations; [INSERT: Count=398110 Max=17973.25 Min=4.26 Avg=19.46 90=8.92 99=1053.69 99.9=1165.31 99.99=1503.23] +2025-01-05 15:26:49 20 sec: 606596 operations; [INSERT: Count=606596 Max=21774.33 Min=4.26 Avg=27.33 90=8.75 99=1076.22 99.9=1189.89 99.99=1587.20] +2025-01-05 15:27:00 31 sec: 720688 operations; [INSERT: Count=720688 Max=527695.87 Min=4.26 Avg=37.40 90=8.89 99=1096.70 99.9=1213.44 99.99=1763.33] +2025-01-05 15:27:10 41 sec: 838629 operations; [INSERT: Count=838629 Max=527695.87 Min=4.09 Avg=43.23 90=9.07 99=1110.02 99.9=1226.75 99.99=1904.64] +2025-01-05 15:27:18 49 sec: 1000000 operations; [INSERT: Count=1000000 Max=527695.87 Min=4.09 Avg=43.70 90=8.93 99=1110.02 99.9=1226.75 99.99=1901.57] +Load runtime(sec): 49.4375 +Load operations(ops): 1000000 +Load throughput(ops/sec): 20227.5 +2025-01-05 15:27:18 0 sec: 0 operations; +2025-01-05 15:27:27 8 sec: 1000000 operations; [READ: Count=1000000 Max=536346.62 Min=1.19 Avg=8.15 90=10.68 99=19.42 99.9=35.36 99.99=104.83] +Run runtime(sec): 8.81349 +Run operations(ops): 1000000 +Run throughput(ops/sec): 113462 +All steps completed successfully! +``` + +workloadd-1000000-10*500 + +``` + LD ycsb +2025-01-05 15:28:06 0 sec: 0 operations; +2025-01-05 15:28:16 10 sec: 382540 operations; [INSERT: Count=382540 Max=49807.36 Min=3.78 Avg=20.43 90=8.78 99=1056.77 99.9=1172.48 99.99=1451.01] +2025-01-05 15:28:27 21 sec: 541726 operations; [INSERT: Count=541726 Max=535298.05 Min=3.78 Avg=33.09 90=8.65 99=1087.49 99.9=1204.22 99.99=1589.25] +2025-01-05 15:28:37 31 sec: 728142 operations; [INSERT: Count=728142 Max=535298.05 Min=3.78 Avg=36.87 90=8.65 99=1097.73 99.9=1217.54 99.99=1637.38] +2025-01-05 15:28:47 41 sec: 888919 operations; [INSERT: Count=888919 Max=535298.05 Min=3.78 Avg=40.42 90=8.72 99=1103.87 99.9=1224.70 99.99=1694.72] +2025-01-05 15:28:53 46 sec: 1000000 operations; [INSERT: Count=1000000 Max=535298.05 Min=3.78 Avg=40.78 90=8.68 99=1104.89 99.9=1223.68 99.99=1694.72] +Load runtime(sec): 46.5766 +Load operations(ops): 1000000 +Load throughput(ops/sec): 21470 +2025-01-05 15:28:53 0 sec: 0 operations; +2025-01-05 15:29:04 11 sec: 741818 operations; [INSERT: Count=37056 Max=521928.70 Min=4.58 Avg=197.28 90=1067.01 99=1185.79 99.9=1368.06 99.99=18202.62] [READ: Count=704762 Max=17612.80 Min=0.50 Avg=4.37 90=9.11 99=27.49 99.9=61.47 99.99=115.07] +2025-01-05 15:29:05 12 sec: 1000000 operations; [INSERT: Count=49902 Max=521928.70 Min=4.58 Avg=150.53 90=1055.74 99=1170.43 99.9=1337.34 99.99=14139.39] [READ: Count=950098 Max=17612.80 Min=0.47 Avg=4.19 90=8.82 99=24.82 99.9=56.32 99.99=108.48] +Run runtime(sec): 12.361 +Run operations(ops): 1000000 +Run throughput(ops/sec): 80899.7 +All steps completed successfully! +``` + + + +workloade-recordcount=100000-operationcount=10000-10*500 + +``` + LD ycsb +2025-01-05 15:29:47 0 sec: 0 operations; +2025-01-05 15:29:48 1 sec: 100000 operations; [INSERT: Count=100000 Max=2177.02 Min=4.22 Avg=6.74 90=7.83 99=17.98 99.9=37.38 99.99=208.00] +Load runtime(sec): 1.22978 +Load operations(ops): 100000 +Load throughput(ops/sec): 81315.4 +2025-01-05 15:29:48 0 sec: 0 operations; +2025-01-05 15:29:54 5 sec: 10000 operations; [INSERT: Count=477 Max=125.82 Min=5.77 Avg=46.92 90=75.26 99=100.42 99.9=125.82 99.99=125.82] [SCAN: Count=9523 Max=19431.42 Min=3.77 Avg=515.87 90=907.26 99=1196.03 99.9=1736.70 99.99=7577.60] +Run runtime(sec): 5.47417 +Run operations(ops): 10000 +Run throughput(ops/sec): 1826.76 +All steps completed successfully! +``` + + + +workloadf-1000000-10*500 + +``` + LD ycsb +2025-01-05 15:30:43 0 sec: 0 operations; +2025-01-05 15:30:53 10 sec: 349919 operations; [INSERT: Count=349919 Max=43253.76 Min=4.18 Avg=23.13 90=7.70 99=1067.01 99.9=1179.65 99.99=1614.85] +2025-01-05 15:31:04 21 sec: 580094 operations; [INSERT: Count=580094 Max=523763.71 Min=4.18 Avg=30.73 90=7.98 99=1081.34 99.9=1203.20 99.99=1715.20] +2025-01-05 15:31:14 31 sec: 695620 operations; [INSERT: Count=695620 Max=523763.71 Min=4.18 Avg=39.02 90=8.21 99=1102.85 99.9=1223.68 99.99=1909.76] +2025-01-05 15:31:24 41 sec: 814040 operations; [INSERT: Count=814040 Max=523763.71 Min=4.18 Avg=44.75 90=8.51 99=1111.04 99.9=1233.92 99.99=3088.38] +2025-01-05 15:31:35 52 sec: 990902 operations; [INSERT: Count=990902 Max=531103.74 Min=4.18 Avg=46.83 90=8.62 99=1112.06 99.9=1232.89 99.99=3088.38] +2025-01-05 15:31:35 52 sec: 1000000 operations; [INSERT: Count=1000000 Max=531103.74 Min=4.18 Avg=46.46 90=8.59 99=1112.06 99.9=1232.89 99.99=3088.38] +Load runtime(sec): 52.2434 +Load operations(ops): 1000000 +Load throughput(ops/sec): 19141.2 +2025-01-05 15:31:35 0 sec: 0 operations; +2025-01-05 15:31:45 10 sec: 372767 operations; [READ: Count=248572 Max=1964.03 Min=0.54 Avg=10.24 90=18.25 99=40.86 99.9=92.99 99.99=162.69] [UPDATE: Count=124195 Max=24395.78 Min=4.90 Avg=56.63 90=23.97 99=1123.33 99.9=1243.13 99.99=2099.20] +2025-01-05 15:31:55 20 sec: 948926 operations; [READ: Count=632678 Max=3565.57 Min=0.49 Avg=9.49 90=16.96 99=35.87 99.9=82.75 99.99=161.92] [UPDATE: Count=316248 Max=24395.78 Min=4.74 Avg=42.05 90=17.70 99=1096.70 99.9=1215.49 99.99=2240.51] +2025-01-05 15:32:06 31 sec: 1394875 operations; [READ: Count=929797 Max=529268.73 Min=0.49 Avg=10.47 90=16.73 99=36.03 99.9=83.33 99.99=165.38] [UPDATE: Count=465078 Max=24395.78 Min=4.74 Avg=43.79 90=17.89 99=1100.80 99.9=1224.70 99.99=2902.01] +2025-01-05 15:32:07 32 sec: 1499897 operations; [READ: Count=1000000 Max=529268.73 Min=0.49 Avg=10.37 90=16.62 99=35.33 99.9=81.92 99.99=164.35] [UPDATE: Count=499897 Max=24395.78 Min=4.74 Avg=41.51 90=17.57 99=1096.70 99.9=1219.58 99.99=2377.73] +Run runtime(sec): 32.2646 +Run operations(ops): 1000000 +Run throughput(ops/sec): 30993.7 +All steps completed successfully! +``` + + + + + +## 10fields*100field-len + +workloada-1000000-10*100 + +``` + LD ycsb +2025-01-05 15:52:53 0 sec: 0 operations; +2025-01-05 15:52:59 6 sec: 1000000 operations; [INSERT: Count=1000000 Max=11919.36 Min=1.35 Avg=4.83 90=3.84 99=22.51 99.9=1082.37 99.99=1189.89] +Load runtime(sec): 6.34656 +Load operations(ops): 1000000 +Load throughput(ops/sec): 157566 +2025-01-05 15:52:59 0 sec: 0 operations; +2025-01-05 15:53:06 6 sec: 1000000 operations; [READ: Count=499746 Max=6340.61 Min=0.46 Avg=4.85 90=8.81 99=14.58 99.9=32.29 99.99=71.36] [UPDATE: Count=500254 Max=10297.34 Min=2.01 Avg=7.59 90=11.54 99=25.21 99.9=50.62 99.99=142.85] +Run runtime(sec): 6.75589 +Run operations(ops): 1000000 +Run throughput(ops/sec): 148019 +All steps completed successfully! +``` + +workloadb-1000000-10*100 + +``` + LD ycsb +2025-01-05 15:54:45 0 sec: 0 operations; +2025-01-05 15:54:52 7 sec: 1000000 operations; [INSERT: Count=1000000 Max=509870.08 Min=1.33 Avg=5.19 90=3.69 99=19.77 99.9=1075.20 99.99=1203.20] +Load runtime(sec): 7.06858 +Load operations(ops): 1000000 +Load throughput(ops/sec): 141471 +2025-01-05 15:54:52 0 sec: 0 operations; +2025-01-05 15:54:57 4 sec: 1000000 operations; [READ: Count=950016 Max=8560.64 Min=0.45 Avg=3.86 90=6.78 99=12.86 99.9=28.38 99.99=70.59] [UPDATE: Count=49984 Max=11845.63 Min=2.13 Avg=13.65 90=30.09 99=44.45 99.9=131.71 99.99=3540.99] +Run runtime(sec): 4.9661 +Run operations(ops): 1000000 +Run throughput(ops/sec): 201365 +All steps completed successfully! +``` + +workloadc-1000000-10*100 + +``` + LD ycsb +2025-01-05 15:56:33 0 sec: 0 operations; +2025-01-05 15:56:39 6 sec: 1000000 operations; [INSERT: Count=1000000 Max=11763.71 Min=1.35 Avg=4.62 90=3.59 99=19.31 99.9=1071.10 99.99=1172.48] +Load runtime(sec): 6.05356 +Load operations(ops): 1000000 +Load throughput(ops/sec): 165192 +2025-01-05 15:56:39 0 sec: 0 operations; +2025-01-05 15:56:43 4 sec: 1000000 operations; [READ: Count=1000000 Max=7897.09 Min=0.77 Avg=3.69 90=5.85 99=10.73 99.9=24.24 99.99=64.06] +Run runtime(sec): 4.09051 +Run operations(ops): 1000000 +Run throughput(ops/sec): 244469 +All steps completed successfully! +``` + +workloadd-1000000-10*100 + +``` + LD ycsb +2025-01-05 15:57:33 0 sec: 0 operations; +2025-01-05 15:57:39 5 sec: 1000000 operations; [INSERT: Count=1000000 Max=11927.55 Min=1.34 Avg=4.43 90=3.50 99=8.25 99.9=1073.15 99.99=1186.82] +Load runtime(sec): 5.87062 +Load operations(ops): 1000000 +Load throughput(ops/sec): 170340 +2025-01-05 15:57:39 0 sec: 0 operations; +2025-01-05 15:57:42 2 sec: 1000000 operations; [INSERT: Count=49658 Max=9773.06 Min=1.54 Avg=7.00 90=21.65 99=36.00 99.9=67.84 99.99=252.29] [READ: Count=950342 Max=5664.77 Min=0.42 Avg=2.20 90=5.67 99=11.56 99.9=23.39 99.99=55.36] +Run runtime(sec): 2.92777 +Run operations(ops): 1000000 +Run throughput(ops/sec): 341556 +All steps completed successfully! +``` + +workloade-recordcount=100000-operationcount=10000-10*100 + +``` + LD ycsb +2025-01-05 15:58:47 0 sec: 0 operations; +2025-01-05 15:58:47 0 sec: 100000 operations; [INSERT: Count=100000 Max=1615.87 Min=1.34 Avg=2.85 90=3.74 99=9.41 99.9=24.88 99.99=93.38] +Load runtime(sec): 0.449435 +Load operations(ops): 100000 +Load throughput(ops/sec): 222502 +2025-01-05 15:58:47 0 sec: 0 operations; +2025-01-05 15:58:49 2 sec: 10000 operations; [INSERT: Count=508 Max=107.33 Min=3.62 Avg=48.62 90=69.57 99=92.61 99.9=107.14 99.99=107.33] [SCAN: Count=9492 Max=660.48 Min=5.70 Avg=180.07 90=308.22 99=355.84 99.9=405.25 99.99=644.61] +Run runtime(sec): 2.10515 +Run operations(ops): 10000 +Run throughput(ops/sec): 4750.26 +All steps completed successfully! +``` + +workloadf-1000000-10*100 + +``` + LD ycsb +2025-01-05 15:59:12 0 sec: 0 operations; +2025-01-05 15:59:18 6 sec: 1000000 operations; [INSERT: Count=1000000 Max=16072.70 Min=1.35 Avg=4.85 90=3.72 99=19.47 99.9=1071.10 99.99=1186.82] +Load runtime(sec): 6.3055 +Load operations(ops): 1000000 +Load throughput(ops/sec): 158592 +2025-01-05 15:59:18 0 sec: 0 operations; +2025-01-05 15:59:26 8 sec: 1500583 operations; [READ: Count=1000000 Max=6959.10 Min=0.43 Avg=4.36 90=7.85 99=12.53 99.9=26.51 99.99=74.88] [UPDATE: Count=500583 Max=724041.73 Min=2.00 Avg=6.76 90=5.44 99=14.01 99.9=44.41 99.99=124.16] +Run runtime(sec): 8.30236 +Run operations(ops): 1000000 +Run throughput(ops/sec): 120448 +All steps completed successfully! +``` + + + +## 20fields*1000field-len + +workloada-1000000-20*1000 + +``` + LD ycsb +2025-01-05 15:59:59 0 sec: 0 operations; +2025-01-05 16:00:09 10 sec: 114605 operations; [INSERT: Count=114605 Max=63504.38 Min=11.38 Avg=65.40 90=40.45 99=1150.97 99.9=1295.36 99.99=7274.49] +2025-01-05 16:00:19 20 sec: 148212 operations; [INSERT: Count=148212 Max=63504.38 Min=11.38 Avg=112.49 90=60.41 99=1188.86 99.9=1353.73 99.99=8151.04] +2025-01-05 16:00:30 30 sec: 208343 operations; [INSERT: Count=208343 Max=403701.76 Min=11.38 Avg=123.30 90=68.16 99=1191.93 99.9=1373.18 99.99=8495.10] +2025-01-05 16:00:40 40 sec: 243351 operations; [INSERT: Count=243351 Max=403701.76 Min=11.38 Avg=143.21 90=1070.08 99=1202.17 99.9=1394.69 99.99=10141.69] +2025-01-05 16:00:50 50 sec: 279328 operations; [INSERT: Count=279328 Max=403701.76 Min=11.38 Avg=157.48 90=1078.27 99=1208.32 99.9=1416.19 99.99=10141.69] +2025-01-05 16:01:01 61 sec: 336350 operations; [INSERT: Count=336350 Max=499384.32 Min=11.38 Avg=159.25 90=1077.25 99=1208.32 99.9=1410.05 99.99=10559.49] +2025-01-05 16:01:11 71 sec: 369130 operations; [INSERT: Count=369130 Max=499384.32 Min=11.38 Avg=170.03 90=1084.41 99=1212.41 99.9=1426.43 99.99=11124.74] +2025-01-05 16:01:21 81 sec: 427164 operations; [INSERT: Count=427164 Max=499384.32 Min=11.38 Avg=167.17 90=1082.37 99=1211.39 99.9=1432.58 99.99=11247.61] +2025-01-05 16:01:32 92 sec: 460728 operations; [INSERT: Count=460728 Max=499384.32 Min=11.38 Avg=176.91 90=1086.46 99=1214.46 99.9=1438.72 99.99=11689.98] +2025-01-05 16:01:42 102 sec: 495035 operations; [INSERT: Count=495035 Max=499384.32 Min=11.38 Avg=183.19 90=1088.51 99=1217.54 99.9=1457.15 99.99=11247.61] +2025-01-05 16:01:52 112 sec: 529834 operations; [INSERT: Count=529834 Max=499384.32 Min=11.38 Avg=188.46 90=1090.56 99=1219.58 99.9=1462.27 99.99=11247.61] +2025-01-05 16:02:03 123 sec: 563005 operations; [INSERT: Count=563005 Max=499384.32 Min=11.38 Avg=195.32 90=1091.58 99=1221.63 99.9=1475.58 99.99=11247.61] +2025-01-05 16:02:13 133 sec: 594816 operations; [INSERT: Count=594816 Max=499384.32 Min=11.38 Avg=200.29 90=1093.63 99=1223.68 99.9=1482.75 99.99=11247.61] +2025-01-05 16:02:23 143 sec: 627620 operations; [INSERT: Count=627620 Max=499384.32 Min=11.22 Avg=204.46 90=1094.65 99=1225.73 99.9=1485.82 99.99=11247.61] +2025-01-05 16:02:33 154 sec: 662796 operations; [INSERT: Count=662796 Max=499384.32 Min=11.22 Avg=208.02 90=1094.65 99=1227.78 99.9=1491.97 99.99=11649.02] +2025-01-05 16:02:43 164 sec: 686409 operations; [INSERT: Count=686409 Max=499384.32 Min=11.22 Avg=214.57 90=1096.70 99=1229.82 99.9=1501.18 99.99=11689.98] +2025-01-05 16:02:53 174 sec: 705880 operations; [INSERT: Count=705880 Max=499384.32 Min=11.22 Avg=222.05 90=1098.75 99=1231.87 99.9=1515.52 99.99=11919.36] +2025-01-05 16:03:04 184 sec: 741306 operations; [INSERT: Count=741306 Max=866123.78 Min=11.22 Avg=224.91 90=1098.75 99=1232.89 99.9=1519.62 99.99=12427.26] +2025-01-05 16:03:15 195 sec: 775745 operations; [INSERT: Count=775745 Max=866123.78 Min=11.22 Avg=227.68 90=1099.78 99=1233.92 99.9=1523.71 99.99=12320.77] +2025-01-05 16:03:25 205 sec: 808423 operations; [INSERT: Count=808423 Max=866123.78 Min=11.22 Avg=229.83 90=1099.78 99=1233.92 99.9=1525.76 99.99=12058.62] +2025-01-05 16:03:36 216 sec: 830244 operations; [INSERT: Count=830244 Max=866123.78 Min=11.22 Avg=235.90 90=1101.82 99=1235.97 99.9=1531.90 99.99=12451.84] +2025-01-05 16:03:46 226 sec: 851331 operations; [INSERT: Count=851331 Max=866123.78 Min=11.22 Avg=241.15 90=1102.85 99=1238.02 99.9=1546.24 99.99=12320.77] +2025-01-05 16:03:56 236 sec: 886430 operations; [INSERT: Count=886430 Max=866123.78 Min=11.22 Avg=241.91 90=1102.85 99=1239.04 99.9=1546.24 99.99=12320.77] +2025-01-05 16:04:06 247 sec: 920445 operations; [INSERT: Count=920445 Max=866123.78 Min=11.22 Avg=243.84 90=1102.85 99=1240.06 99.9=1546.24 99.99=12427.26] +2025-01-05 16:04:16 257 sec: 954142 operations; [INSERT: Count=954142 Max=866123.78 Min=11.22 Avg=244.83 90=1103.87 99=1240.06 99.9=1554.43 99.99=12214.27] +2025-01-05 16:04:26 267 sec: 962618 operations; [INSERT: Count=962618 Max=866123.78 Min=11.22 Avg=252.76 90=1104.89 99=1243.13 99.9=1570.82 99.99=12451.84] +2025-01-05 16:04:37 278 sec: 994253 operations; [INSERT: Count=994253 Max=866123.78 Min=11.22 Avg=254.90 90=1105.92 99=1243.13 99.9=1572.86 99.99=12451.84] +2025-01-05 16:04:44 284 sec: 1000000 operations; [INSERT: Count=1000000 Max=866123.78 Min=11.22 Avg=259.63 90=1106.94 99=1245.18 99.9=1587.20 99.99=12451.84] +Load runtime(sec): 284.448 +Load operations(ops): 1000000 +Load throughput(ops/sec): 3515.58 +2025-01-05 16:04:44 0 sec: 0 operations; +2025-01-05 16:04:54 10 sec: 56589 operations; [READ: Count=28226 Max=4689.92 Min=1.91 Avg=27.17 90=50.17 99=137.34 99.9=322.56 99.99=897.02] [UPDATE: Count=28363 Max=21430.27 Min=13.97 Avg=320.03 90=1176.58 99=1386.49 99.9=1864.70 99.99=11935.74] +2025-01-05 16:05:04 20 sec: 104740 operations; [READ: Count=52246 Max=15114.24 Min=1.78 Avg=29.02 90=52.09 99=178.69 99.9=537.09 99.99=1468.41] [UPDATE: Count=52494 Max=21430.27 Min=13.97 Avg=347.30 90=1188.86 99=1413.12 99.9=1780.73 99.99=11214.85] +2025-01-05 16:05:15 30 sec: 136540 operations; [READ: Count=68253 Max=15114.24 Min=1.78 Avg=30.35 90=54.91 99=188.41 99.9=635.39 99.99=1994.75] [UPDATE: Count=68287 Max=400818.17 Min=13.97 Avg=410.04 90=1201.15 99=1430.53 99.9=1991.68 99.99=11296.77] +2025-01-05 16:05:25 40 sec: 198379 operations; [READ: Count=99182 Max=15114.24 Min=1.78 Avg=31.00 90=52.83 99=225.66 99.9=783.87 99.99=3411.97] [UPDATE: Count=99197 Max=400818.17 Min=13.97 Avg=371.83 90=1186.82 99=1413.12 99.9=2115.58 99.99=11214.85] +2025-01-05 16:05:35 50 sec: 231885 operations; [READ: Count=115882 Max=15114.24 Min=1.78 Avg=32.19 90=54.27 99=266.75 99.9=842.24 99.99=3491.84] [UPDATE: Count=116003 Max=400818.17 Min=13.97 Avg=397.82 90=1189.89 99=1418.24 99.9=2418.69 99.99=11214.85] +2025-01-05 16:05:46 61 sec: 279192 operations; [READ: Count=139557 Max=15114.24 Min=1.78 Avg=33.84 90=54.78 99=347.13 99.9=912.89 99.99=4157.44] [UPDATE: Count=139635 Max=488636.41 Min=13.97 Avg=400.62 90=1186.82 99=1431.55 99.9=2729.98 99.99=12779.52] +2025-01-05 16:05:56 71 sec: 341791 operations; [READ: Count=170886 Max=15114.24 Min=1.52 Avg=34.98 90=54.24 99=403.97 99.9=992.77 99.99=4190.21] [UPDATE: Count=170905 Max=488636.41 Min=13.66 Avg=377.81 90=1177.60 99=1428.48 99.9=2897.92 99.99=12779.52] +2025-01-05 16:06:06 81 sec: 404249 operations; [READ: Count=202126 Max=15114.24 Min=1.52 Avg=36.82 90=54.69 99=447.74 99.9=1055.74 99.99=4251.65] [UPDATE: Count=202123 Max=488636.41 Min=13.66 Avg=361.07 90=1170.43 99=1431.55 99.9=3065.86 99.99=13066.24] +2025-01-05 16:06:16 92 sec: 467049 operations; [READ: Count=233431 Max=15114.24 Min=1.41 Avg=38.63 90=55.07 99=476.93 99.9=1197.06 99.99=4509.69] [UPDATE: Count=233618 Max=488636.41 Min=13.66 Avg=351.86 90=1164.29 99=1435.65 99.9=3368.96 99.99=13778.94] +2025-01-05 16:06:26 102 sec: 530904 operations; [READ: Count=265474 Max=15114.24 Min=1.41 Avg=39.54 90=55.04 99=492.03 99.9=1282.05 99.99=4595.71] [UPDATE: Count=265430 Max=488636.41 Min=13.66 Avg=341.35 90=1160.19 99=1436.67 99.9=3409.92 99.99=13262.85] +2025-01-05 16:06:36 112 sec: 586189 operations; [READ: Count=292973 Max=15114.24 Min=1.41 Avg=40.93 90=55.71 99=511.23 99.9=1343.49 99.99=4673.53] [UPDATE: Count=293216 Max=488636.41 Min=13.66 Avg=337.63 90=1157.12 99=1448.96 99.9=3495.93 99.99=14221.31] +2025-01-05 16:06:47 123 sec: 648261 operations; [READ: Count=323957 Max=15114.24 Min=1.41 Avg=41.76 90=55.71 99=525.82 99.9=1380.35 99.99=4677.63] [UPDATE: Count=324304 Max=497549.31 Min=13.66 Avg=333.78 90=1154.05 99=1453.06 99.9=3962.88 99.99=16121.85] +2025-01-05 16:06:57 133 sec: 709529 operations; [READ: Count=354558 Max=16711.68 Min=1.41 Avg=43.21 90=56.26 99=539.65 99.9=1633.28 99.99=4739.07] [UPDATE: Count=354971 Max=497549.31 Min=13.60 Avg=327.74 90=1150.97 99=1457.15 99.9=4104.19 99.99=14458.88] +2025-01-05 16:07:07 143 sec: 769996 operations; [READ: Count=384836 Max=16711.68 Min=1.41 Avg=44.37 90=56.86 99=550.40 99.9=1816.58 99.99=4825.09] [UPDATE: Count=385160 Max=497549.31 Min=13.60 Avg=323.15 90=1148.93 99=1461.25 99.9=4126.72 99.99=14221.31] +2025-01-05 16:07:18 153 sec: 832042 operations; [READ: Count=415800 Max=16711.68 Min=1.41 Avg=45.07 90=57.09 99=557.05 99.9=1923.07 99.99=4845.57] [UPDATE: Count=416242 Max=497549.31 Min=13.60 Avg=319.71 90=1146.88 99=1467.39 99.9=4147.20 99.99=14737.41] +2025-01-05 16:07:28 163 sec: 890584 operations; [READ: Count=445049 Max=16711.68 Min=1.41 Avg=45.96 90=57.47 99=566.27 99.9=2123.78 99.99=4857.85] [UPDATE: Count=445535 Max=497549.31 Min=13.60 Avg=317.03 90=1144.83 99=1471.49 99.9=4147.20 99.99=14737.41] +2025-01-05 16:07:38 173 sec: 950788 operations; [READ: Count=475213 Max=18104.32 Min=1.41 Avg=46.79 90=57.53 99=572.93 99.9=2359.30 99.99=4886.53] [UPDATE: Count=475575 Max=497549.31 Min=13.60 Avg=314.04 90=1144.83 99=1474.56 99.9=4214.78 99.99=14737.41] +2025-01-05 16:07:47 183 sec: 1000000 operations; [READ: Count=499872 Max=18104.32 Min=1.41 Avg=48.82 90=57.34 99=598.53 99.9=2715.65 99.99=4931.58] [UPDATE: Count=500128 Max=762314.75 Min=13.60 Avg=311.47 90=1143.81 99=1496.06 99.9=4214.78 99.99=15319.04] +Run runtime(sec): 183.076 +Run operations(ops): 1000000 +Run throughput(ops/sec): 5462.22 +All steps completed successfully! +``` + +workloadb-1000000-20*1000 + +``` + LD ycsb +2025-01-05 16:08:54 0 sec: 0 operations; +2025-01-05 16:09:04 10 sec: 106648 operations; [INSERT: Count=106648 Max=44466.18 Min=13.10 Avg=70.16 90=47.13 99=1180.67 99.9=1308.67 99.99=7757.82] +2025-01-05 16:09:15 20 sec: 147135 operations; [INSERT: Count=147135 Max=489947.14 Min=13.10 Avg=117.91 90=64.83 99=1219.58 99.9=1395.71 99.99=9633.79] +2025-01-05 16:09:25 30 sec: 204469 operations; [INSERT: Count=204469 Max=489947.14 Min=12.62 Avg=127.01 90=79.42 99=1220.61 99.9=1412.10 99.99=9633.79] +2025-01-05 16:09:35 40 sec: 238367 operations; [INSERT: Count=238367 Max=489947.14 Min=12.62 Avg=147.39 90=1056.77 99=1221.63 99.9=1421.31 99.99=9969.66] +2025-01-05 16:09:46 51 sec: 270455 operations; [INSERT: Count=270455 Max=491257.85 Min=12.42 Avg=167.37 90=1082.37 99=1227.78 99.9=1442.82 99.99=11476.99] +2025-01-05 16:09:56 61 sec: 331046 operations; [INSERT: Count=331046 Max=491257.85 Min=12.42 Avg=162.60 90=1079.30 99=1224.70 99.9=1434.62 99.99=11476.99] +2025-01-05 16:10:06 71 sec: 364925 operations; [INSERT: Count=364925 Max=491257.85 Min=12.42 Avg=172.70 90=1086.46 99=1226.75 99.9=1460.22 99.99=12001.28] +2025-01-05 16:10:17 82 sec: 399130 operations; [INSERT: Count=399130 Max=491257.85 Min=12.42 Avg=183.01 90=1090.56 99=1228.80 99.9=1466.37 99.99=12115.97] +2025-01-05 16:10:27 92 sec: 433525 operations; [INSERT: Count=433525 Max=491257.85 Min=12.42 Avg=189.65 90=1093.63 99=1230.85 99.9=1471.49 99.99=12468.22] +2025-01-05 16:10:37 102 sec: 467400 operations; [INSERT: Count=467400 Max=491257.85 Min=12.25 Avg=195.54 90=1094.65 99=1231.87 99.9=1482.75 99.99=12115.97] +2025-01-05 16:10:48 113 sec: 501676 operations; [INSERT: Count=501676 Max=491257.85 Min=12.13 Avg=202.18 90=1096.70 99=1232.89 99.9=1486.85 99.99=12468.22] +2025-01-05 16:10:58 123 sec: 536346 operations; [INSERT: Count=536346 Max=491257.85 Min=12.13 Avg=206.21 90=1097.73 99=1233.92 99.9=1501.18 99.99=12115.97] +2025-01-05 16:11:08 133 sec: 569996 operations; [INSERT: Count=569996 Max=491257.85 Min=12.13 Avg=210.17 90=1098.75 99=1235.97 99.9=1506.30 99.99=12558.33] +2025-01-05 16:11:19 144 sec: 604511 operations; [INSERT: Count=604511 Max=491257.85 Min=12.13 Avg=214.83 90=1099.78 99=1238.02 99.9=1521.66 99.99=12697.60] +2025-01-05 16:11:29 154 sec: 638544 operations; [INSERT: Count=638544 Max=491257.85 Min=12.13 Avg=217.71 90=1101.82 99=1240.06 99.9=1526.78 99.99=12558.33] +2025-01-05 16:11:39 164 sec: 647056 operations; [INSERT: Count=647056 Max=491257.85 Min=12.13 Avg=229.87 90=1104.89 99=1244.16 99.9=1551.36 99.99=12607.49] +2025-01-05 16:11:50 175 sec: 681775 operations; [INSERT: Count=681775 Max=491257.85 Min=12.13 Avg=232.85 90=1104.89 99=1244.16 99.9=1554.43 99.99=12713.98] +2025-01-05 16:12:00 185 sec: 715849 operations; [INSERT: Count=715849 Max=491257.85 Min=12.13 Avg=234.58 90=1105.92 99=1244.16 99.9=1556.48 99.99=12607.49] +2025-01-05 16:12:10 195 sec: 750472 operations; [INSERT: Count=750472 Max=491257.85 Min=12.13 Avg=235.97 90=1105.92 99=1245.18 99.9=1566.72 99.99=12558.33] +2025-01-05 16:12:21 206 sec: 759020 operations; [INSERT: Count=759020 Max=491257.85 Min=12.13 Avg=247.31 90=1107.97 99=1248.26 99.9=1587.20 99.99=12648.45] +2025-01-05 16:12:31 216 sec: 790841 operations; [INSERT: Count=790841 Max=491257.85 Min=12.13 Avg=249.04 90=1107.97 99=1247.23 99.9=1580.03 99.99=12607.49] +2025-01-05 16:12:41 226 sec: 798116 operations; [INSERT: Count=798116 Max=491257.85 Min=12.13 Avg=257.13 90=1110.02 99=1249.28 99.9=1588.22 99.99=12648.45] +2025-01-05 16:12:51 237 sec: 827562 operations; [INSERT: Count=827562 Max=5096079.36 Min=11.32 Avg=262.13 90=1108.99 99=1248.26 99.9=1586.17 99.99=12713.98] +2025-01-05 16:13:01 247 sec: 836158 operations; [INSERT: Count=836158 Max=5096079.36 Min=11.32 Avg=271.08 90=1111.04 99=1250.30 99.9=1592.32 99.99=12713.98] +2025-01-05 16:13:11 257 sec: 865916 operations; [INSERT: Count=865916 Max=5096079.36 Min=11.32 Avg=272.53 90=1110.02 99=1249.28 99.9=1587.20 99.99=12697.60] +2025-01-05 16:13:22 267 sec: 874505 operations; [INSERT: Count=874505 Max=5096079.36 Min=11.32 Avg=281.99 90=1112.06 99=1251.33 99.9=1592.32 99.99=12771.33] +2025-01-05 16:13:32 277 sec: 877268 operations; [INSERT: Count=877268 Max=5096079.36 Min=11.32 Avg=284.66 90=1113.09 99=1252.35 99.9=1595.39 99.99=12713.98] +2025-01-05 16:13:42 287 sec: 897056 operations; [INSERT: Count=897056 Max=15099494.40 Min=11.32 Avg=296.54 90=1112.06 99=1250.30 99.9=1588.22 99.99=13123.58] +2025-01-05 16:13:53 298 sec: 911257 operations; [INSERT: Count=911257 Max=15099494.40 Min=11.32 Avg=303.00 90=1113.09 99=1252.35 99.9=1592.32 99.99=13262.85] +2025-01-05 16:14:03 308 sec: 916844 operations; [INSERT: Count=916844 Max=15099494.40 Min=11.32 Avg=308.03 90=1114.11 99=1252.35 99.9=1597.44 99.99=13148.16] +2025-01-05 16:14:13 318 sec: 947805 operations; [INSERT: Count=947805 Max=15099494.40 Min=11.32 Avg=311.48 90=1113.09 99=1252.35 99.9=1588.22 99.99=13500.42] +2025-01-05 16:14:24 329 sec: 956399 operations; [INSERT: Count=956399 Max=15099494.40 Min=11.32 Avg=319.79 90=1115.13 99=1253.38 99.9=1591.30 99.99=13606.91] +2025-01-05 16:14:34 339 sec: 956420 operations; [INSERT: Count=956420 Max=15099494.40 Min=11.32 Avg=319.81 90=1115.13 99=1253.38 99.9=1591.30 99.99=13606.91] +2025-01-05 16:14:44 349 sec: 964593 operations; [INSERT: Count=964593 Max=19461570.56 Min=11.32 Avg=337.62 90=1114.11 99=1253.38 99.9=1588.22 99.99=13664.25] +2025-01-05 16:14:55 360 sec: 990052 operations; [INSERT: Count=990052 Max=19461570.56 Min=11.32 Avg=339.30 90=1115.13 99=1253.38 99.9=1588.22 99.99=14041.09] +2025-01-05 16:15:05 370 sec: 995996 operations; [INSERT: Count=995996 Max=19461570.56 Min=11.32 Avg=344.02 90=1116.16 99=1254.40 99.9=1590.27 99.99=14041.09] +2025-01-05 16:15:15 380 sec: 995996 operations; [INSERT: Count=995996 Max=19461570.56 Min=11.32 Avg=344.02 90=1116.16 99=1254.40 99.9=1590.27 99.99=14041.09] +2025-01-05 16:15:20 385 sec: 1000000 operations; [INSERT: Count=1000000 Max=19461570.56 Min=11.32 Avg=360.74 90=1115.13 99=1254.40 99.9=1590.27 99.99=14180.35] +Load runtime(sec): 385.924 +Load operations(ops): 1000000 +Load throughput(ops/sec): 2591.19 +2025-01-05 16:15:20 0 sec: 0 operations; +2025-01-05 16:15:31 10 sec: 402504 operations; [READ: Count=382629 Max=405536.77 Min=1.29 Avg=16.08 90=24.11 99=52.26 99.9=106.05 99.99=184.45] [UPDATE: Count=19875 Max=468451.33 Min=14.45 Avg=206.09 90=1093.63 99=1233.92 99.9=1353.73 99.99=6799.36] +2025-01-05 16:15:41 20 sec: 533850 operations; [READ: Count=507489 Max=405536.77 Min=1.29 Avg=16.89 90=27.28 99=59.10 99.9=115.90 99.99=194.69] [UPDATE: Count=26361 Max=468451.33 Min=14.45 Avg=438.75 90=1145.86 99=1294.34 99.9=1553.41 99.99=11165.69] +2025-01-05 16:15:51 30 sec: 661416 operations; [READ: Count=628665 Max=405536.77 Min=1.29 Avg=17.68 90=29.89 99=68.09 99.9=128.90 99.99=220.29] [UPDATE: Count=32751 Max=468451.33 Min=14.45 Avg=577.41 90=1181.69 99=1310.72 99.9=1589.25 99.99=12017.66] +2025-01-05 16:16:02 41 sec: 1000000 operations; [READ: Count=950279 Max=405536.77 Min=1.29 Avg=16.04 90=26.59 99=64.58 99.9=121.73 99.99=213.50] [UPDATE: Count=49721 Max=5091885.05 Min=14.45 Avg=505.53 90=1141.76 99=1290.24 99.9=1508.35 99.99=11165.69] +2025-01-05 16:16:02 41 sec: 1000000 operations; [READ: Count=950279 Max=405536.77 Min=1.29 Avg=16.04 90=26.59 99=64.58 99.9=121.73 99.99=213.50] [UPDATE: Count=49721 Max=5091885.05 Min=14.45 Avg=505.53 90=1141.76 99=1290.24 99.9=1508.35 99.99=11165.69] +Run runtime(sec): 41.98 +Run operations(ops): 1000000 +Run throughput(ops/sec): 23820.9 +All steps completed successfully! +``` + +workloadc-1000000-20*1000 + +``` + LD ycsb +2025-01-05 16:16:35 0 sec: 0 operations; +2025-01-05 16:16:45 10 sec: 101975 operations; [INSERT: Count=101975 Max=27623.42 Min=12.84 Avg=74.31 90=60.61 99=1182.72 99.9=1333.25 99.99=8036.35] +2025-01-05 16:16:56 20 sec: 141277 operations; [INSERT: Count=141277 Max=470810.62 Min=12.84 Avg=123.97 90=80.89 99=1200.13 99.9=1358.85 99.99=14753.79] +2025-01-05 16:17:06 30 sec: 162673 operations; [INSERT: Count=162673 Max=470810.62 Min=12.56 Avg=165.88 90=1085.44 99=1213.44 99.9=1372.16 99.99=16670.72] +2025-01-05 16:17:16 40 sec: 181556 operations; [INSERT: Count=181556 Max=470810.62 Min=12.56 Avg=201.11 90=1094.65 99=1222.65 99.9=1392.64 99.99=19496.96] +2025-01-05 16:17:27 51 sec: 207580 operations; [INSERT: Count=207580 Max=985137.15 Min=12.56 Avg=223.30 90=1096.70 99=1226.75 99.9=1410.05 99.99=84279.29] +2025-01-05 16:17:37 61 sec: 222234 operations; [INSERT: Count=222234 Max=985137.15 Min=12.56 Avg=251.87 90=1101.82 99=1233.92 99.9=1438.72 99.99=119275.52] +2025-01-05 16:17:47 71 sec: 227562 operations; [INSERT: Count=227562 Max=985137.15 Min=12.56 Avg=272.46 90=1103.87 99=1240.06 99.9=1460.22 99.99=118751.23] +2025-01-05 16:17:58 82 sec: 257979 operations; [INSERT: Count=257979 Max=7012876.29 Min=12.56 Avg=294.83 90=1101.82 99=1236.99 99.9=1459.20 99.99=130416.64] +2025-01-05 16:18:08 92 sec: 266587 operations; [INSERT: Count=266587 Max=7012876.29 Min=12.56 Avg=321.87 90=1106.94 99=1244.16 99.9=1477.63 99.99=128581.63] +2025-01-05 16:18:18 102 sec: 295023 operations; [INSERT: Count=295023 Max=7012876.29 Min=12.56 Avg=322.69 90=1103.87 99=1240.06 99.9=1470.46 99.99=134086.65] +2025-01-05 16:18:28 113 sec: 303656 operations; [INSERT: Count=303656 Max=7012876.29 Min=12.56 Avg=348.54 90=1107.97 99=1245.18 99.9=1494.02 99.99=134873.09] +2025-01-05 16:18:38 123 sec: 306714 operations; [INSERT: Count=306714 Max=7012876.29 Min=12.56 Avg=356.38 90=1110.02 99=1248.26 99.9=1504.26 99.99=134873.09] +2025-01-05 16:18:48 133 sec: 336841 operations; [INSERT: Count=336841 Max=9814671.36 Min=12.56 Avg=371.34 90=1107.97 99=1246.21 99.9=1494.02 99.99=139329.54] +2025-01-05 16:18:59 144 sec: 345483 operations; [INSERT: Count=345483 Max=9814671.36 Min=12.56 Avg=392.75 90=1111.04 99=1251.33 99.9=1507.33 99.99=139722.75] +2025-01-05 16:19:09 154 sec: 376962 operations; [INSERT: Count=376962 Max=9814671.36 Min=12.56 Avg=384.57 90=1110.02 99=1249.28 99.9=1507.33 99.99=148111.36] +2025-01-05 16:19:19 164 sec: 385568 operations; [INSERT: Count=385568 Max=9814671.36 Min=12.56 Avg=401.26 90=1114.11 99=1255.42 99.9=1524.73 99.99=146276.35] +2025-01-05 16:19:30 175 sec: 405654 operations; [INSERT: Count=405654 Max=9814671.36 Min=12.54 Avg=405.66 90=1111.04 99=1252.35 99.9=1511.42 99.99=149159.93] +2025-01-05 16:19:40 185 sec: 420338 operations; [INSERT: Count=420338 Max=9814671.36 Min=12.54 Avg=414.72 90=1114.11 99=1254.40 99.9=1522.69 99.99=149946.37] +2025-01-05 16:19:50 195 sec: 436205 operations; [INSERT: Count=436205 Max=9814671.36 Min=12.54 Avg=421.70 90=1114.11 99=1254.40 99.9=1525.76 99.99=151912.45] +2025-01-05 16:20:01 206 sec: 459163 operations; [INSERT: Count=459163 Max=9814671.36 Min=12.54 Avg=423.11 90=1115.13 99=1255.42 99.9=1531.90 99.99=158203.90] +2025-01-05 16:20:11 216 sec: 465018 operations; [INSERT: Count=465018 Max=9814671.36 Min=12.54 Avg=432.03 90=1118.21 99=1257.47 99.9=1534.97 99.99=157155.33] +2025-01-05 16:20:21 226 sec: 493288 operations; [INSERT: Count=493288 Max=9814671.36 Min=12.14 Avg=432.82 90=1114.11 99=1254.40 99.9=1522.69 99.99=157155.33] +2025-01-05 16:20:32 237 sec: 501926 operations; [INSERT: Count=501926 Max=9814671.36 Min=12.14 Avg=446.55 90=1117.18 99=1257.47 99.9=1534.97 99.99=158203.90] +2025-01-05 16:20:42 247 sec: 504594 operations; [INSERT: Count=504594 Max=9814671.36 Min=12.14 Avg=450.16 90=1118.21 99=1258.49 99.9=1537.02 99.99=158203.90] +2025-01-05 16:20:52 257 sec: 535147 operations; [INSERT: Count=535147 Max=9831448.57 Min=12.14 Avg=454.77 90=1116.16 99=1256.45 99.9=1528.83 99.99=157941.76] +2025-01-05 16:21:03 267 sec: 543777 operations; [INSERT: Count=543777 Max=9831448.57 Min=12.14 Avg=467.10 90=1119.23 99=1258.49 99.9=1534.97 99.99=158728.19] +2025-01-05 16:21:13 277 sec: 544170 operations; [INSERT: Count=544170 Max=9831448.57 Min=12.14 Avg=467.58 90=1119.23 99=1258.49 99.9=1536.00 99.99=158728.19] +2025-01-05 16:21:23 287 sec: 544170 operations; [INSERT: Count=544170 Max=9831448.57 Min=12.14 Avg=467.58 90=1119.23 99=1258.49 99.9=1536.00 99.99=158728.19] +2025-01-05 16:21:34 298 sec: 575881 operations; [INSERT: Count=575881 Max=21088960.51 Min=12.14 Avg=493.40 90=1118.21 99=1257.47 99.9=1534.97 99.99=161349.63] +2025-01-05 16:21:44 308 sec: 583746 operations; [INSERT: Count=583746 Max=21088960.51 Min=12.14 Avg=501.95 90=1120.26 99=1258.49 99.9=1540.10 99.99=161349.63] +2025-01-05 16:21:54 318 sec: 583746 operations; [INSERT: Count=583746 Max=21088960.51 Min=12.14 Avg=501.95 90=1120.26 99=1258.49 99.9=1540.10 99.99=161349.63] +2025-01-05 16:22:05 329 sec: 614931 operations; [INSERT: Count=614931 Max=21088960.51 Min=12.14 Avg=510.78 90=1119.23 99=1257.47 99.9=1538.05 99.99=161349.63] +2025-01-05 16:22:15 339 sec: 623322 operations; [INSERT: Count=623322 Max=21088960.51 Min=12.14 Avg=519.15 90=1121.28 99=1259.52 99.9=1547.26 99.99=160432.13] +2025-01-05 16:22:25 349 sec: 623322 operations; [INSERT: Count=623322 Max=21088960.51 Min=12.14 Avg=519.15 90=1121.28 99=1259.52 99.9=1547.26 99.99=160432.13] +2025-01-05 16:22:35 360 sec: 651217 operations; [INSERT: Count=651217 Max=21088960.51 Min=12.14 Avg=528.40 90=1119.23 99=1257.47 99.9=1540.10 99.99=163577.86] +2025-01-05 16:22:45 370 sec: 659827 operations; [INSERT: Count=659827 Max=21088960.51 Min=12.14 Avg=536.27 90=1121.28 99=1260.54 99.9=1549.31 99.99=162529.28] +2025-01-05 16:22:55 380 sec: 662898 operations; [INSERT: Count=662898 Max=21088960.51 Min=12.14 Avg=539.06 90=1122.30 99=1261.57 99.9=1559.55 99.99=162529.28] +2025-01-05 16:23:06 391 sec: 689468 operations; [INSERT: Count=689468 Max=21088960.51 Min=12.14 Avg=542.53 90=1119.23 99=1259.52 99.9=1545.21 99.99=166723.58] +2025-01-05 16:23:16 401 sec: 698079 operations; [INSERT: Count=698079 Max=21088960.51 Min=12.14 Avg=549.79 90=1121.28 99=1262.59 99.9=1562.62 99.99=165281.79] +2025-01-05 16:23:26 411 sec: 702474 operations; [INSERT: Count=702474 Max=21088960.51 Min=12.14 Avg=553.44 90=1122.30 99=1263.62 99.9=1567.74 99.99=165281.79] +2025-01-05 16:23:50 435 sec: 702474 operations; [INSERT: Count=702474 Max=21088960.51 Min=12.14 Avg=553.44 90=1122.30 99=1263.62 99.9=1567.74 99.99=165281.79] +2025-01-05 16:24:00 445 sec: 732891 operations; [INSERT: Count=732891 Max=31776047.10 Min=12.14 Avg=582.37 90=1121.28 99=1261.57 99.9=1562.62 99.99=162529.28] +2025-01-05 16:24:10 455 sec: 741528 operations; [INSERT: Count=741528 Max=31776047.10 Min=12.14 Avg=588.73 90=1123.33 99=1263.62 99.9=1563.65 99.99=161349.63] +2025-01-05 16:24:21 465 sec: 742050 operations; [INSERT: Count=742050 Max=31776047.10 Min=12.14 Avg=589.12 90=1123.33 99=1263.62 99.9=1563.65 99.99=161349.63] +2025-01-05 16:24:31 475 sec: 757060 operations; [INSERT: Count=757060 Max=31776047.10 Min=12.14 Avg=603.31 90=1121.28 99=1262.59 99.9=1560.58 99.99=161349.63] +2025-01-05 16:24:41 485 sec: 776087 operations; [INSERT: Count=776087 Max=31776047.10 Min=12.14 Avg=600.83 90=1123.33 99=1262.59 99.9=1561.60 99.99=160432.13] +2025-01-05 16:24:51 496 sec: 781626 operations; [INSERT: Count=781626 Max=31776047.10 Min=12.14 Avg=604.69 90=1124.35 99=1263.62 99.9=1563.65 99.99=160432.13] +2025-01-05 16:25:01 506 sec: 781626 operations; [INSERT: Count=781626 Max=31776047.10 Min=12.14 Avg=604.69 90=1124.35 99=1263.62 99.9=1563.65 99.99=160432.13] +2025-01-05 16:25:11 516 sec: 812210 operations; [INSERT: Count=812210 Max=31776047.10 Min=12.14 Avg=610.74 90=1123.33 99=1262.59 99.9=1560.58 99.99=161349.63] +2025-01-05 16:25:22 526 sec: 820767 operations; [INSERT: Count=820767 Max=31776047.10 Min=12.14 Avg=616.89 90=1124.35 99=1264.64 99.9=1564.67 99.99=161349.63] +2025-01-05 16:25:32 536 sec: 821202 operations; [INSERT: Count=821202 Max=31776047.10 Min=12.14 Avg=617.17 90=1125.38 99=1264.64 99.9=1564.67 99.99=161349.63] +2025-01-05 16:25:42 546 sec: 844288 operations; [INSERT: Count=844288 Max=31776047.10 Min=12.14 Avg=622.72 90=1123.33 99=1262.59 99.9=1559.55 99.99=162136.06] +2025-01-05 16:25:53 557 sec: 855709 operations; [INSERT: Count=855709 Max=31776047.10 Min=12.14 Avg=626.53 90=1124.35 99=1264.64 99.9=1562.62 99.99=163577.86] +2025-01-05 16:26:03 567 sec: 860778 operations; [INSERT: Count=860778 Max=31776047.10 Min=12.14 Avg=629.59 90=1125.38 99=1265.66 99.9=1565.69 99.99=163577.86] +2025-01-05 16:26:13 577 sec: 860778 operations; [INSERT: Count=860778 Max=31776047.10 Min=12.14 Avg=629.59 90=1125.38 99=1265.66 99.9=1565.69 99.99=163577.86] +2025-01-05 16:26:23 588 sec: 887962 operations; [INSERT: Count=887962 Max=31776047.10 Min=12.14 Avg=637.25 90=1123.33 99=1263.62 99.9=1559.55 99.99=166723.58] +2025-01-05 16:26:33 598 sec: 896425 operations; [INSERT: Count=896425 Max=31776047.10 Min=12.14 Avg=642.11 90=1125.38 99=1267.71 99.9=1567.74 99.99=166723.58] +2025-01-05 16:26:43 608 sec: 900354 operations; [INSERT: Count=900354 Max=31776047.10 Min=12.14 Avg=644.32 90=1126.40 99=1268.73 99.9=1576.96 99.99=166723.58] +2025-01-05 16:26:54 618 sec: 900354 operations; [INSERT: Count=900354 Max=31776047.10 Min=12.14 Avg=644.32 90=1126.40 99=1268.73 99.9=1576.96 99.99=166723.58] +2025-01-05 16:27:04 628 sec: 927874 operations; [INSERT: Count=927874 Max=31776047.10 Min=12.14 Avg=652.52 90=1125.38 99=1266.69 99.9=1567.74 99.99=166723.58] +2025-01-05 16:27:14 638 sec: 936401 operations; [INSERT: Count=936401 Max=31776047.10 Min=12.14 Avg=656.98 90=1126.40 99=1268.73 99.9=1572.86 99.99=166723.58] +2025-01-05 16:27:24 649 sec: 939930 operations; [INSERT: Count=939930 Max=31776047.10 Min=12.14 Avg=658.82 90=1127.42 99=1269.76 99.9=1574.91 99.99=166723.58] +2025-01-05 16:27:34 659 sec: 939930 operations; [INSERT: Count=939930 Max=31776047.10 Min=12.14 Avg=658.82 90=1127.42 99=1269.76 99.9=1574.91 99.99=166723.58] +2025-01-05 16:27:44 669 sec: 967876 operations; [INSERT: Count=967876 Max=31776047.10 Min=12.14 Avg=666.41 90=1126.40 99=1268.73 99.9=1567.74 99.99=166723.58] +2025-01-05 16:27:55 679 sec: 976335 operations; [INSERT: Count=976335 Max=31776047.10 Min=12.14 Avg=671.25 90=1128.45 99=1270.78 99.9=1575.93 99.99=167510.02] +2025-01-05 16:28:05 689 sec: 979506 operations; [INSERT: Count=979506 Max=31776047.10 Min=12.14 Avg=672.81 90=1128.45 99=1271.81 99.9=1576.96 99.99=167510.02] +2025-01-05 16:28:15 699 sec: 979506 operations; [INSERT: Count=979506 Max=31776047.10 Min=12.14 Avg=672.81 90=1128.45 99=1271.81 99.9=1576.96 99.99=167510.02] +2025-01-05 16:28:26 710 sec: 979506 operations; [INSERT: Count=979506 Max=31776047.10 Min=12.14 Avg=672.81 90=1128.45 99=1271.81 99.9=1576.96 99.99=167510.02] +2025-01-05 16:28:30 714 sec: 1000000 operations; [INSERT: Count=1000000 Max=31776047.10 Min=12.03 Avg=689.14 90=1127.42 99=1270.78 99.9=1568.77 99.99=169082.88] +Load runtime(sec): 714.6 +Load operations(ops): 1000000 +Load throughput(ops/sec): 1399.38 +2025-01-05 16:28:30 0 sec: 0 operations; +2025-01-05 16:28:40 10 sec: 588638 operations; [READ: Count=588638 Max=8577.02 Min=3.35 Avg=15.81 90=21.97 99=53.92 99.9=116.22 99.99=180.48] +2025-01-05 16:28:46 16 sec: 1000000 operations; [READ: Count=1000000 Max=11018.24 Min=3.31 Avg=15.25 90=21.15 99=51.77 99.9=113.41 99.99=168.57] +Run runtime(sec): 16.6548 +Run operations(ops): 1000000 +Run throughput(ops/sec): 60042.8 +All steps completed successfully! +``` + +workloadd-1000000-20*1000 + +``` + LD ycsb +2025-01-05 16:34:10 0 sec: 0 operations; +2025-01-05 16:34:20 10 sec: 105561 operations; [INSERT: Count=105561 Max=17367.04 Min=11.79 Avg=72.11 90=43.39 99=1189.89 99.9=1323.01 99.99=6950.91] +2025-01-05 16:34:30 20 sec: 164600 operations; [INSERT: Count=164600 Max=50724.86 Min=11.79 Avg=97.89 90=49.92 99=1209.34 99.9=1359.87 99.99=9568.25] +2025-01-05 16:34:41 30 sec: 197517 operations; [INSERT: Count=197517 Max=449576.96 Min=11.79 Avg=131.16 90=82.37 99=1232.89 99.9=1431.55 99.99=11100.16] +2025-01-05 16:34:51 40 sec: 254774 operations; [INSERT: Count=254774 Max=449576.96 Min=11.79 Avg=135.63 90=96.38 99=1238.02 99.9=1438.72 99.99=11968.51] +2025-01-05 16:35:01 50 sec: 305015 operations; [INSERT: Count=305015 Max=449576.96 Min=11.79 Avg=142.10 90=263.68 99=1239.04 99.9=1445.89 99.99=11968.51] +2025-01-05 16:35:11 61 sec: 344034 operations; [INSERT: Count=344034 Max=449576.96 Min=11.79 Avg=153.88 90=1095.68 99=1243.13 99.9=1458.17 99.99=12689.41] +2025-01-05 16:35:21 71 sec: 381832 operations; [INSERT: Count=381832 Max=449576.96 Min=11.79 Avg=162.36 90=1101.82 99=1246.21 99.9=1468.41 99.99=12746.75] +2025-01-05 16:35:31 81 sec: 435326 operations; [INSERT: Count=435326 Max=449576.96 Min=11.14 Avg=162.44 90=1100.80 99=1245.18 99.9=1471.49 99.99=12410.88] +2025-01-05 16:35:42 91 sec: 469614 operations; [INSERT: Count=469614 Max=449576.96 Min=11.14 Avg=171.38 90=1103.87 99=1247.23 99.9=1479.68 99.99=13017.09] +2025-01-05 16:35:52 101 sec: 502942 operations; [INSERT: Count=502942 Max=449576.96 Min=11.14 Avg=178.30 90=1106.94 99=1249.28 99.9=1490.94 99.99=13000.70] +2025-01-05 16:36:02 111 sec: 537494 operations; [INSERT: Count=537494 Max=449576.96 Min=11.14 Avg=183.84 90=1107.97 99=1251.33 99.9=1495.04 99.99=12689.41] +2025-01-05 16:36:12 122 sec: 570065 operations; [INSERT: Count=570065 Max=449576.96 Min=11.14 Avg=189.74 90=1110.02 99=1253.38 99.9=1505.28 99.99=12689.41] +2025-01-05 16:36:22 132 sec: 578399 operations; [INSERT: Count=578399 Max=449576.96 Min=11.14 Avg=203.80 90=1115.13 99=1259.52 99.9=1533.95 99.99=12689.41] +2025-01-05 16:36:32 142 sec: 613210 operations; [INSERT: Count=613210 Max=449576.96 Min=11.14 Avg=207.14 90=1116.16 99=1259.52 99.9=1537.02 99.99=13000.70] +2025-01-05 16:36:43 153 sec: 648709 operations; [INSERT: Count=648709 Max=449576.96 Min=11.14 Avg=210.91 90=1116.16 99=1261.57 99.9=1547.26 99.99=13017.09] +2025-01-05 16:36:53 163 sec: 683156 operations; [INSERT: Count=683156 Max=449576.96 Min=11.14 Avg=213.64 90=1117.18 99=1262.59 99.9=1550.34 99.99=13017.09] +2025-01-05 16:37:03 173 sec: 714972 operations; [INSERT: Count=714972 Max=449576.96 Min=11.14 Avg=216.98 90=1118.21 99=1264.64 99.9=1553.41 99.99=12967.93] +2025-01-05 16:37:14 183 sec: 749226 operations; [INSERT: Count=749226 Max=449576.96 Min=11.14 Avg=220.17 90=1118.21 99=1265.66 99.9=1563.65 99.99=13000.70] +2025-01-05 16:37:24 193 sec: 780964 operations; [INSERT: Count=780964 Max=449576.96 Min=11.14 Avg=222.99 90=1119.23 99=1266.69 99.9=1566.72 99.99=13066.24] +2025-01-05 16:37:34 203 sec: 789352 operations; [INSERT: Count=789352 Max=449576.96 Min=11.14 Avg=232.93 90=1121.28 99=1269.76 99.9=1586.17 99.99=13058.05] +2025-01-05 16:37:44 214 sec: 824697 operations; [INSERT: Count=824697 Max=449576.96 Min=11.14 Avg=234.78 90=1122.30 99=1269.76 99.9=1583.10 99.99=13197.31] +2025-01-05 16:37:54 224 sec: 860492 operations; [INSERT: Count=860492 Max=449576.96 Min=11.14 Avg=235.59 90=1121.28 99=1269.76 99.9=1582.08 99.99=13066.24] +2025-01-05 16:38:04 234 sec: 894914 operations; [INSERT: Count=894914 Max=449576.96 Min=11.14 Avg=236.72 90=1122.30 99=1269.76 99.9=1582.08 99.99=13058.05] +2025-01-05 16:38:15 245 sec: 927388 operations; [INSERT: Count=927388 Max=449576.96 Min=11.14 Avg=238.82 90=1122.30 99=1269.76 99.9=1583.10 99.99=13058.05] +2025-01-05 16:38:25 255 sec: 961250 operations; [INSERT: Count=961250 Max=449576.96 Min=11.14 Avg=239.92 90=1122.30 99=1269.76 99.9=1583.10 99.99=13000.70] +2025-01-05 16:38:35 265 sec: 970086 operations; [INSERT: Count=970086 Max=449576.96 Min=11.14 Avg=247.73 90=1124.35 99=1271.81 99.9=1596.41 99.99=13017.09] +2025-01-05 16:38:40 269 sec: 1000000 operations; [INSERT: Count=1000000 Max=449576.96 Min=11.14 Avg=244.24 90=1123.33 99=1270.78 99.9=1589.25 99.99=12967.93] +Load runtime(sec): 269.687 +Load operations(ops): 1000000 +Load throughput(ops/sec): 3708 +2025-01-05 16:38:40 0 sec: 0 operations; +2025-01-05 16:38:50 10 sec: 130475 operations; [INSERT: Count=6511 Max=261750.78 Min=1081.34 Avg=1213.33 90=1240.06 99=1400.83 99.9=8282.11 99.99=13459.45] [READ: Count=123964 Max=439615.49 Min=1.23 Avg=19.96 90=36.09 99=92.86 99.9=160.38 99.99=271.62] +2025-01-05 16:39:00 20 sec: 689248 operations; [INSERT: Count=34470 Max=261750.78 Min=11.70 Avg=331.39 90=1145.86 99=1305.60 99.9=2539.52 99.99=14663.68] [READ: Count=654778 Max=439615.49 Min=1.19 Avg=12.40 90=23.33 99=61.95 99.9=138.37 99.99=684.03] +2025-01-05 16:39:10 30 sec: 903365 operations; [INSERT: Count=45382 Max=261750.78 Min=11.70 Avg=405.09 90=1160.19 99=1312.77 99.9=2748.41 99.99=14614.53] [READ: Count=857983 Max=439615.49 Min=1.19 Avg=12.57 90=23.68 99=62.49 99.9=164.48 99.99=848.38] +2025-01-05 16:39:12 32 sec: 1000000 operations; [INSERT: Count=50259 Max=261750.78 Min=11.70 Avg=369.41 90=1152.00 99=1302.53 99.9=2490.37 99.99=14614.53] [READ: Count=949741 Max=439615.49 Min=1.19 Avg=12.52 90=23.18 99=61.18 99.9=216.45 99.99=913.41] +Run runtime(sec): 32.4106 +Run operations(ops): 1000000 +Run throughput(ops/sec): 30854.1 +All steps completed successfully! +``` + +workloade-recordcount=100000-operationcount=10000--20*1000 + +``` + LD ycsb +2025-01-05 16:40:46 0 sec: 0 operations; +2025-01-05 16:40:54 7 sec: 99999 operations; [INSERT: Count=99999 Max=446431.23 Min=12.53 Avg=59.93 90=44.16 99=1135.62 99.9=1263.62 99.99=6901.76] +Load runtime(sec): 7.89257 +Load operations(ops): 100000 +Load throughput(ops/sec): 12670.2 +2025-01-05 16:40:54 0 sec: 0 operations; +2025-01-05 16:41:04 10 sec: 3761 operations; [INSERT: Count=190 Max=1444.86 Min=15.39 Avg=408.79 90=1183.74 99=1317.89 99.9=1444.86 99.99=1444.86] [SCAN: Count=3571 Max=26050.56 Min=11.06 Avg=2499.82 90=4599.81 99=7327.74 99.9=14221.31 99.99=26050.56] +2025-01-05 16:41:14 20 sec: 8017 operations; [INSERT: Count=393 Max=1444.86 Min=15.39 Avg=242.06 90=1141.76 99=1291.26 99.9=1444.86 99.99=1444.86] [SCAN: Count=7624 Max=26050.56 Min=11.06 Avg=2364.89 90=4304.90 99=6103.04 99.9=11247.61 99.99=17350.65] +2025-01-05 16:41:18 24 sec: 10000 operations; [INSERT: Count=486 Max=1444.86 Min=15.39 Avg=214.03 90=1116.16 99=1238.02 99.9=1444.86 99.99=1444.86] [SCAN: Count=9514 Max=26050.56 Min=11.06 Avg=2343.41 90=4272.13 99=5824.51 99.9=11067.39 99.99=17350.65] +Run runtime(sec): 24.7688 +Run operations(ops): 10000 +Run throughput(ops/sec): 403.734 +All steps completed successfully! +``` + +workloadf-1000000-20*1000 + +``` + LD ycsb +2025-01-05 16:41:55 0 sec: 0 operations; +2025-01-05 16:42:05 10 sec: 102224 operations; [INSERT: Count=102224 Max=27901.95 Min=12.74 Avg=74.54 90=55.33 99=1187.84 99.9=1379.33 99.99=9502.72] +2025-01-05 16:42:15 20 sec: 161040 operations; [INSERT: Count=161040 Max=38141.95 Min=12.69 Avg=100.71 90=65.25 99=1211.39 99.9=1429.50 99.99=9502.72] +2025-01-05 16:42:25 30 sec: 193791 operations; [INSERT: Count=193791 Max=439091.20 Min=12.18 Avg=133.94 90=93.31 99=1229.82 99.9=1455.10 99.99=10731.52] +2025-01-05 16:42:35 40 sec: 231997 operations; [INSERT: Count=231997 Max=439091.20 Min=12.18 Avg=150.88 90=1086.46 99=1239.04 99.9=1483.78 99.99=11157.50] +2025-01-05 16:42:45 50 sec: 284611 operations; [INSERT: Count=284611 Max=439091.20 Min=12.18 Avg=153.71 90=1088.51 99=1238.02 99.9=1476.61 99.99=11108.35] +2025-01-05 16:42:56 61 sec: 321802 operations; [INSERT: Count=321802 Max=439091.20 Min=12.18 Avg=165.91 90=1094.65 99=1241.09 99.9=1477.63 99.99=11919.36] +2025-01-05 16:43:06 71 sec: 380381 operations; [INSERT: Count=380381 Max=439091.20 Min=12.18 Avg=162.95 90=1091.58 99=1238.02 99.9=1476.61 99.99=11157.50] +2025-01-05 16:43:16 81 sec: 415393 operations; [INSERT: Count=415393 Max=439091.20 Min=12.18 Avg=171.23 90=1096.70 99=1241.09 99.9=1488.89 99.99=11714.56] +2025-01-05 16:43:26 91 sec: 447342 operations; [INSERT: Count=447342 Max=439091.20 Min=12.18 Avg=180.91 90=1100.80 99=1245.18 99.9=1498.11 99.99=11919.36] +2025-01-05 16:43:36 101 sec: 483007 operations; [INSERT: Count=483007 Max=439091.20 Min=11.59 Avg=186.44 90=1102.85 99=1246.21 99.9=1498.11 99.99=11747.33] +2025-01-05 16:43:46 111 sec: 515498 operations; [INSERT: Count=515498 Max=439091.20 Min=11.59 Avg=192.48 90=1105.92 99=1248.26 99.9=1503.23 99.99=11919.36] +2025-01-05 16:43:57 122 sec: 550230 operations; [INSERT: Count=550230 Max=439091.20 Min=11.59 Avg=197.94 90=1107.97 99=1250.30 99.9=1515.52 99.99=12206.08] +2025-01-05 16:44:07 132 sec: 572189 operations; [INSERT: Count=572189 Max=439091.20 Min=11.59 Avg=206.80 90=1110.02 99=1254.40 99.9=1524.73 99.99=12255.23] +2025-01-05 16:44:17 142 sec: 590995 operations; [INSERT: Count=590995 Max=439091.20 Min=11.59 Avg=216.25 90=1113.09 99=1256.45 99.9=1533.95 99.99=12230.66] +2025-01-05 16:44:27 152 sec: 626022 operations; [INSERT: Count=626022 Max=439091.20 Min=11.59 Avg=219.64 90=1113.09 99=1257.47 99.9=1543.17 99.99=12648.45] +2025-01-05 16:44:37 162 sec: 659549 operations; [INSERT: Count=659549 Max=439091.20 Min=11.59 Avg=222.40 90=1114.11 99=1258.49 99.9=1541.12 99.99=12697.60] +2025-01-05 16:44:47 172 sec: 677703 operations; [INSERT: Count=677703 Max=439091.20 Min=11.59 Avg=230.48 90=1115.13 99=1260.54 99.9=1546.24 99.99=12697.60] +2025-01-05 16:44:58 183 sec: 702978 operations; [INSERT: Count=702978 Max=439091.20 Min=11.59 Avg=236.26 90=1116.16 99=1260.54 99.9=1543.17 99.99=12730.37] +2025-01-05 16:45:08 193 sec: 709070 operations; [INSERT: Count=709070 Max=439091.20 Min=11.59 Avg=244.10 90=1117.18 99=1262.59 99.9=1551.36 99.99=12697.60] +2025-01-05 16:45:18 203 sec: 738300 operations; [INSERT: Count=738300 Max=7092568.06 Min=11.59 Avg=250.91 90=1116.16 99=1261.57 99.9=1541.12 99.99=13385.73] +2025-01-05 16:45:29 214 sec: 746759 operations; [INSERT: Count=746759 Max=7092568.06 Min=11.59 Avg=261.94 90=1118.21 99=1264.64 99.9=1553.41 99.99=13557.76] +2025-01-05 16:45:39 224 sec: 748646 operations; [INSERT: Count=748646 Max=7092568.06 Min=11.59 Avg=264.18 90=1119.23 99=1265.66 99.9=1556.48 99.99=13557.76] +2025-01-05 16:45:49 234 sec: 776980 operations; [INSERT: Count=776980 Max=13220446.21 Min=11.59 Avg=276.59 90=1118.21 99=1263.62 99.9=1547.26 99.99=13983.74] +2025-01-05 16:45:59 244 sec: 785516 operations; [INSERT: Count=785516 Max=13220446.21 Min=11.59 Avg=286.25 90=1119.23 99=1265.66 99.9=1552.38 99.99=13983.74] +2025-01-05 16:46:09 254 sec: 788222 operations; [INSERT: Count=788222 Max=13220446.21 Min=11.59 Avg=289.19 90=1120.26 99=1266.69 99.9=1552.38 99.99=13983.74] +2025-01-05 16:46:19 264 sec: 788222 operations; [INSERT: Count=788222 Max=13220446.21 Min=11.59 Avg=289.19 90=1120.26 99=1266.69 99.9=1552.38 99.99=13983.74] +2025-01-05 16:46:30 275 sec: 820602 operations; [INSERT: Count=820602 Max=17448304.64 Min=11.59 Avg=310.24 90=1119.23 99=1266.69 99.9=1552.38 99.99=14999.55] +2025-01-05 16:46:40 285 sec: 827798 operations; [INSERT: Count=827798 Max=17448304.64 Min=11.59 Avg=317.50 90=1121.28 99=1268.73 99.9=1559.55 99.99=14999.55] +2025-01-05 16:46:50 295 sec: 827798 operations; [INSERT: Count=827798 Max=17448304.64 Min=11.59 Avg=317.50 90=1121.28 99=1268.73 99.9=1559.55 99.99=14999.55] +2025-01-05 16:47:00 305 sec: 859747 operations; [INSERT: Count=859747 Max=17448304.64 Min=11.59 Avg=330.55 90=1120.26 99=1267.71 99.9=1553.41 99.99=16162.82] +2025-01-05 16:47:10 315 sec: 867374 operations; [INSERT: Count=867374 Max=17448304.64 Min=11.59 Avg=337.70 90=1121.28 99=1269.76 99.9=1554.43 99.99=15966.21] +2025-01-05 16:47:20 325 sec: 867374 operations; [INSERT: Count=867374 Max=17448304.64 Min=11.59 Avg=337.70 90=1121.28 99=1269.76 99.9=1554.43 99.99=15966.21] +2025-01-05 16:47:31 336 sec: 883864 operations; [INSERT: Count=883864 Max=20652752.89 Min=11.59 Avg=355.46 90=1120.26 99=1268.73 99.9=1549.31 99.99=16302.08] +2025-01-05 16:47:41 346 sec: 901480 operations; [INSERT: Count=901480 Max=20652752.89 Min=11.59 Avg=359.14 90=1121.28 99=1268.73 99.9=1552.38 99.99=16859.13] +2025-01-05 16:47:51 356 sec: 906950 operations; [INSERT: Count=906950 Max=20652752.89 Min=11.59 Avg=363.89 90=1122.30 99=1270.78 99.9=1557.50 99.99=16752.64] +2025-01-05 16:48:02 367 sec: 906950 operations; [INSERT: Count=906950 Max=20652752.89 Min=11.59 Avg=363.89 90=1122.30 99=1270.78 99.9=1557.50 99.99=16752.64] +2025-01-05 16:48:12 377 sec: 938957 operations; [INSERT: Count=938957 Max=20652752.89 Min=11.59 Avg=376.37 90=1122.30 99=1270.78 99.9=1550.34 99.99=16859.13] +2025-01-05 16:48:22 387 sec: 946526 operations; [INSERT: Count=946526 Max=20652752.89 Min=11.59 Avg=382.52 90=1123.33 99=1271.81 99.9=1552.38 99.99=16752.64] +2025-01-05 16:48:32 397 sec: 946526 operations; [INSERT: Count=946526 Max=20652752.89 Min=11.59 Avg=382.52 90=1123.33 99=1271.81 99.9=1552.38 99.99=16752.64] +2025-01-05 16:48:42 407 sec: 950285 operations; [INSERT: Count=950285 Max=21374173.18 Min=11.59 Avg=403.75 90=1123.33 99=1271.81 99.9=1552.38 99.99=17039.36] +2025-01-05 16:48:52 417 sec: 979674 operations; [INSERT: Count=979674 Max=21374173.18 Min=11.59 Avg=401.09 90=1123.33 99=1271.81 99.9=1552.38 99.99=18202.62] +2025-01-05 16:49:03 428 sec: 986102 operations; [INSERT: Count=986102 Max=21374173.18 Min=11.59 Avg=406.56 90=1124.35 99=1272.83 99.9=1554.43 99.99=18792.45] +2025-01-05 16:49:13 438 sec: 986102 operations; [INSERT: Count=986102 Max=21374173.18 Min=11.59 Avg=406.56 90=1124.35 99=1272.83 99.9=1554.43 99.99=18792.45] +2025-01-05 16:49:16 441 sec: 1000000 operations; [INSERT: Count=1000000 Max=21374173.18 Min=11.59 Avg=415.65 90=1123.33 99=1272.83 99.9=1551.36 99.99=18825.22] +Load runtime(sec): 441.168 +Load operations(ops): 1000000 +Load throughput(ops/sec): 2266.71 +2025-01-05 16:49:16 0 sec: 0 operations; +2025-01-05 16:49:26 10 sec: 50686 operations; [READ: Count=33796 Max=477.44 Min=1.68 Avg=30.50 90=58.53 99=130.30 99.9=236.67 99.99=368.64] [UPDATE: Count=16890 Max=12427.26 Min=15.27 Avg=500.79 90=1171.45 99=1301.50 99.9=1567.74 99.99=11362.30] +2025-01-05 16:49:36 20 sec: 69363 operations; [READ: Count=46277 Max=477.44 Min=1.68 Avg=33.11 90=64.58 99=138.37 99.9=232.45 99.99=313.60] [UPDATE: Count=23086 Max=427294.72 Min=15.27 Avg=701.93 90=1196.03 99=1324.03 99.9=1646.59 99.99=12427.26] +2025-01-05 16:49:46 30 sec: 69363 operations; [READ: Count=46277 Max=477.44 Min=1.68 Avg=33.11 90=64.58 99=138.37 99.9=232.45 99.99=313.60] [UPDATE: Count=23086 Max=427294.72 Min=15.27 Avg=701.93 90=1196.03 99=1324.03 99.9=1646.59 99.99=12427.26] +2025-01-05 16:49:56 40 sec: 128651 operations; [READ: Count=85787 Max=532.48 Min=1.68 Avg=26.33 90=49.98 99=122.56 99.9=207.87 99.99=305.92] [UPDATE: Count=42864 Max=20451426.30 Min=13.53 Avg=880.94 90=1141.76 99=1287.17 99.9=1523.71 99.99=131465.21] +2025-01-05 16:50:07 51 sec: 165468 operations; [READ: Count=110307 Max=416808.96 Min=1.68 Avg=32.23 90=53.70 99=138.75 99.9=288.51 99.99=528.89] [UPDATE: Count=55161 Max=20451426.30 Min=13.53 Avg=851.75 90=1173.50 99=1315.84 99.9=1639.42 99.99=107413.50] +2025-01-05 16:50:17 61 sec: 188007 operations; [READ: Count=125345 Max=416808.96 Min=1.68 Avg=33.76 90=57.38 99=154.11 99.9=328.70 99.99=827.90] [UPDATE: Count=62662 Max=20451426.30 Min=13.53 Avg=892.18 90=1205.25 99=1388.54 99.9=1708.03 99.99=107413.50] +2025-01-05 16:50:27 71 sec: 188007 operations; [READ: Count=125345 Max=416808.96 Min=1.68 Avg=33.76 90=57.38 99=154.11 99.9=328.70 99.99=827.90] [UPDATE: Count=62662 Max=20451426.30 Min=13.53 Avg=892.18 90=1205.25 99=1388.54 99.9=1708.03 99.99=107413.50] +2025-01-05 16:50:38 81 sec: 278529 operations; [READ: Count=185562 Max=425984.00 Min=1.68 Avg=39.25 90=53.34 99=166.27 99.9=2449.41 99.99=4435.97] [UPDATE: Count=92967 Max=20451426.30 Min=13.53 Avg=792.96 90=1180.67 99=1349.63 99.9=1615.87 99.99=12427.26] +2025-01-05 16:50:48 91 sec: 301430 operations; [READ: Count=200806 Max=425984.00 Min=1.68 Avg=41.88 90=55.87 99=177.79 99.9=2768.89 99.99=4571.14] [UPDATE: Count=100624 Max=20451426.30 Min=13.53 Avg=820.15 90=1188.86 99=1350.65 99.9=1617.92 99.99=12427.26] +2025-01-05 16:50:58 101 sec: 306301 operations; [READ: Count=204063 Max=425984.00 Min=1.68 Avg=42.61 90=56.41 99=180.86 99.9=2914.30 99.99=4628.48] [UPDATE: Count=102238 Max=20451426.30 Min=13.53 Avg=825.23 90=1189.89 99=1350.65 99.9=1622.02 99.99=12427.26] +2025-01-05 16:51:08 112 sec: 381267 operations; [READ: Count=254134 Max=425984.00 Min=1.48 Avg=44.94 90=52.96 99=216.70 99.9=3215.36 99.99=5038.08] [UPDATE: Count=127133 Max=20451426.30 Min=13.53 Avg=786.77 90=1169.41 99=1329.15 99.9=1583.10 99.99=11886.59] +2025-01-05 16:51:18 122 sec: 404759 operations; [READ: Count=269795 Max=425984.00 Min=1.48 Avg=47.67 90=54.40 99=245.50 99.9=3416.06 99.99=5459.97] [UPDATE: Count=134964 Max=20451426.30 Min=13.53 Avg=804.09 90=1175.55 99=1331.20 99.9=1594.37 99.99=11886.59] +2025-01-05 16:51:28 132 sec: 425225 operations; [READ: Count=283411 Max=425984.00 Min=1.48 Avg=50.03 90=55.94 99=305.66 99.9=3553.28 99.99=5783.55] [UPDATE: Count=141814 Max=20451426.30 Min=13.53 Avg=820.55 90=1179.65 99=1332.22 99.9=1601.54 99.99=11657.22] +2025-01-05 16:51:38 142 sec: 483667 operations; [READ: Count=322447 Max=425984.00 Min=1.48 Avg=52.79 90=53.98 99=455.94 99.9=3700.74 99.99=6180.86] [UPDATE: Count=161220 Max=20451426.30 Min=13.53 Avg=771.94 90=1168.38 99=1319.93 99.9=1579.01 99.99=11558.91] +2025-01-05 16:51:48 152 sec: 518061 operations; [READ: Count=345294 Max=425984.00 Min=1.48 Avg=55.81 90=54.75 99=599.04 99.9=3774.46 99.99=6209.53] [UPDATE: Count=172767 Max=20451426.30 Min=13.53 Avg=764.82 90=1170.43 99=1319.93 99.9=1588.22 99.99=11558.91] +2025-01-05 16:51:58 162 sec: 539077 operations; [READ: Count=359305 Max=425984.00 Min=1.48 Avg=58.77 90=56.38 99=797.70 99.9=3903.49 99.99=6578.18] [UPDATE: Count=179772 Max=20451426.30 Min=13.53 Avg=780.04 90=1176.58 99=1321.98 99.9=1593.34 99.99=11886.59] +2025-01-05 16:52:09 173 sec: 567475 operations; [READ: Count=378216 Max=425984.00 Min=1.48 Avg=61.04 90=56.32 99=1164.29 99.9=3991.55 99.99=6922.24] [UPDATE: Count=189259 Max=20451426.30 Min=13.05 Avg=785.89 90=1173.50 99=1319.93 99.9=1586.17 99.99=12419.07] +2025-01-05 16:52:20 183 sec: 630077 operations; [READ: Count=420027 Max=425984.00 Min=1.48 Avg=65.05 90=55.97 99=1682.43 99.9=4173.82 99.99=7344.13] [UPDATE: Count=210050 Max=20451426.30 Min=13.05 Avg=737.84 90=1168.38 99=1314.82 99.9=1575.93 99.99=12419.07] +2025-01-05 16:52:30 193 sec: 651113 operations; [READ: Count=434077 Max=425984.00 Min=1.48 Avg=67.34 90=57.02 99=1821.69 99.9=4276.22 99.99=7569.41] [UPDATE: Count=217036 Max=20451426.30 Min=13.05 Avg=751.10 90=1172.48 99=1315.84 99.9=1579.01 99.99=12419.07] +2025-01-05 16:52:40 204 sec: 683461 operations; [READ: Count=455645 Max=425984.00 Min=1.48 Avg=69.08 90=57.28 99=1918.97 99.9=4321.28 99.99=7598.08] [UPDATE: Count=227816 Max=20451426.30 Min=13.05 Avg=751.16 90=1171.45 99=1315.84 99.9=1577.98 99.99=12427.26] +2025-01-05 16:52:50 214 sec: 748094 operations; [READ: Count=498852 Max=425984.00 Min=1.40 Avg=72.81 90=57.15 99=2083.84 99.9=4407.30 99.99=7716.86] [UPDATE: Count=249242 Max=20451426.30 Min=13.05 Avg=706.88 90=1167.36 99=1309.69 99.9=1571.84 99.99=12419.07] +2025-01-05 16:53:00 224 sec: 768739 operations; [READ: Count=512676 Max=425984.00 Min=1.40 Avg=74.84 90=58.27 99=2148.35 99.9=4444.16 99.99=7761.92] [UPDATE: Count=256063 Max=20451426.30 Min=13.05 Avg=718.84 90=1171.45 99=1314.82 99.9=1577.98 99.99=12427.26] +2025-01-05 16:53:11 234 sec: 829288 operations; [READ: Count=552973 Max=425984.00 Min=1.40 Avg=79.07 90=58.37 99=2271.23 99.9=4534.27 99.99=7835.65] [UPDATE: Count=276315 Max=20451426.30 Min=13.05 Avg=684.77 90=1167.36 99=1309.69 99.9=1570.82 99.99=12427.26] +2025-01-05 16:53:21 244 sec: 870815 operations; [READ: Count=580658 Max=425984.00 Min=1.40 Avg=81.97 90=58.69 99=2351.10 99.9=4640.77 99.99=8060.93] [UPDATE: Count=290157 Max=20451426.30 Min=13.05 Avg=672.94 90=1167.36 99=1309.69 99.9=1570.82 99.99=13164.54] +2025-01-05 16:53:31 254 sec: 890992 operations; [READ: Count=594140 Max=425984.00 Min=1.40 Avg=83.89 90=59.49 99=2400.26 99.9=4698.11 99.99=8179.71] [UPDATE: Count=296852 Max=20451426.30 Min=13.05 Avg=683.70 90=1169.41 99=1312.77 99.9=1577.98 99.99=13164.54] +2025-01-05 16:53:41 265 sec: 930151 operations; [READ: Count=620292 Max=425984.00 Min=1.40 Avg=85.55 90=59.68 99=2449.41 99.9=4718.59 99.99=8212.48] [UPDATE: Count=309859 Max=20451426.30 Min=13.05 Avg=678.72 90=1168.38 99=1310.72 99.9=1575.93 99.99=13656.06] +2025-01-05 16:53:51 275 sec: 984167 operations; [READ: Count=656362 Max=425984.00 Min=1.40 Avg=88.62 90=59.84 99=2523.14 99.9=4829.18 99.99=8404.99] [UPDATE: Count=327805 Max=20451426.30 Min=13.05 Avg=656.22 90=1166.34 99=1310.72 99.9=1576.96 99.99=13656.06] +2025-01-05 16:54:01 285 sec: 1003410 operations; [READ: Count=669145 Max=425984.00 Min=1.40 Avg=90.65 90=60.70 99=2566.14 99.9=4829.18 99.99=8413.18] [UPDATE: Count=334265 Max=20451426.30 Min=13.05 Avg=665.84 90=1168.38 99=1314.82 99.9=1584.13 99.99=13656.06] +2025-01-05 16:54:12 296 sec: 1042131 operations; [READ: Count=694976 Max=425984.00 Min=1.40 Avg=92.95 90=61.28 99=2613.25 99.9=4878.34 99.99=8413.18] [UPDATE: Count=347155 Max=20451426.30 Min=13.05 Avg=660.05 90=1168.38 99=1314.82 99.9=1584.13 99.99=14041.09] +2025-01-05 16:54:22 306 sec: 1101345 operations; [READ: Count=734373 Max=425984.00 Min=1.40 Avg=95.42 90=61.34 99=2652.16 99.9=4960.26 99.99=8445.95] [UPDATE: Count=366972 Max=20451426.30 Min=13.05 Avg=636.47 90=1165.31 99=1311.74 99.9=1579.01 99.99=13893.63] +2025-01-05 16:54:32 316 sec: 1120558 operations; [READ: Count=747197 Max=425984.00 Min=1.40 Avg=97.24 90=62.14 99=2680.83 99.9=5033.98 99.99=8617.98] [UPDATE: Count=373361 Max=20451426.30 Min=13.05 Avg=645.30 90=1168.38 99=1313.79 99.9=1584.13 99.99=14991.36] +2025-01-05 16:54:42 326 sec: 1158975 operations; [READ: Count=772728 Max=425984.00 Min=1.40 Avg=99.21 90=62.66 99=2711.55 99.9=5042.18 99.99=8626.17] [UPDATE: Count=386247 Max=20451426.30 Min=13.05 Avg=640.70 90=1167.36 99=1312.77 99.9=1584.13 99.99=15302.66] +2025-01-05 16:54:52 336 sec: 1219610 operations; [READ: Count=813227 Max=425984.00 Min=1.39 Avg=101.38 90=62.72 99=2742.27 99.9=5083.14 99.99=8585.22] [UPDATE: Count=406383 Max=20451426.30 Min=13.05 Avg=619.10 90=1165.31 99=1309.69 99.9=1582.08 99.99=14524.42] +2025-01-05 16:55:02 346 sec: 1238972 operations; [READ: Count=826156 Max=425984.00 Min=1.39 Avg=102.80 90=63.55 99=2760.70 99.9=5148.67 99.99=8626.17] [UPDATE: Count=412816 Max=20451426.30 Min=13.05 Avg=627.50 90=1167.36 99=1312.77 99.9=1587.20 99.99=14991.36] +2025-01-05 16:55:13 357 sec: 1270961 operations; [READ: Count=847570 Max=425984.00 Min=1.39 Avg=104.38 90=64.25 99=2770.94 99.9=5165.06 99.99=8945.66] [UPDATE: Count=423391 Max=20451426.30 Min=13.05 Avg=628.31 90=1168.38 99=1314.82 99.9=1590.27 99.99=15302.66] +2025-01-05 16:55:23 367 sec: 1336590 operations; [READ: Count=891387 Max=425984.00 Min=1.39 Avg=106.37 90=64.38 99=2781.18 99.9=5136.38 99.99=9076.74] [UPDATE: Count=445203 Max=20451426.30 Min=12.53 Avg=605.49 90=1165.31 99=1310.72 99.9=1584.13 99.99=14524.42] +2025-01-05 16:55:33 377 sec: 1356137 operations; [READ: Count=904417 Max=425984.00 Min=1.39 Avg=107.53 90=65.25 99=2791.42 99.9=5132.29 99.99=9076.74] [UPDATE: Count=451720 Max=20451426.30 Min=12.53 Avg=613.37 90=1167.36 99=1311.74 99.9=1584.13 99.99=15302.66] +2025-01-05 16:55:44 387 sec: 1375599 operations; [READ: Count=917433 Max=425984.00 Min=1.39 Avg=108.75 90=66.11 99=2805.76 99.9=5160.96 99.99=9076.74] [UPDATE: Count=458166 Max=20451426.30 Min=12.53 Avg=622.31 90=1169.41 99=1312.77 99.9=1586.17 99.99=15663.10] +2025-01-05 16:55:54 397 sec: 1450516 operations; [READ: Count=967339 Max=425984.00 Min=1.39 Avg=111.21 90=66.43 99=2830.34 99.9=5210.11 99.99=9043.97] [UPDATE: Count=483177 Max=20451426.30 Min=12.53 Avg=594.42 90=1165.31 99=1308.67 99.9=1577.98 99.99=15507.45] +2025-01-05 16:56:04 407 sec: 1468268 operations; [READ: Count=979168 Max=425984.00 Min=1.39 Avg=112.99 90=67.26 99=2850.82 99.9=5242.88 99.99=9076.74] [UPDATE: Count=489100 Max=20451426.30 Min=12.53 Avg=601.30 90=1167.36 99=1310.72 99.9=1584.13 99.99=15548.42] +2025-01-05 16:56:14 418 sec: 1487251 operations; [READ: Count=991901 Max=425984.00 Min=1.39 Avg=114.74 90=68.16 99=2865.15 99.9=5275.65 99.99=9109.50] [UPDATE: Count=495350 Max=20451426.30 Min=12.53 Avg=608.63 90=1168.38 99=1311.74 99.9=1584.13 99.99=15663.10] +2025-01-05 16:56:18 422 sec: 1499359 operations; [READ: Count=1000000 Max=425984.00 Min=1.39 Avg=115.39 90=68.42 99=2873.34 99.9=5287.94 99.99=9109.50] [UPDATE: Count=499359 Max=20451426.30 Min=12.53 Avg=607.08 90=1168.38 99=1311.74 99.9=1584.13 99.99=15745.02] +Run runtime(sec): 422.052 +Run operations(ops): 1000000 +Run throughput(ops/sec): 2369.37 +All steps completed successfully! +``` + + + +# YCSB-Leveldb:V3 + +## 10fields*500field-len + +workloada-1000000-10*500 + +``` + LD ycsb +2025-01-04 18:43:32 0 sec: 0 operations; +2025-01-04 18:43:42 10 sec: 590593 operations; [INSERT: Count=590593 Max=6512.64 Min=5.33 Avg=10.98 90=14.71 99=55.58 99.9=88.00 99.99=333.82] +2025-01-04 18:43:50 18 sec: 1000000 operations; [INSERT: Count=1000000 Max=6512.64 Min=5.33 Avg=12.16 90=17.70 99=57.34 99.9=92.67 99.99=316.16] +Load runtime(sec): 18.115 +Load operations(ops): 1000000 +Load throughput(ops/sec): 55202.8 +2025-01-04 18:43:50 0 sec: 0 operations; +2025-01-04 18:44:00 9 sec: 493604 operations; [READ: Count=246810 Max=999.93 Min=2.70 Avg=6.92 90=9.02 99=19.09 99.9=47.94 99.99=306.18] [UPDATE: Count=246794 Max=25296.90 Min=9.01 Avg=16.96 90=21.65 99=60.41 99.9=102.59 99.99=590.34] +2025-01-04 18:44:07 17 sec: 999999 operations; [READ: Count=500268 Max=999.93 Min=2.70 Avg=7.42 90=10.09 99=21.34 99.9=52.13 99.99=331.01] [UPDATE: Count=499731 Max=25296.90 Min=9.00 Avg=18.53 90=27.18 99=69.69 99.9=111.17 99.99=534.53] +Run runtime(sec): 17.3849 +Run operations(ops): 1000000 +Run throughput(ops/sec): 57521.2 +All steps completed successfully! +``` + + + +workloadb-1000000-10*500 + +``` + LD ycsb +2025-01-04 18:45:54 0 sec: 0 operations; +2025-01-04 18:46:04 9 sec: 590276 operations; [INSERT: Count=590276 Max=13189.12 Min=5.33 Avg=11.21 90=15.29 99=55.81 99.9=78.97 99.99=322.30] +2025-01-04 18:46:12 17 sec: 1000000 operations; [INSERT: Count=1000000 Max=13189.12 Min=5.33 Avg=12.17 90=17.41 99=57.41 99.9=83.84 99.99=284.42] +Load runtime(sec): 17.9167 +Load operations(ops): 1000000 +Load throughput(ops/sec): 55813.8 +2025-01-04 18:46:12 0 sec: 0 operations; +2025-01-04 18:46:22 10 sec: 804419 operations; [READ: Count=764183 Max=926.21 Min=2.69 Avg=6.23 90=7.86 99=16.10 99.9=30.53 99.99=357.38] [UPDATE: Count=40236 Max=13180.93 Min=9.38 Avg=39.70 90=49.38 99=84.99 99.9=370.18 99.99=10567.68] +2025-01-04 18:46:23 11 sec: 1000000 operations; [READ: Count=949947 Max=926.21 Min=2.69 Avg=6.28 90=7.99 99=16.19 99.9=30.56 99.99=360.96] [UPDATE: Count=50053 Max=13352.96 Min=9.38 Avg=40.81 90=49.34 99=85.50 99.9=404.48 99.99=11501.57] +Run runtime(sec): 11.7185 +Run operations(ops): 1000000 +Run throughput(ops/sec): 85335.4 +All steps completed successfully! +``` + + + +workloadc-1000000-10*500 + +``` + LD ycsb +2025-01-04 18:48:23 0 sec: 0 operations; +2025-01-04 18:48:33 9 sec: 597329 operations; [INSERT: Count=597329 Max=6266.88 Min=5.44 Avg=11.03 90=16.27 99=53.38 99.9=71.55 99.99=263.94] +2025-01-04 18:48:41 17 sec: 999999 operations; [INSERT: Count=999999 Max=14565.38 Min=5.44 Avg=11.96 90=17.73 99=54.21 99.9=80.64 99.99=255.62] +Load runtime(sec): 17.7072 +Load operations(ops): 1000000 +Load throughput(ops/sec): 56474 +2025-01-04 18:48:41 0 sec: 0 operations; +2025-01-04 18:48:51 10 sec: 820264 operations; [READ: Count=820264 Max=1132.54 Min=3.41 Avg=7.91 90=12.02 99=43.87 99.9=70.66 99.99=378.88] +2025-01-04 18:48:52 11 sec: 1000000 operations; [READ: Count=1000000 Max=1132.54 Min=3.41 Avg=7.75 90=11.65 99=43.65 99.9=68.93 99.99=376.83] +Run runtime(sec): 11.3179 +Run operations(ops): 1000000 +Run throughput(ops/sec): 88355.8 +All steps completed successfully! +``` + + + +workloadd-1000000-10*500 + +``` + LD ycsb +2025-01-04 18:51:10 0 sec: 0 operations; +2025-01-04 18:51:20 10 sec: 634524 operations; [INSERT: Count=634524 Max=4374.53 Min=5.41 Avg=10.15 90=13.69 99=51.17 99.9=66.88 99.99=236.16] +2025-01-04 18:51:26 16 sec: 1000000 operations; [INSERT: Count=1000000 Max=23871.49 Min=5.41 Avg=11.26 90=16.43 99=53.60 99.9=70.33 99.99=238.46] +Load runtime(sec): 16.8912 +Load operations(ops): 1000000 +Load throughput(ops/sec): 59202.3 +2025-01-04 18:51:26 0 sec: 0 operations; +2025-01-04 18:51:36 9 sec: 937394 operations; [INSERT: Count=46788 Max=11616.25 Min=5.84 Avg=31.66 90=41.47 99=75.07 99.9=322.56 99.99=10829.82] [READ: Count=890606 Max=17203.20 Min=2.26 Avg=5.35 90=7.63 99=15.26 99.9=28.22 99.99=355.58] +2025-01-04 18:51:37 10 sec: 1000000 operations; [INSERT: Count=50016 Max=11616.25 Min=5.84 Avg=31.64 90=41.73 99=75.39 99.9=322.56 99.99=10829.82] [READ: Count=949984 Max=17203.20 Min=2.26 Avg=5.36 90=7.69 99=15.29 99.9=28.30 99.99=361.98] +Run runtime(sec): 10.4692 +Run operations(ops): 1000000 +Run throughput(ops/sec): 95518 +All steps completed successfully! +``` + + + +workloade-recordcount=100000-operationcount=10000-10*500 + +``` + LD ycsb +2025-01-04 19:04:28 0 sec: 0 operations; +2025-01-04 19:04:30 1 sec: 100000 operations; [INSERT: Count=100000 Max=578.05 Min=5.40 Avg=7.60 90=8.70 99=25.23 99.9=54.11 99.99=236.29] +Load runtime(sec): 1.30505 +Load operations(ops): 100000 +Load throughput(ops/sec): 76625.5 +2025-01-04 19:04:30 0 sec: 0 operations; +2025-01-04 19:04:39 9 sec: 2405 operations; [INSERT: Count=138 Max=134.91 Min=14.48 Avg=73.29 90=88.70 99=117.82 99.9=134.91 99.99=134.91] [SCAN: Count=2267 Max=9035.77 Min=107.52 Avg=4251.70 90=7323.65 99=8421.38 99.9=8855.55 99.99=9035.77] +2025-01-04 19:04:49 19 sec: 4639 operations; [INSERT: Count=246 Max=608.25 Min=8.88 Avg=77.09 90=93.06 99=117.82 99.9=608.25 99.99=608.25] [SCAN: Count=4393 Max=11075.58 Min=37.76 Avg=4449.28 90=7548.93 99=9134.08 99.9=9961.47 99.99=11075.58] +2025-01-04 19:04:59 29 sec: 6625 operations; [INSERT: Count=344 Max=608.25 Min=8.88 Avg=80.27 90=99.01 99=121.79 99.9=608.25 99.99=608.25] [SCAN: Count=6281 Max=11075.58 Min=37.76 Avg=4688.05 90=7892.99 99=9576.45 99.9=10354.69 99.99=10534.91] +2025-01-04 19:05:10 40 sec: 8781 operations; [INSERT: Count=439 Max=608.25 Min=7.84 Avg=80.83 90=99.07 99=129.34 99.9=608.25 99.99=608.25] [SCAN: Count=8342 Max=1127219.20 Min=37.76 Avg=4850.43 90=7970.81 99=9535.49 99.9=10321.92 99.99=11075.58] +2025-01-04 19:05:16 46 sec: 9998 operations; [INSERT: Count=503 Max=1876.99 Min=7.84 Avg=84.20 90=99.26 99=129.34 99.9=608.25 99.99=1876.99] [SCAN: Count=9495 Max=1127219.20 Min=37.76 Avg=4850.71 90=7991.30 99=9494.53 99.9=10313.73 99.99=11075.58] +Run runtime(sec): 46.3558 +Run operations(ops): 10000 +Run throughput(ops/sec): 215.723 +All steps completed successfully! +``` + + + +workloadf-1000000-10*500 + +``` + LD ycsb +2025-01-04 19:00:10 0 sec: 0 operations; +2025-01-04 19:00:20 10 sec: 700006 operations; [INSERT: Count=700006 Max=3137.53 Min=5.38 Avg=8.74 90=9.71 99=47.17 99.9=60.90 99.99=231.29] +2025-01-04 19:00:26 15 sec: 1000000 operations; [INSERT: Count=1000000 Max=17678.33 Min=5.38 Avg=9.94 90=11.18 99=51.58 99.9=64.86 99.99=236.80] +Load runtime(sec): 15.5099 +Load operations(ops): 1000000 +Load throughput(ops/sec): 64474.8 +2025-01-04 19:00:26 0 sec: 0 operations; +2025-01-04 19:00:36 10 sec: 756627 operations; [READ: Count=504681 Max=106627.07 Min=2.65 Avg=6.58 90=8.21 99=15.46 99.9=31.54 99.99=381.44] [UPDATE: Count=251946 Max=12558.33 Min=8.58 Avg=12.98 90=12.39 99=49.92 99.9=64.25 99.99=607.23] +2025-01-04 19:00:43 17 sec: 1499546 operations; [READ: Count=1000000 Max=106627.07 Min=2.65 Avg=7.05 90=9.30 99=17.73 99.9=32.90 99.99=381.44] [UPDATE: Count=499546 Max=12558.33 Min=8.58 Avg=13.82 90=15.13 99=52.86 99.9=74.81 99.99=490.75] +Run runtime(sec): 17.8002 +Run operations(ops): 1000000 +Run throughput(ops/sec): 56179.1 +All steps completed successfully! +``` + + + +## 10fields*100field-len + +workloada-1000000-10*100 + +``` + LD ycsb +2025-01-04 19:07:55 0 sec: 0 operations; +2025-01-04 19:08:03 8 sec: 1000000 operations; [INSERT: Count=1000000 Max=1120927.74 Min=3.13 Avg=7.24 90=7.59 99=43.30 99.9=54.72 99.99=299.26] +Load runtime(sec): 8.75521 +Load operations(ops): 1000000 +Load throughput(ops/sec): 114218 +2025-01-04 19:08:03 0 sec: 0 operations; +2025-01-04 19:08:12 8 sec: 906762 operations; [READ: Count=453258 Max=766.46 Min=1.86 Avg=5.06 90=6.69 99=13.55 99.9=30.24 99.99=376.57] [UPDATE: Count=453504 Max=5009.41 Min=5.16 Avg=10.20 90=11.49 99=48.41 99.9=62.17 99.99=507.39] +2025-01-04 19:08:13 9 sec: 1000000 operations; [READ: Count=500046 Max=766.46 Min=1.86 Avg=5.10 90=6.77 99=13.55 99.9=30.45 99.99=381.69] [UPDATE: Count=499954 Max=5038.08 Min=5.16 Avg=10.26 90=11.57 99=48.51 99.9=62.46 99.99=509.95] +Run runtime(sec): 9.66972 +Run operations(ops): 1000000 +Run throughput(ops/sec): 103416 +All steps completed successfully! +``` + + + +workloadb-1000000-10*100 + +``` + LD ycsb +2025-01-04 19:09:06 0 sec: 0 operations; +2025-01-04 19:09:14 7 sec: 1000000 operations; [INSERT: Count=1000000 Max=798.21 Min=3.10 Avg=5.56 90=6.67 99=19.09 99.9=48.83 99.99=292.10] +Load runtime(sec): 7.00701 +Load operations(ops): 1000000 +Load throughput(ops/sec): 142714 +2025-01-04 19:09:14 0 sec: 0 operations; +2025-01-04 19:09:24 10 sec: 1000000 operations; [READ: Count=949924 Max=1135607.81 Min=1.74 Avg=6.00 90=5.94 99=14.43 99.9=28.77 99.99=333.31] [UPDATE: Count=50076 Max=1792.00 Min=5.20 Avg=27.38 90=40.83 99=51.10 99.9=92.61 99.99=722.94] +Run runtime(sec): 10.1361 +Run operations(ops): 1000000 +Run throughput(ops/sec): 98656.9 +All steps completed successfully! +``` + + + +workloadc-1000000-10*100 + +``` + LD ycsb +2025-01-04 19:10:12 0 sec: 0 operations; +2025-01-04 19:10:19 6 sec: 1000000 operations; [INSERT: Count=1000000 Max=1092.61 Min=3.04 Avg=5.33 90=6.34 99=20.30 99.9=45.53 99.99=279.55] +Load runtime(sec): 6.90373 +Load operations(ops): 1000000 +Load throughput(ops/sec): 144849 +2025-01-04 19:10:19 0 sec: 0 operations; +2025-01-04 19:10:26 6 sec: 1000000 operations; [READ: Count=1000000 Max=945.66 Min=2.26 Avg=3.83 90=4.29 99=5.74 99.9=25.58 99.99=290.30] +Run runtime(sec): 6.64328 +Run operations(ops): 1000000 +Run throughput(ops/sec): 150528 +All steps completed successfully! +``` + + + +workloadd-1000000-10*100 + +``` + LD ycsb +2025-01-04 19:11:28 0 sec: 0 operations; +2025-01-04 19:11:35 6 sec: 1000000 operations; [INSERT: Count=1000000 Max=857.09 Min=3.12 Avg=5.38 90=6.36 99=19.49 99.9=46.78 99.99=275.97] +Load runtime(sec): 6.76046 +Load operations(ops): 1000000 +Load throughput(ops/sec): 147919 +2025-01-04 19:11:35 0 sec: 0 operations; +2025-01-04 19:11:43 8 sec: 1000000 operations; [INSERT: Count=49406 Max=1587.20 Min=3.26 Avg=18.87 90=34.88 99=42.91 99.9=84.86 99.99=650.24] [READ: Count=950594 Max=571473.92 Min=1.66 Avg=4.37 90=5.46 99=12.81 99.9=24.85 99.99=303.36] +Run runtime(sec): 8.18069 +Run operations(ops): 1000000 +Run throughput(ops/sec): 122239 +All steps completed successfully! +``` + + + +workloade-recordcount=100000-operationcount=10000-10*100 + +``` + LD ycsb +2025-01-04 19:12:35 0 sec: 0 operations; +2025-01-04 19:12:36 0 sec: 100000 operations; [INSERT: Count=100000 Max=796.67 Min=3.03 Avg=4.16 90=4.82 99=11.15 99.9=28.77 99.99=204.16] +Load runtime(sec): 0.56313 +Load operations(ops): 100000 +Load throughput(ops/sec): 177579 +2025-01-04 19:12:36 0 sec: 0 operations; +2025-01-04 19:12:46 9 sec: 2536 operations; [INSERT: Count=137 Max=128.96 Min=10.58 Avg=67.85 90=87.87 99=111.81 99.9=128.96 99.99=128.96] [SCAN: Count=2399 Max=8617.98 Min=46.98 Avg=4041.24 90=7028.73 99=8015.87 99.9=8495.10 99.99=8617.98] +2025-01-04 19:12:56 19 sec: 5001 operations; [INSERT: Count=251 Max=158.46 Min=10.58 Avg=69.64 90=91.65 99=111.81 99.9=158.46 99.99=158.46] [SCAN: Count=4750 Max=8617.98 Min=46.98 Avg=4132.25 90=7135.23 99=8101.89 99.9=8519.68 99.99=8617.98] +2025-01-04 19:13:06 29 sec: 7437 operations; [INSERT: Count=384 Max=158.46 Min=10.58 Avg=70.90 90=94.72 99=117.69 99.9=158.46 99.99=158.46] [SCAN: Count=7053 Max=9601.02 Min=46.98 Avg=4190.69 90=7208.96 99=8212.48 99.9=8617.98 99.99=8880.13] +2025-01-04 19:13:17 41 sec: 9792 operations; [INSERT: Count=486 Max=158.46 Min=10.58 Avg=72.01 90=95.87 99=119.61 99.9=158.46 99.99=158.46] [SCAN: Count=9306 Max=1111490.56 Min=46.98 Avg=4436.21 90=7266.30 99=8318.98 99.9=9363.45 99.99=690487.30] +2025-01-04 19:13:18 42 sec: 9999 operations; [INSERT: Count=494 Max=158.46 Min=10.58 Avg=71.99 90=96.06 99=119.61 99.9=158.46 99.99=158.46] [SCAN: Count=9505 Max=1111490.56 Min=46.98 Avg=4433.36 90=7266.30 99=8318.98 99.9=9011.20 99.99=690487.30] +Run runtime(sec): 42.3571 +Run operations(ops): 10000 +Run throughput(ops/sec): 236.088 +All steps completed successfully! +``` + + + +workloadf-1000000-10*100 + +``` + LD ycsb +2025-01-04 19:17:08 0 sec: 0 operations; +2025-01-04 19:17:16 7 sec: 1000000 operations; [INSERT: Count=1000000 Max=1778.69 Min=3.14 Avg=6.10 90=7.17 99=43.20 99.9=50.66 99.99=294.14] +Load runtime(sec): 7.54327 +Load operations(ops): 1000000 +Load throughput(ops/sec): 132568 +2025-01-04 19:17:16 0 sec: 0 operations; +2025-01-04 19:17:26 9 sec: 1185556 operations; [READ: Count=790800 Max=888.83 Min=1.86 Avg=5.00 90=6.54 99=9.75 99.9=30.64 99.99=426.75] [UPDATE: Count=394756 Max=4460.54 Min=5.24 Avg=7.49 90=8.02 99=19.71 99.9=54.81 99.99=496.13] +2025-01-04 19:17:28 11 sec: 1499353 operations; [READ: Count=1000000 Max=888.83 Min=1.86 Avg=5.07 90=6.70 99=9.94 99.9=30.66 99.99=430.08] [UPDATE: Count=499353 Max=4460.54 Min=5.24 Avg=7.47 90=8.01 99=19.87 99.9=53.89 99.99=488.19] +Run runtime(sec): 11.9756 +Run operations(ops): 1000000 +Run throughput(ops/sec): 83503.2 +All steps completed successfully! +``` + + + +## 20fields*1000field-len + +workloada-1000000-20*1000 + +``` + LD ycsb +2025-01-04 19:19:33 0 sec: 0 operations; +2025-01-04 19:19:43 10 sec: 224275 operations; [INSERT: Count=224275 Max=6361.09 Min=11.08 Avg=23.87 90=55.07 99=83.39 99.9=139.90 99.99=340.22] +2025-01-04 19:19:53 19 sec: 433660 operations; [INSERT: Count=433660 Max=145752.06 Min=11.04 Avg=25.42 90=57.25 99=85.38 99.9=147.46 99.99=333.31] +2025-01-04 19:20:03 29 sec: 631879 operations; [INSERT: Count=631879 Max=145752.06 Min=11.04 Avg=26.70 90=60.16 99=90.50 99.9=158.46 99.99=371.45] +2025-01-04 19:20:13 40 sec: 835326 operations; [INSERT: Count=835326 Max=145752.06 Min=11.04 Avg=27.09 90=60.83 99=100.03 99.9=182.01 99.99=387.07] +2025-01-04 19:20:22 48 sec: 1000000 operations; [INSERT: Count=1000000 Max=145752.06 Min=11.04 Avg=28.01 90=64.13 99=108.93 99.9=192.77 99.99=392.96] +Load runtime(sec): 48.8622 +Load operations(ops): 1000000 +Load throughput(ops/sec): 20465.7 +2025-01-04 19:20:22 0 sec: 0 operations; +2025-01-04 19:20:32 10 sec: 127878 operations; [READ: Count=63694 Max=1661.95 Min=5.01 Avg=14.96 90=20.53 99=48.58 99.9=419.58 99.99=668.67] [UPDATE: Count=64184 Max=27803.65 Min=17.74 Avg=53.75 90=96.38 99=366.85 99.9=1023.49 99.99=4665.34] +2025-01-04 19:20:42 20 sec: 301221 operations; [READ: Count=149927 Max=39550.97 Min=5.01 Avg=28.45 90=25.44 99=328.96 99.9=532.48 99.99=1097.73] [UPDATE: Count=151294 Max=127860.74 Min=17.22 Avg=65.71 90=122.88 99=450.30 99.9=923.13 99.99=4661.25] +2025-01-04 19:20:52 29 sec: 417957 operations; [READ: Count=208353 Max=55345.15 Min=5.01 Avg=38.08 90=48.77 99=352.25 99.9=587.77 99.99=1338.37] [UPDATE: Count=209604 Max=127860.74 Min=17.22 Avg=76.78 90=227.33 99=475.65 99.9=919.55 99.99=3141.63] +2025-01-04 19:21:02 40 sec: 513391 operations; [READ: Count=256145 Max=124190.72 Min=5.01 Avg=46.00 90=195.97 99=369.15 99.9=636.41 99.99=1415.17] [UPDATE: Count=257246 Max=127860.74 Min=17.22 Avg=85.83 90=256.25 99=492.54 99.9=925.18 99.99=3141.63] +2025-01-04 19:21:12 50 sec: 594915 operations; [READ: Count=296776 Max=124190.72 Min=5.01 Avg=51.99 90=206.21 99=392.70 99.9=689.66 99.99=1394.69] [UPDATE: Count=298139 Max=127860.74 Min=17.22 Avg=94.88 90=268.03 99=536.06 99.9=1025.54 99.99=3102.72] +2025-01-04 19:21:22 60 sec: 675407 operations; [READ: Count=336952 Max=124190.72 Min=5.01 Avg=57.55 90=213.50 99=425.47 99.9=765.44 99.99=1584.13] [UPDATE: Count=338455 Max=127860.74 Min=17.22 Avg=100.97 90=276.48 99=563.20 99.9=1046.02 99.99=3141.63] +2025-01-04 19:21:32 70 sec: 746196 operations; [READ: Count=372195 Max=124190.72 Min=5.01 Avg=63.00 90=222.21 99=464.38 99.9=859.65 99.99=2740.22] [UPDATE: Count=374001 Max=127860.74 Min=17.22 Avg=106.89 90=287.49 99=601.09 99.9=1118.21 99.99=3358.72] +2025-01-04 19:21:42 80 sec: 816521 operations; [READ: Count=407324 Max=124190.72 Min=5.01 Avg=67.47 90=232.45 99=493.57 99.9=875.01 99.99=2480.13] [UPDATE: Count=409197 Max=127860.74 Min=17.22 Avg=111.92 90=300.54 99=623.62 99.9=1115.13 99.99=3235.84] +2025-01-04 19:21:52 90 sec: 878437 operations; [READ: Count=438184 Max=124190.72 Min=5.01 Avg=71.84 90=242.69 99=520.19 99.9=937.98 99.99=3137.53] [UPDATE: Count=440253 Max=127860.74 Min=17.22 Avg=117.37 90=313.86 99=655.87 99.9=1160.19 99.99=3852.29] +2025-01-04 19:22:02 100 sec: 941734 operations; [READ: Count=470067 Max=124190.72 Min=5.01 Avg=75.71 90=255.36 99=547.84 99.9=951.29 99.99=3069.95] [UPDATE: Count=471667 Max=127860.74 Min=17.22 Avg=121.76 90=326.91 99=678.91 99.9=1153.02 99.99=3704.83] +2025-01-04 19:22:11 109 sec: 999997 operations; [READ: Count=499268 Max=124190.72 Min=5.01 Avg=79.08 90=266.24 99=567.29 99.9=962.56 99.99=3067.90] [UPDATE: Count=500729 Max=127860.74 Min=17.22 Avg=125.22 90=336.89 99=696.32 99.9=1149.95 99.99=3624.96] +Run runtime(sec): 109.283 +Run operations(ops): 1000000 +Run throughput(ops/sec): 9150.56 +All steps completed successfully! +``` + + + +workloadb-1000000-20*1000 + +``` + LD ycsb +2025-01-04 19:31:11 0 sec: 0 operations; +2025-01-04 19:31:21 9 sec: 191338 operations; [INSERT: Count=191338 Max=17760.26 Min=11.26 Avg=30.27 90=59.49 99=164.74 99.9=370.94 99.99=1328.13] +2025-01-04 19:31:31 19 sec: 323427 operations; [INSERT: Count=323427 Max=22691.84 Min=11.26 Avg=39.54 90=86.91 99=279.55 99.9=680.96 99.99=3506.18] +2025-01-04 19:31:41 29 sec: 460689 operations; [INSERT: Count=460689 Max=22691.84 Min=11.26 Avg=42.95 90=100.73 99=270.33 99.9=662.53 99.99=3117.05] +2025-01-04 19:31:51 39 sec: 593711 operations; [INSERT: Count=593711 Max=22691.84 Min=11.26 Avg=45.25 90=103.49 99=276.99 99.9=656.38 99.99=3051.52] +2025-01-04 19:32:01 49 sec: 767460 operations; [INSERT: Count=767460 Max=22691.84 Min=11.26 Avg=43.14 90=100.03 99=251.39 99.9=607.23 99.99=2832.38] +2025-01-04 19:32:11 59 sec: 899517 operations; [INSERT: Count=899517 Max=52756.48 Min=11.26 Avg=44.57 90=104.96 99=249.34 99.9=592.89 99.99=2576.38] +2025-01-04 19:32:19 67 sec: 999998 operations; [INSERT: Count=999998 Max=1075838.98 Min=11.26 Avg=45.28 90=100.54 99=238.21 99.9=575.49 99.99=2424.83] +Load runtime(sec): 67.3709 +Load operations(ops): 1000000 +Load throughput(ops/sec): 14843.2 +2025-01-04 19:32:19 0 sec: 0 operations; +2025-01-04 19:32:28 8 sec: 0 operations; +2025-01-04 19:32:38 18 sec: 534414 operations; [READ: Count=507700 Max=556.03 Min=4.62 Avg=14.11 90=23.28 99=55.65 99.9=80.38 99.99=256.64] [UPDATE: Count=26714 Max=10608.64 Min=19.54 Avg=67.87 90=98.88 99=140.54 99.9=289.28 99.99=2185.22] +2025-01-04 19:32:46 27 sec: 1000000 operations; [READ: Count=949979 Max=594.43 Min=4.30 Avg=14.06 90=21.82 99=56.38 99.9=91.01 99.99=262.14] [UPDATE: Count=50021 Max=43417.60 Min=18.48 Avg=72.00 90=103.61 99=203.52 99.9=686.59 99.99=4255.74] +Run runtime(sec): 27.2017 +Run operations(ops): 1000000 +Run throughput(ops/sec): 36762.4 +All steps completed successfully! +``` + + + +workloadc-1000000-20*1000 + +``` + LD ycsb +2025-01-04 19:38:33 0 sec: 0 operations; +2025-01-04 19:38:45 11 sec: 151017 operations; [INSERT: Count=151017 Max=1058537.47 Min=11.04 Avg=51.18 90=100.99 99=226.30 99.9=499.45 99.99=2117.63] +2025-01-04 19:38:55 21 sec: 271494 operations; [INSERT: Count=271494 Max=1086324.74 Min=11.04 Avg=59.62 90=110.85 99=235.52 99.9=576.00 99.99=3235.84] +2025-01-04 19:39:05 31 sec: 410419 operations; [INSERT: Count=410419 Max=1086324.74 Min=11.04 Avg=56.59 90=109.76 99=218.62 99.9=562.17 99.99=3299.33] +2025-01-04 19:39:15 41 sec: 551640 operations; [INSERT: Count=551640 Max=1086324.74 Min=11.04 Avg=54.78 90=107.84 99=214.27 99.9=553.98 99.99=3182.59] +2025-01-04 19:39:25 51 sec: 687584 operations; [INSERT: Count=687584 Max=1151336.45 Min=11.04 Avg=56.02 90=108.61 99=211.97 99.9=552.45 99.99=3235.84] +2025-01-04 19:39:35 61 sec: 843014 operations; [INSERT: Count=843014 Max=1151336.45 Min=11.04 Avg=53.94 90=106.30 99=229.63 99.9=633.34 99.99=3241.98] +2025-01-04 19:39:44 70 sec: 999999 operations; [INSERT: Count=999999 Max=1151336.45 Min=11.04 Avg=51.80 90=103.55 99=214.40 99.9=596.99 99.99=3002.37] +Load runtime(sec): 70.8471 +Load operations(ops): 1000000 +Load throughput(ops/sec): 14114.9 +2025-01-04 19:39:44 0 sec: 0 operations; +2025-01-04 19:39:54 10 sec: 34396 operations; [READ: Count=34396 Max=578.56 Min=5.11 Avg=12.69 90=30.29 99=51.07 99.9=79.36 99.99=282.37] +2025-01-04 19:40:05 21 sec: 897734 operations; [READ: Count=897734 Max=1093664.77 Min=4.75 Avg=12.37 90=16.56 99=49.28 99.9=62.69 99.99=281.60] +2025-01-04 19:40:07 22 sec: 1000000 operations; [READ: Count=1000000 Max=1093664.77 Min=4.75 Avg=12.15 90=16.46 99=49.25 99.9=62.30 99.99=286.72] +Run runtime(sec): 22.2029 +Run operations(ops): 1000000 +Run throughput(ops/sec): 45039.2 +All steps completed successfully! +``` + + + +workloadd-1000000-20*1000 + +``` + LD ycsb +2025-01-04 19:41:29 0 sec: 0 operations; +2025-01-04 19:41:39 10 sec: 209255 operations; [INSERT: Count=209255 Max=911.87 Min=10.54 Avg=26.76 90=53.53 99=110.40 99.9=164.09 99.99=300.29] +2025-01-04 19:41:49 20 sec: 368509 operations; [INSERT: Count=368509 Max=488636.41 Min=10.54 Avg=33.23 90=74.75 99=124.80 99.9=232.57 99.99=1790.97] +2025-01-04 19:41:59 29 sec: 523810 operations; [INSERT: Count=523810 Max=488636.41 Min=10.54 Avg=36.20 90=81.15 99=128.38 99.9=250.75 99.99=2301.95] +2025-01-04 19:42:09 39 sec: 678223 operations; [INSERT: Count=678223 Max=488636.41 Min=10.54 Avg=37.92 90=82.56 99=129.53 99.9=256.38 99.99=2096.13] +2025-01-04 19:42:19 49 sec: 850642 operations; [INSERT: Count=850642 Max=488636.41 Min=10.54 Avg=37.74 90=82.56 99=131.58 99.9=258.69 99.99=1921.02] +2025-01-04 19:42:27 58 sec: 999999 operations; [INSERT: Count=999999 Max=488636.41 Min=10.54 Avg=37.39 90=82.05 99=129.66 99.9=247.81 99.99=1790.97] +Load runtime(sec): 58.4519 +Load operations(ops): 1000000 +Load throughput(ops/sec): 17108.1 +2025-01-04 19:42:27 0 sec: 0 operations; +2025-01-04 19:42:37 10 sec: 74489 operations; [INSERT: Count=3782 Max=430.33 Min=12.12 Avg=49.56 90=68.86 99=91.45 99.9=312.83 99.99=430.33] [READ: Count=70707 Max=342.27 Min=4.36 Avg=9.78 90=13.94 99=49.38 99.9=58.98 99.99=255.36] +2025-01-04 19:42:48 21 sec: 845620 operations; [INSERT: Count=42114 Max=1076887.55 Min=12.12 Avg=76.05 90=65.98 99=96.83 99.9=317.69 99.99=2799.61] [READ: Count=803506 Max=4513.79 Min=4.16 Avg=9.59 90=13.91 99=48.51 99.9=59.58 99.99=303.62] +2025-01-04 19:42:49 22 sec: 999999 operations; [INSERT: Count=49860 Max=1076887.55 Min=12.12 Avg=75.23 90=79.81 99=170.11 99.9=354.56 99.99=2764.80] [READ: Count=950139 Max=4513.79 Min=4.16 Avg=9.60 90=13.94 99=47.26 99.9=59.65 99.99=301.06] +Run runtime(sec): 22.177 +Run operations(ops): 1000000 +Run throughput(ops/sec): 45091.7 +All steps completed successfully! +``` + + + +workloade-recordcount=100000-operationcount=10000--20*1000 + +``` + LD ycsb +2025-01-04 19:43:48 0 sec: 0 operations; +2025-01-04 19:43:52 4 sec: 99999 operations; [INSERT: Count=99999 Max=2764.80 Min=10.58 Avg=26.37 90=51.36 99=121.53 99.9=190.08 99.99=461.31] +Load runtime(sec): 4.73872 +Load operations(ops): 100000 +Load throughput(ops/sec): 21102.7 +2025-01-04 19:43:52 0 sec: 0 operations; +2025-01-04 19:44:02 10 sec: 1592 operations; [INSERT: Count=82 Max=264.70 Min=17.89 Avg=127.32 90=227.71 99=261.63 99.9=264.70 99.99=264.70] [SCAN: Count=1510 Max=12984.32 Min=226.82 Avg=6301.33 90=9887.74 99=11730.94 99.9=12320.77 99.99=12984.32] +2025-01-04 19:44:12 20 sec: 3271 operations; [INSERT: Count=163 Max=751.10 Min=16.12 Avg=121.26 90=166.27 99=261.63 99.9=751.10 99.99=751.10] [SCAN: Count=3108 Max=14082.05 Min=115.46 Avg=6233.02 90=9740.29 99=11665.41 99.9=12427.26 99.99=14082.05] +2025-01-04 19:44:22 30 sec: 4967 operations; [INSERT: Count=261 Max=751.10 Min=16.12 Avg=121.51 90=196.22 99=261.63 99.9=751.10 99.99=751.10] [SCAN: Count=4706 Max=14082.05 Min=115.46 Avg=6208.06 90=9764.86 99=11730.94 99.9=12509.18 99.99=14082.05] +2025-01-04 19:44:32 40 sec: 6626 operations; [INSERT: Count=332 Max=751.10 Min=16.12 Avg=117.78 90=162.30 99=261.63 99.9=751.10 99.99=751.10] [SCAN: Count=6294 Max=16809.98 Min=115.46 Avg=6207.91 90=9773.06 99=11730.94 99.9=12509.18 99.99=14082.05] +2025-01-04 19:44:42 50 sec: 8317 operations; [INSERT: Count=415 Max=3520.51 Min=16.12 Avg=130.32 90=211.20 99=266.50 99.9=3520.51 99.99=3520.51] [SCAN: Count=7902 Max=16809.98 Min=85.82 Avg=6191.63 90=9805.82 99=11714.56 99.9=12509.18 99.99=14082.05] +2025-01-04 19:44:52 59 sec: 10000 operations; [INSERT: Count=502 Max=3520.51 Min=16.12 Avg=126.91 90=196.22 99=264.70 99.9=751.10 99.99=3520.51] [SCAN: Count=9498 Max=16809.98 Min=85.82 Avg=6185.89 90=9789.44 99=11681.79 99.9=12509.18 99.99=14082.05] +Run runtime(sec): 59.9708 +Run operations(ops): 10000 +Run throughput(ops/sec): 166.748 +All steps completed successfully! +``` + + + +workloadf-1000000-20*1000 + +``` + LD ycsb +2025-01-04 19:46:54 0 sec: 0 operations; +2025-01-04 19:47:04 10 sec: 189877 operations; [INSERT: Count=189877 Max=6098.94 Min=10.85 Avg=27.02 90=63.81 99=92.03 99.9=143.36 99.99=327.17] +2025-01-04 19:47:14 20 sec: 363623 operations; [INSERT: Count=363623 Max=13459.45 Min=10.85 Avg=29.19 90=71.94 99=94.78 99.9=158.72 99.99=423.42] +2025-01-04 19:47:24 29 sec: 554522 operations; [INSERT: Count=554522 Max=14860.29 Min=10.85 Avg=28.35 90=66.17 99=92.42 99.9=155.26 99.99=394.24] +2025-01-04 19:47:34 39 sec: 731276 operations; [INSERT: Count=731276 Max=14860.29 Min=10.85 Avg=28.80 90=67.39 99=98.43 99.9=161.28 99.99=382.72] +2025-01-04 19:47:45 51 sec: 907984 operations; [INSERT: Count=907984 Max=1051721.73 Min=10.85 Avg=30.33 90=68.54 99=101.06 99.9=170.50 99.99=390.91] +2025-01-04 19:47:50 56 sec: 999999 operations; [INSERT: Count=999999 Max=1051721.73 Min=10.85 Avg=30.19 90=67.65 99=101.06 99.9=171.01 99.99=393.98] +Load runtime(sec): 56.0834 +Load operations(ops): 1000000 +Load throughput(ops/sec): 17830.6 +2025-01-04 19:47:50 0 sec: 0 operations; +2025-01-04 19:47:59 8 sec: 167513 operations; [READ: Count=111693 Max=473.60 Min=5.08 Avg=13.75 90=21.18 99=53.70 99.9=69.95 99.99=203.65] [UPDATE: Count=55820 Max=18677.76 Min=16.45 Avg=45.74 90=84.99 99=216.83 99.9=627.71 99.99=1250.30] +2025-01-04 19:48:09 18 sec: 420546 operations; [READ: Count=280365 Max=348389.38 Min=5.02 Avg=24.23 90=24.27 99=282.88 99.9=511.23 99.99=1306.62] [UPDATE: Count=140181 Max=18677.76 Min=16.45 Avg=50.14 90=99.97 99=216.83 99.9=542.72 99.99=1236.99] +2025-01-04 19:48:19 28 sec: 604393 operations; [READ: Count=403027 Max=348389.38 Min=5.01 Avg=33.87 90=34.46 99=342.01 99.9=703.49 99.99=3239.93] [UPDATE: Count=201366 Max=18677.76 Min=16.45 Avg=49.45 90=94.97 99=210.69 99.9=457.73 99.99=1097.73] +2025-01-04 19:48:29 38 sec: 757689 operations; [READ: Count=505380 Max=348389.38 Min=5.01 Avg=40.90 90=66.05 99=356.86 99.9=664.58 99.99=2928.64] [UPDATE: Count=252309 Max=18677.76 Min=16.45 Avg=50.49 90=92.99 99=209.02 99.9=432.38 99.99=1002.50] +2025-01-04 19:48:39 48 sec: 875514 operations; [READ: Count=583931 Max=348389.38 Min=4.69 Avg=48.02 90=195.33 99=382.46 99.9=791.55 99.99=5242.88] [UPDATE: Count=291583 Max=18677.76 Min=16.45 Avg=52.14 90=94.97 99=213.63 99.9=430.33 99.99=990.21] +2025-01-04 19:48:49 58 sec: 997411 operations; [READ: Count=665275 Max=348389.38 Min=4.69 Avg=53.20 90=206.34 99=406.27 99.9=779.26 99.99=4431.87] [UPDATE: Count=332136 Max=18677.76 Min=16.45 Avg=53.22 90=96.58 99=212.22 99.9=415.23 99.99=924.16] +2025-01-04 19:48:59 68 sec: 1111580 operations; [READ: Count=741456 Max=348389.38 Min=4.69 Avg=58.10 90=215.17 99=435.45 99.9=791.55 99.99=4032.51] [UPDATE: Count=370124 Max=18677.76 Min=16.45 Avg=53.56 90=95.30 99=210.69 99.9=398.85 99.99=906.75] +2025-01-04 19:49:09 78 sec: 1210026 operations; [READ: Count=807016 Max=348389.38 Min=4.69 Avg=63.19 90=221.69 99=465.66 99.9=913.92 99.99=5242.88] [UPDATE: Count=403010 Max=18677.76 Min=16.45 Avg=54.01 90=94.85 99=209.41 99.9=397.06 99.99=884.22] +2025-01-04 19:49:19 88 sec: 1313067 operations; [READ: Count=875717 Max=348389.38 Min=4.69 Avg=67.11 90=229.25 99=482.81 99.9=902.65 99.99=4853.76] [UPDATE: Count=437350 Max=18677.76 Min=16.45 Avg=54.50 90=94.46 99=209.15 99.9=391.94 99.99=848.89] +2025-01-04 19:49:29 98 sec: 1410443 operations; [READ: Count=940627 Max=348389.38 Min=4.69 Avg=70.84 90=237.69 99=502.01 99.9=909.31 99.99=4636.67] [UPDATE: Count=469816 Max=18677.76 Min=16.45 Avg=54.98 90=94.14 99=208.64 99.9=390.40 99.99=843.26] +2025-01-04 19:49:38 108 sec: 1499599 operations; [READ: Count=999997 Max=348389.38 Min=4.69 Avg=74.29 90=248.06 99=522.75 99.9=912.89 99.99=4431.87] [UPDATE: Count=499602 Max=18677.76 Min=16.45 Avg=55.39 90=94.02 99=208.51 99.9=387.07 99.99=833.53] +Run runtime(sec): 108.584 +Run operations(ops): 1000000 +Run throughput(ops/sec): 9209.49 +All steps completed successfully! +``` + + + +# workload_getkeys + +workload_getkeys-100000-10*500-getkeysbyfieldproportion=0.001 + +``` + LD ycsb +2025-01-04 19:53:53 0 sec: 0 operations; +2025-01-04 19:53:54 1 sec: 100000 operations; [INSERT: Count=100000 Max=1814.53 Min=5.60 Avg=8.98 90=10.19 99=39.30 99.9=71.42 99.99=292.10] +Load runtime(sec): 1.46882 +Load operations(ops): 100000 +Load throughput(ops/sec): 68081.7 +2025-01-04 19:53:54 0 sec: 0 operations; +2025-01-04 19:54:04 10 sec: 46086 operations; [READ: Count=46042 Max=79.04 Min=3.10 Avg=5.00 90=5.82 99=9.89 99.9=30.62 99.99=58.40] [GETKEYSBYFIELD: Count=44 Max=257556.48 Min=194641.92 Avg=212005.98 90=224002.05 99=257556.48 99.9=257556.48 99.99=257556.48] +2025-01-04 19:54:14 20 sec: 93080 operations; [READ: Count=92990 Max=79.04 Min=3.10 Avg=5.03 90=5.91 99=10.69 99.9=30.38 99.99=57.66] [GETKEYSBYFIELD: Count=90 Max=257556.48 Min=194641.92 Avg=213242.49 90=227409.92 99=244973.57 99.9=257556.48 99.99=257556.48] +2025-01-04 19:54:16 21 sec: 100000 operations; [READ: Count=99902 Max=79.04 Min=3.10 Avg=5.03 90=5.89 99=10.51 99.9=30.32 99.99=54.59] [GETKEYSBYFIELD: Count=98 Max=257556.48 Min=194641.92 Avg=212870.29 90=227278.85 99=244973.57 99.9=257556.48 99.99=257556.48] +Run runtime(sec): 21.661 +Run operations(ops): 100000 +Run throughput(ops/sec): 4616.6 +All steps completed successfully! +``` + + + +workload_getkeys-100000-10*100-getkeysbyfieldproportion=0.001 + +``` + LD ycsb +2025-01-04 19:57:03 0 sec: 0 operations; +2025-01-04 19:57:03 0 sec: 100000 operations; [INSERT: Count=100000 Max=775.68 Min=3.14 Avg=4.54 90=5.34 99=15.21 99.9=31.61 99.99=242.94] +Load runtime(sec): 0.605355 +Load operations(ops): 100000 +Load throughput(ops/sec): 165192 +2025-01-04 19:57:03 0 sec: 0 operations; +2025-01-04 19:57:14 11 sec: 81386 operations; [READ: Count=81299 Max=216.83 Min=2.39 Avg=3.85 90=4.48 99=6.33 99.9=28.22 99.99=47.30] [GETKEYSBYFIELD: Count=87 Max=1167065.09 Min=97779.71 Avg=119777.21 90=111083.52 99=116654.08 99.9=1167065.09 99.99=1167065.09] +2025-01-04 19:57:16 12 sec: 100000 operations; [READ: Count=99896 Max=216.83 Min=2.26 Avg=3.80 90=4.42 99=6.24 99.9=27.70 99.99=46.98] [GETKEYSBYFIELD: Count=104 Max=1167065.09 Min=97779.71 Avg=116532.15 90=111083.52 99=116654.08 99.9=1167065.09 99.99=1167065.09] +Run runtime(sec): 12.737 +Run operations(ops): 100000 +Run throughput(ops/sec): 7851.13 +All steps completed successfully! +``` + + + +workload_getkeys-100000-20*1000-getkeysbyfieldproportion=0.001 + +``` + LD ycsb +2025-01-04 19:58:09 0 sec: 0 operations; +2025-01-04 19:58:14 4 sec: 100000 operations; [INSERT: Count=100000 Max=5672.96 Min=10.30 Avg=29.59 90=67.07 99=86.27 99.9=152.70 99.99=370.94] +Load runtime(sec): 4.93885 +Load operations(ops): 100000 +Load throughput(ops/sec): 20247.6 +2025-01-04 19:58:14 0 sec: 0 operations; +2025-01-04 19:58:23 9 sec: 18226 operations; [READ: Count=18205 Max=60.90 Min=4.49 Avg=7.49 90=8.41 99=16.21 99.9=32.77 99.99=58.40] [GETKEYSBYFIELD: Count=21 Max=481558.53 Min=233046.02 Avg=447445.48 90=477102.08 99=481558.53 99.9=481558.53 99.99=481558.53] +2025-01-04 19:58:33 19 sec: 35562 operations; [READ: Count=35520 Max=60.90 Min=4.49 Avg=7.51 90=8.42 99=16.30 99.9=32.90 99.99=51.01] [GETKEYSBYFIELD: Count=42 Max=482082.82 Min=233046.02 Avg=450798.74 90=477888.51 99=482082.82 99.9=482082.82 99.99=482082.82] +2025-01-04 19:58:44 29 sec: 54955 operations; [READ: Count=54892 Max=60.90 Min=4.49 Avg=7.59 90=8.54 99=16.18 99.9=33.12 99.99=51.01] [GETKEYSBYFIELD: Count=63 Max=521404.41 Min=233046.02 Avg=457704.46 90=482082.82 99=507248.64 99.9=521404.41 99.99=521404.41] +2025-01-04 19:58:54 39 sec: 76867 operations; [READ: Count=76783 Max=324.35 Min=4.49 Avg=7.60 90=8.54 99=16.12 99.9=33.12 99.99=52.51] [GETKEYSBYFIELD: Count=84 Max=525598.72 Min=233046.02 Avg=463173.34 90=485228.54 99=521404.41 99.9=525598.72 99.99=525598.72] +2025-01-04 19:59:02 48 sec: 100000 operations; [READ: Count=99898 Max=324.35 Min=4.49 Avg=7.63 90=8.55 99=17.30 99.9=33.25 99.99=52.61] [GETKEYSBYFIELD: Count=102 Max=525598.72 Min=233046.02 Avg=464891.18 90=485228.54 99=521404.41 99.9=525598.72 99.99=525598.72] +Run runtime(sec): 48.4727 +Run operations(ops): 100000 +Run throughput(ops/sec): 2063.02 +All steps completed successfully! +``` + + + +workload_getkeys-100000-20*1000-getkeysbyfieldproportion=0.01 + +``` + LD ycsb +2025-01-04 20:00:44 0 sec: 0 operations; +2025-01-04 20:00:49 4 sec: 100000 operations; [INSERT: Count=100000 Max=7639.04 Min=10.52 Avg=22.76 90=52.67 99=80.19 99.9=130.05 99.99=312.83] +Load runtime(sec): 4.34701 +Load operations(ops): 100000 +Load throughput(ops/sec): 23004.3 +2025-01-04 20:00:49 0 sec: 0 operations; +2025-01-04 20:01:00 11 sec: 2702 operations; [READ: Count=2681 Max=57.89 Min=4.36 Avg=8.17 90=9.26 99=27.23 99.9=40.13 99.99=57.89] [GETKEYSBYFIELD: Count=21 Max=1519386.62 Min=401342.46 Avg=511511.60 90=475791.36 99=1519386.62 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:01:10 21 sec: 5261 operations; [READ: Count=5218 Max=57.89 Min=4.36 Avg=8.23 90=9.42 99=28.05 99.9=39.62 99.99=48.93] [GETKEYSBYFIELD: Count=43 Max=1519386.62 Min=401342.46 Avg=479909.46 90=466092.03 99=1519386.62 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:01:20 31 sec: 7645 operations; [READ: Count=7579 Max=57.89 Min=4.36 Avg=8.23 90=9.45 99=28.03 99.9=39.20 99.99=48.93] [GETKEYSBYFIELD: Count=66 Max=1519386.62 Min=401342.46 Avg=467283.60 90=464519.17 99=731381.76 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:01:31 42 sec: 10489 operations; [READ: Count=10401 Max=57.89 Min=4.36 Avg=8.18 90=9.41 99=27.61 99.9=39.62 99.99=48.93] [GETKEYSBYFIELD: Count=88 Max=1519386.62 Min=401342.46 Avg=476205.43 90=466092.03 99=1503657.98 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:01:41 52 sec: 12537 operations; [READ: Count=12426 Max=87.17 Min=4.36 Avg=8.21 90=9.42 99=28.03 99.9=40.13 99.99=57.89] [GETKEYSBYFIELD: Count=111 Max=1519386.62 Min=401342.46 Avg=469867.14 90=466092.03 99=1503657.98 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:01:51 62 sec: 14592 operations; [READ: Count=14459 Max=87.17 Min=4.36 Avg=8.22 90=9.45 99=27.76 99.9=41.22 99.99=57.89] [GETKEYSBYFIELD: Count=133 Max=1519386.62 Min=368312.32 Avg=465253.37 90=464519.17 99=1503657.98 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:02:01 72 sec: 17161 operations; [READ: Count=17005 Max=87.17 Min=4.36 Avg=8.21 90=9.42 99=27.76 99.9=40.13 99.99=48.93] [GETKEYSBYFIELD: Count=156 Max=1519386.62 Min=368312.32 Avg=462632.07 90=464519.17 99=731381.76 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:02:11 82 sec: 19587 operations; [READ: Count=19409 Max=92.67 Min=4.36 Avg=8.21 90=9.42 99=27.86 99.9=40.22 99.99=57.89] [GETKEYSBYFIELD: Count=178 Max=1519386.62 Min=368312.32 Avg=461114.24 90=464519.17 99=731381.76 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:02:21 92 sec: 22250 operations; [READ: Count=22050 Max=92.67 Min=4.36 Avg=8.22 90=9.43 99=27.68 99.9=40.22 99.99=57.89] [GETKEYSBYFIELD: Count=200 Max=1519386.62 Min=368312.32 Avg=459565.96 90=464519.17 99=731381.76 99.9=1519386.62 99.99=1519386.62] +2025-01-04 20:02:32 103 sec: 24009 operations; [READ: Count=23788 Max=92.67 Min=4.36 Avg=8.29 90=9.56 99=28.02 99.9=40.22 99.99=57.89] [GETKEYSBYFIELD: Count=221 Max=1551892.48 Min=368312.32 Avg=466631.74 90=468975.61 99=1503657.98 99.9=1551892.48 99.99=1551892.48] +2025-01-04 20:02:42 113 sec: 27347 operations; [READ: Count=27104 Max=92.67 Min=4.36 Avg=8.24 90=9.53 99=27.86 99.9=39.97 99.99=48.93] [GETKEYSBYFIELD: Count=243 Max=1551892.48 Min=368312.32 Avg=465637.86 90=470024.19 99=1503657.98 99.9=1551892.48 99.99=1551892.48] +2025-01-04 20:02:52 123 sec: 29917 operations; [READ: Count=29653 Max=92.67 Min=4.36 Avg=8.25 90=9.54 99=27.73 99.9=39.62 99.99=48.93] [GETKEYSBYFIELD: Count=264 Max=1551892.48 Min=368312.32 Avg=464912.88 90=470024.19 99=731381.76 99.9=1551892.48 99.99=1551892.48] +2025-01-04 20:03:02 133 sec: 32187 operations; [READ: Count=31900 Max=92.67 Min=4.36 Avg=8.26 90=9.54 99=27.95 99.9=39.39 99.99=48.93] [GETKEYSBYFIELD: Count=287 Max=1551892.48 Min=368312.32 Avg=464023.20 90=470286.34 99=731381.76 99.9=1551892.48 99.99=1551892.48] +2025-01-04 20:03:14 144 sec: 34440 operations; [READ: Count=34131 Max=92.67 Min=4.36 Avg=8.27 90=9.56 99=28.00 99.9=39.36 99.99=51.33] [GETKEYSBYFIELD: Count=309 Max=1626341.38 Min=368312.32 Avg=467004.45 90=470810.62 99=1503657.98 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:03:24 154 sec: 37072 operations; [READ: Count=36741 Max=92.67 Min=4.36 Avg=8.27 90=9.56 99=28.00 99.9=39.39 99.99=51.33] [GETKEYSBYFIELD: Count=331 Max=1626341.38 Min=368312.32 Avg=466155.79 90=471334.91 99=1503657.98 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:03:34 164 sec: 39067 operations; [READ: Count=38715 Max=92.67 Min=4.36 Avg=8.28 90=9.57 99=28.02 99.9=39.39 99.99=51.33] [GETKEYSBYFIELD: Count=352 Max=1626341.38 Min=368312.32 Avg=466006.76 90=471859.20 99=731381.76 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:03:44 174 sec: 40397 operations; [READ: Count=40022 Max=92.67 Min=4.36 Avg=8.29 90=9.57 99=28.19 99.9=39.39 99.99=51.33] [GETKEYSBYFIELD: Count=375 Max=1626341.38 Min=368312.32 Avg=464223.47 90=471334.91 99=731381.76 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:03:54 184 sec: 43244 operations; [READ: Count=42846 Max=92.67 Min=4.36 Avg=8.27 90=9.54 99=28.00 99.9=39.20 99.99=51.33] [GETKEYSBYFIELD: Count=398 Max=1626341.38 Min=368312.32 Avg=462590.30 90=470286.34 99=731381.76 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:04:05 196 sec: 45396 operations; [READ: Count=44977 Max=92.67 Min=4.36 Avg=8.29 90=9.58 99=28.02 99.9=39.13 99.99=51.33] [GETKEYSBYFIELD: Count=419 Max=1626341.38 Min=368312.32 Avg=466311.63 90=473694.21 99=1503657.98 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:04:15 206 sec: 48252 operations; [READ: Count=47809 Max=92.67 Min=4.36 Avg=8.26 90=9.55 99=27.86 99.9=38.40 99.99=50.98] [GETKEYSBYFIELD: Count=443 Max=1626341.38 Min=368312.32 Avg=464403.78 90=472121.34 99=1503657.98 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:04:25 216 sec: 50152 operations; [READ: Count=49687 Max=92.67 Min=4.36 Avg=8.26 90=9.54 99=27.89 99.9=38.72 99.99=51.33] [GETKEYSBYFIELD: Count=465 Max=1626341.38 Min=368312.32 Avg=463348.26 90=471859.20 99=786432.00 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:04:35 226 sec: 52455 operations; [READ: Count=51968 Max=92.67 Min=4.36 Avg=8.28 90=9.56 99=27.95 99.9=39.20 99.99=64.06] [GETKEYSBYFIELD: Count=487 Max=1626341.38 Min=368312.32 Avg=463702.32 90=472121.34 99=786432.00 99.9=1626341.38 99.99=1626341.38] +2025-01-04 20:04:47 237 sec: 55353 operations; [READ: Count=54845 Max=92.67 Min=4.36 Avg=8.27 90=9.56 99=27.93 99.9=39.13 99.99=64.06] [GETKEYSBYFIELD: Count=508 Max=1626341.38 Min=368312.32 Avg=465966.38 90=473694.21 99=1503657.98 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:04:57 247 sec: 56935 operations; [READ: Count=56404 Max=92.67 Min=4.36 Avg=8.28 90=9.57 99=28.03 99.9=39.39 99.99=57.89] [GETKEYSBYFIELD: Count=531 Max=1626341.38 Min=368312.32 Avg=465235.99 90=472907.78 99=1503657.98 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:05:07 258 sec: 59616 operations; [READ: Count=59063 Max=92.67 Min=4.36 Avg=8.28 90=9.57 99=28.00 99.9=39.36 99.99=57.89] [GETKEYSBYFIELD: Count=553 Max=1626341.38 Min=368312.32 Avg=465523.42 90=472907.78 99=840433.66 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:05:17 268 sec: 61662 operations; [READ: Count=61087 Max=92.67 Min=4.36 Avg=8.28 90=9.57 99=27.98 99.9=39.20 99.99=57.89] [GETKEYSBYFIELD: Count=575 Max=1626341.38 Min=368312.32 Avg=464981.23 90=472907.78 99=840433.66 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:05:27 278 sec: 64525 operations; [READ: Count=63928 Max=92.67 Min=4.36 Avg=8.27 90=9.56 99=27.93 99.9=39.13 99.99=57.89] [GETKEYSBYFIELD: Count=597 Max=1626341.38 Min=368312.32 Avg=464326.62 90=471859.20 99=840433.66 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:05:37 288 sec: 67644 operations; [READ: Count=67025 Max=92.67 Min=4.36 Avg=8.26 90=9.55 99=27.87 99.9=38.78 99.99=57.89] [GETKEYSBYFIELD: Count=619 Max=1626341.38 Min=368312.32 Avg=463931.57 90=471859.20 99=840433.66 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:05:47 298 sec: 69573 operations; [READ: Count=68932 Max=92.67 Min=4.36 Avg=8.27 90=9.55 99=27.93 99.9=38.72 99.99=57.89] [GETKEYSBYFIELD: Count=641 Max=1626341.38 Min=368312.32 Avg=463528.46 90=471859.20 99=840433.66 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:05:57 308 sec: 71085 operations; [READ: Count=70425 Max=9871.36 Min=4.36 Avg=8.44 90=9.60 99=28.08 99.9=39.39 99.99=66.50] [GETKEYSBYFIELD: Count=660 Max=1626341.38 Min=368312.32 Avg=465232.72 90=472907.78 99=840433.66 99.9=1585446.91 99.99=1626341.38] +2025-01-04 20:07:46 417 sec: 72971 operations; [READ: Count=72290 Max=9871.36 Min=4.36 Avg=8.44 90=9.61 99=28.16 99.9=39.62 99.99=66.50] [GETKEYSBYFIELD: Count=681 Max=99857989.63 Min=368312.32 Avg=611465.89 90=475791.36 99=1233125.38 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:07:56 427 sec: 74581 operations; [READ: Count=73878 Max=9871.36 Min=4.36 Avg=8.45 90=9.62 99=28.25 99.9=39.62 99.99=66.50] [GETKEYSBYFIELD: Count=703 Max=99857989.63 Min=368312.32 Avg=606942.97 90=475791.36 99=1233125.38 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:08:06 437 sec: 77395 operations; [READ: Count=76671 Max=9871.36 Min=4.36 Avg=8.44 90=9.62 99=28.18 99.9=39.20 99.99=64.06] [GETKEYSBYFIELD: Count=724 Max=99857989.63 Min=368312.32 Avg=602976.10 90=476577.79 99=1233125.38 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:08:16 447 sec: 79723 operations; [READ: Count=78978 Max=9871.36 Min=4.36 Avg=8.45 90=9.62 99=28.25 99.9=39.39 99.99=64.06] [GETKEYSBYFIELD: Count=745 Max=99857989.63 Min=368312.32 Avg=599103.37 90=477364.22 99=1233125.38 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:08:26 457 sec: 81379 operations; [READ: Count=80612 Max=9871.36 Min=4.36 Avg=8.45 90=9.63 99=28.32 99.9=39.20 99.99=64.06] [GETKEYSBYFIELD: Count=767 Max=99857989.63 Min=368312.32 Avg=595160.01 90=477364.22 99=840433.66 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:08:36 467 sec: 83499 operations; [READ: Count=82710 Max=9871.36 Min=4.36 Avg=8.45 90=9.64 99=28.34 99.9=39.36 99.99=64.06] [GETKEYSBYFIELD: Count=789 Max=99857989.63 Min=368312.32 Avg=591353.84 90=477364.22 99=840433.66 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:08:46 477 sec: 85503 operations; [READ: Count=84693 Max=9871.36 Min=4.36 Avg=8.46 90=9.64 99=28.37 99.9=39.36 99.99=64.06] [GETKEYSBYFIELD: Count=810 Max=99857989.63 Min=368312.32 Avg=588195.79 90=477364.22 99=840433.66 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:08:56 487 sec: 87519 operations; [READ: Count=86687 Max=9871.36 Min=4.36 Avg=8.46 90=9.65 99=28.37 99.9=39.39 99.99=63.62] [GETKEYSBYFIELD: Count=832 Max=99857989.63 Min=368312.32 Avg=584765.12 90=477364.22 99=840433.66 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:06 497 sec: 89323 operations; [READ: Count=88470 Max=9871.36 Min=4.36 Avg=8.46 90=9.65 99=28.38 99.9=39.62 99.99=63.62] [GETKEYSBYFIELD: Count=853 Max=99857989.63 Min=368312.32 Avg=581671.57 90=477102.08 99=786432.00 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:16 507 sec: 91520 operations; [READ: Count=90645 Max=9871.36 Min=4.36 Avg=8.46 90=9.65 99=28.45 99.9=39.74 99.99=63.62] [GETKEYSBYFIELD: Count=875 Max=99857989.63 Min=368312.32 Avg=578677.49 90=477102.08 99=786432.00 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:26 517 sec: 93620 operations; [READ: Count=92723 Max=9871.36 Min=4.36 Avg=8.47 90=9.66 99=28.50 99.9=39.62 99.99=63.62] [GETKEYSBYFIELD: Count=897 Max=99857989.63 Min=368312.32 Avg=575807.77 90=477102.08 99=786432.00 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:36 527 sec: 95578 operations; [READ: Count=94659 Max=9871.36 Min=4.36 Avg=8.47 90=9.67 99=28.51 99.9=39.39 99.99=63.62] [GETKEYSBYFIELD: Count=919 Max=99857989.63 Min=368312.32 Avg=572898.60 90=476839.93 99=786432.00 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:46 537 sec: 97298 operations; [READ: Count=96358 Max=9871.36 Min=4.36 Avg=8.48 90=9.68 99=28.54 99.9=39.39 99.99=61.92] [GETKEYSBYFIELD: Count=940 Max=99857989.63 Min=368312.32 Avg=570331.36 90=476839.93 99=786432.00 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:56 547 sec: 99746 operations; [READ: Count=98784 Max=9871.36 Min=4.36 Avg=8.48 90=9.69 99=28.59 99.9=39.74 99.99=63.62] [GETKEYSBYFIELD: Count=962 Max=99857989.63 Min=368312.32 Avg=568057.87 90=477364.22 99=756023.30 99.9=1626341.38 99.99=99857989.63] +2025-01-04 20:09:58 549 sec: 100000 operations; [READ: Count=99034 Max=9871.36 Min=4.36 Avg=8.48 90=9.69 99=28.62 99.9=39.74 99.99=63.62] [GETKEYSBYFIELD: Count=966 Max=99857989.63 Min=368312.32 Avg=567599.02 90=477364.22 99=756023.30 99.9=1626341.38 99.99=99857989.63] +Run runtime(sec): 549.445 +Run operations(ops): 100000 +Run throughput(ops/sec): 182.002 +All steps completed successfully! +``` + + + + + diff --git a/设计文档.assets/image-20241223101349130.png b/设计文档.assets/image-20241223101349130.png new file mode 100644 index 0000000..5e4bb8c Binary files /dev/null and b/设计文档.assets/image-20241223101349130.png differ diff --git a/设计文档.assets/image-20241224015301281.png b/设计文档.assets/image-20241224015301281.png new file mode 100644 index 0000000..4eaa1b6 Binary files /dev/null and b/设计文档.assets/image-20241224015301281.png differ diff --git a/设计文档.assets/image-20241224020408260.png b/设计文档.assets/image-20241224020408260.png new file mode 100644 index 0000000..7e975ce Binary files /dev/null and b/设计文档.assets/image-20241224020408260.png differ diff --git a/设计文档.assets/image-20250105194455143.png b/设计文档.assets/image-20250105194455143.png new file mode 100644 index 0000000..983a673 Binary files /dev/null and b/设计文档.assets/image-20250105194455143.png differ diff --git a/设计文档.assets/image-20250105194658678.png b/设计文档.assets/image-20250105194658678.png new file mode 100644 index 0000000..9790afd Binary files /dev/null and b/设计文档.assets/image-20250105194658678.png differ diff --git a/设计文档.assets/image-20250105205248481.png b/设计文档.assets/image-20250105205248481.png new file mode 100644 index 0000000..551ba1a Binary files /dev/null and b/设计文档.assets/image-20250105205248481.png differ diff --git a/设计文档.assets/image-20250105205536198.png b/设计文档.assets/image-20250105205536198.png new file mode 100644 index 0000000..c2d7da9 Binary files /dev/null and b/设计文档.assets/image-20250105205536198.png differ diff --git a/设计文档.assets/image-20250105205545925.png b/设计文档.assets/image-20250105205545925.png new file mode 100644 index 0000000..c2d7da9 Binary files /dev/null and b/设计文档.assets/image-20250105205545925.png differ diff --git a/设计文档.assets/image-20250105205822843.png b/设计文档.assets/image-20250105205822843.png new file mode 100644 index 0000000..8d5e055 Binary files /dev/null and b/设计文档.assets/image-20250105205822843.png differ diff --git a/设计文档.assets/image-20250105210254484.png b/设计文档.assets/image-20250105210254484.png new file mode 100644 index 0000000..7905eda Binary files /dev/null and b/设计文档.assets/image-20250105210254484.png differ diff --git a/设计文档.assets/image-20250105210350396.png b/设计文档.assets/image-20250105210350396.png new file mode 100644 index 0000000..d421c07 Binary files /dev/null and b/设计文档.assets/image-20250105210350396.png differ diff --git a/设计文档.assets/image-20250105211313118.png b/设计文档.assets/image-20250105211313118.png new file mode 100644 index 0000000..0394ded Binary files /dev/null and b/设计文档.assets/image-20250105211313118.png differ diff --git a/设计文档.assets/image-20250105214330108.png b/设计文档.assets/image-20250105214330108.png new file mode 100644 index 0000000..88699e2 Binary files /dev/null and b/设计文档.assets/image-20250105214330108.png differ diff --git a/设计文档.assets/image-20250105214340947.png b/设计文档.assets/image-20250105214340947.png new file mode 100644 index 0000000..e641630 Binary files /dev/null and b/设计文档.assets/image-20250105214340947.png differ diff --git a/设计文档.assets/image-20250105214821722.png b/设计文档.assets/image-20250105214821722.png new file mode 100644 index 0000000..19e310f Binary files /dev/null and b/设计文档.assets/image-20250105214821722.png differ diff --git a/设计文档.assets/image-20250105214830808.png b/设计文档.assets/image-20250105214830808.png new file mode 100644 index 0000000..78e2923 Binary files /dev/null and b/设计文档.assets/image-20250105214830808.png differ diff --git a/设计文档.assets/image-20250105214948117.png b/设计文档.assets/image-20250105214948117.png new file mode 100644 index 0000000..707ab89 Binary files /dev/null and b/设计文档.assets/image-20250105214948117.png differ diff --git a/设计文档.assets/image-20250105215019964.png b/设计文档.assets/image-20250105215019964.png new file mode 100644 index 0000000..77e50b1 Binary files /dev/null and b/设计文档.assets/image-20250105215019964.png differ diff --git a/设计文档.assets/image-20250105215125243.png b/设计文档.assets/image-20250105215125243.png new file mode 100644 index 0000000..1181023 Binary files /dev/null and b/设计文档.assets/image-20250105215125243.png differ diff --git a/设计文档.assets/image-20250105215224964.png b/设计文档.assets/image-20250105215224964.png new file mode 100644 index 0000000..6bbf5bf Binary files /dev/null and b/设计文档.assets/image-20250105215224964.png differ diff --git a/设计文档.assets/image-20250105215237395.png b/设计文档.assets/image-20250105215237395.png new file mode 100644 index 0000000..047445d Binary files /dev/null and b/设计文档.assets/image-20250105215237395.png differ diff --git a/设计文档.assets/image-20250105215644951.png b/设计文档.assets/image-20250105215644951.png new file mode 100644 index 0000000..f4fcc78 Binary files /dev/null and b/设计文档.assets/image-20250105215644951.png differ diff --git a/设计文档.assets/image-20250105215719856.png b/设计文档.assets/image-20250105215719856.png new file mode 100644 index 0000000..b5810cf Binary files /dev/null and b/设计文档.assets/image-20250105215719856.png differ diff --git a/设计文档.assets/image-20250105220226773.png b/设计文档.assets/image-20250105220226773.png new file mode 100644 index 0000000..48c6587 Binary files /dev/null and b/设计文档.assets/image-20250105220226773.png differ diff --git a/设计文档.assets/image-20250105220322830.png b/设计文档.assets/image-20250105220322830.png new file mode 100644 index 0000000..cdf0e37 Binary files /dev/null and b/设计文档.assets/image-20250105220322830.png differ diff --git a/设计文档.assets/later_delete.png b/设计文档.assets/later_delete.png new file mode 100644 index 0000000..2e7c719 Binary files /dev/null and b/设计文档.assets/later_delete.png differ diff --git a/设计文档.assets/prefetch.svg b/设计文档.assets/prefetch.svg new file mode 100644 index 0000000..beff6fc --- /dev/null +++ b/设计文档.assets/prefetch.svg @@ -0,0 +1,5442 @@ + + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search +ic + + + +std::__invoke_impl<void, leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (138,422,696,426 samples, 18.07%) +std::__invoke_impl<void, lev.. + + +schedule (12,572,290,176 samples, 1.64%) + + + +link_path_walk (842,181,447 samples, 0.11%) + + + +sys_openat (71,796,365,064 samples, 9.37%) +sys_openat + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (1,237,362,407 samples, 0.16%) + + + +do_writev (1,065,715,939 samples, 0.14%) + + + +leveldb::Slice::Slice (77,513,588 samples, 0.01%) + + + +vfs_read (639,247,449 samples, 0.08%) + + + +smp_apic_timer_interrupt (521,802,005 samples, 0.07%) + + + +leveldb::DBImpl::DoCompactionWork (502,229,687 samples, 0.07%) + + + +_raw_spin_lock_irq (2,005,543,390 samples, 0.26%) + + + +leveldb::Block::Iter::Next (116,837,971 samples, 0.02%) + + + +leveldb::ParseInternalKey (4,448,305,516 samples, 0.58%) + + + +update_cfs_group (472,770,811 samples, 0.06%) + + + +native_queued_spin_lock_slowpath (1,330,014,580 samples, 0.17%) + + + +exit_to_usermode_loop (14,633,020,147 samples, 1.91%) +e.. + + +irq_exit (632,809,847 samples, 0.08%) + + + +leveldb::LookupKey::memtable_key (577,477,996 samples, 0.08%) + + + +error_entry (1,859,919,550 samples, 0.24%) + + + +update_cfs_group (1,347,229,546 samples, 0.18%) + + + +std::__invoke_impl<void, leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadForward (93,253,103,040 samples, 12.17%) +std::__invoke_impl.. + + +__mod_node_page_state (550,345,788 samples, 0.07%) + + + +leveldb::InternalKeyComparator::Compare (359,189,528 samples, 0.05%) + + + +radix_tree_lookup_slot (2,121,059,150 samples, 0.28%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +__rwsem_mark_wake (3,069,712,090 samples, 0.40%) + + + +leveldb::Block::Iter::ParseNextKey (105,608,671 samples, 0.01%) + + + +leveldb::IteratorWrapper::Valid (84,973,620 samples, 0.01%) + + + +do_syscall_64 (591,615,404 samples, 0.08%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +wake_up_q (1,350,251,990 samples, 0.18%) + + + +leveldb::Block::Iter::NextEntryOffset (3,723,167,653 samples, 0.49%) + + + +leveldb::Version::Unref (171,058,153 samples, 0.02%) + + + +std::basic_ios<char, std::char_traits<char> >::good (513,487,030 samples, 0.07%) + + + +leveldb::DecodeFixed32 (514,966,716 samples, 0.07%) + + + +leveldb::Benchmark::ReadReverse (5,909,065,841 samples, 0.77%) + + + +sys_read (93,669,937 samples, 0.01%) + + + +leveldb::IteratorWrapper::Next (748,863,456 samples, 0.10%) + + + +leveldb::ExtractUserKey (3,503,510,018 samples, 0.46%) + + + +update_load_avg (617,833,525 samples, 0.08%) + + + +leveldb::IteratorWrapper::Prev (60,308,798,556 samples, 7.87%) +leveldb::It.. + + +std::ios_base::ios_base (506,612,576 samples, 0.07%) + + + +std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (138,422,696,426 samples, 18.07%) +std::thread::_Invoker<std::t.. + + +__GI___unlink (171,058,153 samples, 0.02%) + + + +leveldb::Slice::Slice (376,119,562 samples, 0.05%) + + + +std::thread::_State_impl<std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (138,422,696,426 samples, 18.07%) +std::thread::_State_impl<std.. + + +new_sync_write (1,025,517,495 samples, 0.13%) + + + +down_write_killable (22,719,237,758 samples, 2.97%) +do.. + + +__dynamic_cast (73,546,435 samples, 0.01%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (19,455,906,185 samples, 2.54%) +le.. + + +do_syscall_64 (623,650,923 samples, 0.08%) + + + +leveldb::ParsedInternalKey::ParsedInternalKey (72,587,241 samples, 0.01%) + + + +__softirqentry_text_start (528,405,201 samples, 0.07%) + + + +leveldb::Slice::compare (660,119,551 samples, 0.09%) + + + +inode_permission (757,084,509 samples, 0.10%) + + + +page_counter_uncharge (521,802,005 samples, 0.07%) + + + +touch_atime (860,170,207 samples, 0.11%) + + + +futex_wait_setup (4,861,851,501 samples, 0.63%) + + + +entry_SYSCALL_64_after_hwframe (87,457,053 samples, 0.01%) + + + +__fsnotify_parent (52,201,760,057 samples, 6.81%) +__fsnotif.. + + +mutex_lock (240,678,280 samples, 0.03%) + + + +__inode_permission (637,157,751 samples, 0.08%) + + + +leveldb::Block::Iter::NextEntryOffset (4,843,114,107 samples, 0.63%) + + + +leveldb::GetLengthPrefixedSlice (543,862,875 samples, 0.07%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (149,240,336 samples, 0.02%) + + + +native_irq_return_iret (173,018,268 samples, 0.02%) + + + +leveldb::GetLengthPrefixedSlice (486,199,798 samples, 0.06%) + + + +ext4_evict_inode (171,058,153 samples, 0.02%) + + + +leveldb::IteratorWrapper::Update (597,741,715 samples, 0.08%) + + + +mutex_lock (1,235,614,240 samples, 0.16%) + + + +leveldb::IteratorWrapper::Next (90,535,681 samples, 0.01%) + + + +std::thread::_Invoker<std::tuple<void (17,626,808,785 samples, 2.30%) +s.. + + +[unknown] (978,973,591 samples, 0.13%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::~DBPreFetchIter (171,058,153 samples, 0.02%) + + + +leveldb::IteratorWrapper::key (531,622,034 samples, 0.07%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate (699,492,104 samples, 0.09%) + + + +leveldb::Block::Iter::Next (113,076,697 samples, 0.01%) + + + +dput (3,741,723,175 samples, 0.49%) + + + +entry_SYSCALL_64_after_hwframe (20,828,557,229 samples, 2.72%) +en.. + + +leveldb::(anonymous namespace)::MergingIterator::value (1,156,878,930 samples, 0.15%) + + + +ttwu_do_activate (973,040,923 samples, 0.13%) + + + +security_file_permission (14,331,575,034 samples, 1.87%) +s.. + + +find_get_entry (766,743,064 samples, 0.10%) + + + +std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf (477,657,327 samples, 0.06%) + + + +malloc (106,139,976 samples, 0.01%) + + + +native_write_msr (553,676,397 samples, 0.07%) + + + +smp_apic_timer_interrupt (65,021,832 samples, 0.01%) + + + +leveldb::IteratorWrapper::Next (145,619,418 samples, 0.02%) + + + +__sched_text_start (12,514,250,578 samples, 1.63%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign (563,622,097 samples, 0.07%) + + + +do_syscall_64 (10,434,375,490 samples, 1.36%) + + + +leveldb::Slice::Slice (75,787,565 samples, 0.01%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +apic_timer_interrupt (456,643,946 samples, 0.06%) + + + +copy_page_to_iter (29,256,996,322 samples, 3.82%) +copy.. + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (744,750,670 samples, 0.10%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append@plt (852,898,788 samples, 0.11%) + + + +vm_stat_account (75,824,041 samples, 0.01%) + + + +call_rwsem_wake (1,456,649,116 samples, 0.19%) + + + +leveldb::IteratorWrapper::Update (2,349,348,149 samples, 0.31%) + + + +prepare_exit_to_usermode (721,439,765 samples, 0.09%) + + + +__task_rq_lock (1,330,014,580 samples, 0.17%) + + + +leveldb::DBImpl::BGWork (502,229,687 samples, 0.07%) + + + +syscall_return_via_sysret (1,412,645,635 samples, 0.18%) + + + +ext4_llseek (946,923,031 samples, 0.12%) + + + +mprotect_fixup (7,533,385,418 samples, 0.98%) + + + +__fdget_pos (5,818,184,209 samples, 0.76%) + + + +leveldb::DecodeEntry (725,389,794 samples, 0.09%) + + + +leveldb::IteratorWrapper::Update (5,268,176,759 samples, 0.69%) + + + +leveldb::Slice::size (97,517,190 samples, 0.01%) + + + +run_rebalance_domains (528,405,201 samples, 0.07%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadForward (90,819,231,986 samples, 11.86%) +leveldb::(anonymo.. + + +find_get_entry (7,001,549,814 samples, 0.91%) + + + +update_cfs_group (90,732,790 samples, 0.01%) + + + +leveldb::InternalKeyComparator::Compare (6,944,261,092 samples, 0.91%) + + + +_pthread_cleanup_push_defer (634,629,142 samples, 0.08%) + + + +__memmove_avx_unaligned_erms (15,780,583,492 samples, 2.06%) +_.. + + +leveldb::GetVarint32Ptr (537,768,965 samples, 0.07%) + + + +_IO_un_link (8,699,471,171 samples, 1.14%) + + + +leveldb::(anonymous namespace)::HandleTable::Lookup (569,667,157 samples, 0.07%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +leveldb::IteratorWrapper::key (893,089,306 samples, 0.12%) + + + +leveldb::Block::Iter::ParseNextKey (33,531,398,384 samples, 4.38%) +level.. + + +std::fpos<__mbstate_t>::fpos (664,925,831 samples, 0.09%) + + + +radix_tree_lookup_slot (766,743,064 samples, 0.10%) + + + +fscrypt_file_open (16,931,880,009 samples, 2.21%) +f.. + + +do_syscall_64 (171,058,153 samples, 0.02%) + + + +sys_futex (8,531,324,707 samples, 1.11%) + + + +do_dentry_open (34,107,797,699 samples, 4.45%) +do_de.. + + +entry_SYSCALL_64_after_hwframe (171,058,153 samples, 0.02%) + + + +memcpy@plt (713,056,057 samples, 0.09%) + + + +leveldb::ParseInternalKey (2,973,499,111 samples, 0.39%) + + + +__fsnotify_parent (35,235,514,829 samples, 4.60%) +__fsn.. + + +leveldb::(anonymous namespace)::MergingIterator::Prev (96,849,119,226 samples, 12.64%) +leveldb::(anonymous.. + + +__mprotect (57,945,998,800 samples, 7.56%) +__mprotect + + +ext4_file_write_iter (1,025,517,495 samples, 0.13%) + + + +__libc_enable_asynccancel (611,918,208 samples, 0.08%) + + + +leveldb::Slice::Slice (225,908,035 samples, 0.03%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::Next (3,643,664,425 samples, 0.48%) + + + +get_mem_cgroup_from_mm (1,357,191,421 samples, 0.18%) + + + +leveldb::GetLengthPrefixedSlice (491,048,470 samples, 0.06%) + + + +sched_clock (965,103,126 samples, 0.13%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +select_task_rq_fair (1,078,623,608 samples, 0.14%) + + + +std::ios_base::_M_call_callbacks@plt (618,064,110 samples, 0.08%) + + + +leveldb::ExtractUserKey (672,343,199 samples, 0.09%) + + + +strlen (534,596,231 samples, 0.07%) + + + +leveldb::IteratorWrapper::Next (703,160,164 samples, 0.09%) + + + +leveldb::Benchmark::ReadSequential (4,565,575,663 samples, 0.60%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +native_write_msr (69,667,712 samples, 0.01%) + + + +leveldb::Slice::size (1,511,587,537 samples, 0.20%) + + + +leveldb::Block::Iter::Compare (719,145,365 samples, 0.09%) + + + +syscall_return_via_sysret (1,964,247,322 samples, 0.26%) + + + +task_work_run (13,424,472,825 samples, 1.75%) + + + +leveldb::IteratorWrapper::key (762,739,338 samples, 0.10%) + + + +leveldb::Status::Status (478,967,407 samples, 0.06%) + + + +new_sync_read (43,729,150,890 samples, 5.71%) +new_syn.. + + +__GI___writev (1,065,715,939 samples, 0.14%) + + + +std::atomic<bool>::store (74,865,610 samples, 0.01%) + + + +fput (81,109,122 samples, 0.01%) + + + +leveldb::(anonymous namespace)::DBIter::ParseKey (1,902,975,084 samples, 0.25%) + + + +lockref_put_return (3,654,783,369 samples, 0.48%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (24,660,730,439 samples, 3.22%) +lev.. + + +leveldb::IteratorWrapper::value (857,772,239 samples, 0.11%) + + + +__do_page_fault (38,930,023,552 samples, 5.08%) +__do_p.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::SetDataIterator (985,072,823 samples, 0.13%) + + + +dget_parent (9,815,297,447 samples, 1.28%) + + + +_IO_file_fopen@@GLIBC_2.2.5 (1,365,457,328 samples, 0.18%) + + + +smp_apic_timer_interrupt (553,376,191 samples, 0.07%) + + + +wake_up_q (15,103,780,079 samples, 1.97%) +w.. + + +[unknown] (978,973,591 samples, 0.13%) + + + +leveldb::IteratorWrapper::Next (14,318,282,008 samples, 1.87%) +l.. + + +std::ios_base::~ios_base (572,740,875 samples, 0.07%) + + + +std::has_facet<std::ctype<char> > (567,289,045 samples, 0.07%) + + + +dget_parent (6,715,777,495 samples, 0.88%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace@plt (816,279,134 samples, 0.11%) + + + +lockref_put_return (570,976,423 samples, 0.07%) + + + +__fsnotify_parent (667,187,750 samples, 0.09%) + + + +leveldb::(anonymous namespace)::MergingIterator::Next (1,714,261,782 samples, 0.22%) + + + +leveldb::IteratorWrapper::value (7,130,608,450 samples, 0.93%) + + + +do_syscall_64 (451,498,976 samples, 0.06%) + + + +__fsnotify_parent (574,876,974 samples, 0.08%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (622,916,203 samples, 0.08%) + + + +leveldb::MemTableIterator::key (607,988,182 samples, 0.08%) + + + +leveldb::GetVarint32Ptr (1,970,983,613 samples, 0.26%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +dget_parent (2,593,722,714 samples, 0.34%) + + + +sys_close (3,526,868,357 samples, 0.46%) + + + +do_syscall_64 (107,903,129 samples, 0.01%) + + + +leveldb::IteratorWrapper::Valid (531,671,451 samples, 0.07%) + + + +wake_q_add (109,040,947 samples, 0.01%) + + + +schedule (5,595,652,258 samples, 0.73%) + + + +try_to_wake_up (5,145,893,404 samples, 0.67%) + + + +__perf_event_task_sched_out (256,088,572 samples, 0.03%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +task_work_add (645,899,645 samples, 0.08%) + + + +leveldb::Block::Iter::ParseNextKey (86,212,616 samples, 0.01%) + + + +leveldb::IteratorWrapper::status (434,661,999 samples, 0.06%) + + + +switch_to_thread_stack (488,693,793 samples, 0.06%) + + + +leveldb::Block::Iter::ParseNextKey (7,806,972,965 samples, 1.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Next (78,240,234 samples, 0.01%) + + + +leveldb::DBImpl::Get (4,727,759,465 samples, 0.62%) + + + +sys_read (617,249,733 samples, 0.08%) + + + +__softirqentry_text_start (632,809,847 samples, 0.08%) + + + +mem_cgroup_try_charge (3,480,199,406 samples, 0.45%) + + + +__slab_alloc (875,251,063 samples, 0.11%) + + + +dput (667,187,750 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (554,486,105 samples, 0.07%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (749,838,445 samples, 0.10%) + + + +__entry_trampoline_start (845,247,995 samples, 0.11%) + + + +schedule (3,050,505,772 samples, 0.40%) + + + +page_fault (6,253,598,844 samples, 0.82%) + + + +__fdget_pos (1,159,103,679 samples, 0.15%) + + + +native_queued_spin_lock_slowpath (796,003,679 samples, 0.10%) + + + +lockref_put_return (546,854,069 samples, 0.07%) + + + +x86_pmu_enable (567,044,760 samples, 0.07%) + + + +dequeue_entity (5,818,976,243 samples, 0.76%) + + + +leveldb::DBImpl::GarbageCollect (6,598,615,742 samples, 0.86%) + + + +leveldb::(anonymous namespace)::DBIter::Next (82,135,321,548 samples, 10.72%) +leveldb::(anony.. + + +[unknown] (978,973,591 samples, 0.13%) + + + +entry_SYSCALL_64_after_hwframe (54,230,151,441 samples, 7.08%) +entry_SYS.. + + +security_file_permission (38,066,986,884 samples, 4.97%) +securi.. + + +entry_SYSCALL_64_after_hwframe (10,434,375,490 samples, 1.36%) + + + +leveldb::IteratorWrapper::Valid (584,535,587 samples, 0.08%) + + + +finish_task_switch (127,419,133 samples, 0.02%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (723,538,621 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Prev (62,116,971,423 samples, 8.11%) +leveldb::(a.. + + +[unknown] (641,364,442 samples, 0.08%) + + + +security_file_open (15,506,925,790 samples, 2.02%) +s.. + + +leveldb::DecodeEntry (206,452,185 samples, 0.03%) + + + +lockref_put_return (1,987,032,319 samples, 0.26%) + + + +inotify_handle_event (538,619,661 samples, 0.07%) + + + +leveldb::(anonymous namespace)::MergingIterator::~MergingIterator (171,058,153 samples, 0.02%) + + + +restore_nameidata (650,389,908 samples, 0.08%) + + + +sys_lseek (71,702,569 samples, 0.01%) + + + +std::istream::read (102,929,300 samples, 0.01%) + + + +reweight_entity (693,562,311 samples, 0.09%) + + + +getname (1,873,799,322 samples, 0.24%) + + + +operator new[]@plt (685,740,507 samples, 0.09%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::IteratorWrapper::value (1,952,992,741 samples, 0.25%) + + + +_raw_spin_lock_irq (1,020,711,154 samples, 0.13%) + + + +lockref_put_return (552,539,325 samples, 0.07%) + + + +ext4_da_write_end (67,301,186 samples, 0.01%) + + + +leveldb::Slice::size (224,788,054 samples, 0.03%) + + + +leveldb::IteratorWrapper::Valid (78,253,287 samples, 0.01%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +std::thread::_State_impl<std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadForward (93,253,103,040 samples, 12.17%) +std::thread::_Stat.. + + +leveldb::IteratorWrapper::Valid (1,386,369,626 samples, 0.18%) + + + +std::__invoke<void (17,626,808,785 samples, 2.30%) +s.. + + +mem_cgroup_update_lru_size (198,517,012 samples, 0.03%) + + + +legitimize_path.isra.29 (2,014,530,344 samples, 0.26%) + + + +leveldb::Block::Iter::NextEntryOffset (274,287,883 samples, 0.04%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (1,050,020,112 samples, 0.14%) + + + +__unqueue_futex (526,542,433 samples, 0.07%) + + + +__radix_tree_lookup (2,104,805,506 samples, 0.27%) + + + +lockref_put_return (3,189,183,850 samples, 0.42%) + + + +[unknown] (330,174,128,468 samples, 43.10%) +[unknown] + + +__task_rq_lock (225,870,186 samples, 0.03%) + + + +[unknown] (22,635,963,307 samples, 2.96%) +[u.. + + +__intel_pmu_enable_all.constprop.23 (567,044,760 samples, 0.07%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (99,583,078 samples, 0.01%) + + + +smp_apic_timer_interrupt (456,643,946 samples, 0.06%) + + + +leveldb::Slice::data (69,982,629 samples, 0.01%) + + + +_IO_default_xsputn (70,293,108 samples, 0.01%) + + + +__alloc_pages_nodemask (464,602,907 samples, 0.06%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +std::__invoke<leveldb::(anonymous namespace)::DBPreFetchIter::SeekToLast (166,155,643 samples, 0.02%) + + + +rwsem_down_read_failed (20,057,945,922 samples, 2.62%) +rw.. + + +sys_unlink (171,058,153 samples, 0.02%) + + + +do_filp_open (50,564,152,847 samples, 6.60%) +do_filp_o.. + + +leveldb::(anonymous namespace)::MergingIterator::Valid (508,522,929 samples, 0.07%) + + + +deactivate_task (3,168,674,776 samples, 0.41%) + + + +_find_next_bit (151,031,773 samples, 0.02%) + + + +_raw_spin_trylock (528,405,201 samples, 0.07%) + + + +try_to_wake_up (544,057,077 samples, 0.07%) + + + +dput (197,239,634 samples, 0.03%) + + + +dget_parent (26,855,531,098 samples, 3.51%) +dge.. + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize@plt (1,042,744,807 samples, 0.14%) + + + +__libc_read (243,939,212 samples, 0.03%) + + + +rwsem_spin_on_owner (3,011,294,270 samples, 0.39%) + + + +leveldb::MemTableIterator::Next (78,240,234 samples, 0.01%) + + + +finish_task_switch (91,631,064 samples, 0.01%) + + + +native_queued_spin_lock_slowpath (2,543,301,598 samples, 0.33%) + + + +lockref_put_return (8,792,522,684 samples, 1.15%) + + + +alloc_pages_vma (464,602,907 samples, 0.06%) + + + +try_charge (152,899,667 samples, 0.02%) + + + +get_page_from_freelist (1,780,561,312 samples, 0.23%) + + + +dequeue_task_fair (6,523,553,303 samples, 0.85%) + + + +dput (9,445,837,148 samples, 1.23%) + + + +__indirect_thunk_start (546,235,899 samples, 0.07%) + + + +leveldb::DecodeFixed32 (5,182,987,771 samples, 0.68%) + + + +rwsem_down_write_failed_killable (21,239,515,685 samples, 2.77%) +rw.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::key (639,748,523 samples, 0.08%) + + + +leveldb::Block::Iter::~Iter (550,410,824 samples, 0.07%) + + + +leveldb::IteratorWrapper::Next (974,258,792 samples, 0.13%) + + + +default_send_IPI_single_phys (445,491,328 samples, 0.06%) + + + +reweight_entity (432,381,808 samples, 0.06%) + + + +irq_exit (521,802,005 samples, 0.07%) + + + +lookup_fast (2,224,592,366 samples, 0.29%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +security_file_permission (1,220,487,886 samples, 0.16%) + + + +page_fault (449,936,786 samples, 0.06%) + + + +new_sync_read (591,615,404 samples, 0.08%) + + + +__alloc_fd (1,725,798,610 samples, 0.23%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (2,620,496,666 samples, 0.34%) + + + +fsnotify (538,619,661 samples, 0.07%) + + + +alloc_pages_vma (123,259,560 samples, 0.02%) + + + +__libc_read (535,060,753 samples, 0.07%) + + + +__delayacct_tsk_init (97,772,251 samples, 0.01%) + + + +leveldb::MemTable::KeyComparator::operator (917,936,100 samples, 0.12%) + + + +__fget_light (3,035,248,774 samples, 0.40%) + + + +enqueue_task_fair (2,591,922,690 samples, 0.34%) + + + +lockref_put_return (451,510,259 samples, 0.06%) + + + +generic_perform_write (421,185,836 samples, 0.05%) + + + +leveldb::Slice::data (586,589,694 samples, 0.08%) + + + +leveldb::DBImpl::BackgroundCall (502,229,687 samples, 0.07%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (90,535,681 samples, 0.01%) + + + +leveldb::IteratorWrapper::Prev (52,803,305,612 samples, 6.89%) +leveldb::.. + + +llist_add_batch (626,647,055 samples, 0.08%) + + + +leveldb::IteratorWrapper::Valid (65,467,555 samples, 0.01%) + + + +ext4_file_read_iter (43,624,833,114 samples, 5.70%) +ext4_fi.. + + +leveldb::IteratorWrapper::Prev (73,604,874 samples, 0.01%) + + + +release_pages (147,603,996 samples, 0.02%) + + + +__handle_mm_fault (12,488,435,423 samples, 1.63%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (4,576,552,410 samples, 0.60%) + + + +__f_unlock_pos (88,470,339 samples, 0.01%) + + + +leveldb::Block::Iter::Valid (542,143,842 samples, 0.07%) + + + +mutex_lock (2,740,616,005 samples, 0.36%) + + + +leveldb::(anonymous namespace)::DBIter::Prev (5,654,803,480 samples, 0.74%) + + + +__free_slab (521,802,005 samples, 0.07%) + + + +std::locale::~locale (194,899,346 samples, 0.03%) + + + +std::use_facet<std::ctype<char> > (674,904,260 samples, 0.09%) + + + +do_futex (8,476,447,610 samples, 1.11%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (738,975,443 samples, 0.10%) + + + +mem_cgroup_try_charge (184,428,429 samples, 0.02%) + + + +__fput (462,555,665 samples, 0.06%) + + + +leveldb::IteratorWrapper::Next (29,854,507,250 samples, 3.90%) +leve.. + + +__radix_tree_lookup (766,743,064 samples, 0.10%) + + + +leveldb::(anonymous namespace)::HandleTable::FindPointer (569,667,157 samples, 0.07%) + + + +leveldb::Block::Iter::Next (721,418,901 samples, 0.09%) + + + +__fsnotify_parent (687,517,197 samples, 0.09%) + + + +leveldb::Slice::Slice (637,397,677 samples, 0.08%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (11,683,982,950 samples, 1.53%) + + + +std::locale::~locale (832,450,116 samples, 0.11%) + + + +leveldb::MemTableIterator::value (558,595,009 samples, 0.07%) + + + +leveldb::InternalKeyComparator::Compare (773,995,646 samples, 0.10%) + + + +leveldb::(anonymous namespace)::DBIter::ParseKey (21,742,495,232 samples, 2.84%) +le.. + + +leveldb::Block::Iter::Prev (1,758,491,664 samples, 0.23%) + + + +__memcmp_avx2_movbe (723,538,621 samples, 0.09%) + + + +common_file_perm (2,737,820,206 samples, 0.36%) + + + +__strcmp_sse2_unaligned (501,672,914 samples, 0.07%) + + + +__vfs_write (1,025,517,495 samples, 0.13%) + + + +mark_wake_futex (1,137,190,802 samples, 0.15%) + + + +leveldb::IteratorWrapper::value (10,994,913,181 samples, 1.44%) + + + +try_to_wake_up (1,187,244,305 samples, 0.15%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (1,828,366,930 samples, 0.24%) + + + +leveldb::MemTableIterator::Prev (18,097,989,127 samples, 2.36%) +l.. + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Prev (18,097,989,127 samples, 2.36%) +l.. + + +ext4_dirty_inode (92,914,075 samples, 0.01%) + + + +intel_tfa_pmu_enable_all (65,670,829 samples, 0.01%) + + + +__do_page_fault (6,233,373,769 samples, 0.81%) + + + +leveldb::(anonymous namespace)::DBIter::value (657,025,128 samples, 0.09%) + + + +__memcmp_avx2_movbe (1,245,748,027 samples, 0.16%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::InitDataBlock (2,608,815,738 samples, 0.34%) + + + +leveldb::Slice::size (804,249,510 samples, 0.10%) + + + +leveldb::Slice::Slice (66,952,694 samples, 0.01%) + + + +leveldb::Version::Get (1,720,339,135 samples, 0.22%) + + + +__handle_mm_fault (464,602,907 samples, 0.06%) + + + +tick_sched_timer (488,660,560 samples, 0.06%) + + + +generic_write_end (180,170,669 samples, 0.02%) + + + +leveldb::Slice::Slice (596,541,838 samples, 0.08%) + + + +truncate_cleanup_page (140,707,492 samples, 0.02%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::Prev (5,818,468,560 samples, 0.76%) + + + +__inode_permission (757,084,509 samples, 0.10%) + + + +leveldb::IteratorWrapper::value (3,994,548,704 samples, 0.52%) + + + +std::atomic<bool>::store (714,169,672 samples, 0.09%) + + + +do_syscall_64 (1,065,715,939 samples, 0.14%) + + + +__dynamic_cast (616,556,527 samples, 0.08%) + + + +leveldb::(anonymous namespace)::MergingIterator::Valid (748,838,788 samples, 0.10%) + + + +entry_SYSCALL_64_after_hwframe (146,906,135,425 samples, 19.18%) +entry_SYSCALL_64_after_hwframe + + +std::__invoke<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (138,422,696,426 samples, 18.07%) +std::__invoke<leveldb::(anon.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (657,025,128 samples, 0.09%) + + + +____fput (10,405,835,423 samples, 1.36%) + + + +up_read (3,158,923,203 samples, 0.41%) + + + +leveldb::(anonymous namespace)::MergingIterator::~MergingIterator (171,058,153 samples, 0.02%) + + + +__softirqentry_text_start (456,643,946 samples, 0.06%) + + + +pagevec_lru_move_fn (1,281,894,047 samples, 0.17%) + + + +ext4_file_read_iter (3,781,431,442 samples, 0.49%) + + + +dput (546,854,069 samples, 0.07%) + + + +leveldb::Slice::size (647,471,416 samples, 0.08%) + + + +vfs_read (217,760,301 samples, 0.03%) + + + +leveldb::ExtractUserKey (2,099,145,903 samples, 0.27%) + + + +copy_user_enhanced_fast_string (25,796,492,245 samples, 3.37%) +cop.. + + +try_charge (1,248,177,185 samples, 0.16%) + + + +do_page_fault (38,935,143,285 samples, 5.08%) +do_pag.. + + +std::thread::_Invoker<std::tuple<void (17,626,808,785 samples, 2.30%) +s.. + + +leveldb::(anonymous namespace)::MergingIterator::FindLargest (801,035,908 samples, 0.10%) + + + +_IO_vsnprintf (630,757,272 samples, 0.08%) + + + +leveldb::IteratorWrapper::Valid (532,005,993 samples, 0.07%) + + + +__intel_pmu_disable_all (179,025,732 samples, 0.02%) + + + +ttwu_do_activate (4,571,369,289 samples, 0.60%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (518,791,440 samples, 0.07%) + + + +leveldb::IteratorWrapper::value (584,535,587 samples, 0.08%) + + + +sys_write (1,361,942,985 samples, 0.18%) + + + +leveldb::GetLengthPrefixedSlice (736,919,648 samples, 0.10%) + + + +leveldb::Slice::compare (654,780,634 samples, 0.09%) + + + +lockref_put_return (667,187,750 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Prev (57,236,063,634 samples, 7.47%) +leveldb::(.. + + +wake_q_add (487,381,567 samples, 0.06%) + + + +__legitimize_mnt (1,494,493,676 samples, 0.20%) + + + +lockref_put_return (19,658,948,207 samples, 2.57%) +lo.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (93,289,240 samples, 0.01%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +tick_sched_handle (488,660,560 samples, 0.06%) + + + +sys_lseek (7,756,478,299 samples, 1.01%) + + + +leveldb::(anonymous namespace)::DBIter::ParseKey (772,399,450 samples, 0.10%) + + + +leveldb::IteratorWrapper::Update (3,815,296,512 samples, 0.50%) + + + +__entry_trampoline_start (1,670,313,668 samples, 0.22%) + + + +wake_up_q (5,179,226,686 samples, 0.68%) + + + +leveldb::Slice::compare (104,018,567 samples, 0.01%) + + + +dget_parent (5,383,271,883 samples, 0.70%) + + + +sys_read (140,726,443,531 samples, 18.37%) +sys_read + + +cfree@GLIBC_2.2.5 (1,382,118,029 samples, 0.18%) + + + +std::has_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (85,022,517 samples, 0.01%) + + + +__intel_pmu_enable_all.constprop.23 (111,149,746 samples, 0.01%) + + + +perf_event_mmap (3,004,225,511 samples, 0.39%) + + + +call_rwsem_wake (563,012,882 samples, 0.07%) + + + +leveldb::Slice::size (108,625,152 samples, 0.01%) + + + +task_ctx_sched_out (236,141,465 samples, 0.03%) + + + +_raw_spin_lock (2,573,529,212 samples, 0.34%) + + + +current_kernel_time64 (705,394,168 samples, 0.09%) + + + +up_write (19,145,034,346 samples, 2.50%) +up.. + + +std::thread::_State_impl<std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::SeekToLast (166,155,643 samples, 0.02%) + + + +terminate_walk (582,646,250 samples, 0.08%) + + + +ttwu_do_wakeup (66,371,085 samples, 0.01%) + + + +leveldb::Block::Iter::key (1,276,246,582 samples, 0.17%) + + + +__virt_addr_valid (583,175,849 samples, 0.08%) + + + +leveldb::IteratorWrapper::Valid (1,033,158,469 samples, 0.13%) + + + +__do_page_fault (464,689,473 samples, 0.06%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (624,944,712 samples, 0.08%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace@plt (155,793,433 samples, 0.02%) + + + +wake_up_q (1,187,244,305 samples, 0.15%) + + + +call_rcu_sched (1,200,435,237 samples, 0.16%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::Put (133,279,425 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindLessThan (17,185,171,620 samples, 2.24%) +l.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksBackward (2,466,288,144 samples, 0.32%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (476,984,630 samples, 0.06%) + + + +call_rwsem_down_read_failed (20,066,832,950 samples, 2.62%) +ca.. + + +do_sys_open (71,772,734,594 samples, 9.37%) +do_sys_open + + +native_queued_spin_lock_slowpath (2,658,697,801 samples, 0.35%) + + + +leveldb::Slice::data (613,471,901 samples, 0.08%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (656,861,837 samples, 0.09%) + + + +leveldb::Slice::Slice (1,443,703,842 samples, 0.19%) + + + +leveldb::(anonymous namespace)::DBIter::Prev (131,266,750,681 samples, 17.14%) +leveldb::(anonymous namesp.. + + +rw_verify_area (197,239,634 samples, 0.03%) + + + +__cgroup_account_cputime (474,421,794 samples, 0.06%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +activate_page (370,132,486 samples, 0.05%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::MemTable::Get (2,455,999,870 samples, 0.32%) + + + +leveldb::MemTableIterator::value (486,199,798 samples, 0.06%) + + + +do_page_fault (464,689,473 samples, 0.06%) + + + +entry_SYSCALL_64_after_hwframe (864,157,367 samples, 0.11%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Seek (1,828,366,930 samples, 0.24%) + + + +leveldb::(anonymous namespace)::DBIter::FindNextUserEntry (1,902,975,084 samples, 0.25%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (532,005,993 samples, 0.07%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (632,540,725 samples, 0.08%) + + + +update_curr (1,909,204,367 samples, 0.25%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Prev (3,179,243,738 samples, 0.42%) + + + +leveldb::IteratorWrapper::value (632,540,725 samples, 0.08%) + + + +leveldb::Version::Get (2,253,368,769 samples, 0.29%) + + + +__fget_light (118,326,340 samples, 0.02%) + + + +dput (17,100,219,278 samples, 2.23%) +d.. + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (1,687,351,623 samples, 0.22%) + + + +leveldb::Block::Iter::GetRestartPoint (1,753,737,167 samples, 0.23%) + + + +__libc_read (93,669,937 samples, 0.01%) + + + +dput.part.26 (275,373,433 samples, 0.04%) + + + +rw_verify_area (38,666,478,563 samples, 5.05%) +rw_ver.. + + +_IO_vsnprintf (2,045,880,790 samples, 0.27%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (825,856,106 samples, 0.11%) + + + +leveldb::DecodeFixed32 (1,104,243,402 samples, 0.14%) + + + +generic_file_read_iter (591,615,404 samples, 0.08%) + + + +__fdget_pos (3,703,250,510 samples, 0.48%) + + + +do_futex (8,523,478,782 samples, 1.11%) + + + +lockref_get_not_dead (520,036,668 samples, 0.07%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +std::istream::seekg@plt (645,969,760 samples, 0.08%) + + + +memcmp@plt (627,635,652 samples, 0.08%) + + + +entry_SYSCALL_64_after_hwframe (93,669,937 samples, 0.01%) + + + +leveldb::(anonymous namespace)::MergingIterator::key (934,531,257 samples, 0.12%) + + + +leveldb::Version::ForEachOverlapping (2,253,368,769 samples, 0.29%) + + + +__fsnotify_parent (13,133,710,262 samples, 1.71%) + + + +sync_regs (1,052,760,023 samples, 0.14%) + + + +intel_tfa_pmu_enable_all (567,044,760 samples, 0.07%) + + + +leveldb::InternalKeyComparator::Compare (734,458,642 samples, 0.10%) + + + +leveldb::Slice::Slice (505,598,789 samples, 0.07%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (166,155,643 samples, 0.02%) + + + +leveldb::Block::Iter::Valid (198,565,835 samples, 0.03%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (1,050,897,728 samples, 0.14%) + + + +leveldb::(anonymous namespace)::MergingIterator::key (1,815,280,857 samples, 0.24%) + + + +copy_page_to_iter (640,264,680 samples, 0.08%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (2,137,114,114 samples, 0.28%) + + + +do_iter_write (1,065,715,939 samples, 0.14%) + + + +pagecache_get_page (766,743,064 samples, 0.10%) + + + +sys_mprotect (50,758,450,824 samples, 6.63%) +sys_mprot.. + + +__hrtimer_run_queues (488,660,560 samples, 0.06%) + + + +pagecache_get_page (1,983,392,566 samples, 0.26%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::IteratorWrapper::Valid (108,234,452 samples, 0.01%) + + + +__cxxabiv1::__vmi_class_type_info::__do_dyncast (558,280,990 samples, 0.07%) + + + +enqueue_entity (163,727,231 samples, 0.02%) + + + +apic_timer_interrupt (553,376,191 samples, 0.07%) + + + +std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (17,626,808,785 samples, 2.30%) +s.. + + +leveldb::InternalKeyComparator::Compare (8,634,820,092 samples, 1.13%) + + + +get_empty_filp (7,415,846,289 samples, 0.97%) + + + +aa_file_perm (77,685,252 samples, 0.01%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +apic_timer_interrupt (65,021,832 samples, 0.01%) + + + +leveldb::Block::Iter::GetRestartPoint (6,848,806,411 samples, 0.89%) + + + +leveldb::IteratorWrapper::Prev (570,933,837 samples, 0.07%) + + + +leveldb::DB::Put (1,473,240,706 samples, 0.19%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::GetAndParseTrueValue (4,370,637,619 samples, 0.57%) + + + +lockref_get_not_zero (10,349,819,931 samples, 1.35%) + + + +__cxxabiv1::__si_class_type_info::__do_dyncast (604,376,292 samples, 0.08%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (961,619,021 samples, 0.13%) + + + +try_to_wake_up (15,029,921,874 samples, 1.96%) +t.. + + +do_iter_readv_writev (472,131,262 samples, 0.06%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (561,373,053 samples, 0.07%) + + + +do_syscall_64 (243,939,212 samples, 0.03%) + + + +sys_read (1,220,487,886 samples, 0.16%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +wake_up_q (2,962,288,538 samples, 0.39%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (438,603,478 samples, 0.06%) + + + +leveldb::Table::BlockReader (644,410,474 samples, 0.08%) + + + +futex_wake (7,856,585,011 samples, 1.03%) + + + +_raw_spin_lock (1,330,014,580 samples, 0.17%) + + + +leveldb::(anonymous namespace)::DBIter::~DBIter (171,058,153 samples, 0.02%) + + + +std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::SeekToLast (166,155,643 samples, 0.02%) + + + +set_task_cpu (520,658,426 samples, 0.07%) + + + +filp_close (1,389,191,336 samples, 0.18%) + + + +leveldb::MemTableIterator::Next (612,953,607 samples, 0.08%) + + + +leveldb::DecodeFixed32 (591,613,321 samples, 0.08%) + + + +hrtimer_interrupt (488,660,560 samples, 0.06%) + + + +leveldb::IteratorWrapper::value (657,025,128 samples, 0.09%) + + + +page_fault (38,942,455,941 samples, 5.08%) +page_f.. + + +__fget (2,304,797,696 samples, 0.30%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::MemTable::KeyComparator::operator (14,955,289,161 samples, 1.95%) +l.. + + +do_syscall_64 (1,361,942,985 samples, 0.18%) + + + +update_cfs_group (488,660,560 samples, 0.06%) + + + +leveldb::MakeFileName (591,759,634 samples, 0.08%) + + + +sys_read (591,615,404 samples, 0.08%) + + + +truncate_inode_pages_range (171,058,153 samples, 0.02%) + + + +__alloc_pages_nodemask (4,170,870,371 samples, 0.54%) + + + +update_curr (85,922,545 samples, 0.01%) + + + +syscall_return_via_sysret (592,276,114 samples, 0.08%) + + + +lru_cache_add_active_or_unevictable (1,636,001,618 samples, 0.21%) + + + +file_free_rcu (521,802,005 samples, 0.07%) + + + +update_process_times (488,660,560 samples, 0.06%) + + + +fclose@@GLIBC_2.2.5 (1,327,097,998 samples, 0.17%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (2,042,422,167 samples, 0.27%) + + + +dput (4,225,871,831 samples, 0.55%) + + + +ext4_file_write_iter (472,131,262 samples, 0.06%) + + + +select_task_rq_fair (719,837,295 samples, 0.09%) + + + +entry_SYSCALL_64_after_hwframe (10,720,018,541 samples, 1.40%) + + + +do_page_fault (591,615,404 samples, 0.08%) + + + +update_rq_clock (95,638,296 samples, 0.01%) + + + +__close_fd (3,512,941,619 samples, 0.46%) + + + +do_page_fault (6,253,598,844 samples, 0.82%) + + + +dput.part.26 (8,841,354,859 samples, 1.15%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (2,609,291,669 samples, 0.34%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (664,309,428 samples, 0.09%) + + + +leveldb::ExtractUserKey (1,293,426,510 samples, 0.17%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear (121,655,361 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (536,603,294 samples, 0.07%) + + + +generic_permission (637,157,751 samples, 0.08%) + + + +irq_exit (528,405,201 samples, 0.07%) + + + +std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::SeekToLast (166,155,643 samples, 0.02%) + + + +__memcmp_avx2_movbe (98,409,259 samples, 0.01%) + + + +leveldb::Block::Iter::~Iter (550,410,824 samples, 0.07%) + + + +dput (6,411,248,683 samples, 0.84%) + + + +activate_task (3,423,621,286 samples, 0.45%) + + + +select_task_rq_fair (2,790,380,199 samples, 0.36%) + + + +std::_Vector_base<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::_Vector_impl::~_Vector_impl (508,601,420 samples, 0.07%) + + + +leveldb::IteratorWrapper::Valid (893,089,306 samples, 0.12%) + + + +leveldb::(anonymous namespace)::DBIter::FindPrevUserEntry (5,654,803,480 samples, 0.74%) + + + +update_load_avg (72,610,772 samples, 0.01%) + + + +lockref_put_return (1,444,237,583 samples, 0.19%) + + + +dequeue_entity (627,465,391 samples, 0.08%) + + + +apparmor_file_alloc_security (1,877,406,135 samples, 0.25%) + + + +leveldb::Block::Iter::Prev (48,307,263,543 samples, 6.31%) +leveldb:.. + + +task_tick_fair (488,660,560 samples, 0.06%) + + + +ext4_release_file (451,520,283 samples, 0.06%) + + + +_raw_spin_trylock (88,940,727 samples, 0.01%) + + + +update_cfs_group (1,230,536,996 samples, 0.16%) + + + +leveldb::Benchmark::ThreadBody (10,474,641,504 samples, 1.37%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (1,086,198,923 samples, 0.14%) + + + +entry_SYSCALL_64_stage2 (139,976,003 samples, 0.02%) + + + +rw_verify_area (1,220,487,886 samples, 0.16%) + + + +dequeue_task_fair (1,383,012,716 samples, 0.18%) + + + +entry_SYSCALL_64_after_hwframe (1,383,153,670 samples, 0.18%) + + + +leveldb::(anonymous namespace)::MergingIterator::FindLargest (7,814,301,313 samples, 1.02%) + + + +leveldb::Iterator::CleanupNode::Run (171,058,153 samples, 0.02%) + + + +generic_write_end (67,301,186 samples, 0.01%) + + + +change_protection (1,526,080,947 samples, 0.20%) + + + +leveldb::(anonymous namespace)::DBIter::Next (3,643,664,425 samples, 0.48%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +[unknown] (2,207,237,004 samples, 0.29%) + + + +leveldb::IteratorWrapper::Valid (561,373,053 samples, 0.07%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (795,463,285 samples, 0.10%) + + + +lockref_put_return (15,103,600,401 samples, 1.97%) +l.. + + +leveldb::ValueLogFileName (1,187,303,813 samples, 0.16%) + + + +_raw_spin_lock_irq (3,859,944,730 samples, 0.50%) + + + +lockref_get_not_zero (26,834,252,595 samples, 3.50%) +loc.. + + +dput.part.26 (3,654,783,369 samples, 0.48%) + + + +file_free_rcu (632,809,847 samples, 0.08%) + + + +vfs_read (1,220,487,886 samples, 0.16%) + + + +leveldb::IteratorWrapper::Valid (536,603,294 samples, 0.07%) + + + +copy_user_enhanced_fast_string (591,615,404 samples, 0.08%) + + + +__fsnotify_parent (14,829,109,031 samples, 1.94%) +_.. + + +__rwsem_mark_wake (83,745,209 samples, 0.01%) + + + +leveldb::Slice::Slice (2,712,270,284 samples, 0.35%) + + + +leveldb::IteratorWrapper::Prev (3,354,204,026 samples, 0.44%) + + + +syscall_return_via_sysret (183,709,086 samples, 0.02%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::value (706,708,243 samples, 0.09%) + + + +__memcmp_avx2_movbe (1,261,464,397 samples, 0.16%) + + + +leveldb::Block::Iter::GetRestartPoint (1,986,649,889 samples, 0.26%) + + + +__do_page_fault (449,936,786 samples, 0.06%) + + + +std::basic_streambuf<char, std::char_traits<char> >::xsgetn (588,267,172 samples, 0.08%) + + + +entry_SYSCALL_64_after_hwframe (519,234,726 samples, 0.07%) + + + +std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadForward (93,253,103,040 samples, 12.17%) +std::thread::_Invo.. + + +leveldb::(anonymous namespace)::MemTableInserter::Put (173,045,168 samples, 0.02%) + + + +sysmalloc (50,510,564,186 samples, 6.59%) +sysmalloc + + +path_openat (50,534,762,220 samples, 6.60%) +path_ope.. + + +get_mem_cgroup_from_mm (2,146,409,747 samples, 0.28%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Prev (145,856,380 samples, 0.02%) + + + +apparmor_file_free_security (1,386,010,083 samples, 0.18%) + + + +task_ctx_sched_out (556,599,645 samples, 0.07%) + + + +leveldb::(anonymous namespace)::MergingIterator::FindSmallest (1,243,690,325 samples, 0.16%) + + + +leveldb::Block::Iter::GetRestartPoint (514,966,716 samples, 0.07%) + + + +std::__basic_file<char>::is_open@plt (84,351,975 samples, 0.01%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (657,025,128 samples, 0.09%) + + + +generic_permission (711,163,601 samples, 0.09%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::InternalKeyComparator::Compare (5,247,046,359 samples, 0.68%) + + + +__libc_disable_asynccancel (547,939,869 samples, 0.07%) + + + +__call_rcu.constprop.69 (855,320,120 samples, 0.11%) + + + +do_syscall_64 (10,633,370,367 samples, 1.39%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (669,261,860 samples, 0.09%) + + + +search_exception_tables (591,615,404 samples, 0.08%) + + + +pick_next_task_fair (1,460,491,284 samples, 0.19%) + + + +__generic_file_write_iter (967,946,424 samples, 0.13%) + + + +find_get_entry (227,405,734 samples, 0.03%) + + + +leveldb::Block::Iter::Next (9,974,520,484 samples, 1.30%) + + + +deactivate_task (7,015,571,341 samples, 0.92%) + + + +_raw_spin_lock (1,324,791,558 samples, 0.17%) + + + +leveldb::Slice::size (680,797,812 samples, 0.09%) + + + +leveldb::Slice::Slice (763,201,000 samples, 0.10%) + + + +std::locale::~locale (158,198,213 samples, 0.02%) + + + +___slab_alloc (875,251,063 samples, 0.11%) + + + +leveldb::IteratorWrapper::value (3,256,597,440 samples, 0.43%) + + + +__close_nocancel (21,119,638,592 samples, 2.76%) +__.. + + +std::locale::~locale (202,573,698 samples, 0.03%) + + + +[unknown] (572,740,875 samples, 0.07%) + + + +select_task_rq_fair (502,511,429 samples, 0.07%) + + + +fsnotify (729,297,540 samples, 0.10%) + + + +try_to_wake_up (1,307,131,835 samples, 0.17%) + + + +leveldb::Block::Iter::NextEntryOffset (645,172,216 samples, 0.08%) + + + +apparmor_file_mprotect (71,764,944 samples, 0.01%) + + + +leveldb::IteratorWrapper::value (715,661,849 samples, 0.09%) + + + +_do_fork (107,903,129 samples, 0.01%) + + + +__activate_page (198,517,012 samples, 0.03%) + + + +page_fault (464,689,473 samples, 0.06%) + + + +update_load_avg (2,819,446,369 samples, 0.37%) + + + +sys_read (639,247,449 samples, 0.08%) + + + +x86_pmu_enable (65,670,829 samples, 0.01%) + + + +vfs_writev (1,065,715,939 samples, 0.14%) + + + +leveldb::Slice::Slice (513,529,929 samples, 0.07%) + + + +rwsem_wake (18,997,914,808 samples, 2.48%) +rw.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (664,309,428 samples, 0.09%) + + + +__sched_text_start (5,453,181,113 samples, 0.71%) + + + +anon_vma_interval_tree_remove (626,194,665 samples, 0.08%) + + + +leveldb::Slice::data (1,386,991,109 samples, 0.18%) + + + +iput (171,058,153 samples, 0.02%) + + + +std::__basic_file<char>::fd@plt (874,366,988 samples, 0.11%) + + + +std::basic_ifstream<char, std::char_traits<char> >::close (642,167,192 samples, 0.08%) + + + +down_read (64,959,233 samples, 0.01%) + + + +copyout (1,011,431,922 samples, 0.13%) + + + +__lru_cache_add (1,374,661,405 samples, 0.18%) + + + +clear_page_erms (73,356,486 samples, 0.01%) + + + +leveldb::IteratorWrapper::Valid (111,783,584 samples, 0.01%) + + + +generic_file_read_iter (3,781,431,442 samples, 0.49%) + + + +leveldb::(anonymous namespace)::DBIter::~DBIter (171,058,153 samples, 0.02%) + + + +std::operator+<char, std::char_traits<char>, std::allocator<char> > (571,560,142 samples, 0.07%) + + + +dput.part.26 (3,189,183,850 samples, 0.42%) + + + +leveldb::IteratorWrapper::Set (550,410,824 samples, 0.07%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>@plt (507,028,486 samples, 0.07%) + + + +llseek (93,850,190 samples, 0.01%) + + + +_raw_spin_lock (225,870,186 samples, 0.03%) + + + +leveldb::(anonymous namespace)::DBIter::Valid (145,512,687 samples, 0.02%) + + + +__entry_trampoline_start (624,174,002 samples, 0.08%) + + + +__fd_install (1,070,115,041 samples, 0.14%) + + + +@plt (882,042,855 samples, 0.12%) + + + +dequeue_entity (1,951,510,549 samples, 0.25%) + + + +activate_task (937,319,633 samples, 0.12%) + + + +std::locale::operator= (1,337,169,781 samples, 0.17%) + + + +lockref_get_not_zero (9,815,297,447 samples, 1.28%) + + + +leveldb::Slice::data (537,328,206 samples, 0.07%) + + + +leveldb::IteratorWrapper::Update (2,409,062,190 samples, 0.31%) + + + +generic_perform_write (935,111,002 samples, 0.12%) + + + +leveldb::TableCache::Get (1,720,339,135 samples, 0.22%) + + + +leveldb::Block::Iter::Prev (3,179,243,738 samples, 0.42%) + + + +leveldb::GetVarint32Ptr (139,607,689 samples, 0.02%) + + + +vma_merge (1,031,416,700 samples, 0.13%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (85,568,417 samples, 0.01%) + + + +__fget (118,326,340 samples, 0.02%) + + + +dput.part.26 (667,187,750 samples, 0.09%) + + + +page_fault (591,615,404 samples, 0.08%) + + + +mutex_unlock (88,470,339 samples, 0.01%) + + + +std::istream::sentry::sentry (799,502,305 samples, 0.10%) + + + +db_bench (765,993,609,758 samples, 100.00%) +db_bench + + +leveldb::(anonymous namespace)::MergingIterator::FindSmallest (9,125,412,838 samples, 1.19%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +rw_verify_area (14,374,827,347 samples, 1.88%) +r.. + + +leveldb::Slice::data (1,847,006,343 samples, 0.24%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +update_curr (575,498,449 samples, 0.08%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (4,930,882,283 samples, 0.64%) + + + +leveldb::MemTableIterator::value (2,706,917,325 samples, 0.35%) + + + +__lll_unlock_wake_private (12,977,912,171 samples, 1.69%) + + + +__mark_inode_dirty (92,914,075 samples, 0.01%) + + + +down_read_trylock (520,141,228 samples, 0.07%) + + + +leveldb::WriteBatch::Iterate (664,093,638 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksForward (1,402,463,707 samples, 0.18%) + + + +leveldb::IteratorWrapper::value (664,309,428 samples, 0.09%) + + + +__handle_mm_fault (1,023,360,275 samples, 0.13%) + + + +lockref_put_return (69,519,928 samples, 0.01%) + + + +sched_clock_cpu (636,423,566 samples, 0.08%) + + + +mem_cgroup_handle_over_high (549,259,856 samples, 0.07%) + + + +dput (116,141,329 samples, 0.02%) + + + +new_sync_read (3,781,431,442 samples, 0.49%) + + + +do_syscall_64 (93,669,937 samples, 0.01%) + + + +pick_next_task_idle (120,907,185 samples, 0.02%) + + + +sys_lseek (813,835,799 samples, 0.11%) + + + +pagevec_lru_move_fn (346,121,008 samples, 0.05%) + + + +leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint (502,229,687 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (74,209,812,500 samples, 9.69%) +entry_SYSCALL_.. + + +page_counter_try_charge (417,883,118 samples, 0.05%) + + + +leveldb::DBImpl::ReadValueLog (2,147,517,350 samples, 0.28%) + + + +do_syscall_64 (19,337,009,525 samples, 2.52%) +do.. + + +anon_vma_interval_tree_insert (93,205,056 samples, 0.01%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +do_syscall_64 (74,209,812,500 samples, 9.69%) +do_syscall_64 + + +leveldb::(anonymous namespace)::MergingIterator::value (7,820,113,117 samples, 1.02%) + + + +pfn_pte (148,017,129 samples, 0.02%) + + + +leveldb::GetVarint32Ptr (1,974,550,449 samples, 0.26%) + + + +leveldb::ParsedInternalKey::ParsedInternalKey (1,327,067,891 samples, 0.17%) + + + +leveldb::GetVarint32PtrFallback (543,862,875 samples, 0.07%) + + + +memcg_kmem_uncharge (521,802,005 samples, 0.07%) + + + +__atime_needs_update (796,390,153 samples, 0.10%) + + + +leveldb::DBImpl::BGWorkGC (6,649,937,594 samples, 0.87%) + + + +dget_parent (10,349,819,931 samples, 1.35%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::key (1,615,514,412 samples, 0.21%) + + + +__fsnotify_parent (520,529,851 samples, 0.07%) + + + +leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadMain (502,229,687 samples, 0.07%) + + + +leveldb::Status::Status (434,661,999 samples, 0.06%) + + + +do_unlinkat (171,058,153 samples, 0.02%) + + + +__entry_trampoline_start (2,407,917,509 samples, 0.31%) + + + +leveldb::DecodeEntry (204,545,638 samples, 0.03%) + + + +dput.part.26 (15,113,186,959 samples, 1.97%) +d.. + + +wake_q_add (79,066,541 samples, 0.01%) + + + +leveldb::IteratorWrapper::value (656,861,837 samples, 0.09%) + + + +leveldb::GetVarint32 (491,048,470 samples, 0.06%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::Hash (591,613,321 samples, 0.08%) + + + +native_sched_clock (965,103,126 samples, 0.13%) + + + +pick_next_task_idle (539,659,209 samples, 0.07%) + + + +memset (97,772,251 samples, 0.01%) + + + +leveldb::InternalKeyComparator::Compare (723,538,621 samples, 0.09%) + + + +leveldb::MakeFileName (81,514,440 samples, 0.01%) + + + +dput.part.26 (451,510,259 samples, 0.06%) + + + +reweight_entity (1,337,310,558 samples, 0.17%) + + + +error_entry (1,052,760,023 samples, 0.14%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Prev (68,074,427 samples, 0.01%) + + + +select_task_rq_fair (132,294,970 samples, 0.02%) + + + +sys_read (19,337,009,525 samples, 2.52%) +sy.. + + +leveldb::WriteBatchInternal::InsertInto (664,093,638 samples, 0.09%) + + + +apic_timer_interrupt (521,802,005 samples, 0.07%) + + + +strncpy_from_user (1,767,719,771 samples, 0.23%) + + + +rwsem_wake (1,456,649,116 samples, 0.19%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindLessThan (145,856,380 samples, 0.02%) + + + +leveldb::Slice::Slice (119,284,226 samples, 0.02%) + + + +down_read (21,246,748,140 samples, 2.77%) +do.. + + +leveldb::Table::InternalGet (1,720,339,135 samples, 0.22%) + + + +leveldb::DBImpl::BackgroundGarbageCollect (6,649,937,594 samples, 0.87%) + + + +llist_add_batch (707,496,961 samples, 0.09%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +entry_SYSCALL_64_after_hwframe (15,864,302,895 samples, 2.07%) +e.. + + +_IO_padn (759,046,294 samples, 0.10%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (1,392,523,325 samples, 0.18%) + + + +std::istream::seekg (1,107,056,846 samples, 0.14%) + + + +__alloc_pages_nodemask (502,912,074 samples, 0.07%) + + + +ext4_da_write_begin (815,527,728 samples, 0.11%) + + + +rcu_segcblist_enqueue (345,115,117 samples, 0.05%) + + + +do_syscall_64 (20,787,426,969 samples, 2.71%) +do.. + + +__intel_pmu_enable_all.constprop.23 (65,670,829 samples, 0.01%) + + + +leveldb::(anonymous namespace)::DBIter::ParseKey (463,003,095 samples, 0.06%) + + + +leveldb::InternalKeyComparator::Compare (518,764,842 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (591,615,404 samples, 0.08%) + + + +dequeue_task_fair (2,040,923,060 samples, 0.27%) + + + +std::__basic_file<char>::is_open@plt (628,585,879 samples, 0.08%) + + + +leveldb::IteratorWrapper::Prev (3,208,347,646 samples, 0.42%) + + + +leveldb::(anonymous namespace)::DBIter::FindPrevUserEntry (131,111,765,706 samples, 17.12%) +leveldb::(anonymous namesp.. + + +leveldb::Slice::Slice (69,495,873 samples, 0.01%) + + + +__rwsem_mark_wake (891,919,734 samples, 0.12%) + + + +leveldb::ExtractUserKey (2,245,211,047 samples, 0.29%) + + + +std::basic_ifstream<char, std::char_traits<char> >::close (636,086,422 samples, 0.08%) + + + +mark_page_accessed (2,359,440,012 samples, 0.31%) + + + +complete_walk (2,014,530,344 samples, 0.26%) + + + +evict (171,058,153 samples, 0.02%) + + + +leveldb::GetLengthPrefixedSlice (139,607,689 samples, 0.02%) + + + +__fsnotify_parent (593,584,677 samples, 0.08%) + + + +apparmor_file_alloc_security (1,240,687,696 samples, 0.16%) + + + +__fput (9,932,510,469 samples, 1.30%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Lookup (569,667,157 samples, 0.07%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize@plt (79,383,370 samples, 0.01%) + + + +leveldb::Slice::compare (689,202,727 samples, 0.09%) + + + +vfs_read (591,615,404 samples, 0.08%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::~vector (508,601,420 samples, 0.07%) + + + +native_queued_spin_lock_slowpath (225,870,186 samples, 0.03%) + + + +__libc_read (639,247,449 samples, 0.08%) + + + +finish_task_switch (1,386,922,501 samples, 0.18%) + + + +__memcmp_avx2_movbe (319,243,509 samples, 0.04%) + + + +llseek (659,210,729 samples, 0.09%) + + + +leveldb::IteratorWrapper::Prev (3,179,243,738 samples, 0.42%) + + + +vfs_open (34,780,976,673 samples, 4.54%) +vfs_o.. + + +__fsnotify_parent (14,573,939,884 samples, 1.90%) +_.. + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (900,083,337 samples, 0.12%) + + + +apparmor_file_permission (2,737,820,206 samples, 0.36%) + + + +native_queued_spin_lock_slowpath (1,314,797,654 samples, 0.17%) + + + +wake_up_q (549,583,245 samples, 0.07%) + + + +__libc_read (1,202,578,267 samples, 0.16%) + + + +std::locale::locale (5,071,094,049 samples, 0.66%) + + + +leveldb::Slice::data (66,059,501 samples, 0.01%) + + + +security_file_alloc (2,602,001,543 samples, 0.34%) + + + +rwsem_down_read_failed (3,777,270,400 samples, 0.49%) + + + +__radix_tree_lookup (1,778,773,611 samples, 0.23%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Prev (3,208,347,646 samples, 0.42%) + + + +do_syscall_64 (53,665,276,224 samples, 7.01%) +do_syscal.. + + +__fsnotify_parent (312,540,393 samples, 0.04%) + + + +futex_wait (8,509,626,359 samples, 1.11%) + + + +sched_clock_cpu (965,103,126 samples, 0.13%) + + + +vfprintf (1,844,812,507 samples, 0.24%) + + + +entry_SYSCALL_64_after_hwframe (1,065,715,939 samples, 0.14%) + + + +lockref_put_return (604,482,289 samples, 0.08%) + + + +[libstdc++.so.6.0.25] (249,468,763,894 samples, 32.57%) +[libstdc++.so.6.0.25] + + +inode_permission (637,157,751 samples, 0.08%) + + + +leveldb::Block::Iter::ParseNextKey (1,730,938,761 samples, 0.23%) + + + +lockref_put_return (5,621,299,968 samples, 0.73%) + + + +dput.part.26 (19,669,991,577 samples, 2.57%) +dp.. + + +__vfs_read (591,615,404 samples, 0.08%) + + + +leveldb::Slice::size (163,930,043 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string@plt (637,674,048 samples, 0.08%) + + + +perf_iterate_sb (2,289,493,803 samples, 0.30%) + + + +try_to_wake_up (2,914,738,706 samples, 0.38%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (141,015,307 samples, 0.02%) + + + +__dynamic_cast (826,592,145 samples, 0.11%) + + + +cmp_ex_search (591,615,404 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1,530,177,784 samples, 0.20%) + + + +vfs_read (136,110,363,545 samples, 17.77%) +vfs_read + + +rw_verify_area (574,876,974 samples, 0.08%) + + + +syscall_return_via_sysret (3,093,243,813 samples, 0.40%) + + + +get_futex_value_locked (766,845,064 samples, 0.10%) + + + +leveldb::IteratorWrapper::Next (721,418,901 samples, 0.09%) + + + +std::basic_streambuf<char, std::char_traits<char> >::xsgetn@plt (483,240,543 samples, 0.06%) + + + +__perf_event_task_sched_in (611,519,913 samples, 0.08%) + + + +radix_tree_lookup_slot (1,778,773,611 samples, 0.23%) + + + +__sched_text_start (3,028,166,203 samples, 0.40%) + + + +leveldb::IteratorWrapper::value (1,581,296,633 samples, 0.21%) + + + +__entry_trampoline_start (2,103,941,752 samples, 0.27%) + + + +ext4_file_open (16,931,880,009 samples, 2.21%) +e.. + + +idle_cpu (601,929,703 samples, 0.08%) + + + +[unknown] (1,362,079,681 samples, 0.18%) + + + +ctx_sched_out (556,599,645 samples, 0.07%) + + + +__perf_event_task_sched_in (131,685,613 samples, 0.02%) + + + +native_irq_return_iret (1,046,656,530 samples, 0.14%) + + + +__fsnotify_parent (197,239,634 samples, 0.03%) + + + +intel_tfa_pmu_enable_all (111,149,746 samples, 0.01%) + + + +security_file_permission (574,876,974 samples, 0.08%) + + + +leveldb::MemTableIterator::key (1,186,132,818 samples, 0.15%) + + + +put_prev_task_fair (499,796,586 samples, 0.07%) + + + +handle_mm_fault (464,602,907 samples, 0.06%) + + + +leveldb::Table::BlockReader (2,555,557,880 samples, 0.33%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (92,256,901 samples, 0.01%) + + + +leveldb::Slice::compare (488,693,793 samples, 0.06%) + + + +__d_lookup_rcu (1,903,008,889 samples, 0.25%) + + + +entry_SYSCALL_64_after_hwframe (639,247,449 samples, 0.08%) + + + +__sched_text_start (1,980,417,367 samples, 0.26%) + + + +leveldb::(anonymous namespace)::MergingIterator::key (2,405,465,945 samples, 0.31%) + + + +sys_writev (1,065,715,939 samples, 0.14%) + + + +__perf_event_task_sched_out (559,895,754 samples, 0.07%) + + + +leveldb::(anonymous namespace)::DBIter::ParseKey (18,650,400,973 samples, 2.43%) +le.. + + +rcu_process_callbacks (521,802,005 samples, 0.07%) + + + +leveldb::Slice::data (1,448,848,505 samples, 0.19%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create@plt (709,167,381 samples, 0.09%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +smp_apic_timer_interrupt (488,660,560 samples, 0.06%) + + + +try_module_get (270,642,008 samples, 0.04%) + + + +leveldb::GetLengthPrefixedSlice (3,903,226,977 samples, 0.51%) + + + +dequeue_task_fair (1,190,062,247 samples, 0.16%) + + + +leveldb::IteratorWrapper::value (3,370,620,948 samples, 0.44%) + + + +all (765,993,609,758 samples, 100%) + + + +leveldb::Slice::size (119,102,612 samples, 0.02%) + + + +kmem_cache_free (521,802,005 samples, 0.07%) + + + +get_page_from_freelist (464,602,907 samples, 0.06%) + + + +leveldb::(anonymous namespace)::MergingIterator::Next (40,829,213,234 samples, 5.33%) +leveld.. + + +leveldb::(anonymous namespace)::MergingIterator::key (1,186,165,707 samples, 0.15%) + + + +schedule (1,980,417,367 samples, 0.26%) + + + +leveldb::DBImpl::Put (1,473,240,706 samples, 0.19%) + + + +dput.part.26 (5,846,956,344 samples, 0.76%) + + + +find_get_entry (1,983,392,566 samples, 0.26%) + + + +rebalance_domains (528,405,201 samples, 0.07%) + + + +leveldb::IteratorWrapper::key (1,490,996,708 samples, 0.19%) + + + +current_time (746,127,550 samples, 0.10%) + + + +_IO_old_init (1,310,313,379 samples, 0.17%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (657,025,128 samples, 0.09%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (149,240,336 samples, 0.02%) + + + +malloc (4,498,813,233 samples, 0.59%) + + + +entry_SYSCALL_64_stage2 (511,439,957 samples, 0.07%) + + + +enqueue_entity (80,681,622 samples, 0.01%) + + + +__libc_read (1,220,487,886 samples, 0.16%) + + + +entry_SYSCALL_64_after_hwframe (243,939,212 samples, 0.03%) + + + +enqueue_task_fair (80,681,622 samples, 0.01%) + + + +__pthread_disable_asynccancel (629,921,040 samples, 0.08%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::SeekToLast (166,155,643 samples, 0.02%) + + + +leveldb::IteratorWrapper::Update (3,528,635,856 samples, 0.46%) + + + +leveldb::(anonymous namespace)::DBIter::key (729,037,031 samples, 0.10%) + + + +down_read (4,435,787,161 samples, 0.58%) + + + +deactivate_task (1,383,012,716 samples, 0.18%) + + + +std::__invoke_impl<void, void (17,626,808,785 samples, 2.30%) +s.. + + +fd_install (1,070,115,041 samples, 0.14%) + + + +leveldb::MemTableIterator::key (767,527,983 samples, 0.10%) + + + +grab_cache_page_write_begin (766,743,064 samples, 0.10%) + + + +leveldb::InternalKeyComparator::Compare (719,145,365 samples, 0.09%) + + + +_IO_vsnprintf (934,382,859 samples, 0.12%) + + + +llseek (22,867,417,449 samples, 2.99%) +ll.. + + +apparmor_file_open (632,337,724 samples, 0.08%) + + + +ext4_da_invalidatepage (140,707,492 samples, 0.02%) + + + +__fget (2,406,169,114 samples, 0.31%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::IteratorWrapper::Valid (574,746,332 samples, 0.08%) + + + +std::allocator<char>::allocator@plt (477,692,309 samples, 0.06%) + + + +call_rwsem_down_read_failed (3,777,270,400 samples, 0.49%) + + + +search_extable (591,615,404 samples, 0.08%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::HashSlice (591,613,321 samples, 0.08%) + + + +rcu_process_callbacks (632,809,847 samples, 0.08%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +clear_page_erms (2,329,901,477 samples, 0.30%) + + + +entry_SYSCALL_64_after_hwframe (107,903,129 samples, 0.01%) + + + +leveldb::IteratorWrapper::Next (887,357,272 samples, 0.12%) + + + +getname_flags (1,873,799,322 samples, 0.24%) + + + +_IO_link_in (1,974,930,527 samples, 0.26%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (99,069,434 samples, 0.01%) + + + +update_rq_clock (965,103,126 samples, 0.13%) + + + +__slab_free (521,802,005 samples, 0.07%) + + + +leveldb::IteratorWrapper::key (1,240,053,593 samples, 0.16%) + + + +leveldb::GetLengthPrefixedSlice (1,186,132,818 samples, 0.15%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +leveldb::IteratorWrapper::Prev (87,349,372,697 samples, 11.40%) +leveldb::Iterator.. + + +__kmalloc (481,731,867 samples, 0.06%) + + + +leveldb::IteratorWrapper::Next (22,652,871,021 samples, 2.96%) +le.. + + +__lll_lock_wait_private (13,803,931,816 samples, 1.80%) +_.. + + +leveldb::IteratorWrapper::Update (607,988,182 samples, 0.08%) + + + +_raw_spin_lock (65,122,207 samples, 0.01%) + + + +leveldb::(anonymous namespace)::MergingIterator::Prev (4,155,239,934 samples, 0.54%) + + + +lockref_put_return (197,239,634 samples, 0.03%) + + + +leveldb::Slice::compare (72,575,900 samples, 0.01%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::Block::Iter::Valid (511,482,302 samples, 0.07%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::IteratorWrapper::Next (72,344,821 samples, 0.01%) + + + +std::basic_filebuf<char, std::char_traits<char> >::close (609,437,119 samples, 0.08%) + + + +leveldb::InternalKeyComparator::Compare (74,646,011 samples, 0.01%) + + + +page_counter_cancel (521,802,005 samples, 0.07%) + + + +do_page_fault (449,936,786 samples, 0.06%) + + + +leveldb::IteratorWrapper::Valid (68,575,643 samples, 0.01%) + + + +__memcmp_avx2_movbe (738,975,443 samples, 0.10%) + + + +leveldb::DecodeFixed64 (837,916,535 samples, 0.11%) + + + +leveldb::IteratorWrapper::Update (711,450,301 samples, 0.09%) + + + +call_rwsem_wake (18,997,914,808 samples, 2.48%) +ca.. + + +leveldb::WriteBatchInternal::ConverToValueLog (750,299,350 samples, 0.10%) + + + +may_open (1,153,518,542 samples, 0.15%) + + + +update_curr (468,332,934 samples, 0.06%) + + + +scheduler_tick (488,660,560 samples, 0.06%) + + + +__libc_read (155,683,535,668 samples, 20.32%) +__libc_read + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign@plt (591,064,610 samples, 0.08%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::key (1,908,212,432 samples, 0.25%) + + + +__libc_write (1,383,153,670 samples, 0.18%) + + + +__vfs_read (3,781,431,442 samples, 0.49%) + + + +leveldb::IteratorWrapper::iter (540,794,090 samples, 0.07%) + + + +leveldb::Block::Iter::Seek (1,592,043,172 samples, 0.21%) + + + +std::__invoke<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadForward (93,253,103,040 samples, 12.17%) +std::__invoke<leve.. + + +leveldb::IteratorWrapper::Valid (779,598,924 samples, 0.10%) + + + +__GI___libc_open (75,335,761,001 samples, 9.84%) +__GI___libc_open + + +leveldb::(anonymous namespace)::MergingIterator::Valid (78,219,543 samples, 0.01%) + + + +rcu_process_callbacks (456,643,946 samples, 0.06%) + + + +dput.part.26 (2,781,634,248 samples, 0.36%) + + + +leveldb::IteratorWrapper::Update (91,893,987 samples, 0.01%) + + + +account_entity_enqueue (758,943,054 samples, 0.10%) + + + +leveldb::Iterator::~Iterator (171,058,153 samples, 0.02%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (584,535,587 samples, 0.08%) + + + +osq_lock (5,754,102,198 samples, 0.75%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +call_rwsem_down_write_failed_killable (21,281,177,275 samples, 2.78%) +ca.. + + +dput.part.26 (69,519,928 samples, 0.01%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (978,807,051 samples, 0.13%) + + + +vfs_write (1,338,057,888 samples, 0.17%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (694,001,740 samples, 0.09%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +[unknown] (2,199,461,477 samples, 0.29%) + + + +leveldb::DBImpl::BackgroundCompaction (502,229,687 samples, 0.07%) + + + +std::__invoke_impl<void, leveldb::(anonymous namespace)::DBPreFetchIter::SeekToLast (166,155,643 samples, 0.02%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::GetAndParseTrueValue (676,244,565 samples, 0.09%) + + + +ext4_file_open (639,060,841 samples, 0.08%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Lookup (654,681,623 samples, 0.09%) + + + +leveldb::DecodeEntry (7,011,010,143 samples, 0.92%) + + + +futex_wait_queue_me (3,575,456,172 samples, 0.47%) + + + +path_init (930,388,909 samples, 0.12%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +enqueue_task_fair (932,810,118 samples, 0.12%) + + + +_raw_spin_lock (1,193,425,564 samples, 0.16%) + + + +swapgs_restore_regs_and_return_to_usermode (3,223,477,152 samples, 0.42%) + + + +_raw_spin_lock (629,355,040 samples, 0.08%) + + + +leveldb::Version::~Version (171,058,153 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (3,370,620,948 samples, 0.44%) + + + +security_file_mprotect (633,826,129 samples, 0.08%) + + + +_raw_spin_lock (1,152,487,671 samples, 0.15%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output (666,878,188 samples, 0.09%) + + + +error_entry (89,696,599 samples, 0.01%) + + + +ext4_invalidatepage (72,179,869 samples, 0.01%) + + + +do_syscall_64 (146,263,630,531 samples, 19.09%) +do_syscall_64 + + +leveldb::Block::Iter::status (434,661,999 samples, 0.06%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +__pagevec_lru_add_fn (673,553,638 samples, 0.09%) + + + +update_cfs_group (576,071,372 samples, 0.08%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +leveldb::Slice::Slice (543,297,489 samples, 0.07%) + + + +__calc_delta (638,583,320 samples, 0.08%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::~DBPreFetchIter (171,058,153 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (1,439,812,593 samples, 0.19%) + + + +leveldb::Block::Iter::ParseNextKey (169,795,995 samples, 0.02%) + + + +x86_pmu_disable (179,025,732 samples, 0.02%) + + + +lockref_put_return (2,756,465,314 samples, 0.36%) + + + +unlazy_walk (2,014,530,344 samples, 0.26%) + + + +_cond_resched (446,376,357 samples, 0.06%) + + + +leveldb::TableBuilder::Add (494,210,836 samples, 0.06%) + + + +file_free_rcu (456,643,946 samples, 0.06%) + + + +mntput_no_expire (95,057,570 samples, 0.01%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Insert (173,045,168 samples, 0.02%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +__memcmp_avx2_movbe (889,043,121 samples, 0.12%) + + + +lockref_put_return (2,781,634,248 samples, 0.36%) + + + +sys_read (243,939,212 samples, 0.03%) + + + +std::use_facet<std::codecvt<char, char, __mbstate_t> > (571,493,791 samples, 0.07%) + + + +leveldb::MemTable::Add (173,045,168 samples, 0.02%) + + + +leveldb::IteratorWrapper::Valid (441,358,956 samples, 0.06%) + + + +leveldb::Slice::size (280,739,474 samples, 0.04%) + + + +syscall_return_via_sysret (4,309,861,164 samples, 0.56%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (701,468,842 samples, 0.09%) + + + +dput (6,417,932,767 samples, 0.84%) + + + +leveldb::Slice::data (136,834,939 samples, 0.02%) + + + +clear_buddies (684,852,941 samples, 0.09%) + + + +prepare_exit_to_usermode (1,131,058,363 samples, 0.15%) + + + +leveldb::IteratorWrapper::value (952,969,680 samples, 0.12%) + + + +sync_mm_rss (106,538,215 samples, 0.01%) + + + +leveldb::GetVarint32Ptr (447,964,229 samples, 0.06%) + + + +do_syscall_64 (639,247,449 samples, 0.08%) + + + +std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf (23,558,972,053 samples, 3.08%) +std.. + + +leveldb::DecodeEntry (1,082,588,808 samples, 0.14%) + + + +irq_exit (456,643,946 samples, 0.06%) + + + +leveldb::DecodeFixed32 (607,330,798 samples, 0.08%) + + + +__perf_event_task_sched_in (65,670,829 samples, 0.01%) + + + +block_invalidatepage (72,179,869 samples, 0.01%) + + + +ctx_sched_out (179,025,732 samples, 0.02%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +dput (25,298,668,471 samples, 3.30%) +dput + + +leveldb::ExtractUserKey (729,037,031 samples, 0.10%) + + + +std::basic_ios<char, std::char_traits<char> >::_M_cache_locale@plt (507,568,544 samples, 0.07%) + + + +leveldb::Block::Iter::ParseNextKey (721,418,901 samples, 0.09%) + + + +leveldb::Slice::size (617,370,301 samples, 0.08%) + + + +_IO_no_init (770,446,213 samples, 0.10%) + + + +sys_clone (107,903,129 samples, 0.01%) + + + +leveldb::IteratorWrapper::value (664,309,428 samples, 0.09%) + + + +copy_page_to_iter (591,615,404 samples, 0.08%) + + + +entry_SYSCALL_64_after_hwframe (1,220,487,886 samples, 0.16%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::InitDataBlock (1,629,483,297 samples, 0.21%) + + + +ext4_mark_inode_dirty (92,914,075 samples, 0.01%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +_int_malloc (3,193,640,351 samples, 0.42%) + + + +ttwu_do_activate (114,458,310 samples, 0.01%) + + + +__vma_adjust (992,931,564 samples, 0.13%) + + + +ext4_file_read_iter (591,615,404 samples, 0.08%) + + + +leveldb::Block::Iter::value (564,589,827 samples, 0.07%) + + + +leveldb::(anonymous namespace)::MergingIterator::Valid (733,731,694 samples, 0.10%) + + + +select_idle_sibling (601,929,703 samples, 0.08%) + + + +vfs_read (93,669,937 samples, 0.01%) + + + +lockref_get_not_zero (5,383,271,883 samples, 0.70%) + + + +leveldb::DBImpl::ReadValueLog (2,565,787,455 samples, 0.33%) + + + +virtual thunk to std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream (1,362,079,681 samples, 0.18%) + + + +[unknown] (23,558,972,053 samples, 3.08%) +[un.. + + +do_mprotect_pkey (50,758,450,824 samples, 6.63%) +do_mprote.. + + +leveldb::DecodeEntry (2,716,217,578 samples, 0.35%) + + + +leveldb::DecodeFixed64 (1,507,365,086 samples, 0.20%) + + + +lockref_put_return (5,846,956,344 samples, 0.76%) + + + +leveldb::Block::Iter::value (578,542,864 samples, 0.08%) + + + +__update_load_avg_se.isra.38 (1,618,691,939 samples, 0.21%) + + + +pagecache_get_page (7,516,533,427 samples, 0.98%) + + + +leveldb::WriteBatch::Iterate (677,142,300 samples, 0.09%) + + + +leveldb::(anonymous namespace)::DBIter::FindNextUserEntry (29,067,094,617 samples, 3.79%) +leve.. + + +std::use_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > > (704,916,234 samples, 0.09%) + + + +leveldb::GetLengthPrefixedSlice (490,869,959 samples, 0.06%) + + + +std::__basic_file<char>::is_open (474,444,350 samples, 0.06%) + + + +leveldb::(anonymous namespace)::MergingIterator::FindSmallest (518,764,842 samples, 0.07%) + + + +leveldb::IteratorWrapper::iter (81,602,570 samples, 0.01%) + + + +vfs_read (18,156,258,789 samples, 2.37%) +v.. + + +leveldb::(anonymous namespace)::DBIter::SaveKey (1,118,878,781 samples, 0.15%) + + + +leveldb::IteratorWrapper::Update (3,850,945,878 samples, 0.50%) + + + +leveldb::Slice::compare (71,274,061 samples, 0.01%) + + + +truncate_inode_pages_final (171,058,153 samples, 0.02%) + + + +discard_slab (521,802,005 samples, 0.07%) + + + +leveldb::MemTable::KeyComparator::operator (126,935,571 samples, 0.02%) + + + +leveldb::ValueLogFileName (729,732,937 samples, 0.10%) + + + +apic_timer_interrupt (632,809,847 samples, 0.08%) + + + +__lseek (906,102,231 samples, 0.12%) + + + +leveldb::Slice::Slice (648,363,853 samples, 0.08%) + + + +std::basic_filebuf<char, std::char_traits<char> >::underflow (676,296,386 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksForward (4,273,435,794 samples, 0.56%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (989,775,499 samples, 0.13%) + + + +leveldb::(anonymous namespace)::MergingIterator::Next (2,217,949,117 samples, 0.29%) + + + +leveldb::BlockBuilder::Add (494,210,836 samples, 0.06%) + + + +leveldb::ExtractUserKey (580,359,697 samples, 0.08%) + + + +x86_pmu_enable (111,149,746 samples, 0.01%) + + + +copy_process.part.36 (107,903,129 samples, 0.01%) + + + +leveldb::IteratorWrapper::key (756,263,251 samples, 0.10%) + + + +security_file_free (1,433,422,611 samples, 0.19%) + + + +__entry_trampoline_start (637,146,608 samples, 0.08%) + + + +leveldb::ParsedInternalKey::ParsedInternalKey (434,246,096 samples, 0.06%) + + + +memcg_kmem_get_cache (1,375,189,873 samples, 0.18%) + + + +std::has_facet<std::codecvt<char, char, __mbstate_t> > (1,297,324,360 samples, 0.17%) + + + +leveldb::MemTableIterator::Prev (145,856,380 samples, 0.02%) + + + +mntput (95,057,570 samples, 0.01%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (137,878,061,514 samples, 18.00%) +leveldb::(anonymous namespa.. + + +__entry_trampoline_start (514,680,691 samples, 0.07%) + + + +operator new[]@plt (102,852,201 samples, 0.01%) + + + +leveldb::Slice::size (715,944,923 samples, 0.09%) + + + +std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadBackward (138,422,696,426 samples, 18.07%) +std::thread::_Invoker<std::t.. + + +leveldb::IteratorWrapper::key (463,478,311 samples, 0.06%) + + + +dget_parent (17,457,492,280 samples, 2.28%) +d.. + + +get_unused_fd_flags (1,725,798,610 samples, 0.23%) + + + +__fget_light (754,061,625 samples, 0.10%) + + + +__do_page_fault (591,615,404 samples, 0.08%) + + + +fopen@@GLIBC_2.2.5 (74,838,108 samples, 0.01%) + + + +__atime_needs_update (597,703,492 samples, 0.08%) + + + +leveldb::Slice::Slice (417,826,789 samples, 0.05%) + + + +leveldb::Block::Iter::SeekToRestartPoint (2,410,448,401 samples, 0.31%) + + + +cfree@GLIBC_2.2.5 (544,634,912 samples, 0.07%) + + + +ext4_da_write_begin (150,809,070 samples, 0.02%) + + + +swapgs_restore_regs_and_return_to_usermode (1,257,598,907 samples, 0.16%) + + + +activate_task (80,681,622 samples, 0.01%) + + + +lockref_put_return (275,373,433 samples, 0.04%) + + + +sys_futex (69,476,462 samples, 0.01%) + + + +[unknown] (735,034,379 samples, 0.10%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (509,409,203 samples, 0.07%) + + + +handle_mm_fault (13,842,735,546 samples, 1.81%) +h.. + + +leveldb::IteratorWrapper::value (656,861,837 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (915,173,863 samples, 0.12%) + + + +deactivate_task (1,215,120,613 samples, 0.16%) + + + +__softirqentry_text_start (521,802,005 samples, 0.07%) + + + +dequeue_entity (698,159,775 samples, 0.09%) + + + +leveldb::ExtractUserKey (2,548,563,521 samples, 0.33%) + + + +finish_task_switch (971,545,415 samples, 0.13%) + + + +leveldb::IteratorWrapper::key (779,598,924 samples, 0.10%) + + + +[unknown] (37,137,106,651 samples, 4.85%) +[unkno.. + + +smp_apic_timer_interrupt (632,809,847 samples, 0.08%) + + + +lockref_get_not_zero (6,715,777,495 samples, 0.88%) + + + +leveldb::DBImpl::Write (1,473,240,706 samples, 0.19%) + + + +kmem_cache_alloc (644,295,412 samples, 0.08%) + + + +__libc_read (20,303,189,192 samples, 2.65%) +__.. + + +__vfs_read (43,803,140,023 samples, 5.72%) +__vfs_r.. + + +__fget_light (2,434,318,428 samples, 0.32%) + + + +leveldb::MemTable::KeyComparator::operator (842,593,673 samples, 0.11%) + + + +lockref_get_not_zero (17,432,600,341 samples, 2.28%) +l.. + + +__alloc_pages_nodemask (120,633,584 samples, 0.02%) + + + +[unknown] (641,364,442 samples, 0.08%) + + + +__generic_file_write_iter (455,374,733 samples, 0.06%) + + + +leveldb::Slice::Slice (486,199,798 samples, 0.06%) + + + +std::thread::_M_start_thread (166,155,643 samples, 0.02%) + + + +_raw_spin_lock (162,954,172 samples, 0.02%) + + + +perf_iterate_ctx (1,765,639,429 samples, 0.23%) + + + +do_syscall_64 (15,787,036,406 samples, 2.06%) +d.. + + +leveldb::ExtractUserKey (3,098,735,871 samples, 0.40%) + + + +apic_timer_interrupt (488,660,560 samples, 0.06%) + + + +change_protection_range (896,725,907 samples, 0.12%) + + + +kmem_cache_alloc (2,316,549,900 samples, 0.30%) + + + +lockref_get_not_zero (2,584,050,632 samples, 0.34%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksBackward (133,445,266 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (72,344,821 samples, 0.01%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +[unknown] (978,973,591 samples, 0.13%) + + + +do_syscall_64 (1,220,487,886 samples, 0.16%) + + + +leveldb::GetVarint32Ptr (543,862,875 samples, 0.07%) + + + +dput (451,510,259 samples, 0.06%) + + + +security_file_permission (197,239,634 samples, 0.03%) + + + +may_expand_vm (1,192,943,092 samples, 0.16%) + + + +leveldb::Slice::Slice (93,070,666 samples, 0.01%) + + + +alloc_pages_vma (4,197,840,382 samples, 0.55%) + + + +lockref_get (624,823,360 samples, 0.08%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace@plt (98,111,593 samples, 0.01%) + + + +sys_futex (9,361,713,732 samples, 1.22%) + + + +handle_mm_fault (1,135,634,020 samples, 0.15%) + + + +ext4_da_write_end (219,757,339 samples, 0.03%) + + + +leveldb::(anonymous namespace)::DBPreFetchIter::GetAndParseTrueValue (7,325,535,789 samples, 0.96%) + + + +generic_file_read_iter (42,455,597,338 samples, 5.54%) +generic.. + + +leveldb::GetLengthPrefixedSlice (2,636,941,844 samples, 0.34%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (2,684,891,320 samples, 0.35%) + + + +enqueue_entity (1,942,770,957 samples, 0.25%) + + + +up_read (602,341,620 samples, 0.08%) + + + +leveldb::GetVarint32 (543,862,875 samples, 0.07%) + + + +std::thread::_Invoker<std::tuple<leveldb::(anonymous namespace)::DBPreFetchIter::PreFetchThreadForward (93,253,103,040 samples, 12.17%) +std::thread::_Invo.. + + +kfree (620,901,817 samples, 0.08%) + + + +leveldb::(anonymous namespace)::CleanupIteratorState (171,058,153 samples, 0.02%) + + + +leveldb::Slice::Slice (1,308,452,339 samples, 0.17%) + + + +leveldb::IteratorWrapper::Valid (202,332,270 samples, 0.03%) + + + +_cond_resched (597,233,596 samples, 0.08%) + + + +dput (275,373,433 samples, 0.04%) + + + +leveldb::(anonymous namespace)::LRUCache::Lookup (569,667,157 samples, 0.07%) + + + +__GI___fileno (2,544,490,671 samples, 0.33%) + + + +fput (1,350,469,926 samples, 0.18%) + + + +rwsem_wake (563,012,882 samples, 0.07%) + + + +__fsnotify_parent (6,875,040,348 samples, 0.90%) + + + +entry_SYSCALL_64_after_hwframe (19,337,009,525 samples, 2.52%) +en.. + + +_raw_spin_lock (424,722,982 samples, 0.06%) + + + +__clone (114,049,101 samples, 0.01%) + + + + diff --git a/设计文档.assets/recover_valuelog.png b/设计文档.assets/recover_valuelog.png new file mode 100644 index 0000000..82c3ddd Binary files /dev/null and b/设计文档.assets/recover_valuelog.png differ diff --git a/设计文档.assets/write_1.svg b/设计文档.assets/write_1.svg new file mode 100644 index 0000000..87cb465 --- /dev/null +++ b/设计文档.assets/write_1.svg @@ -0,0 +1,5766 @@ + + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search +ic + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irqrestore (20,202,020 samples, 0.11%) + + + +generic_permission (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +path_get (10,101,010 samples, 0.06%) + + + +leveldb::GetVarint32 (20,202,020 samples, 0.11%) + + + +__aa_path_perm (222,222,220 samples, 1.24%) + + + +operator new (10,101,010 samples, 0.06%) + + + +submit_bio_noacct (20,202,020 samples, 0.11%) + + + +leveldb::EncodeFixed32 (10,101,010 samples, 0.06%) + + + +ext4_da_write_begin (2,101,010,080 samples, 11.69%) +ext4_da_write_begin + + +fault_in_readable (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::Slice::size (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +x64_sys_call (10,101,010 samples, 0.06%) + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +leveldb::DecodeFixed32 (20,202,020 samples, 0.11%) + + + +filemap_release_folio (141,414,140 samples, 0.79%) + + + +kmem_cache_alloc (60,606,060 samples, 0.34%) + + + +security_file_free (20,202,020 samples, 0.11%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +leveldb::GetVarint32Ptr (50,505,050 samples, 0.28%) + + + +xas_start (30,303,030 samples, 0.17%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +folio_batch_move_lru (70,707,070 samples, 0.39%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator[] (80,808,080 samples, 0.45%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::find (70,707,070 samples, 0.39%) + + + +is_vmalloc_addr (10,101,010 samples, 0.06%) + + + +aa_str_perms (202,020,200 samples, 1.12%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +path_openat (1,232,323,220 samples, 6.86%) +path_openat + + +leveldb::GetLengthPrefixedSlice (10,101,010 samples, 0.06%) + + + +locks_remove_posix (20,202,020 samples, 0.11%) + + + +fd_install (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +apparmor_file_permission (20,202,020 samples, 0.11%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.06%) + + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +[libstdc++.so.6.0.30] (10,101,010 samples, 0.06%) + + + +mptspi_qcmd (20,202,020 samples, 0.11%) + + + +ext4_sync_file (141,414,140 samples, 0.79%) + + + +entry_SYSCALL_64_after_hwframe (292,929,290 samples, 1.63%) + + + +balance_dirty_pages_ratelimited_flags (181,818,180 samples, 1.01%) + + + +__get_user_8 (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +lruvec_stat_mod_folio (10,101,010 samples, 0.06%) + + + +new_slab (10,101,010 samples, 0.06%) + + + +_raw_spin_lock (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_base (30,303,030 samples, 0.17%) + + + +down_write (10,101,010 samples, 0.06%) + + + +__fsnotify_parent (40,404,040 samples, 0.22%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (30,303,030 samples, 0.17%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Insert (282,828,280 samples, 1.57%) + + + +dput (10,101,010 samples, 0.06%) + + + +current_obj_cgroup (10,101,010 samples, 0.06%) + + + +percpu_counter_add_batch (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__srcu_read_lock (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator* (10,101,010 samples, 0.06%) + + + +do_writev (10,101,010 samples, 0.06%) + + + +mem_cgroup_flush_stats.part.0 (131,313,130 samples, 0.73%) + + + +path_name (161,616,160 samples, 0.90%) + + + +__es_tree_search.isra.0 (10,101,010 samples, 0.06%) + + + +leveldb::EncodeVarint32 (20,202,020 samples, 0.11%) + + + +_raw_read_lock (20,202,020 samples, 0.11%) + + + +xas_find (10,101,010 samples, 0.06%) + + + +lockref_get_not_zero (20,202,020 samples, 0.11%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (111,111,110 samples, 0.62%) + + + +__folio_cancel_dirty (10,101,010 samples, 0.06%) + + + +void std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_realloc_insert<std::pair<leveldb::Slice, leveldb::Slice> > (111,111,110 samples, 0.62%) + + + +__filemap_fdatawrite_range (20,202,020 samples, 0.11%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::max_size (10,101,010 samples, 0.06%) + + + +std::locale::~locale (20,202,020 samples, 0.11%) + + + +leveldb::log::Writer::AddRecord (484,848,480 samples, 2.70%) +le.. + + +ksys_write (111,111,110 samples, 0.62%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +void std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::_M_push_back_aux<leveldb::DBImpl::Writer*> (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (20,202,020 samples, 0.11%) + + + +void std::_Destroy<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice> > (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (2,040,404,020 samples, 11.35%) +leveldb::SkipLis.. + + +aa_label_next_confined (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatch::WriteBatch (10,101,010 samples, 0.06%) + + + +std::locale::operator= (10,101,010 samples, 0.06%) + + + +get_partial_node.part.0 (10,101,010 samples, 0.06%) + + + +__get_random_u32_below (10,101,010 samples, 0.06%) + + + +___slab_alloc (151,515,150 samples, 0.84%) + + + +__block_commit_write (141,414,140 samples, 0.79%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::vector (50,505,050 samples, 0.28%) + + + +open_last_lookups (20,202,020 samples, 0.11%) + + + +ima_file_check (30,303,030 samples, 0.17%) + + + +mntget (10,101,010 samples, 0.06%) + + + +init_file (60,606,060 samples, 0.34%) + + + +void std::thread::_Invoker<std::tuple<void (7,101,010,030 samples, 39.52%) +void std::thread::_Invoker<std::tuple<void + + +leveldb::WriteBatchInternal::Contents (20,202,020 samples, 0.11%) + + + +apparmor_file_free_security (20,202,020 samples, 0.11%) + + + +alloc_fd (10,101,010 samples, 0.06%) + + + +std::mutex::lock (10,101,010 samples, 0.06%) + + + +__fdget_pos (10,101,010 samples, 0.06%) + + + +unsigned long const& std::min<unsigned long> (10,101,010 samples, 0.06%) + + + +leveldb::PutLengthPrefixedSlice (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::MemTableInserter::Put (2,212,121,190 samples, 12.31%) +leveldb::(anonymou.. + + +kmem_cache_alloc (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +putname (20,202,020 samples, 0.11%) + + + +leveldb::VarintLength (10,101,010 samples, 0.06%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +leveldb::port::Mutex::Unlock (10,101,010 samples, 0.06%) + + + +folio_alloc (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (979,797,970 samples, 5.45%) +leveldb.. + + +std::pair<leveldb::Slice, leveldb::Slice>& std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::emplace_back<std::pair<leveldb::Slice, leveldb::Slice> > (111,111,110 samples, 0.62%) + + + +leveldb::MemTable::KeyComparator::operator (151,515,150 samples, 0.84%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (60,606,060 samples, 0.34%) + + + +leveldb::log::Writer::EmitPhysicalRecord (1,111,111,100 samples, 6.18%) +leveldb:.. + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::vector (70,707,070 samples, 0.39%) + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +lockref_put_return (10,101,010 samples, 0.06%) + + + +__alloc_pages (10,101,010 samples, 0.06%) + + + +ima_file_free (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::Slice::data (10,101,010 samples, 0.06%) + + + +block_invalidate_folio (161,616,160 samples, 0.90%) + + + +leveldb::Benchmark::DoWrite (1,484,848,470 samples, 8.26%) +leveldb::Be.. + + +std::ostream::write (20,202,020 samples, 0.11%) + + + +ext4_invalidate_folio (202,020,200 samples, 1.12%) + + + +std::_Select1st<std::pair<unsigned long const, unsigned long> >::operator (10,101,010 samples, 0.06%) + + + +memcpy@plt (10,101,010 samples, 0.06%) + + + +irqentry_exit (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (212,121,210 samples, 1.18%) + + + +__es_insert_extent (30,303,030 samples, 0.17%) + + + +__rmqueue_pcplist (50,505,050 samples, 0.28%) + + + +ext4_do_writepages (20,202,020 samples, 0.11%) + + + +__folio_mark_dirty (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::difference_type __gnu_cxx::operator-<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > > (10,101,010 samples, 0.06%) + + + +blk_mq_dispatch_rq_list (121,212,120 samples, 0.67%) + + + +__memmove_evex_unaligned_erms (363,636,360 samples, 2.02%) +_.. + + +ext4_inode_attach_jinode (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::WriteValueLog (505,050,500 samples, 2.81%) +le.. + + +send_to_group (232,323,230 samples, 1.29%) + + + +__snprintf (10,101,010 samples, 0.06%) + + + +try_to_unlazy (30,303,030 samples, 0.17%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +aa_dfa_match (181,818,180 samples, 1.01%) + + + +xas_descend (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::vector (10,101,010 samples, 0.06%) + + + +std::operator& (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +ext4_da_write_end (181,818,180 samples, 1.01%) + + + +__get_random_u32_below (10,101,010 samples, 0.06%) + + + +fsnotify_handle_inode_event.isra.0 (111,111,110 samples, 0.62%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_deallocate (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.06%) + + + +leveldb::Status::~Status (10,101,010 samples, 0.06%) + + + +ext4_io_submit (20,202,020 samples, 0.11%) + + + +copy_from_kernel_nofault_allowed (10,101,010 samples, 0.06%) + + + +__rcu_read_unlock (10,101,010 samples, 0.06%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +leveldb::MemTableIterator::key (191,919,190 samples, 1.07%) + + + +complete_walk (30,303,030 samples, 0.17%) + + + +d_absolute_path (10,101,010 samples, 0.06%) + + + +scsi_queue_rq (121,212,120 samples, 0.67%) + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__kmalloc (20,202,020 samples, 0.11%) + + + +generic_perform_write (10,101,010 samples, 0.06%) + + + +do_iter_readv_writev (2,808,080,780 samples, 15.63%) +do_iter_readv_writev + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_base (10,101,010 samples, 0.06%) + + + +leveldb::Benchmark::ThreadBody (6,696,969,630 samples, 37.27%) +leveldb::Benchmark::ThreadBody + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::NewNode (20,202,020 samples, 0.11%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +std::ostream::sentry::sentry (20,202,020 samples, 0.11%) + + + +leveldb::TableBuilder::Flush (30,303,030 samples, 0.17%) + + + +rw_verify_area (30,303,030 samples, 0.17%) + + + +security_file_permission (20,202,020 samples, 0.11%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_end (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint (404,040,400 samples, 2.25%) +l.. + + +void std::_Destroy_aux<true>::__destroy<std::pair<leveldb::Slice, leveldb::Slice>*> (10,101,010 samples, 0.06%) + + + +strchr@plt (10,101,010 samples, 0.06%) + + + +leveldb::Benchmark::Run (454,545,450 samples, 2.53%) +le.. + + +dquot_file_open (20,202,020 samples, 0.11%) + + + +folio_unlock (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.11%) + + + +vfs_writev (3,262,626,230 samples, 18.16%) +vfs_writev + + +copy_page_from_iter_atomic (20,202,020 samples, 0.11%) + + + +std::istream::tellg (20,202,020 samples, 0.11%) + + + +evict (454,545,450 samples, 2.53%) +ev.. + + +std::allocator_traits<std::allocator<std::pair<unsigned long, unsigned long> > >::deallocate (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::BuildBatchGroup (40,404,040 samples, 0.22%) + + + +__alloc_pages (20,202,020 samples, 0.11%) + + + +__filemap_add_folio (505,050,500 samples, 2.81%) +__.. + + +irq_exit_rcu (30,303,030 samples, 0.17%) + + + +vfs_write (434,343,430 samples, 2.42%) +vf.. + + +_int_malloc (10,101,010 samples, 0.06%) + + + +inode_needs_update_time (50,505,050 samples, 0.28%) + + + +get_vma_policy (10,101,010 samples, 0.06%) + + + +__gthread_mutex_unlock (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::pair<unsigned long, unsigned long>* std::__relocate_a<std::pair<unsigned long, unsigned long>*, std::pair<unsigned long, unsigned long>*, std::allocator<std::pair<unsigned long, unsigned long> > > (10,101,010 samples, 0.06%) + + + +__blk_mq_sched_dispatch_requests (121,212,120 samples, 0.67%) + + + +ext4_buffered_write_iter (50,505,050 samples, 0.28%) + + + +__rseq_handle_notify_resume (10,101,010 samples, 0.06%) + + + +__rcu_read_unlock (20,202,020 samples, 0.11%) + + + +copy_from_kernel_nofault (10,101,010 samples, 0.06%) + + + +leveldb::MemTableIterator::value (10,101,010 samples, 0.06%) + + + +std::_Deque_base<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::_M_get_Tp_allocator (10,101,010 samples, 0.06%) + + + +balance_dirty_pages_ratelimited (10,101,010 samples, 0.06%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.11%) + + + +find_lock_entries (40,404,040 samples, 0.22%) + + + +_IO_link_in (20,202,020 samples, 0.11%) + + + +leveldb::Status::operator= (20,202,020 samples, 0.11%) + + + +_int_malloc (20,202,020 samples, 0.11%) + + + +leveldb::ExtractUserKey (10,101,010 samples, 0.06%) + + + +std::less<unsigned long>::operator (10,101,010 samples, 0.06%) + + + +ext4_da_get_block_prep (282,828,280 samples, 1.57%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +vfs_write (101,010,100 samples, 0.56%) + + + +leveldb::crc32c::Value (10,101,010 samples, 0.06%) + + + +_int_malloc (50,505,050 samples, 0.28%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (10,101,010 samples, 0.06%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::empty (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_max_size (10,101,010 samples, 0.06%) + + + +ext4_buffered_write_iter (191,919,190 samples, 1.07%) + + + +truncate_inode_pages_range (10,101,010 samples, 0.06%) + + + +leveldb::port::Mutex::AssertHeld (10,101,010 samples, 0.06%) + + + +std::less<unsigned long>::operator (30,303,030 samples, 0.17%) + + + +leveldb::Status::OK (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::push_back (111,111,110 samples, 0.62%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +mntget (10,101,010 samples, 0.06%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +filemap_get_entry (20,202,020 samples, 0.11%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +get_page_from_freelist (131,313,130 samples, 0.73%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.11%) + + + +aa_label_next_confined (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +ktime_get_coarse_real_ts64 (20,202,020 samples, 0.11%) + + + +[unknown] (60,606,060 samples, 0.34%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__GI___libc_write (979,797,970 samples, 5.45%) +__GI___.. + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (70,707,070 samples, 0.39%) + + + +folio_alloc (686,868,680 samples, 3.82%) +foli.. + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +void std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_realloc_insert<std::pair<unsigned long, unsigned long> > (40,404,040 samples, 0.22%) + + + +mpt_put_msg_frame (111,111,110 samples, 0.62%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::size (10,101,010 samples, 0.06%) + + + +__GI___pthread_enable_asynccancel (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock (10,101,010 samples, 0.06%) + + + +consume_obj_stock (10,101,010 samples, 0.06%) + + + +leveldb::Benchmark::WriteSeq (1,484,848,470 samples, 8.26%) +leveldb::Be.. + + +leveldb::DBImpl::WriteValueLog (212,121,210 samples, 1.18%) + + + +inotify_free_event (40,404,040 samples, 0.22%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Insert (2,131,313,110 samples, 11.86%) +leveldb::SkipList.. + + +common_interrupt (10,101,010 samples, 0.06%) + + + +std::pair<unsigned long, unsigned long>* std::__niter_base<std::pair<unsigned long, unsigned long>*> (10,101,010 samples, 0.06%) + + + +__x64_sys_unlink (454,545,450 samples, 2.53%) +__.. + + +std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (10,101,010 samples, 0.06%) + + + +x64_sys_call (80,808,080 samples, 0.45%) + + + +do_syscall_64 (1,838,383,820 samples, 10.23%) +do_syscall_64 + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.06%) + + + +unlink_chunk.constprop.0 (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_do_relocate (30,303,030 samples, 0.17%) + + + +leveldb::GetVarint32 (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.06%) + + + +leveldb::Arena::AllocateAligned (10,101,010 samples, 0.06%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice> > (30,303,030 samples, 0.17%) + + + +x64_sys_call (1,525,252,510 samples, 8.49%) +x64_sys_call + + +entry_SYSCALL_64_after_hwframe (454,545,450 samples, 2.53%) +en.. + + +kfree (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.06%) + + + +x64_sys_call (343,434,340 samples, 1.91%) +x.. + + +mptscsih_qcmd (20,202,020 samples, 0.11%) + + + +std::basic_fstream<char, std::char_traits<char> >::is_open (10,101,010 samples, 0.06%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +leveldb::EncodeFixed32 (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_allocate (10,101,010 samples, 0.06%) + + + +leveldb::Slice::data (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::push_back (40,404,040 samples, 0.22%) + + + +std::ios_base::ios_base (30,303,030 samples, 0.17%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_Vector_base (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::BackgroundCall (404,040,400 samples, 2.25%) +l.. + + +security_file_free (30,303,030 samples, 0.17%) + + + +delete_from_page_cache_batch (70,707,070 samples, 0.39%) + + + +leveldb::PutLengthPrefixedSlice (20,202,020 samples, 0.11%) + + + +fsnotify (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +get_mem_cgroup_from_mm (20,202,020 samples, 0.11%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (10,101,010 samples, 0.06%) + + + +leveldb::log::Writer::AddRecord (1,121,212,110 samples, 6.24%) +leveldb:.. + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +xas_load (60,606,060 samples, 0.34%) + + + +memcmp@plt (10,101,010 samples, 0.06%) + + + +leveldb::Slice::data (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_allocate (20,202,020 samples, 0.11%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_end (10,101,010 samples, 0.06%) + + + +vma_alloc_folio (30,303,030 samples, 0.17%) + + + +getname_flags.part.0 (141,414,140 samples, 0.79%) + + + +ext4_claim_free_clusters (10,101,010 samples, 0.06%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::front (10,101,010 samples, 0.06%) + + + +balance_dirty_pages (131,313,130 samples, 0.73%) + + + +leveldb::InternalKeyComparator::Compare (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +try_charge_memcg (30,303,030 samples, 0.17%) + + + +blk_mq_flush_plug_list (121,212,120 samples, 0.67%) + + + +void __gnu_cxx::new_allocator<leveldb::DBImpl::Writer*>::construct<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*> (10,101,010 samples, 0.06%) + + + +bool __gnu_cxx::operator!=<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > > (10,101,010 samples, 0.06%) + + + +leveldb::EncodeVarint32 (10,101,010 samples, 0.06%) + + + +leveldb::Status::Status (10,101,010 samples, 0.06%) + + + +alloc_buffer_head (222,222,220 samples, 1.24%) + + + +ext4_da_write_begin (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::Slice::data (20,202,020 samples, 0.11%) + + + +leveldb::WriteBatch::Put (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_relocate (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (10,101,010 samples, 0.06%) + + + +leveldb::Slice::remove_prefix (10,101,010 samples, 0.06%) + + + +std::remove_reference<char const*&>::type&& std::move<char const*&> (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (10,101,010 samples, 0.06%) + + + +std::ios_base::~ios_base (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::push_back (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +filemap_alloc_folio (10,101,010 samples, 0.06%) + + + +leveldb::GetLengthPrefixedSlice (30,303,030 samples, 0.17%) + + + +std::pair<leveldb::Slice, leveldb::Slice>::pair<leveldb::Slice, leveldb::Slice, true> (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.06%) + + + +fault_in_readable (20,202,020 samples, 0.11%) + + + +std::ios_base::_M_init (30,303,030 samples, 0.17%) + + + +get_unused_fd_flags (50,505,050 samples, 0.28%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (10,101,010 samples, 0.06%) + + + +[unknown] (60,606,060 samples, 0.34%) + + + +mpt_put_msg_frame (20,202,020 samples, 0.11%) + + + +__GI___libc_cleanup_push_defer (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_right (10,101,010 samples, 0.06%) + + + +do_writepages (20,202,020 samples, 0.11%) + + + +__memmove_evex_unaligned_erms (30,303,030 samples, 0.17%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::PutLengthPrefixedSlice (10,101,010 samples, 0.06%) + + + +__blk_mq_do_dispatch_sched (121,212,120 samples, 0.67%) + + + +[unknown] (60,606,060 samples, 0.34%) + + + +[unknown] (262,626,260 samples, 1.46%) + + + +leveldb::TableBuilder::WriteBlock (10,101,010 samples, 0.06%) + + + +allocate_slab (141,414,140 samples, 0.79%) + + + +__vsnprintf_internal (10,101,010 samples, 0.06%) + + + +std::basic_filebuf<char, std::char_traits<char> >::xsputn (60,606,060 samples, 0.34%) + + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +__x64_sys_lseek (80,808,080 samples, 0.45%) + + + +__radix_tree_lookup (10,101,010 samples, 0.06%) + + + +ext4_file_write_iter (2,797,979,770 samples, 15.57%) +ext4_file_write_iter + + +folio_alloc_buffers (10,101,010 samples, 0.06%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (20,202,020 samples, 0.11%) + + + +void __gnu_cxx::new_allocator<leveldb::DBImpl::Writer*>::construct<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*> (20,202,020 samples, 0.11%) + + + +inotify_handle_inode_event (171,717,170 samples, 0.96%) + + + +leveldb::InternalKeyComparator::Compare (80,808,080 samples, 0.45%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.06%) + + + +__srcu_read_lock (30,303,030 samples, 0.17%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.06%) + + + +x64_sys_call (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::MutexLock::MutexLock (10,101,010 samples, 0.06%) + + + +ext4_block_write_begin (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +ext4_block_write_begin (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.06%) + + + +make_vfsuid (10,101,010 samples, 0.06%) + + + +__filemap_get_folio (20,202,020 samples, 0.11%) + + + +security_file_open (616,161,610 samples, 3.43%) +sec.. + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::back (10,101,010 samples, 0.06%) + + + +scsi_queue_rq (20,202,020 samples, 0.11%) + + + +filemap_alloc_folio (30,303,030 samples, 0.17%) + + + +file_close_fd (10,101,010 samples, 0.06%) + + + +ext4_evict_inode (454,545,450 samples, 2.53%) +ex.. + + +balance_dirty_pages_ratelimited_flags (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (10,101,010 samples, 0.06%) + + + +leveldb::Slice::Slice (40,404,040 samples, 0.22%) + + + +__dynamic_cast (10,101,010 samples, 0.06%) + + + +ext4_file_write_iter (50,505,050 samples, 0.28%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (979,797,970 samples, 5.45%) +leveldb.. + + +__cond_resched (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::Writer*& std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::emplace_back<leveldb::DBImpl::Writer*> (50,505,050 samples, 0.28%) + + + +fscrypt_file_open (30,303,030 samples, 0.17%) + + + +entry_SYSCALL_64_after_hwframe (696,969,690 samples, 3.88%) +entr.. + + +ext4_da_write_begin (20,202,020 samples, 0.11%) + + + +inode_needs_update_time (10,101,010 samples, 0.06%) + + + +leveldb::MemTable::KeyComparator::operator (10,101,010 samples, 0.06%) + + + +_int_free (10,101,010 samples, 0.06%) + + + +leveldb::TableBuilder::WriteRawBlock (10,101,010 samples, 0.06%) + + + +__radix_tree_lookup (20,202,020 samples, 0.11%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +__rcu_read_lock (10,101,010 samples, 0.06%) + + + +get_page_from_freelist (10,101,010 samples, 0.06%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign (10,101,010 samples, 0.06%) + + + +entry_SYSCALL_64_after_hwframe (676,767,670 samples, 3.77%) +entr.. + + +leveldb::Status::Status (10,101,010 samples, 0.06%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (10,101,010 samples, 0.06%) + + + +_raw_spin_lock (20,202,020 samples, 0.11%) + + + +rseq_ip_fixup (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +memset_orig (60,606,060 samples, 0.34%) + + + +std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (7,101,010,030 samples, 39.52%) +std::thread::_State_impl<std::thread::_Invoker<std::tuple<void + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +__blk_flush_plug (121,212,120 samples, 0.67%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (30,303,030 samples, 0.17%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output (10,101,010 samples, 0.06%) + + + +evict (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irqrestore (80,808,080 samples, 0.45%) + + + +unsigned char const* leveldb::crc32c::(anonymous namespace)::RoundUp<4> (10,101,010 samples, 0.06%) + + + +free_pcppages_bulk (20,202,020 samples, 0.11%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~_Vector_base (10,101,010 samples, 0.06%) + + + +try_to_free_buffers (111,111,110 samples, 0.62%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_relocate (30,303,030 samples, 0.17%) + + + +mpage_submit_folio (10,101,010 samples, 0.06%) + + + +std::allocator_traits<std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (20,202,020 samples, 0.11%) + + + +__blk_mq_do_dispatch_sched (20,202,020 samples, 0.11%) + + + +ext4_block_write_begin (20,202,020 samples, 0.11%) + + + +do_filp_open (1,242,424,230 samples, 6.91%) +do_filp_o.. + + +[unknown] (40,404,040 samples, 0.22%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::~ValueLogInserter (10,101,010 samples, 0.06%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +locks_remove_file (10,101,010 samples, 0.06%) + + + +ext4_truncate (10,101,010 samples, 0.06%) + + + +std::remove_reference<char const*&>::type&& std::move<char const*&> (10,101,010 samples, 0.06%) + + + +__kmalloc (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatchInternal::SetSequence (10,101,010 samples, 0.06%) + + + +__folio_batch_release (101,010,100 samples, 0.56%) + + + +__strchrnul_evex (30,303,030 samples, 0.17%) + + + +wbc_account_cgroup_owner (10,101,010 samples, 0.06%) + + + +__vfprintf_internal (121,212,120 samples, 0.67%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.06%) + + + +std::__basic_file<char>::close (10,101,010 samples, 0.06%) + + + +leveldb::EncodeVarint32 (10,101,010 samples, 0.06%) + + + +up_write (20,202,020 samples, 0.11%) + + + +strlen (10,101,010 samples, 0.06%) + + + +__check_heap_object (20,202,020 samples, 0.11%) + + + +leveldb::GetLengthPrefixedSlice (10,101,010 samples, 0.06%) + + + +operator new (10,101,010 samples, 0.06%) + + + +leveldb::crc32c::(anonymous namespace)::ReadUint32LE (20,202,020 samples, 0.11%) + + + +aa_path_perm (494,949,490 samples, 2.75%) +aa.. + + +mem_cgroup_wb_stats (131,313,130 samples, 0.73%) + + + +kmem_cache_free (50,505,050 samples, 0.28%) + + + +truncate_cleanup_folio (202,020,200 samples, 1.12%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +common_interrupt (30,303,030 samples, 0.17%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (383,838,380 samples, 2.14%) +l.. + + +__x64_sys_write (20,202,020 samples, 0.11%) + + + +ext4_es_insert_delayed_block (80,808,080 samples, 0.45%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +should_failslab.constprop.0 (20,202,020 samples, 0.11%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +mutex_unlock (10,101,010 samples, 0.06%) + + + +_raw_spin_trylock (40,404,040 samples, 0.22%) + + + +ext4_remove_blocks (10,101,010 samples, 0.06%) + + + +__irq_exit_rcu (20,202,020 samples, 0.11%) + + + +__memcg_slab_post_alloc_hook (20,202,020 samples, 0.11%) + + + +generic_perform_write (30,303,030 samples, 0.17%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +void std::allocator_traits<std::allocator<leveldb::DBImpl::Writer*> >::destroy<leveldb::DBImpl::Writer*> (10,101,010 samples, 0.06%) + + + +locks_remove_file (20,202,020 samples, 0.11%) + + + +__mark_inode_dirty (30,303,030 samples, 0.17%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::find (50,505,050 samples, 0.28%) + + + +get_mem_cgroup_from_mm (70,707,070 samples, 0.39%) + + + +ext4_buffered_write_iter (2,797,979,770 samples, 15.57%) +ext4_buffered_write_iter + + +syscall_exit_to_user_mode_prepare (10,101,010 samples, 0.06%) + + + +do_dentry_open (838,383,830 samples, 4.67%) +do_de.. + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (10,101,010 samples, 0.06%) + + + +down_write (10,101,010 samples, 0.06%) + + + +filemap_fdatawrite_wbc (20,202,020 samples, 0.11%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.06%) + + + +scsi_dispatch_cmd (111,111,110 samples, 0.62%) + + + +alloc_pages_mpol (656,565,650 samples, 3.65%) +allo.. + + +folio_alloc_buffers (242,424,240 samples, 1.35%) + + + +leveldb::Slice::remove_prefix (10,101,010 samples, 0.06%) + + + +leveldb::GetVarint32Ptr (353,535,350 samples, 1.97%) +l.. + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::count (70,707,070 samples, 0.39%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::~_Vector_base (20,202,020 samples, 0.11%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back (10,101,010 samples, 0.06%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (111,111,110 samples, 0.62%) + + + +std::allocator<std::pair<leveldb::Slice, leveldb::Slice> >::allocator (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +page_counter_try_charge (10,101,010 samples, 0.06%) + + + +leveldb::ExtractUserKey (10,101,010 samples, 0.06%) + + + +truncate_folio_batch_exceptionals.part.0 (20,202,020 samples, 0.11%) + + + +ext4_ext_truncate (10,101,010 samples, 0.06%) + + + +inode_needs_update_time (30,303,030 samples, 0.17%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +fsnotify_handle_inode_event.isra.0 (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::WriteBatch::Iterate (2,373,737,350 samples, 13.21%) +leveldb::WriteBatch:.. + + +obj_cgroup_charge (10,101,010 samples, 0.06%) + + + +__fsnotify_parent (10,101,010 samples, 0.06%) + + + +__fdget_pos (30,303,030 samples, 0.17%) + + + +do_writev (3,313,131,280 samples, 18.44%) +do_writev + + +std::codecvt<char, char, __mbstate_t>::do_always_noconv (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.06%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.06%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::allocate (10,101,010 samples, 0.06%) + + + +__strlen_evex (20,202,020 samples, 0.11%) + + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (20,202,020 samples, 0.11%) + + + +__file_remove_privs (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~_Vector_base (10,101,010 samples, 0.06%) + + + +leveldb::Status::ok (10,101,010 samples, 0.06%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +main (454,545,450 samples, 2.53%) +main + + +__legitimize_mnt (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_max_size (40,404,040 samples, 0.22%) + + + +__gthread_mutex_unlock (10,101,010 samples, 0.06%) + + + +leveldb::port::Mutex::Unlock (30,303,030 samples, 0.17%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_right (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (10,101,010 samples, 0.06%) + + + +filemap_get_folios_tag (10,101,010 samples, 0.06%) + + + +generic_perform_write (2,707,070,680 samples, 15.06%) +generic_perform_write + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +blk_mq_dispatch_plug_list (121,212,120 samples, 0.67%) + + + +get_any_partial (10,101,010 samples, 0.06%) + + + +__rcu_read_lock (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (30,303,030 samples, 0.17%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::basic_fstream<char, std::char_traits<char> >::basic_fstream (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_get_Tp_allocator (10,101,010 samples, 0.06%) + + + +file_close_fd (10,101,010 samples, 0.06%) + + + +std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (10,101,010 samples, 0.06%) + + + +__blk_mq_sched_dispatch_requests (20,202,020 samples, 0.11%) + + + +fsnotify (141,414,140 samples, 0.79%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +__memcg_slab_post_alloc_hook (10,101,010 samples, 0.06%) + + + +blk_mq_dispatch_rq_list (20,202,020 samples, 0.11%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::SetNext (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__mem_cgroup_charge (181,818,180 samples, 1.01%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::NoBarrier_SetNext (10,101,010 samples, 0.06%) + + + +get_page_from_freelist (575,757,570 samples, 3.20%) +get.. + + +__fdget_pos (20,202,020 samples, 0.11%) + + + +leveldb::GetVarint32 (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::pair<unsigned long, unsigned long>& std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::emplace_back<std::pair<unsigned long, unsigned long> > (50,505,050 samples, 0.28%) + + + +entry_SYSCALL_64_after_hwframe (141,414,140 samples, 0.79%) + + + +__x64_sys_write (111,111,110 samples, 0.62%) + + + +leveldb::ExtractUserKey (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +ext4_do_writepages (141,414,140 samples, 0.79%) + + + +do_syscall_64 (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__es_remove_extent (20,202,020 samples, 0.11%) + + + +std::basic_filebuf<char, std::char_traits<char> >::seekoff (20,202,020 samples, 0.11%) + + + +std::istream::seekg (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::~vector (20,202,020 samples, 0.11%) + + + +all (17,969,696,790 samples, 100%) + + + +submit_bio (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__next_zones_zonelist (40,404,040 samples, 0.22%) + + + +ext4_file_write_iter (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +jbd2_journal_add_journal_head (10,101,010 samples, 0.06%) + + + +inotify_free_event (30,303,030 samples, 0.17%) + + + +do_writepages (141,414,140 samples, 0.79%) + + + +fault_in_readable (20,202,020 samples, 0.11%) + + + +fsnotify_handle_inode_event.isra.0 (202,020,200 samples, 1.12%) + + + +rmqueue (20,202,020 samples, 0.11%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irqrestore (60,606,060 samples, 0.34%) + + + +__alloc_pages (131,313,130 samples, 0.73%) + + + +do_syscall_64 (292,929,290 samples, 1.63%) + + + +std::__invoke_result<void (7,101,010,030 samples, 39.52%) +std::__invoke_result<void + + +__mem_cgroup_uncharge_list (10,101,010 samples, 0.06%) + + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::batch_insert (878,787,870 samples, 4.89%) +leveld.. + + +mpage_prepare_extent_to_map (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::BGWork (404,040,400 samples, 2.25%) +l.. + + +do_open (969,696,960 samples, 5.40%) +do_open + + +free_unref_page_commit (20,202,020 samples, 0.11%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (10,101,010 samples, 0.06%) + + + +inotify_handle_inode_event (111,111,110 samples, 0.62%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_allocate (10,101,010 samples, 0.06%) + + + +memset_orig (60,606,060 samples, 0.34%) + + + +rmqueue_bulk (10,101,010 samples, 0.06%) + + + +lockref_get_not_zero (10,101,010 samples, 0.06%) + + + +d_absolute_path (141,414,140 samples, 0.79%) + + + +alloc_pages_mpol (10,101,010 samples, 0.06%) + + + +malloc (131,313,130 samples, 0.73%) + + + +asm_common_interrupt (30,303,030 samples, 0.17%) + + + +leveldb::DecodeFixed64 (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +blk_mq_dispatch_plug_list (20,202,020 samples, 0.11%) + + + +walk_component (20,202,020 samples, 0.11%) + + + +leveldb::BlockBuilder::Add (101,010,100 samples, 0.56%) + + + +build_open_flags (20,202,020 samples, 0.11%) + + + +__fput_sync (10,101,010 samples, 0.06%) + + + +ext4_release_folio (141,414,140 samples, 0.79%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate (20,202,020 samples, 0.11%) + + + +prepend_path (121,212,120 samples, 0.67%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +kmem_cache_alloc (202,020,200 samples, 1.12%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +__x64_sys_writev (3,313,131,280 samples, 18.44%) +__x64_sys_writev + + +[unknown] (30,303,030 samples, 0.17%) + + + +blk_mq_run_hw_queue (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +cgroup_rstat_flush (131,313,130 samples, 0.73%) + + + +leveldb::Slice::operator[] (20,202,020 samples, 0.11%) + + + +folio_alloc (10,101,010 samples, 0.06%) + + + +__submit_bio (20,202,020 samples, 0.11%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::DBImpl::CompactMemTable (404,040,400 samples, 2.25%) +l.. + + +scsi_dispatch_cmd (20,202,020 samples, 0.11%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.06%) + + + +__srcu_read_lock (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::~ValueLogInserter (10,101,010 samples, 0.06%) + + + +sysmalloc (30,303,030 samples, 0.17%) + + + +leveldb::MemTable::Add (303,030,300 samples, 1.69%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__x64_sys_unlink (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatchInternal::InsertInto (2,393,939,370 samples, 13.32%) +leveldb::WriteBatchI.. + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +std::__basic_file<char>::is_open (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadMain (404,040,400 samples, 2.25%) +l.. + + +fput (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (60,606,060 samples, 0.34%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::DBImpl::MakeRoomForWrite (10,101,010 samples, 0.06%) + + + +dput (10,101,010 samples, 0.06%) + + + +apparmor_file_alloc_security (20,202,020 samples, 0.11%) + + + +x64_sys_call (20,202,020 samples, 0.11%) + + + +do_unlinkat (10,101,010 samples, 0.06%) + + + +aa_put_buffer (10,101,010 samples, 0.06%) + + + +apparmor_file_open (515,151,510 samples, 2.87%) +ap.. + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +generic_perform_write (151,515,150 samples, 0.84%) + + + +allocate_slab (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_check_len (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +blk_mq_flush_plug_list.part.0 (121,212,120 samples, 0.67%) + + + +fault_in_iov_iter_readable (30,303,030 samples, 0.17%) + + + +send_to_group (40,404,040 samples, 0.22%) + + + +leveldb::Status::Status (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatchInternal::InsertInto (343,434,340 samples, 1.91%) +l.. + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +leveldb::TableBuilder::Add (171,717,170 samples, 0.96%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +ext4_file_write_iter (10,101,010 samples, 0.06%) + + + +jbd2_journal_get_write_access (10,101,010 samples, 0.06%) + + + +void __gnu_cxx::new_allocator<leveldb::DBImpl::Writer*>::construct<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*> (10,101,010 samples, 0.06%) + + + +do_syscall_64 (3,747,474,710 samples, 20.85%) +do_syscall_64 + + +__next_zones_zonelist (10,101,010 samples, 0.06%) + + + +unsigned long const& std::min<unsigned long> (10,101,010 samples, 0.06%) + + + +do_anonymous_page (30,303,030 samples, 0.17%) + + + +fclose@@GLIBC_2.2.5 (30,303,030 samples, 0.17%) + + + +jbd2_journal_grab_journal_head (10,101,010 samples, 0.06%) + + + +ext4_writepages (20,202,020 samples, 0.11%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__niter_base<std::pair<leveldb::Slice, leveldb::Slice>*> (10,101,010 samples, 0.06%) + + + +leveldb::Slice::data (20,202,020 samples, 0.11%) + + + +alloc_pages_mpol (10,101,010 samples, 0.06%) + + + +blk_mq_sched_dispatch_requests (20,202,020 samples, 0.11%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::push_back (50,505,050 samples, 0.28%) + + + +leveldb::WriteBatchInternal::Count (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock (10,101,010 samples, 0.06%) + + + +file_modified (60,606,060 samples, 0.34%) + + + +__strchr_evex (30,303,030 samples, 0.17%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +module_put (10,101,010 samples, 0.06%) + + + +iput (10,101,010 samples, 0.06%) + + + +mptscsih_qcmd (111,111,110 samples, 0.62%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (191,919,190 samples, 1.07%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_do_relocate (20,202,020 samples, 0.11%) + + + +leveldb::BuildTable (393,939,390 samples, 2.19%) +l.. + + +common_interrupt (10,101,010 samples, 0.06%) + + + +fsnotify_destroy_event (30,303,030 samples, 0.17%) + + + +radix_tree_lookup (20,202,020 samples, 0.11%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::SetNext (30,303,030 samples, 0.17%) + + + +entry_SYSCALL_64_after_hwframe (1,858,585,840 samples, 10.34%) +entry_SYSCALL_6.. + + +leveldb::PutLengthPrefixedSlice (10,101,010 samples, 0.06%) + + + +_itoa_word (20,202,020 samples, 0.11%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +leveldb::DestroyDB (454,545,450 samples, 2.53%) +le.. + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +std::ios_base::_M_dispose_callbacks (10,101,010 samples, 0.06%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::_Deque_iterator (10,101,010 samples, 0.06%) + + + +__fput_sync (272,727,270 samples, 1.52%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +void std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_realloc_insert<std::pair<unsigned long, unsigned long> > (111,111,110 samples, 0.62%) + + + +dget_parent (20,202,020 samples, 0.11%) + + + +std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > > (30,303,030 samples, 0.17%) + + + +dget_parent (30,303,030 samples, 0.17%) + + + +__memcg_slab_post_alloc_hook (40,404,040 samples, 0.22%) + + + +leveldb::WriteBatchInternal::Sequence (10,101,010 samples, 0.06%) + + + +__GI___libc_write (373,737,370 samples, 2.08%) +_.. + + +strlen@plt (10,101,010 samples, 0.06%) + + + +__fdget_pos (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +iput (454,545,450 samples, 2.53%) +iput + + +leveldb::WriteBatchInternal::ConverToValueLog (484,848,480 samples, 2.70%) +le.. + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::WriteBatchInternal::SetCount (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (10,101,010 samples, 0.06%) + + + +lookup_fast (20,202,020 samples, 0.11%) + + + +free_buffer_head (101,010,100 samples, 0.56%) + + + +std::pair<leveldb::Slice, leveldb::Slice>& std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::emplace_back<std::pair<leveldb::Slice, leveldb::Slice> > (40,404,040 samples, 0.22%) + + + +filemap_alloc_folio (696,969,690 samples, 3.88%) +file.. + + +std::allocator<std::pair<unsigned long, unsigned long> >::allocator (10,101,010 samples, 0.06%) + + + +___slab_alloc (20,202,020 samples, 0.11%) + + + +sysvec_apic_timer_interrupt (10,101,010 samples, 0.06%) + + + +handle_softirqs (30,303,030 samples, 0.17%) + + + +leveldb::MemTable::KeyComparator::operator (888,888,880 samples, 4.95%) +leveld.. + + +__srcu_read_unlock (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irq (171,717,170 samples, 0.96%) + + + +__cond_resched (10,101,010 samples, 0.06%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::max_size (10,101,010 samples, 0.06%) + + + +__irq_exit_rcu (30,303,030 samples, 0.17%) + + + +apparmor_file_permission (10,101,010 samples, 0.06%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +leveldb::GetVarint32Ptr (20,202,020 samples, 0.11%) + + + +__fsnotify_parent (202,020,200 samples, 1.12%) + + + +leveldb::MutexLock::MutexLock (10,101,010 samples, 0.06%) + + + +rmqueue (70,707,070 samples, 0.39%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +folio_unlock (10,101,010 samples, 0.06%) + + + +leveldb::GetVarint32 (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (20,202,020 samples, 0.11%) + + + +_raw_spin_lock (20,202,020 samples, 0.11%) + + + +inode_to_bdi (30,303,030 samples, 0.17%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +xas_start (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::size (30,303,030 samples, 0.17%) + + + +__gnu_cxx::__normal_iterator<std::pair<unsigned long, unsigned long>*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > >::base (10,101,010 samples, 0.06%) + + + +step_into (10,101,010 samples, 0.06%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +do_syscall_64 (717,171,710 samples, 3.99%) +do_s.. + + +[unknown] (40,404,040 samples, 0.22%) + + + +__kmalloc (80,808,080 samples, 0.45%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_relocate (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +__virt_addr_valid (10,101,010 samples, 0.06%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +file_write_and_wait_range (141,414,140 samples, 0.79%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.06%) + + + +_IO_no_init (10,101,010 samples, 0.06%) + + + +__srcu_read_lock (10,101,010 samples, 0.06%) + + + +memset_orig (10,101,010 samples, 0.06%) + + + +slab_update_freelist.constprop.0.isra.0 (10,101,010 samples, 0.06%) + + + +copy_from_kernel_nofault (40,404,040 samples, 0.22%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +dget_parent (10,101,010 samples, 0.06%) + + + +leveldb::EncodeFixed64 (10,101,010 samples, 0.06%) + + + +blk_mq_sched_dispatch_requests (121,212,120 samples, 0.67%) + + + +ext4_file_open (50,505,050 samples, 0.28%) + + + +__memcg_slab_post_alloc_hook (50,505,050 samples, 0.28%) + + + +uncharge_folio (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_max_size (20,202,020 samples, 0.11%) + + + +ext4_release_file (20,202,020 samples, 0.11%) + + + +irq_exit_rcu (10,101,010 samples, 0.06%) + + + +kmem_cache_alloc (20,202,020 samples, 0.11%) + + + +irq_exit_rcu (20,202,020 samples, 0.11%) + + + +leveldb::GetVarint32 (20,202,020 samples, 0.11%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (60,606,060 samples, 0.34%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Equal (10,101,010 samples, 0.06%) + + + +filemap_add_folio (606,060,600 samples, 3.37%) +fil.. + + +ext4_buffered_write_iter (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irq (131,313,130 samples, 0.73%) + + + +do_syscall_64 (696,969,690 samples, 3.88%) +do_s.. + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (10,101,010 samples, 0.06%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.06%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +xas_descend (10,101,010 samples, 0.06%) + + + +__dquot_initialize (20,202,020 samples, 0.11%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (30,303,030 samples, 0.17%) + + + +lockref_put_return (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.06%) + + + +std::pair<unsigned long, unsigned long>& std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::emplace_back<std::pair<unsigned long, unsigned long> > (131,313,130 samples, 0.73%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (90,909,090 samples, 0.51%) + + + +folio_unlock (10,101,010 samples, 0.06%) + + + +generic_file_llseek_size (10,101,010 samples, 0.06%) + + + +refill_obj_stock (30,303,030 samples, 0.17%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_max_size (10,101,010 samples, 0.06%) + + + +__kmalloc (30,303,030 samples, 0.17%) + + + +leveldb::BlockBuilder::CurrentSizeEstimate (10,101,010 samples, 0.06%) + + + +ext4_has_free_clusters (10,101,010 samples, 0.06%) + + + +kmem_cache_alloc (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_check_len (60,606,060 samples, 0.34%) + + + +leveldb::WriteBatch::Put (20,202,020 samples, 0.11%) + + + +ext4_free_blocks (10,101,010 samples, 0.06%) + + + +x64_sys_call (20,202,020 samples, 0.11%) + + + +__check_object_size (50,505,050 samples, 0.28%) + + + +__GI__IO_un_link.part.0 (10,101,010 samples, 0.06%) + + + +cfree@GLIBC_2.2.5 (20,202,020 samples, 0.11%) + + + +std::basic_filebuf<char, std::char_traits<char> >::open (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::NewNode (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (20,202,020 samples, 0.11%) + + + +fsnotify (50,505,050 samples, 0.28%) + + + +std::__basic_file<char>::open (30,303,030 samples, 0.17%) + + + +alloc_empty_file (131,313,130 samples, 0.73%) + + + +__filemap_get_folio (1,404,040,390 samples, 7.81%) +__filemap_g.. + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatchInternal::Count (10,101,010 samples, 0.06%) + + + +std::pair<unsigned long, unsigned long>::pair<unsigned long&, unsigned long, true> (10,101,010 samples, 0.06%) + + + +__x64_sys_openat (1,505,050,490 samples, 8.38%) +__x64_sys_o.. + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::_Deque_iterator (20,202,020 samples, 0.11%) + + + +void std::__invoke_impl<void, void (7,101,010,030 samples, 39.52%) +void std::__invoke_impl<void, void + + +leveldb::WriteBatchInternal::SetCount (10,101,010 samples, 0.06%) + + + +node_dirty_ok (30,303,030 samples, 0.17%) + + + +_int_free (80,808,080 samples, 0.45%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (383,838,380 samples, 2.14%) +l.. + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::count (70,707,070 samples, 0.39%) + + + +leveldb::Slice::operator[] (10,101,010 samples, 0.06%) + + + +may_open (20,202,020 samples, 0.11%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.06%) + + + +strncpy_from_user (70,707,070 samples, 0.39%) + + + +__filemap_fdatawrite_range (141,414,140 samples, 0.79%) + + + +handle_softirqs (20,202,020 samples, 0.11%) + + + +std::_Select1st<std::pair<unsigned long const, unsigned long> >::operator (10,101,010 samples, 0.06%) + + + +entry_SYSCALL_64_after_hwframe (3,747,474,710 samples, 20.85%) +entry_SYSCALL_64_after_hwframe + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +__dquot_alloc_space (20,202,020 samples, 0.11%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_base (30,303,030 samples, 0.17%) + + + +rh_timer_func (10,101,010 samples, 0.06%) + + + +node_page_state (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irq (20,202,020 samples, 0.11%) + + + +leveldb::port::Mutex::Lock (10,101,010 samples, 0.06%) + + + +asm_common_interrupt (30,303,030 samples, 0.17%) + + + +leveldb::GetVarint32PtrFallback (10,101,010 samples, 0.06%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.06%) + + + +fdatasync (151,515,150 samples, 0.84%) + + + +folio_unlock (10,101,010 samples, 0.06%) + + + +uhci_hub_status_data (10,101,010 samples, 0.06%) + + + +leveldb::PutVarint64 (30,303,030 samples, 0.17%) + + + +alloc_buffer_head (10,101,010 samples, 0.06%) + + + +__memcmp_evex_movbe (111,111,110 samples, 0.62%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__gnu_cxx::new_allocator<std::pair<unsigned long, unsigned long> >::_M_max_size (10,101,010 samples, 0.06%) + + + +lockref_put_return (10,101,010 samples, 0.06%) + + + +__memcg_slab_free_hook (50,505,050 samples, 0.28%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +leveldb::GetLengthPrefixedSlice (60,606,060 samples, 0.34%) + + + +ext4_da_get_block_prep (10,101,010 samples, 0.06%) + + + +leveldb::Benchmark::WriteRandom (5,212,121,160 samples, 29.01%) +leveldb::Benchmark::WriteRandom + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::allocate (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +handle_pte_fault (30,303,030 samples, 0.17%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_Vector_impl_data::_Vector_impl_data (10,101,010 samples, 0.06%) + + + +__GI___writev (4,030,302,990 samples, 22.43%) +__GI___writev + + +ext4_es_lookup_extent (10,101,010 samples, 0.06%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*> (30,303,030 samples, 0.17%) + + + +ext4_mb_mark_context (10,101,010 samples, 0.06%) + + + +__legitimize_path (10,101,010 samples, 0.06%) + + + +kmem_cache_alloc (10,101,010 samples, 0.06%) + + + +bool std::has_facet<std::ctype<char> > (10,101,010 samples, 0.06%) + + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.06%) + + + +leveldb::PutVarint32 (10,101,010 samples, 0.06%) + + + +kmem_cache_free (101,010,100 samples, 0.56%) + + + +_IO_str_init_static_internal (10,101,010 samples, 0.06%) + + + +__GI___libc_cleanup_push_defer (10,101,010 samples, 0.06%) + + + +mptspi_qcmd (111,111,110 samples, 0.62%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +check_heap_object (30,303,030 samples, 0.17%) + + + +ext4_writepages (141,414,140 samples, 0.79%) + + + +x64_sys_call (141,414,140 samples, 0.79%) + + + +do_unlinkat (454,545,450 samples, 2.53%) +do.. + + +ext4_mb_clear_bb (10,101,010 samples, 0.06%) + + + +create_empty_buffers (252,525,250 samples, 1.41%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +leveldb::GetVarint32Ptr (30,303,030 samples, 0.17%) + + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +clear_page_erms (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::Arena::Allocate (10,101,010 samples, 0.06%) + + + +_raw_spin_lock (10,101,010 samples, 0.06%) + + + +__fsnotify_parent (10,101,010 samples, 0.06%) + + + +_find_next_zero_bit (20,202,020 samples, 0.11%) + + + +get_page_from_freelist (20,202,020 samples, 0.11%) + + + +dget_parent (10,101,010 samples, 0.06%) + + + +___slab_alloc (10,101,010 samples, 0.06%) + + + +lockref_get_not_zero (20,202,020 samples, 0.11%) + + + +__zone_watermark_ok (10,101,010 samples, 0.06%) + + + +std::less<unsigned long>::operator (10,101,010 samples, 0.06%) + + + +std::istream::seekg (20,202,020 samples, 0.11%) + + + +truncate_inode_pages_range (434,343,430 samples, 2.42%) +tr.. + + +[unknown] (70,707,070 samples, 0.39%) + + + +refill_obj_stock (10,101,010 samples, 0.06%) + + + +d_namespace_path.constprop.0 (151,515,150 samples, 0.84%) + + + +std::_Rb_tree_iterator<std::pair<unsigned long const, unsigned long> >::operator* (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::max_size (40,404,040 samples, 0.22%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::Put (50,505,050 samples, 0.28%) + + + +__GI__IO_un_link.part.0 (50,505,050 samples, 0.28%) + + + +std::ios_base::~ios_base (20,202,020 samples, 0.11%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::end (10,101,010 samples, 0.06%) + + + +__folio_mark_dirty (80,808,080 samples, 0.45%) + + + +shuffle_freelist (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::RemoveObsoleteFiles (10,101,010 samples, 0.06%) + + + +std::__basic_file<char>::seekoff (20,202,020 samples, 0.11%) + + + +call_timer_fn (10,101,010 samples, 0.06%) + + + +inode_permission (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.06%) + + + +_raw_spin_lock (20,202,020 samples, 0.11%) + + + +leveldb::crc32c::(anonymous namespace)::ReadUint32LE (10,101,010 samples, 0.06%) + + + +current_obj_cgroup (20,202,020 samples, 0.11%) + + + +ext4_da_write_begin (70,707,070 samples, 0.39%) + + + +leveldb::InternalKeyComparator::Compare (414,141,410 samples, 2.30%) +l.. + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::front (30,303,030 samples, 0.17%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::Writer*& std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::emplace_back<leveldb::DBImpl::Writer*> (20,202,020 samples, 0.11%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::base (10,101,010 samples, 0.06%) + + + +pthread_mutex_unlock@@GLIBC_2.2.5 (20,202,020 samples, 0.11%) + + + +ext4_da_write_begin (20,202,020 samples, 0.11%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.06%) + + + +_raw_spin_unlock_irq (70,707,070 samples, 0.39%) + + + +_IO_link_in (10,101,010 samples, 0.06%) + + + +__radix_tree_lookup (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::batch_insert (343,434,340 samples, 1.91%) +l.. + + +obj_cgroup_charge (10,101,010 samples, 0.06%) + + + +run_timer_softirq (10,101,010 samples, 0.06%) + + + +leveldb::GetLengthPrefixedSlice (60,606,060 samples, 0.34%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (30,303,030 samples, 0.17%) + + + +copy_page_from_iter_atomic (151,515,150 samples, 0.84%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +__x64_sys_openat (10,101,010 samples, 0.06%) + + + +__x64_sys_close (323,232,320 samples, 1.80%) + + + +__run_timers (10,101,010 samples, 0.06%) + + + +blk_mq_submit_bio (20,202,020 samples, 0.11%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator++ (10,101,010 samples, 0.06%) + + + +timestamp_truncate (10,101,010 samples, 0.06%) + + + +syscall_exit_to_user_mode (10,101,010 samples, 0.06%) + + + +folio_add_lru (80,808,080 samples, 0.45%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (20,202,020 samples, 0.11%) + + + +leveldb::ExtractUserKey (121,212,120 samples, 0.67%) + + + +folio_alloc_buffers (10,101,010 samples, 0.06%) + + + +leveldb::Benchmark::DoWrite (5,202,020,150 samples, 28.95%) +leveldb::Benchmark::DoWrite + + +__x64_sys_fdatasync (141,414,140 samples, 0.79%) + + + +do_user_addr_fault (30,303,030 samples, 0.17%) + + + +ext4_da_write_begin (10,101,010 samples, 0.06%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.06%) + + + +ext4_file_open (10,101,010 samples, 0.06%) + + + +fsnotify (10,101,010 samples, 0.06%) + + + +void std::_Construct<std::pair<leveldb::Slice, leveldb::Slice>, std::pair<leveldb::Slice, leveldb::Slice> const&> (10,101,010 samples, 0.06%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.06%) + + + +__fsnotify_parent (50,505,050 samples, 0.28%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_relocate (20,202,020 samples, 0.11%) + + + +std::ios_base::_M_init (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +filp_flush (20,202,020 samples, 0.11%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::push_back (50,505,050 samples, 0.28%) + + + +std::basic_ios<char, std::char_traits<char> >::init (10,101,010 samples, 0.06%) + + + +[unknown] (2,989,898,960 samples, 16.64%) +[unknown] + + +std::locale::~locale (20,202,020 samples, 0.11%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +common_interrupt (30,303,030 samples, 0.17%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +__GI___unlink (10,101,010 samples, 0.06%) + + + +blk_add_rq_to_plug (20,202,020 samples, 0.11%) + + + +leveldb::DBImpl::MakeRoomForWrite (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_create_storage (20,202,020 samples, 0.11%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::vector (10,101,010 samples, 0.06%) + + + +unsigned long& std::forward<unsigned long&> (10,101,010 samples, 0.06%) + + + +do_syscall_64 (454,545,450 samples, 2.53%) +do.. + + +leveldb::(anonymous namespace)::PosixWritableFile::Append (10,101,010 samples, 0.06%) + + + +hook_file_open (10,101,010 samples, 0.06%) + + + +obj_cgroup_uncharge (30,303,030 samples, 0.17%) + + + +std::__basic_file<char>::xsputn_2 (30,303,030 samples, 0.17%) + + + +ext4_nonda_switch (10,101,010 samples, 0.06%) + + + +ext4_file_write_iter (10,101,010 samples, 0.06%) + + + +filemap_get_entry (80,808,080 samples, 0.45%) + + + +std::mutex::unlock (30,303,030 samples, 0.17%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +leveldb::Status::~Status (10,101,010 samples, 0.06%) + + + +irqentry_exit (10,101,010 samples, 0.06%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__relocate_a<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice>*, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::Write (5,111,111,060 samples, 28.44%) +leveldb::DBImpl::Write + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::allocate (10,101,010 samples, 0.06%) + + + +scsi_prepare_cmd (10,101,010 samples, 0.06%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::allocate (20,202,020 samples, 0.11%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +blk_mq_flush_plug_list.part.0 (20,202,020 samples, 0.11%) + + + +leveldb::WriteBatch::Put (30,303,030 samples, 0.17%) + + + +std::__basic_file<char>::is_open (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (20,202,020 samples, 0.11%) + + + +_raw_write_lock (20,202,020 samples, 0.11%) + + + +new_slab (141,414,140 samples, 0.79%) + + + +usb_hcd_poll_rh_status (10,101,010 samples, 0.06%) + + + +free_unref_page_list (40,404,040 samples, 0.22%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (171,717,170 samples, 0.96%) + + + +consume_obj_stock (10,101,010 samples, 0.06%) + + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (30,303,030 samples, 0.17%) + + + +leveldb::Slice::data (10,101,010 samples, 0.06%) + + + +ext4_da_reserve_space (50,505,050 samples, 0.28%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__slab_free (30,303,030 samples, 0.17%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator[] (121,212,120 samples, 0.67%) + + + +ext4_block_write_begin (646,464,640 samples, 3.60%) +ext.. + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_deallocate (10,101,010 samples, 0.06%) + + + +malloc (10,101,010 samples, 0.06%) + + + +_IO_file_open (30,303,030 samples, 0.17%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (1,838,383,820 samples, 10.23%) +leveldb::SkipLi.. + + +__close_nocancel (989,898,980 samples, 5.51%) +__close.. + + +security_file_permission (10,101,010 samples, 0.06%) + + + +blk_finish_plug (121,212,120 samples, 0.67%) + + + +current_obj_cgroup (20,202,020 samples, 0.11%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +_IO_default_xsputn (50,505,050 samples, 0.28%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::Put (121,212,120 samples, 0.67%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (10,101,010 samples, 0.06%) + + + +void std::allocator_traits<std::allocator<leveldb::DBImpl::Writer*> >::construct<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*> (10,101,010 samples, 0.06%) + + + +kmem_cache_free (30,303,030 samples, 0.17%) + + + +truncate_inode_pages_final (10,101,010 samples, 0.06%) + + + +aa_path_name (161,616,160 samples, 0.90%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +[libstdc++.so.6.0.30] (7,101,010,030 samples, 39.52%) +[libstdc++.so.6.0.30] + + +ksys_write (464,646,460 samples, 2.59%) +ks.. + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (10,101,010 samples, 0.06%) + + + +filemap_fdatawrite_wbc (141,414,140 samples, 0.79%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__srcu_read_unlock (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__memcg_slab_post_alloc_hook (10,101,010 samples, 0.06%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.06%) + + + +__virt_addr_valid (10,101,010 samples, 0.06%) + + + +__gthread_active_p (10,101,010 samples, 0.06%) + + + +__GI___libc_write (20,202,020 samples, 0.11%) + + + +leveldb::InternalKeyComparator::Compare (10,101,010 samples, 0.06%) + + + +do_syscall_64 (141,414,140 samples, 0.79%) + + + +radix_tree_lookup (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatch::Iterate (202,020,200 samples, 1.12%) + + + +inode_permission (10,101,010 samples, 0.06%) + + + +leveldb::crc32c::Extend (50,505,050 samples, 0.28%) + + + +unlink_chunk.constprop.0 (40,404,040 samples, 0.22%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::operator++ (10,101,010 samples, 0.06%) + + + +leveldb::Slice::Slice (40,404,040 samples, 0.22%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::ValueLogInserter (10,101,010 samples, 0.06%) + + + +leveldb::MemTable::Add (2,202,020,180 samples, 12.25%) +leveldb::MemTable:.. + + +_IO_file_fopen@@GLIBC_2.2.5 (20,202,020 samples, 0.11%) + + + +common_interrupt (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::MemTableInserter::Put (323,232,320 samples, 1.80%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (20,202,020 samples, 0.11%) + + + +leveldb::Slice::compare (20,202,020 samples, 0.11%) + + + +x64_sys_call (131,313,130 samples, 0.73%) + + + +__irq_exit_rcu (10,101,010 samples, 0.06%) + + + +__memcpy (10,101,010 samples, 0.06%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (30,303,030 samples, 0.17%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (40,404,040 samples, 0.22%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*> (20,202,020 samples, 0.11%) + + + +__filemap_get_folio (40,404,040 samples, 0.22%) + + + +ext4_invalidate_folio (10,101,010 samples, 0.06%) + + + +__GI___fileno (10,101,010 samples, 0.06%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (10,101,010 samples, 0.06%) + + + +leveldb::PutVarint32 (10,101,010 samples, 0.06%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.06%) + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::end (10,101,010 samples, 0.06%) + + + +filemap_get_entry (10,101,010 samples, 0.06%) + + + +submit_bio_noacct_nocheck (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +ksys_lseek (60,606,060 samples, 0.34%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::max_size (20,202,020 samples, 0.11%) + + + +security_file_alloc (40,404,040 samples, 0.22%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (80,808,080 samples, 0.45%) + + + +fault_in_iov_iter_readable (20,202,020 samples, 0.11%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::operator-- (10,101,010 samples, 0.06%) + + + +void std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_realloc_insert<std::pair<leveldb::Slice, leveldb::Slice> > (20,202,020 samples, 0.11%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::begin (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +leveldb::WriteBatchInternal::ConverToValueLog (1,151,515,140 samples, 6.41%) +leveldb:.. + + +__x64_sys_write (464,646,460 samples, 2.59%) +__.. + + +[unknown] (40,404,040 samples, 0.22%) + + + +alloc_pages_mpol (20,202,020 samples, 0.11%) + + + +__memmove_evex_unaligned_erms (10,101,010 samples, 0.06%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +leveldb::Slice::size (10,101,010 samples, 0.06%) + + + +ksys_write (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_create_storage (20,202,020 samples, 0.11%) + + + +_raw_spin_unlock_irqrestore (50,505,050 samples, 0.28%) + + + +__GI___libc_open (2,151,515,130 samples, 11.97%) +__GI___libc_open + + +mpage_process_page_bufs (10,101,010 samples, 0.06%) + + + +mem_cgroup_commit_charge (10,101,010 samples, 0.06%) + + + +aa_lookup_condperms (10,101,010 samples, 0.06%) + + + +ext4_evict_inode (10,101,010 samples, 0.06%) + + + +std::less<unsigned long>::operator (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +truncate_cleanup_folio (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +__rcu_read_unlock (10,101,010 samples, 0.06%) + + + +x64_sys_call (454,545,450 samples, 2.53%) +x6.. + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::size (10,101,010 samples, 0.06%) + + + +clear_page_erms (131,313,130 samples, 0.73%) + + + +std::basic_fstream<char, std::char_traits<char> >::basic_fstream (10,101,010 samples, 0.06%) + + + +do_syscall_64 (676,767,670 samples, 3.77%) +do_s.. + + +entry_SYSCALL_64_after_hwframe (717,171,710 samples, 3.99%) +entr.. + + +fclose@@GLIBC_2.2.5 (10,101,010 samples, 0.06%) + + + +aa_get_buffer (30,303,030 samples, 0.17%) + + + +__memmove_evex_unaligned_erms (10,101,010 samples, 0.06%) + + + +kmem_cache_free (20,202,020 samples, 0.11%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (70,707,070 samples, 0.39%) + + + +__handle_mm_fault (30,303,030 samples, 0.17%) + + + +ext4_file_write_iter (191,919,190 samples, 1.07%) + + + +__memcg_slab_free_hook (10,101,010 samples, 0.06%) + + + +rb_next (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Sync (151,515,150 samples, 0.84%) + + + +filemap_get_entry (20,202,020 samples, 0.11%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +handle_mm_fault (30,303,030 samples, 0.17%) + + + +x64_sys_call (3,323,232,290 samples, 18.49%) +x64_sys_call + + +__x64_sys_fdatasync (20,202,020 samples, 0.11%) + + + +path_get (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::front (10,101,010 samples, 0.06%) + + + +obj_cgroup_uncharge (10,101,010 samples, 0.06%) + + + +leveldb::VersionSet::NumLevelFiles (10,101,010 samples, 0.06%) + + + +__GI___unlink (454,545,450 samples, 2.53%) +__.. + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (20,202,020 samples, 0.11%) + + + +std::thread::_Invoker<std::tuple<void (7,101,010,030 samples, 39.52%) +std::thread::_Invoker<std::tuple<void + + +aa_file_perm (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::push_back (141,414,140 samples, 0.79%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Sync (20,202,020 samples, 0.11%) + + + +leveldb::port::Mutex::Lock (30,303,030 samples, 0.17%) + + + +exc_page_fault (30,303,030 samples, 0.17%) + + + +prepend_copy (60,606,060 samples, 0.34%) + + + +ext4_ext_rm_leaf (10,101,010 samples, 0.06%) + + + +std::__basic_file<char>::is_open (20,202,020 samples, 0.11%) + + + +leveldb::WriteBatchInternal::SetCount (10,101,010 samples, 0.06%) + + + +leveldb::log::Writer::EmitPhysicalRecord (464,646,460 samples, 2.59%) +le.. + + +getname (141,414,140 samples, 0.79%) + + + +std::mutex::lock (30,303,030 samples, 0.17%) + + + +alloc_anon_folio (30,303,030 samples, 0.17%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (10,101,010 samples, 0.06%) + + + +leveldb::WriteBatch::Iterate (333,333,330 samples, 1.85%) +l.. + + +asm_common_interrupt (10,101,010 samples, 0.06%) + + + +ext4_llseek (20,202,020 samples, 0.11%) + + + +leveldb::GetLengthPrefixedSlice (414,141,410 samples, 2.30%) +l.. + + +std::ostream::write (60,606,060 samples, 0.34%) + + + +rw_verify_area (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_check_len (40,404,040 samples, 0.22%) + + + +leveldb::crc32c::Extend (90,909,090 samples, 0.51%) + + + +std::allocator_traits<std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (20,202,020 samples, 0.11%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::new_allocator (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (20,202,020 samples, 0.11%) + + + +leveldb::DBImpl::Write (1,444,444,430 samples, 8.04%) +leveldb::DB.. + + +fsnotify_destroy_event (40,404,040 samples, 0.22%) + + + +__d_lookup_rcu (20,202,020 samples, 0.11%) + + + +jbd2_journal_try_to_free_buffers (141,414,140 samples, 0.79%) + + + +__memset_evex_unaligned_erms (10,101,010 samples, 0.06%) + + + +balance_dirty_pages_ratelimited (181,818,180 samples, 1.01%) + + + +release_pages (10,101,010 samples, 0.06%) + + + +dquot_file_open (20,202,020 samples, 0.11%) + + + +consume_obj_stock (10,101,010 samples, 0.06%) + + + +_IO_old_init (10,101,010 samples, 0.06%) + + + +__rcu_read_lock (10,101,010 samples, 0.06%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::GetMaxHeight (10,101,010 samples, 0.06%) + + + +do_sys_openat2 (1,474,747,460 samples, 8.21%) +do_sys_open.. + + +release_pages (101,010,100 samples, 0.56%) + + + +folio_account_cleaned (10,101,010 samples, 0.06%) + + + +leveldb::Slice::compare (30,303,030 samples, 0.17%) + + + +ext4_es_insert_delayed_block (10,101,010 samples, 0.06%) + + + +leveldb::DBImpl::BackgroundCompaction (404,040,400 samples, 2.25%) +l.. + + +prepend (70,707,070 samples, 0.39%) + + + +link_path_walk.part.0.constprop.0 (101,010,100 samples, 0.56%) + + + +ktime_get_coarse_real_ts64 (10,101,010 samples, 0.06%) + + + +create_empty_buffers (10,101,010 samples, 0.06%) + + + +mnt_get_write_access (20,202,020 samples, 0.11%) + + + +ksys_write (20,202,020 samples, 0.11%) + + + +x64_sys_call (464,646,460 samples, 2.59%) +x6.. + + +_IO_default_xsputn (30,303,030 samples, 0.17%) + + + +block_write_end (151,515,150 samples, 0.84%) + + + +fdatasync (20,202,020 samples, 0.11%) + + + +__ext4_journal_get_write_access (10,101,010 samples, 0.06%) + + + +_raw_spin_lock (10,101,010 samples, 0.06%) + + + +__check_object_size.part.0 (50,505,050 samples, 0.28%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::WriteUnbuffered (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::begin (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +std::basic_ios<char, std::char_traits<char> >::init (10,101,010 samples, 0.06%) + + + +llseek@GLIBC_2.2.5 (1,202,020,190 samples, 6.69%) +llseek@GL.. + + +file_write_and_wait_range (20,202,020 samples, 0.11%) + + + +leveldb::WriteBatch::Iterate (101,010,100 samples, 0.56%) + + + +__rcu_read_unlock (10,101,010 samples, 0.06%) + + + +inotify_handle_inode_event (40,404,040 samples, 0.22%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::NoBarrier_SetNext (20,202,020 samples, 0.11%) + + + +kfree (30,303,030 samples, 0.17%) + + + +leveldb::Slice::compare (20,202,020 samples, 0.11%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_check_len (20,202,020 samples, 0.11%) + + + +apparmor_current_getlsmblob_subj (10,101,010 samples, 0.06%) + + + +mod_objcg_state (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (20,202,020 samples, 0.11%) + + + +mark_buffer_dirty (131,313,130 samples, 0.73%) + + + +std::basic_filebuf<char, std::char_traits<char> >::open (10,101,010 samples, 0.06%) + + + +lookup_fast (10,101,010 samples, 0.06%) + + + +__fsnotify_parent (353,535,350 samples, 1.97%) +_.. + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_impl_data::_Vector_impl_data (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +ext4_ext_remove_space (10,101,010 samples, 0.06%) + + + +db_bench (17,969,696,790 samples, 100.00%) +db_bench + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.06%) + + + +ext4_nonda_switch (10,101,010 samples, 0.06%) + + + +inotify_merge (10,101,010 samples, 0.06%) + + + +ext4_file_write_iter (20,202,020 samples, 0.11%) + + + +up_write (10,101,010 samples, 0.06%) + + + +clear_page_erms (20,202,020 samples, 0.11%) + + + +lookup_fast (10,101,010 samples, 0.06%) + + + +ext4_sync_file (20,202,020 samples, 0.11%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +obj_cgroup_charge (10,101,010 samples, 0.06%) + + + +dnotify_flush (10,101,010 samples, 0.06%) + + + +[unknown] (40,404,040 samples, 0.22%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (20,202,020 samples, 0.11%) + + + +asm_sysvec_apic_timer_interrupt (10,101,010 samples, 0.06%) + + + +lockref_get (20,202,020 samples, 0.11%) + + + +__memcg_slab_free_hook (20,202,020 samples, 0.11%) + + + +unsigned long const& std::min<unsigned long> (10,101,010 samples, 0.06%) + + + +leveldb::GetLengthPrefixedSlice (20,202,020 samples, 0.11%) + + + +___slab_alloc (10,101,010 samples, 0.06%) + + + +__fsnotify_parent (90,909,090 samples, 0.51%) + + + +blk_mq_run_hw_queue (121,212,120 samples, 0.67%) + + + +file_modified (10,101,010 samples, 0.06%) + + + +apparmor_file_permission (10,101,010 samples, 0.06%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_max_size (10,101,010 samples, 0.06%) + + + +__alloc_pages (636,363,630 samples, 3.54%) +__a.. + + +leveldb::(anonymous namespace)::ValueLogInserter::ValueLogInserter (20,202,020 samples, 0.11%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.06%) + + + +truncate_inode_pages_final (444,444,440 samples, 2.47%) +tr.. + + +free_unref_page_prepare (10,101,010 samples, 0.06%) + + + +terminate_walk (10,101,010 samples, 0.06%) + + + +vfs_open (888,888,880 samples, 4.95%) +vfs_open + + +[unknown] (70,707,070 samples, 0.39%) + + + +xas_load (10,101,010 samples, 0.06%) + + + +send_to_group (131,313,130 samples, 0.73%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_Vector_base (10,101,010 samples, 0.06%) + + + +[unknown] (70,707,070 samples, 0.39%) + + + +__memcpy (10,101,010 samples, 0.06%) + + + +clear_page_erms (393,939,390 samples, 2.19%) +c.. + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator* (10,101,010 samples, 0.06%) + + + +drop_buffers.constprop.0 (10,101,010 samples, 0.06%) + + + +handle_softirqs (10,101,010 samples, 0.06%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_allocate (10,101,010 samples, 0.06%) + + + +vfs_write (20,202,020 samples, 0.11%) + + + +virtual thunk to std::basic_fstream<char, std::char_traits<char> >::~basic_fstream (30,303,030 samples, 0.17%) + + + +fsnotify (282,828,280 samples, 1.57%) + + + +__libc_start_call_main (454,545,450 samples, 2.53%) +__.. + + +_raw_spin_unlock (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::~ValueLogInserter (10,101,010 samples, 0.06%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::push_back (20,202,020 samples, 0.11%) + + + +fsnotify (10,101,010 samples, 0.06%) + + + +security_current_getlsmblob_subj (30,303,030 samples, 0.17%) + + + +leveldb::crc32c::Extend (10,101,010 samples, 0.06%) + + + +__fput (222,222,220 samples, 1.24%) + + + +leveldb::InternalKeyComparator::Compare (20,202,020 samples, 0.11%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::vector (10,101,010 samples, 0.06%) + + + +leveldb::Status::operator= (20,202,020 samples, 0.11%) + + + +__memcg_slab_free_hook (30,303,030 samples, 0.17%) + + + +__d_lookup_rcu (10,101,010 samples, 0.06%) + + + +leveldb::(anonymous namespace)::KeyBuffer::slice (10,101,010 samples, 0.06%) + + + +asm_exc_page_fault (30,303,030 samples, 0.17%) + + + +ext4_claim_free_clusters (20,202,020 samples, 0.11%) + + + +ext4_da_map_blocks.constprop.0 (242,424,240 samples, 1.35%) + + + +leveldb::GetLengthPrefixedSlice (90,909,090 samples, 0.51%) + + + +file_modified (30,303,030 samples, 0.17%) + + + +ext4_nonda_switch (10,101,010 samples, 0.06%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (10,101,010 samples, 0.06%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.06%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (10,101,010 samples, 0.06%) + + + +leveldb::Slice::operator[] (10,101,010 samples, 0.06%) + + + +do_syscall_64 (10,101,010 samples, 0.06%) + + + +do_syscall_64 (20,202,020 samples, 0.11%) + + + +leveldb::DBImpl::WriteLevel0Table (393,939,390 samples, 2.19%) +l.. + + +leveldb::WriteBatch::Put (30,303,030 samples, 0.17%) + + + +consume_stock (10,101,010 samples, 0.06%) + + + + diff --git a/设计文档.assets/write_2.svg b/设计文档.assets/write_2.svg new file mode 100644 index 0000000..84f2cc6 --- /dev/null +++ b/设计文档.assets/write_2.svg @@ -0,0 +1,10950 @@ + + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search +ic + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::EncodeVarint32 (20,202,020 samples, 0.04%) + + + +__x64_sys_write (20,202,020 samples, 0.04%) + + + +ondemand_readahead (10,101,010 samples, 0.02%) + + + +std::istream::seekg (20,202,020 samples, 0.04%) + + + +fsnotify_compare_groups (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +std::ctype<char> const& std::use_facet<std::ctype<char> > (10,101,010 samples, 0.02%) + + + +leveldb::MakeFileName (30,303,030 samples, 0.07%) + + + +__handle_mm_fault (10,101,010 samples, 0.02%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (20,202,020 samples, 0.04%) + + + +leveldb::Slice::remove_prefix (30,303,030 samples, 0.07%) + + + +submit_bio (90,909,090 samples, 0.20%) + + + +leveldb::DBImpl::Write (16,191,919,030 samples, 35.64%) +leveldb::DBImpl::Write + + +ext4_inode_attach_jinode (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::Add (262,626,260 samples, 0.58%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::InternalKeyComparator::Compare (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::HashSlice (10,101,010 samples, 0.02%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +dget_parent (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::Valid (20,202,020 samples, 0.04%) + + + +radix_tree_lookup (20,202,020 samples, 0.04%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::~_Vector_base (20,202,020 samples, 0.04%) + + + +std::allocator<char>::allocator (10,101,010 samples, 0.02%) + + + +errseq_check (10,101,010 samples, 0.02%) + + + +__rcu_read_unlock (10,101,010 samples, 0.02%) + + + +filemap_get_read_batch (151,515,150 samples, 0.33%) + + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (10,101,010 samples, 0.02%) + + + +[unknown] (20,202,020 samples, 0.04%) + + + +fput (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (40,404,040 samples, 0.09%) + + + +bool std::has_facet<std::codecvt<char, char, __mbstate_t> > (40,404,040 samples, 0.09%) + + + +__rcu_read_unlock (10,101,010 samples, 0.02%) + + + +leveldb::MemTableIterator::key (161,616,160 samples, 0.36%) + + + +_raw_spin_trylock (10,101,010 samples, 0.02%) + + + +ext4_da_write_begin (10,101,010 samples, 0.02%) + + + +futex_wait_queue (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__memmove_evex_unaligned_erms (616,161,610 samples, 1.36%) + + + +__GI___unlink (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__alloc_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> >, std::pair<leveldb::Slice, leveldb::Slice> >::_S_select_on_copy (20,202,020 samples, 0.04%) + + + +blk_mq_dispatch_plug_list (20,202,020 samples, 0.04%) + + + +std::codecvt<char, char, __mbstate_t>::do_max_length (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +path_openat (1,737,373,720 samples, 3.82%) +path.. + + +leveldb::crc32c::Extend (20,202,020 samples, 0.04%) + + + +process_measurement (10,101,010 samples, 0.02%) + + + +ext4_inode_attach_jinode (30,303,030 samples, 0.07%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +process_measurement (20,202,020 samples, 0.04%) + + + +leveldb::Slice::compare (50,505,050 samples, 0.11%) + + + +leveldb::port::Mutex::Unlock (20,202,020 samples, 0.04%) + + + +__wake_up (10,101,010 samples, 0.02%) + + + +operator delete (10,101,010 samples, 0.02%) + + + +dput (10,101,010 samples, 0.02%) + + + +leveldb::Slice::empty (10,101,010 samples, 0.02%) + + + +fsnotify (10,101,010 samples, 0.02%) + + + +__GI___lll_lock_wait (10,101,010 samples, 0.02%) + + + +do_futex (5,555,555,500 samples, 12.23%) +do_futex + + +leveldb::TableBuilder::Flush (40,404,040 samples, 0.09%) + + + +inotify_handle_inode_event (30,303,030 samples, 0.07%) + + + +[libstdc++.so.6.0.30] (30,303,030 samples, 0.07%) + + + +leveldb::InternalKeyComparator::Compare (40,404,040 samples, 0.09%) + + + +blk_mq_submit_bio (20,202,020 samples, 0.04%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +iput (10,101,010 samples, 0.02%) + + + +ext4_da_get_block_prep (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixMmapReadableFile::Read (10,101,010 samples, 0.02%) + + + +memset_orig (10,101,010 samples, 0.02%) + + + +block_write_end (20,202,020 samples, 0.04%) + + + +__memcg_slab_free_hook (70,707,070 samples, 0.16%) + + + +mutex_unlock (10,101,010 samples, 0.02%) + + + +std::basic_fstream<char, std::char_traits<char> >::close (40,404,040 samples, 0.09%) + + + +std::basic_ios<char, std::char_traits<char> >::init (20,202,020 samples, 0.04%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +kmem_cache_alloc (161,616,160 samples, 0.36%) + + + +truncate_cleanup_folio (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::ParseNextKey (212,121,210 samples, 0.47%) + + + +bdev_getblk (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_end (10,101,010 samples, 0.02%) + + + +void __gnu_cxx::new_allocator<unsigned int>::construct<unsigned int, unsigned int> (10,101,010 samples, 0.02%) + + + +_find_first_bit (10,101,010 samples, 0.02%) + + + +ext4_bread_batch (10,101,010 samples, 0.02%) + + + +balance_dirty_pages_ratelimited (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (10,101,010 samples, 0.02%) + + + +__memcg_slab_post_alloc_hook (10,101,010 samples, 0.02%) + + + +lookup_bh_lru (10,101,010 samples, 0.02%) + + + +__submit_bio (80,808,080 samples, 0.18%) + + + +part_in_flight (70,707,070 samples, 0.16%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +up_write (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +__fdget_pos (40,404,040 samples, 0.09%) + + + +futex_wait_setup (10,101,010 samples, 0.02%) + + + +__memmove_evex_unaligned_erms (10,101,010 samples, 0.02%) + + + +futex_q_lock (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::MutexLock::MutexLock (30,303,030 samples, 0.07%) + + + +leveldb::Block::Iter::Next (272,727,270 samples, 0.60%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +asm_sysvec_reschedule_ipi (10,101,010 samples, 0.02%) + + + +leveldb::DB::Put (1,424,242,410 samples, 3.13%) +lev.. + + +policy_nodemask (10,101,010 samples, 0.02%) + + + +lockref_get_not_zero (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_iterator<std::pair<unsigned long const, unsigned long> >::_Rb_tree_iterator (10,101,010 samples, 0.02%) + + + +ext4_mark_iloc_dirty (20,202,020 samples, 0.04%) + + + +leveldb::Status::operator= (40,404,040 samples, 0.09%) + + + +lockref_put_return (10,101,010 samples, 0.02%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +leveldb::DecodeEntry (30,303,030 samples, 0.07%) + + + +mntget (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +scsi_dispatch_cmd (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::HandleTable::Lookup (20,202,020 samples, 0.04%) + + + +ext4_do_update_inode.isra.0 (20,202,020 samples, 0.04%) + + + +__filemap_add_folio (414,141,410 samples, 0.91%) + + + +generic_update_time (10,101,010 samples, 0.02%) + + + +std::less<unsigned long>::operator (20,202,020 samples, 0.04%) + + + +rw_verify_area (90,909,090 samples, 0.20%) + + + +current_obj_cgroup (30,303,030 samples, 0.07%) + + + +ext4_file_write_iter (3,020,201,990 samples, 6.65%) +ext4_file.. + + +__memcg_slab_post_alloc_hook (50,505,050 samples, 0.11%) + + + +leveldb::Block::Iter::~Iter (10,101,010 samples, 0.02%) + + + +__mark_inode_dirty (40,404,040 samples, 0.09%) + + + +void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (10,101,010 samples, 0.02%) + + + +leveldb::GetLengthPrefixedSlice (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr (20,202,020 samples, 0.04%) + + + +leveldb::Compaction::ReleaseInputs (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irq (101,010,100 samples, 0.22%) + + + +schedule (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (10,101,010 samples, 0.02%) + + + +free_unref_page_list (10,101,010 samples, 0.02%) + + + +ext4_evict_inode (30,303,030 samples, 0.07%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (20,202,020 samples, 0.04%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::count (10,101,010 samples, 0.02%) + + + +[unknown] (404,040,400 samples, 0.89%) + + + +leveldb::crc32c::(anonymous namespace)::ReadUint32LE (111,111,110 samples, 0.24%) + + + +leveldb::DecodeFixed64 (10,101,010 samples, 0.02%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.02%) + + + +std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > > (10,101,010 samples, 0.02%) + + + +scsi_init_command (10,101,010 samples, 0.02%) + + + +__next_zones_zonelist (30,303,030 samples, 0.07%) + + + +folio_add_lru (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::WriteRawBlock (262,626,260 samples, 0.58%) + + + +fault_in_readable (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +[unknown] (20,202,020 samples, 0.04%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (20,202,020 samples, 0.04%) + + + +futex_wait (80,808,080 samples, 0.18%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (10,101,010 samples, 0.02%) + + + +leveldb::ExtractUserKey (80,808,080 samples, 0.18%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +std::vector<unsigned int, std::allocator<unsigned int> >::push_back (20,202,020 samples, 0.04%) + + + +aa_label_next_confined (10,101,010 samples, 0.02%) + + + +filemap_get_entry (70,707,070 samples, 0.16%) + + + +void std::_Destroy<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice> > (10,101,010 samples, 0.02%) + + + +blk_mq_get_tag (10,101,010 samples, 0.02%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.02%) + + + +scsi_dispatch_cmd (858,585,850 samples, 1.89%) +s.. + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Insert (10,101,010 samples, 0.02%) + + + +futex_wait (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (20,202,020 samples, 0.04%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::front (40,404,040 samples, 0.09%) + + + +generic_perform_write (10,101,010 samples, 0.02%) + + + +filemap_alloc_folio (686,868,680 samples, 1.51%) + + + +__GI___libc_write (252,525,250 samples, 0.56%) + + + +__check_object_size (90,909,090 samples, 0.20%) + + + +__filemap_get_folio (30,303,030 samples, 0.07%) + + + +get_partial_node.part.0 (20,202,020 samples, 0.04%) + + + +finish_task_switch.isra.0 (20,202,020 samples, 0.04%) + + + +std::operator== (10,101,010 samples, 0.02%) + + + +__schedule (30,303,030 samples, 0.07%) + + + +__legitimize_mnt (20,202,020 samples, 0.04%) + + + +lseek64@plt (10,101,010 samples, 0.02%) + + + +fsnotify_handle_inode_event.isra.0 (40,404,040 samples, 0.09%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksForward (70,707,070 samples, 0.16%) + + + +std::locale::id::_M_id (40,404,040 samples, 0.09%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (10,101,010 samples, 0.02%) + + + +leveldb::PutLengthPrefixedSlice (10,101,010 samples, 0.02%) + + + +std::ctype<char> const& std::use_facet<std::ctype<char> > (30,303,030 samples, 0.07%) + + + +submit_bio (60,606,060 samples, 0.13%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (101,010,100 samples, 0.22%) + + + +leveldb::Slice::operator[] (20,202,020 samples, 0.04%) + + + +security_file_permission (30,303,030 samples, 0.07%) + + + +leveldb::WriteBatch::Iterate (262,626,260 samples, 0.58%) + + + +mpt_put_msg_frame (10,101,010 samples, 0.02%) + + + +dd_insert_request.isra.0 (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (20,202,020 samples, 0.04%) + + + +do_unlinkat (10,101,010 samples, 0.02%) + + + +do_read_fault (20,202,020 samples, 0.04%) + + + +malloc (10,101,010 samples, 0.02%) + + + +__x64_sys_unlink (10,101,010 samples, 0.02%) + + + +operator delete (10,101,010 samples, 0.02%) + + + +inode_needs_update_time (40,404,040 samples, 0.09%) + + + +operator delete (20,202,020 samples, 0.04%) + + + +[libstdc++.so.6.0.30] (27,040,403,770 samples, 59.52%) +[libstdc++.so.6.0.30] + + +leveldb::GetLengthPrefixedSlice (80,808,080 samples, 0.18%) + + + +leveldb::ValueLogFileName (40,404,040 samples, 0.09%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +_IO_file_open (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadMain (6,101,010,040 samples, 13.43%) +leveldb::(anonymous .. + + +_int_free (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (30,303,030 samples, 0.07%) + + + +leveldb::WriteBatch::Iterate (323,232,320 samples, 0.71%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::Status::ok (10,101,010 samples, 0.02%) + + + +folio_alloc (20,202,020 samples, 0.04%) + + + +ext4_da_write_begin (2,010,100,990 samples, 4.42%) +ext4_.. + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::size (30,303,030 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (363,636,360 samples, 0.80%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (70,707,070 samples, 0.16%) + + + +__rcu_read_unlock (20,202,020 samples, 0.04%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +std::vector<unsigned int, std::allocator<unsigned int> >::size (10,101,010 samples, 0.02%) + + + +file_close_fd (20,202,020 samples, 0.04%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +__GI___lll_lock_wake (10,101,010 samples, 0.02%) + + + +mntput_no_expire (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +futex_wake (5,515,151,460 samples, 12.14%) +futex_wake + + +irqentry_exit (10,101,010 samples, 0.02%) + + + +do_unlinkat (10,101,010 samples, 0.02%) + + + +scsi_queue_rq (30,303,030 samples, 0.07%) + + + +leveldb::IteratorWrapper::Valid (20,202,020 samples, 0.04%) + + + +_raw_read_lock (30,303,030 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (999,999,990 samples, 2.20%) +e.. + + +leveldb::DBImpl::Writer*& std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::emplace_back<leveldb::DBImpl::Writer*> (90,909,090 samples, 0.20%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +_int_free (40,404,040 samples, 0.09%) + + + +ext4_buffered_write_iter (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irq (70,707,070 samples, 0.16%) + + + +copy_page_from_iter_atomic (20,202,020 samples, 0.04%) + + + +leveldb::Status::OK (10,101,010 samples, 0.02%) + + + +get_page_from_freelist (10,101,010 samples, 0.02%) + + + +cfree@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +ondemand_readahead (1,292,929,280 samples, 2.85%) +on.. + + +leveldb::Status::~Status (10,101,010 samples, 0.02%) + + + +__memcmp_evex_movbe (30,303,030 samples, 0.07%) + + + +std::pair<leveldb::Slice, leveldb::Slice> const& std::forward<std::pair<leveldb::Slice, leveldb::Slice> const&> (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::Flush (515,151,510 samples, 1.13%) + + + +std::__basic_file<char>::open (30,303,030 samples, 0.07%) + + + +_IO_default_xsputn (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.02%) + + + +__filemap_fdatawrite_range (121,212,120 samples, 0.27%) + + + +void __gnu_cxx::new_allocator<leveldb::DBImpl::Writer*>::destroy<leveldb::DBImpl::Writer*> (10,101,010 samples, 0.02%) + + + +block_write_end (60,606,060 samples, 0.13%) + + + +truncate_inode_pages_final (30,303,030 samples, 0.07%) + + + +release_pages (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::WriteRawBlock (20,202,020 samples, 0.04%) + + + +leveldb::BlockBuilder::Add (1,404,040,390 samples, 3.09%) +lev.. + + +asm_common_interrupt (20,202,020 samples, 0.04%) + + + +wake_up_q (10,101,010 samples, 0.02%) + + + +leveldb::Version::Ref (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::allocate (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::Put (191,919,190 samples, 0.42%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +lockref_get_not_zero (20,202,020 samples, 0.04%) + + + +std::fpos<__mbstate_t>::fpos (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::WriteLevel0Table (494,949,490 samples, 1.09%) + + + +leveldb::ReadBlock (101,010,100 samples, 0.22%) + + + +__GI___libc_open (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock (10,101,010 samples, 0.02%) + + + +ext4_file_write_iter (20,202,020 samples, 0.04%) + + + +std::basic_ios<char, std::char_traits<char> >::init (20,202,020 samples, 0.04%) + + + +get_page_from_freelist (525,252,520 samples, 1.16%) + + + +leveldb::port::Mutex::Lock (30,303,030 samples, 0.07%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Lock (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::key (10,101,010 samples, 0.02%) + + + +apparmor_file_alloc_security (30,303,030 samples, 0.07%) + + + +ext4_inode_csum_set (10,101,010 samples, 0.02%) + + + +rmqueue_bulk (10,101,010 samples, 0.02%) + + + +std::locale::operator= (10,101,010 samples, 0.02%) + + + +lockref_get_not_zero (10,101,010 samples, 0.02%) + + + +kmem_cache_free (90,909,090 samples, 0.20%) + + + +std::ios_base::_M_init (30,303,030 samples, 0.07%) + + + +x64_sys_call (20,202,020 samples, 0.04%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Equal (30,303,030 samples, 0.07%) + + + +void std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::construct<std::pair<leveldb::Slice, leveldb::Slice>, std::pair<leveldb::Slice, leveldb::Slice> > (10,101,010 samples, 0.02%) + + + +do_syscall_64 (242,424,240 samples, 0.53%) + + + +leveldb::GetLengthPrefixedSlice (10,101,010 samples, 0.02%) + + + +futex_wait (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (3,070,707,040 samples, 6.76%) +leveldb::.. + + +ext4_file_open (111,111,110 samples, 0.24%) + + + +scsi_queue_rq (10,101,010 samples, 0.02%) + + + +do_syscall_64 (30,303,030 samples, 0.07%) + + + +syscall_exit_to_user_mode_prepare (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +std::mutex::lock (30,303,030 samples, 0.07%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.02%) + + + +aa_path_name (282,828,280 samples, 0.62%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::count (30,303,030 samples, 0.07%) + + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +mptscsih_qcmd (60,606,060 samples, 0.13%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::SetNext (10,101,010 samples, 0.02%) + + + +leveldb::Version::Unref (10,101,010 samples, 0.02%) + + + +filemap_fault (10,101,010 samples, 0.02%) + + + +mark_buffer_dirty (50,505,050 samples, 0.11%) + + + +folio_alloc (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatchInternal::Count (20,202,020 samples, 0.04%) + + + +ext4_da_write_begin (80,808,080 samples, 0.18%) + + + +__GI___unlink (10,101,010 samples, 0.02%) + + + +std::__deque_buf_size (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::Valid (10,101,010 samples, 0.02%) + + + +__mark_inode_dirty (20,202,020 samples, 0.04%) + + + +entry_SYSCALL_64_after_hwframe (30,303,030 samples, 0.07%) + + + +leveldb::Slice::data (20,202,020 samples, 0.04%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.02%) + + + +unsigned int& std::vector<unsigned int, std::allocator<unsigned int> >::emplace_back<unsigned int> (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (30,303,030 samples, 0.07%) + + + +finish_task_switch.isra.0 (10,101,010 samples, 0.02%) + + + +send_to_group (313,131,310 samples, 0.69%) + + + +__x64_sys_write (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (30,303,030 samples, 0.07%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::PutVarint32 (30,303,030 samples, 0.07%) + + + +mem_cgroup_wb_stats (111,111,110 samples, 0.24%) + + + +ext4_lookup (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (70,707,070 samples, 0.16%) + + + +operator new (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +_raw_spin_unlock (10,101,010 samples, 0.02%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_relocate (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +std::mutex::unlock (393,939,390 samples, 0.87%) + + + +ext4_io_submit (20,202,020 samples, 0.04%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +blk_mq_flush_plug_list.part.0 (20,202,020 samples, 0.04%) + + + +memset_orig (60,606,060 samples, 0.13%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::end (10,101,010 samples, 0.02%) + + + +__GI___lll_lock_wake (70,707,070 samples, 0.16%) + + + +std::__invoke_result<void (27,040,403,770 samples, 59.52%) +std::__invoke_result<void + + +obj_cgroup_charge (20,202,020 samples, 0.04%) + + + +__alloc_pages (10,101,010 samples, 0.02%) + + + +__blk_mq_do_dispatch_sched (898,989,890 samples, 1.98%) +_.. + + +leveldb::log::Writer::AddRecord (313,131,310 samples, 0.69%) + + + +schedule (30,303,030 samples, 0.07%) + + + +fault_in_readable (10,101,010 samples, 0.02%) + + + +leveldb::crc32c::(anonymous namespace)::ReadUint32LE (10,101,010 samples, 0.02%) + + + +folio_mapping (20,202,020 samples, 0.04%) + + + +__radix_tree_lookup (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (50,505,050 samples, 0.11%) + + + +truncate_inode_pages_final (10,101,010 samples, 0.02%) + + + +filemap_read (1,858,585,840 samples, 4.09%) +file.. + + +ext4_file_read_iter (1,878,787,860 samples, 4.14%) +ext4.. + + +_IO_unsave_markers (30,303,030 samples, 0.07%) + + + +leveldb::DBImpl::Writer*& std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::emplace_back<leveldb::DBImpl::Writer*> (10,101,010 samples, 0.02%) + + + +do_filp_open (1,777,777,760 samples, 3.91%) +do_f.. + + +__fdget_pos (10,101,010 samples, 0.02%) + + + +ext4_da_get_block_prep (30,303,030 samples, 0.07%) + + + +std::vector<leveldb::Slice, std::allocator<leveldb::Slice> >::size (30,303,030 samples, 0.07%) + + + +_raw_spin_unlock_irqrestore (141,414,140 samples, 0.31%) + + + +futex_q_lock (10,101,010 samples, 0.02%) + + + +x64_sys_call (30,303,030 samples, 0.07%) + + + +link_path_walk.part.0.constprop.0 (171,717,170 samples, 0.38%) + + + +leveldb::Block::Iter::Valid (10,101,010 samples, 0.02%) + + + +__x64_sys_unlink (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +leveldb::Block::NumRestarts (10,101,010 samples, 0.02%) + + + +leveldb::Status::Status (10,101,010 samples, 0.02%) + + + +leveldb::Benchmark::ThreadBody (16,585,858,420 samples, 36.51%) +leveldb::Benchmark::ThreadBody + + +should_fail_alloc_page (10,101,010 samples, 0.02%) + + + +bdev_getblk (10,101,010 samples, 0.02%) + + + +__GI___futex_abstimed_wait_cancelable64 (181,818,180 samples, 0.40%) + + + +locks_remove_posix (50,505,050 samples, 0.11%) + + + +pthread_mutex_unlock@@GLIBC_2.2.5 (70,707,070 samples, 0.16%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +asm_common_interrupt (20,202,020 samples, 0.04%) + + + +leveldb::Slice::operator[] (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::WriteValueLog (30,303,030 samples, 0.07%) + + + +__block_commit_write (242,424,240 samples, 0.53%) + + + +leveldb::crc32c::Extend (10,101,010 samples, 0.02%) + + + +current_time (20,202,020 samples, 0.04%) + + + +memset@plt (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (20,202,020 samples, 0.04%) + + + +get_page_from_freelist (60,606,060 samples, 0.13%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +ext4_get_reserved_space (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatchInternal::InsertInto (282,828,280 samples, 0.62%) + + + +leveldb::Slice::compare (20,202,020 samples, 0.04%) + + + +leveldb::port::Mutex::Lock (10,101,010 samples, 0.02%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_destroy_internal_buffer (20,202,020 samples, 0.04%) + + + +leveldb::WriteBatch::Iterate (40,404,040 samples, 0.09%) + + + +___slab_alloc (80,808,080 samples, 0.18%) + + + +leveldb::Arena::Allocate (10,101,010 samples, 0.02%) + + + +leveldb::VarintLength (10,101,010 samples, 0.02%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (141,414,140 samples, 0.31%) + + + +operator new (10,101,010 samples, 0.02%) + + + +generic_write_check_limits (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string (30,303,030 samples, 0.07%) + + + +[unknown] (20,202,020 samples, 0.04%) + + + +__GI_____strtoull_l_internal (10,101,010 samples, 0.02%) + + + +__vfprintf_internal (121,212,120 samples, 0.27%) + + + +std::pair<leveldb::Slice, leveldb::Slice>&& std::forward<std::pair<leveldb::Slice, leveldb::Slice> > (10,101,010 samples, 0.02%) + + + +copy_from_kernel_nofault_allowed (10,101,010 samples, 0.02%) + + + +blk_mq_flush_plug_list.part.0 (10,101,010 samples, 0.02%) + + + +std::pair<leveldb::Slice, leveldb::Slice>::pair<leveldb::Slice, leveldb::Slice, true> (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +__GI___lll_lock_wait (30,303,030 samples, 0.07%) + + + +__futex_wait (80,808,080 samples, 0.18%) + + + +[unknown] (30,303,030 samples, 0.07%) + + + +__virt_addr_valid (30,303,030 samples, 0.07%) + + + +file_modified (10,101,010 samples, 0.02%) + + + +__alloc_pages (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_relocate (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +__filemap_get_folio (70,707,070 samples, 0.16%) + + + +copy_from_kernel_nofault (50,505,050 samples, 0.11%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Insert (222,222,220 samples, 0.49%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Sync (121,212,120 samples, 0.27%) + + + +mem_cgroup_commit_charge (70,707,070 samples, 0.16%) + + + +std::mutex::unlock (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::RandomGenerator::Generate (20,202,020 samples, 0.04%) + + + +leveldb::VersionSet::LastSequence (10,101,010 samples, 0.02%) + + + +balance_dirty_pages (111,111,110 samples, 0.24%) + + + +__ext4_journal_start_sb (10,101,010 samples, 0.02%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.02%) + + + +std::basic_fstream<char, std::char_traits<char> >::close (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_max_size (30,303,030 samples, 0.07%) + + + +__memset_evex_unaligned_erms (30,303,030 samples, 0.07%) + + + +filemap_get_entry (30,303,030 samples, 0.07%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.02%) + + + +mptscsih_qcmd (10,101,010 samples, 0.02%) + + + +std::condition_variable::notify_all (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Seek (727,272,720 samples, 1.60%) + + + +file_modified (70,707,070 samples, 0.16%) + + + +std::basic_ios<char, std::char_traits<char> >::_M_cache_locale (10,101,010 samples, 0.02%) + + + +std::pair<unsigned long, unsigned long>& std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::emplace_back<std::pair<unsigned long, unsigned long> > (10,101,010 samples, 0.02%) + + + +do_syscall_64 (70,707,070 samples, 0.16%) + + + +process_output_block (10,101,010 samples, 0.02%) + + + +std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (20,202,020 samples, 0.04%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (10,101,010 samples, 0.02%) + + + +wake_up_q (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::SeekToFirst (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::vector (10,101,010 samples, 0.02%) + + + +path_get (20,202,020 samples, 0.04%) + + + +__fsnotify_parent (40,404,040 samples, 0.09%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::BuildBatchGroup (40,404,040 samples, 0.09%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.02%) + + + +__dd_dispatch_request (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::begin (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::reserve (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +futex_wake_mark (60,606,060 samples, 0.13%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.04%) + + + +__x64_sys_fdatasync (30,303,030 samples, 0.07%) + + + +__raw_spin_lock_irqsave (20,202,020 samples, 0.04%) + + + +std::basic_filebuf<char, std::char_traits<char> >::open (30,303,030 samples, 0.07%) + + + +leveldb::InternalKeyComparator::Compare (707,070,700 samples, 1.56%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (2,272,727,250 samples, 5.00%) +leveld.. + + +leveldb::Block::Iter::NextEntryOffset (10,101,010 samples, 0.02%) + + + +leveldb::Random::OneIn (30,303,030 samples, 0.07%) + + + +leveldb::InternalKeyComparator::Compare (191,919,190 samples, 0.42%) + + + +leveldb::WriteBatch::Iterate (171,717,170 samples, 0.38%) + + + +schedule (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +evict (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.02%) + + + +copy_page_from_iter_atomic (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Lookup (80,808,080 samples, 0.18%) + + + +__filemap_get_folio (10,101,010 samples, 0.02%) + + + +down_write (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::RandomGenerator::Generate (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::Valid (10,101,010 samples, 0.02%) + + + +blk_add_rq_to_plug (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::WriteUnbuffered (10,101,010 samples, 0.02%) + + + +fault_in_iov_iter_readable (20,202,020 samples, 0.04%) + + + +_raw_spin_unlock_irq (202,020,200 samples, 0.44%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.02%) + + + +__blk_mq_sched_dispatch_requests (30,303,030 samples, 0.07%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +folio_mark_accessed (10,101,010 samples, 0.02%) + + + +mnt_put_write_access (20,202,020 samples, 0.04%) + + + +_IO_link_in (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::MemTableInserter::Put (3,818,181,780 samples, 8.40%) +leveldb::(an.. + + +alloc_pages_mpol (70,707,070 samples, 0.16%) + + + +blk_mq_flush_plug_list.part.0 (30,303,030 samples, 0.07%) + + + +file_write_and_wait_range (30,303,030 samples, 0.07%) + + + +__GI___lll_lock_wait (40,404,040 samples, 0.09%) + + + +wake_up_q (1,070,707,060 samples, 2.36%) +w.. + + +__cond_resched (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string (10,101,010 samples, 0.02%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty (10,101,010 samples, 0.02%) + + + +inode_update_timestamps (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (393,939,390 samples, 0.87%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +elv_rqhash_del (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::SeekToRestartPoint (20,202,020 samples, 0.04%) + + + +__GI___pthread_enable_asynccancel (10,101,010 samples, 0.02%) + + + +prepend (70,707,070 samples, 0.16%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (10,101,010 samples, 0.02%) + + + +inotify_free_event (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux (20,202,020 samples, 0.04%) + + + +futex_hash (10,101,010 samples, 0.02%) + + + +fdatasync (121,212,120 samples, 0.27%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +__x64_sys_fdatasync (121,212,120 samples, 0.27%) + + + +_IO_default_finish (20,202,020 samples, 0.04%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +_raw_read_unlock (10,101,010 samples, 0.02%) + + + +walk_component (50,505,050 samples, 0.11%) + + + +_IO_file_close (10,101,010 samples, 0.02%) + + + +memcmp@plt (10,101,010 samples, 0.02%) + + + +std::mutex::lock (20,202,020 samples, 0.04%) + + + +leveldb::TableBuilder::Finish (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::_Vector_base (20,202,020 samples, 0.04%) + + + +__ext4_journal_get_write_access (10,101,010 samples, 0.02%) + + + +aa_file_perm (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.02%) + + + +bool std::has_facet<std::ctype<char> > (10,101,010 samples, 0.02%) + + + +do_syscall_64 (363,636,360 samples, 0.80%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::_Deque_iterator (20,202,020 samples, 0.04%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +leveldb::crc32c::(anonymous namespace)::ReadUint32LE (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatchInternal::Contents (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::Slice, std::allocator<leveldb::Slice> >::_M_allocate (50,505,050 samples, 0.11%) + + + +leveldb::VarintLength (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::max_size (10,101,010 samples, 0.02%) + + + +handle_mm_fault (10,101,010 samples, 0.02%) + + + +ext4_es_insert_delayed_block (50,505,050 samples, 0.11%) + + + +std::mutex::unlock (20,202,020 samples, 0.04%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (10,101,010 samples, 0.02%) + + + +mptspi_qcmd (20,202,020 samples, 0.04%) + + + +leveldb::ParseFakeValueForValuelog (50,505,050 samples, 0.11%) + + + +sysvec_reschedule_ipi (10,101,010 samples, 0.02%) + + + +folio_alloc_buffers (222,222,220 samples, 0.49%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +xas_load (10,101,010 samples, 0.02%) + + + +copy_from_kernel_nofault_allowed (20,202,020 samples, 0.04%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +filemap_add_folio (10,101,010 samples, 0.02%) + + + +crypto_shash_update (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (20,202,020 samples, 0.04%) + + + +d_absolute_path (232,323,230 samples, 0.51%) + + + +find_lock_entries (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatch::Handler::~Handler (10,101,010 samples, 0.02%) + + + +std::basic_filebuf<char, std::char_traits<char> >::close (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::~Iter (30,303,030 samples, 0.07%) + + + +leveldb::Version::Unref (10,101,010 samples, 0.02%) + + + +asm_sysvec_reschedule_ipi (10,101,010 samples, 0.02%) + + + +folio_batch_move_lru (30,303,030 samples, 0.07%) + + + +leveldb::EncodeVarint32 (20,202,020 samples, 0.04%) + + + +__GI___libc_write (2,232,323,210 samples, 4.91%) +__GI__.. + + +obj_cgroup_charge (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +leveldb::DecodeEntry (60,606,060 samples, 0.13%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +futex_q_lock (10,101,010 samples, 0.02%) + + + +do_syscall_64 (10,101,010 samples, 0.02%) + + + +fault_in_readable (40,404,040 samples, 0.09%) + + + +__fsnotify_parent (30,303,030 samples, 0.07%) + + + +leveldb::BlockHandle::DecodeFrom (10,101,010 samples, 0.02%) + + + +vfs_write (20,202,020 samples, 0.04%) + + + +x64_sys_call (60,606,060 samples, 0.13%) + + + +submit_bio_noacct (80,808,080 samples, 0.18%) + + + +ext4_fill_raw_inode (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::_M_pop_front_aux (10,101,010 samples, 0.02%) + + + +__find_get_block (10,101,010 samples, 0.02%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +leveldb::IteratorWrapper::Valid (20,202,020 samples, 0.04%) + + + +leveldb::IteratorWrapper::Next (727,272,720 samples, 1.60%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +__GI___fileno (20,202,020 samples, 0.04%) + + + +fsnotify_handle_inode_event.isra.0 (252,525,250 samples, 0.56%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::_Deque_iterator (10,101,010 samples, 0.02%) + + + +mpt_put_msg_frame (60,606,060 samples, 0.13%) + + + +leveldb::DBImpl::BGWorkGC (4,353,535,310 samples, 9.58%) +leveldb::DBIm.. + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_get_Tp_allocator (10,101,010 samples, 0.02%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::deallocate (30,303,030 samples, 0.07%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_do_relocate (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::key (10,101,010 samples, 0.02%) + + + +__blk_mq_sched_dispatch_requests (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_get_Tp_allocator (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::GetRestartPoint (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__niter_base<std::pair<leveldb::Slice, leveldb::Slice>*> (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (80,808,080 samples, 0.18%) + + + +lookup_open.isra.0 (20,202,020 samples, 0.04%) + + + +leveldb::EncodeFixed32 (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (40,404,040 samples, 0.09%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +__d_lookup_rcu (30,303,030 samples, 0.07%) + + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +leveldb::operator== (60,606,060 samples, 0.13%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Iterator (10,101,010 samples, 0.02%) + + + +lockref_put_return (10,101,010 samples, 0.02%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::count (262,626,260 samples, 0.58%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (121,212,120 samples, 0.27%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.02%) + + + +page_cache_ra_unbounded (10,101,010 samples, 0.02%) + + + +mptspi_qcmd (30,303,030 samples, 0.07%) + + + +blk_mq_flush_plug_list.part.0 (60,606,060 samples, 0.13%) + + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (30,303,030 samples, 0.07%) + + + +alloc_empty_file (161,616,160 samples, 0.36%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_deallocate (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::end (20,202,020 samples, 0.04%) + + + +std::less<unsigned long>::operator (40,404,040 samples, 0.09%) + + + +dget_parent (20,202,020 samples, 0.04%) + + + +folio_batch_move_lru (10,101,010 samples, 0.02%) + + + +ext4_block_write_begin (555,555,550 samples, 1.22%) + + + +leveldb::Version::Get (1,191,919,180 samples, 2.62%) +le.. + + +__memcmp_evex_movbe (10,101,010 samples, 0.02%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +__fdget_pos (90,909,090 samples, 0.20%) + + + +ext4_fill_raw_inode (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +ext4_buffered_write_iter (111,111,110 samples, 0.24%) + + + +__fsnotify_parent (434,343,430 samples, 0.96%) + + + +leveldb::Block::Iter::~Iter (30,303,030 samples, 0.07%) + + + +std::_Select1st<std::pair<unsigned long const, unsigned long> >::operator (10,101,010 samples, 0.02%) + + + +leveldb::MutexLock::~MutexLock (20,202,020 samples, 0.04%) + + + +dput (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (90,909,090 samples, 0.20%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::ExtractUserKey (20,202,020 samples, 0.04%) + + + +__x64_sys_write (151,515,150 samples, 0.33%) + + + +__gnu_cxx::new_allocator<std::pair<unsigned long, unsigned long> >::_M_max_size (10,101,010 samples, 0.02%) + + + +_raw_spin_lock (30,303,030 samples, 0.07%) + + + +__GI___lll_lock_wait (30,303,030 samples, 0.07%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (20,202,020 samples, 0.04%) + + + +get_partial_node.part.0 (10,101,010 samples, 0.02%) + + + +_int_malloc (10,101,010 samples, 0.02%) + + + +shuffle_freelist (10,101,010 samples, 0.02%) + + + +mptspi_qcmd (10,101,010 samples, 0.02%) + + + +std::__basic_file<char>::xsputn_2 (50,505,050 samples, 0.11%) + + + +leveldb::Slice::Slice (30,303,030 samples, 0.07%) + + + +terminate_walk (40,404,040 samples, 0.09%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::NumEntries (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::GetMaxHeight (10,101,010 samples, 0.02%) + + + +common_interrupt (20,202,020 samples, 0.04%) + + + +iput (10,101,010 samples, 0.02%) + + + +blk_mq_run_hw_queue (898,989,890 samples, 1.98%) +b.. + + +leveldb::DecodeFixed32 (101,010,100 samples, 0.22%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::find (20,202,020 samples, 0.04%) + + + +__strstr_sse2 (70,707,070 samples, 0.16%) + + + +leveldb::Block::Iter::Valid (10,101,010 samples, 0.02%) + + + +_int_malloc (10,101,010 samples, 0.02%) + + + +_IO_file_finish@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +__next_zones_zonelist (10,101,010 samples, 0.02%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +std::locale::locale (10,101,010 samples, 0.02%) + + + +open_last_lookups (30,303,030 samples, 0.07%) + + + +ext4_reserve_inode_write (20,202,020 samples, 0.04%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::begin (20,202,020 samples, 0.04%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +x64_sys_call (121,212,120 samples, 0.27%) + + + +leveldb::ExtractUserKey (10,101,010 samples, 0.02%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +std::mutex::unlock (90,909,090 samples, 0.20%) + + + +path_name (282,828,280 samples, 0.62%) + + + +read_pages (10,101,010 samples, 0.02%) + + + +__memcg_slab_post_alloc_hook (10,101,010 samples, 0.02%) + + + +security_file_open (727,272,720 samples, 1.60%) + + + +__mark_inode_dirty (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::RemoveObsoleteFiles (30,303,030 samples, 0.07%) + + + +x64_sys_call (30,303,030 samples, 0.07%) + + + +__x64_sys_write (1,272,727,260 samples, 2.80%) +__.. + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (10,101,010 samples, 0.02%) + + + +__GI___unlink (10,101,010 samples, 0.02%) + + + +lockref_put_return (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +__GI___lll_lock_wait (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::LRUCache::LRU_Append (10,101,010 samples, 0.02%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer (10,101,010 samples, 0.02%) + + + +__ext4_find_entry (10,101,010 samples, 0.02%) + + + +ext4_readahead (111,111,110 samples, 0.24%) + + + +__cond_resched (10,101,010 samples, 0.02%) + + + +std::operator- (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::operator== (10,101,010 samples, 0.02%) + + + +ksys_lseek (151,515,150 samples, 0.33%) + + + +unlink_chunk.constprop.0 (20,202,020 samples, 0.04%) + + + +leveldb::WriteBatch::~WriteBatch (10,101,010 samples, 0.02%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::_M_set_node (10,101,010 samples, 0.02%) + + + +std::ios_base::_M_dispose_callbacks (20,202,020 samples, 0.04%) + + + +ksys_write (202,020,200 samples, 0.44%) + + + +std::basic_filebuf<char, std::char_traits<char> >::xsputn (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (2,262,626,240 samples, 4.98%) +leveld.. + + +__GI___lll_lock_wait (20,202,020 samples, 0.04%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output (30,303,030 samples, 0.07%) + + + +std::ios_base::~ios_base (50,505,050 samples, 0.11%) + + + +__ext4_journal_stop (10,101,010 samples, 0.02%) + + + +futex_wake_mark (10,101,010 samples, 0.02%) + + + +__memmove_evex_unaligned_erms (90,909,090 samples, 0.20%) + + + +leveldb::EncodeVarint32 (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatch::Iterate (3,969,696,930 samples, 8.74%) +leveldb::Wri.. + + +__mark_inode_dirty (40,404,040 samples, 0.09%) + + + +inode_permission (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.04%) + + + +__find_get_block (10,101,010 samples, 0.02%) + + + +__submit_bio (20,202,020 samples, 0.04%) + + + +__memcg_slab_post_alloc_hook (20,202,020 samples, 0.04%) + + + +consume_obj_stock (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__legitimize_mnt (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::pop_front (30,303,030 samples, 0.07%) + + + +std::mutex::lock (212,121,210 samples, 0.47%) + + + +[unknown] (80,808,080 samples, 0.18%) + + + +strlen (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.02%) + + + +n_tty_write (10,101,010 samples, 0.02%) + + + +_raw_spin_lock (20,202,020 samples, 0.04%) + + + +ext4_da_write_begin (20,202,020 samples, 0.04%) + + + +leveldb::DBImpl::WriteValueLog (1,080,808,070 samples, 2.38%) +l.. + + +dput (10,101,010 samples, 0.02%) + + + +_IO_old_init (20,202,020 samples, 0.04%) + + + +__memmove_evex_unaligned_erms (10,101,010 samples, 0.02%) + + + +leveldb::Table::InternalGet (10,101,010 samples, 0.02%) + + + +ext4_journal_check_start (10,101,010 samples, 0.02%) + + + +get_futex_key (20,202,020 samples, 0.04%) + + + +leveldb::MutexLock::MutexLock (30,303,030 samples, 0.07%) + + + +operator delete (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (20,202,020 samples, 0.04%) + + + +leveldb::GetLengthPrefixedSlice (10,101,010 samples, 0.02%) + + + +common_interrupt (20,202,020 samples, 0.04%) + + + +_raw_spin_lock (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_get_Tp_allocator (10,101,010 samples, 0.02%) + + + +mptscsih_qcmd (20,202,020 samples, 0.04%) + + + +wake_up_q (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::Valid (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +ext4_bio_write_folio (30,303,030 samples, 0.07%) + + + +inotify_handle_inode_event (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (10,101,010 samples, 0.02%) + + + +current_obj_cgroup (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::KeyComparator::operator (313,131,310 samples, 0.69%) + + + +leveldb::port::Mutex::Lock (212,121,210 samples, 0.47%) + + + +std::allocator_traits<std::allocator<leveldb::Slice> >::allocate (50,505,050 samples, 0.11%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (646,464,640 samples, 1.42%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (20,202,020 samples, 0.04%) + + + +__folio_start_writeback (20,202,020 samples, 0.04%) + + + +do_syscall_64 (10,101,010 samples, 0.02%) + + + +do_open (1,292,929,280 samples, 2.85%) +do.. + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +leveldb::VersionSet::NumLevelFiles (30,303,030 samples, 0.07%) + + + +alloc_buffer_head (10,101,010 samples, 0.02%) + + + +mpt_put_msg_frame (20,202,020 samples, 0.04%) + + + +irq_exit_rcu (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (10,101,010 samples, 0.02%) + + + +generic_update_time (50,505,050 samples, 0.11%) + + + +page_cache_async_ra (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::Update (10,101,010 samples, 0.02%) + + + +leveldb::crc32c::Extend (30,303,030 samples, 0.07%) + + + +balance_dirty_pages_ratelimited (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::Update (10,101,010 samples, 0.02%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (20,202,020 samples, 0.04%) + + + +leveldb::Table::BlockReader (20,202,020 samples, 0.04%) + + + +scsi_queue_rq (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (30,303,030 samples, 0.07%) + + + +__srcu_read_lock (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +__aa_path_perm (161,616,160 samples, 0.36%) + + + +leveldb::VersionSet::AppendVersion (10,101,010 samples, 0.02%) + + + +std::__basic_file<char>::is_open (20,202,020 samples, 0.04%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::Status::Status (10,101,010 samples, 0.02%) + + + +std::operator& (10,101,010 samples, 0.02%) + + + +kmem_cache_free (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::begin (10,101,010 samples, 0.02%) + + + +exc_page_fault (10,101,010 samples, 0.02%) + + + +leveldb::Iterator::CleanupNode::Run (30,303,030 samples, 0.07%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +vfs_read (2,040,404,020 samples, 4.49%) +vfs_r.. + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.02%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +try_to_free_buffers (10,101,010 samples, 0.02%) + + + +asm_exc_page_fault (10,101,010 samples, 0.02%) + + + +strlen (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_allocate (20,202,020 samples, 0.04%) + + + +ksys_write (20,202,020 samples, 0.04%) + + + +scsi_dispatch_cmd (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::LRUCache::Ref (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::size (20,202,020 samples, 0.04%) + + + +blk_add_rq_to_plug (20,202,020 samples, 0.04%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +ext4_do_update_inode.isra.0 (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +_itoa_word (10,101,010 samples, 0.02%) + + + +std::basic_filebuf<char, std::char_traits<char> >::close (60,606,060 samples, 0.13%) + + + +__GI___libc_write (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Lookup (20,202,020 samples, 0.04%) + + + +__submit_bio (60,606,060 samples, 0.13%) + + + +__blk_mq_sched_dispatch_requests (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (121,212,120 samples, 0.27%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +leveldb::Slice::size (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (272,727,270 samples, 0.60%) + + + +aa_path_perm (606,060,600 samples, 1.33%) + + + +copy_page_to_iter (292,929,290 samples, 0.64%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~_Vector_base (40,404,040 samples, 0.09%) + + + +__memcg_slab_free_hook (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::CompactionState::current_output (30,303,030 samples, 0.07%) + + + +consume_stock (10,101,010 samples, 0.02%) + + + +do_user_addr_fault (10,101,010 samples, 0.02%) + + + +dquot_file_open (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (30,303,030 samples, 0.07%) + + + +submit_bio_noacct_nocheck (80,808,080 samples, 0.18%) + + + +leveldb::ReadBlock (10,101,010 samples, 0.02%) + + + +mpage_submit_folio (30,303,030 samples, 0.07%) + + + +radix_tree_lookup (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_const_iterator<std::pair<unsigned long const, unsigned long> >::_Rb_tree_const_iterator (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::max_size (10,101,010 samples, 0.02%) + + + +do_syscall_64 (30,303,030 samples, 0.07%) + + + +__blk_mq_do_dispatch_sched (10,101,010 samples, 0.02%) + + + +do_syscall_64 (30,303,030 samples, 0.07%) + + + +ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +strncpy_from_user (161,616,160 samples, 0.36%) + + + +ext4_sync_file (121,212,120 samples, 0.27%) + + + +__blk_mq_do_dispatch_sched (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +__blk_mq_do_dispatch_sched (20,202,020 samples, 0.04%) + + + +mpage_submit_folio (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::back (10,101,010 samples, 0.02%) + + + +kmem_cache_free (40,404,040 samples, 0.09%) + + + +ext4_inode_csum (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +vfs_write (20,202,020 samples, 0.04%) + + + +__x64_sys_read (2,070,707,050 samples, 4.56%) +__x64.. + + +leveldb::ExtractUserKey (50,505,050 samples, 0.11%) + + + +ksys_write (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (111,111,110 samples, 0.24%) + + + +cfree@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +is_vmalloc_addr (30,303,030 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (2,575,757,550 samples, 5.67%) +entry_S.. + + +bool std::has_facet<std::ctype<char> > (20,202,020 samples, 0.04%) + + + +lockref_get (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.04%) + + + +do_dentry_open (10,101,010 samples, 0.02%) + + + +memcpy@plt (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string (20,202,020 samples, 0.04%) + + + +kfree (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::NewNode (60,606,060 samples, 0.13%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (20,202,020 samples, 0.04%) + + + +__futex_wait (10,101,010 samples, 0.02%) + + + +__memcg_slab_post_alloc_hook (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::LRUCache::Ref (10,101,010 samples, 0.02%) + + + +inotify_handle_inode_event (252,525,250 samples, 0.56%) + + + +syscall_exit_to_user_mode (10,101,010 samples, 0.02%) + + + +ext4_reserve_inode_write (10,101,010 samples, 0.02%) + + + +do_syscall_64 (30,303,030 samples, 0.07%) + + + +leveldb::EncodeVarint32 (20,202,020 samples, 0.04%) + + + +__legitimize_path (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::_Vector_impl_data::_Vector_impl_data (10,101,010 samples, 0.02%) + + + +std::thread::_Invoker<std::tuple<void (27,040,403,770 samples, 59.52%) +std::thread::_Invoker<std::tuple<void + + +up_write (20,202,020 samples, 0.04%) + + + +d_absolute_path (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +xas_start (20,202,020 samples, 0.04%) + + + +std::ios_base::_M_dispose_callbacks (10,101,010 samples, 0.02%) + + + +leveldb::BlockHandle::DecodeFrom (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (60,606,060 samples, 0.13%) + + + +process_echoes (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.02%) + + + +__find_get_block_slow (10,101,010 samples, 0.02%) + + + +x64_sys_call (5,575,757,520 samples, 12.27%) +x64_sys_call + + +std::__basic_file<char>::fd (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (20,202,020 samples, 0.04%) + + + +__strlen_evex (10,101,010 samples, 0.02%) + + + +std::basic_fstream<char, std::char_traits<char> >::~basic_fstream (30,303,030 samples, 0.07%) + + + +ext4_inode_csum_set (10,101,010 samples, 0.02%) + + + +__alloc_pages (40,404,040 samples, 0.09%) + + + +x64_sys_call (2,222,222,200 samples, 4.89%) +x64_sy.. + + +folio_alloc_buffers (10,101,010 samples, 0.02%) + + + +__memmove_evex_unaligned_erms (20,202,020 samples, 0.04%) + + + +leveldb::Block::Iter::status (10,101,010 samples, 0.02%) + + + +folio_unlock (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Append (20,202,020 samples, 0.04%) + + + +ktime_get_coarse_real_ts64 (10,101,010 samples, 0.02%) + + + +__dynamic_cast (30,303,030 samples, 0.07%) + + + +leveldb::IteratorWrapper::Next (959,595,950 samples, 2.11%) +l.. + + +__memcmp_evex_movbe (10,101,010 samples, 0.02%) + + + +__fsnotify_parent (50,505,050 samples, 0.11%) + + + +do_syscall_64 (10,101,010 samples, 0.02%) + + + +unsigned long const& std::min<unsigned long> (10,101,010 samples, 0.02%) + + + +leveldb::ExtractUserKey (60,606,060 samples, 0.13%) + + + +mptscsih_qcmd (10,101,010 samples, 0.02%) + + + +blk_mq_run_hw_queue (60,606,060 samples, 0.13%) + + + +__filemap_add_folio (111,111,110 samples, 0.24%) + + + +leveldb::MemTableIterator::Valid (10,101,010 samples, 0.02%) + + + +__schedule (10,101,010 samples, 0.02%) + + + +__srcu_read_lock (20,202,020 samples, 0.04%) + + + +ksys_write (10,101,010 samples, 0.02%) + + + +create_empty_buffers (232,323,230 samples, 0.51%) + + + +aa_str_perms (10,101,010 samples, 0.02%) + + + +import_iovec (10,101,010 samples, 0.02%) + + + +std::basic_filebuf<char, std::char_traits<char> >::seekoff (50,505,050 samples, 0.11%) + + + +x64_sys_call (545,454,540 samples, 1.20%) + + + +leveldb::MutexLock::MutexLock (20,202,020 samples, 0.04%) + + + +truncate_inode_pages_final (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +std::condition_variable::~condition_variable (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty (10,101,010 samples, 0.02%) + + + +futex_wake (40,404,040 samples, 0.09%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::empty (10,101,010 samples, 0.02%) + + + +__submit_bio (10,101,010 samples, 0.02%) + + + +blk_mq_flush_plug_list (10,101,010 samples, 0.02%) + + + +ext4_fill_raw_inode (10,101,010 samples, 0.02%) + + + +do_unlinkat (10,101,010 samples, 0.02%) + + + +std::basic_filebuf<char, std::char_traits<char> >::xsgetn (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (30,303,030 samples, 0.07%) + + + +leveldb::MutexLock::MutexLock (10,101,010 samples, 0.02%) + + + +generic_write_checks (10,101,010 samples, 0.02%) + + + +pthread_cond_destroy@plt (10,101,010 samples, 0.02%) + + + +x64_sys_call (80,808,080 samples, 0.18%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::RandomHeight (50,505,050 samples, 0.11%) + + + +leveldb::Version::ForEachOverlapping (1,323,232,310 samples, 2.91%) +le.. + + +filemap_alloc_folio (20,202,020 samples, 0.04%) + + + +leveldb::Slice::Slice (30,303,030 samples, 0.07%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (40,404,040 samples, 0.09%) + + + +leveldb::BlockBuilder::CurrentSizeEstimate (20,202,020 samples, 0.04%) + + + +__handle_mm_fault (30,303,030 samples, 0.07%) + + + +leveldb::IteratorWrapper::Valid (10,101,010 samples, 0.02%) + + + +void std::allocator_traits<std::allocator<unsigned int> >::construct<unsigned int, unsigned int> (10,101,010 samples, 0.02%) + + + +void std::allocator_traits<std::allocator<leveldb::DBImpl::Writer*> >::construct<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*> (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Release (20,202,020 samples, 0.04%) + + + +std::vector<leveldb::Slice, std::allocator<leveldb::Slice> >::_M_check_len (40,404,040 samples, 0.09%) + + + +page_cache_ra_unbounded (10,101,010 samples, 0.02%) + + + +std::condition_variable::condition_variable (10,101,010 samples, 0.02%) + + + +void std::_Destroy<leveldb::Slice*, leveldb::Slice> (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (40,404,040 samples, 0.09%) + + + +leveldb::DBImpl::WriteValueLog (60,606,060 samples, 0.13%) + + + +folio_add_lru (30,303,030 samples, 0.07%) + + + +__dynamic_cast (20,202,020 samples, 0.04%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_Vector_base (10,101,010 samples, 0.02%) + + + +__blk_flush_plug (919,191,910 samples, 2.02%) +_.. + + +leveldb::InternalKeyComparator::user_comparator (10,101,010 samples, 0.02%) + + + +alloc_buffer_head (202,020,200 samples, 0.44%) + + + +pthread_mutex_unlock@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +leveldb::ExtractUserKey (20,202,020 samples, 0.04%) + + + +__blk_flush_plug (10,101,010 samples, 0.02%) + + + +std::basic_ios<char, std::char_traits<char> >::_M_cache_locale (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::key (30,303,030 samples, 0.07%) + + + +mpage_map_and_submit_extent (30,303,030 samples, 0.07%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (20,202,020 samples, 0.04%) + + + +plist_del (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +pthread_mutex_unlock@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +__check_object_size (10,101,010 samples, 0.02%) + + + +copy_page_from_iter_atomic (191,919,190 samples, 0.42%) + + + +__gthread_mutex_lock (10,101,010 samples, 0.02%) + + + +unsigned long const& std::max<unsigned long> (10,101,010 samples, 0.02%) + + + +do_dentry_open (1,070,707,060 samples, 2.36%) +d.. + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (181,818,180 samples, 0.40%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +futex_wait_setup (30,303,030 samples, 0.07%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (40,404,040 samples, 0.09%) + + + +try_charge_memcg (10,101,010 samples, 0.02%) + + + +mntget (10,101,010 samples, 0.02%) + + + +__cond_resched (10,101,010 samples, 0.02%) + + + +memcpy@plt (30,303,030 samples, 0.07%) + + + +generic_perform_write (90,909,090 samples, 0.20%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_seek (30,303,030 samples, 0.07%) + + + +leveldb::Benchmark::DoWrite (16,575,757,410 samples, 36.48%) +leveldb::Benchmark::DoWrite + + +std::iterator_traits<char const*>::difference_type std::distance<char const*> (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::Status::~Status (20,202,020 samples, 0.04%) + + + +futex_wake (10,101,010 samples, 0.02%) + + + +blk_mq_dispatch_rq_list (30,303,030 samples, 0.07%) + + + +leveldb::TableBuilder::Add (2,606,060,580 samples, 5.74%) +leveldb.. + + +read_pages (10,101,010 samples, 0.02%) + + + +vfs_open (1,101,010,090 samples, 2.42%) +vf.. + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (70,707,070 samples, 0.16%) + + + +inotify_merge (20,202,020 samples, 0.04%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +vfs_writev (3,606,060,570 samples, 7.94%) +vfs_writev + + +__x64_sys_lseek (10,101,010 samples, 0.02%) + + + +unlink_chunk.constprop.0 (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (90,909,090 samples, 0.20%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::empty (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (10,101,010 samples, 0.02%) + + + +do_syscall_64 (40,404,040 samples, 0.09%) + + + +do_unlinkat (30,303,030 samples, 0.07%) + + + +truncate_inode_pages_range (10,101,010 samples, 0.02%) + + + +scsi_queue_rq (20,202,020 samples, 0.04%) + + + +page_cache_ra_order (10,101,010 samples, 0.02%) + + + +__GI___libc_write (232,323,230 samples, 0.51%) + + + +ext4_mark_iloc_dirty (10,101,010 samples, 0.02%) + + + +__dquot_initialize (10,101,010 samples, 0.02%) + + + +aa_lookup_condperms (10,101,010 samples, 0.02%) + + + +getname_flags.part.0 (282,828,280 samples, 0.62%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_lower_bound (181,818,180 samples, 0.40%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (20,202,020 samples, 0.04%) + + + +std::vector<leveldb::Slice, std::allocator<leveldb::Slice> >::_S_relocate (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~_Vector_base (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +_copy_to_iter (282,828,280 samples, 0.62%) + + + +release_pages (10,101,010 samples, 0.02%) + + + +__GI___libc_write (20,202,020 samples, 0.04%) + + + +leveldb::WriteBatch::Clear (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::~ValueLogInserter (60,606,060 samples, 0.13%) + + + +__irq_exit_rcu (20,202,020 samples, 0.04%) + + + +blk_mq_flush_plug_list.part.0 (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::BackgroundGarbageCollect (4,353,535,310 samples, 9.58%) +leveldb::DBIm.. + + +__rcu_read_lock (30,303,030 samples, 0.07%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::TableCache::FindTable (90,909,090 samples, 0.20%) + + + +ext4_do_update_inode.isra.0 (10,101,010 samples, 0.02%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (181,818,180 samples, 0.40%) + + + +leveldb::Status::operator= (30,303,030 samples, 0.07%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::DBImpl::Write (1,343,434,330 samples, 2.96%) +le.. + + +futex_wait_queue (10,101,010 samples, 0.02%) + + + +_int_free (10,101,010 samples, 0.02%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +lockref_get_not_zero (10,101,010 samples, 0.02%) + + + +do_user_addr_fault (30,303,030 samples, 0.07%) + + + +leveldb::crc32c::(anonymous namespace)::ReadUint32LE (90,909,090 samples, 0.20%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +__rmqueue_pcplist (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::batch_insert (2,070,707,050 samples, 4.56%) +level.. + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__relocate_a_1<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice>*, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > (10,101,010 samples, 0.02%) + + + +__find_get_block (10,101,010 samples, 0.02%) + + + +x64_sys_call (343,434,340 samples, 0.76%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (10,101,010 samples, 0.02%) + + + +mutex_lock (10,101,010 samples, 0.02%) + + + +__fsnotify_parent (40,404,040 samples, 0.09%) + + + +fault_in_iov_iter_readable (10,101,010 samples, 0.02%) + + + +inode_needs_update_time (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::vector (10,101,010 samples, 0.02%) + + + +rb_next (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator++ (10,101,010 samples, 0.02%) + + + +__x64_sys_openat (2,222,222,200 samples, 4.89%) +__x64_.. + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +file_modified (50,505,050 samples, 0.11%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::allocator_traits<std::allocator<leveldb::Slice> >::deallocate (10,101,010 samples, 0.02%) + + + +__blk_flush_plug (30,303,030 samples, 0.07%) + + + +schedule (10,101,010 samples, 0.02%) + + + +ext4_dirty_inode (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +get_futex_key (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32PtrFallback (10,101,010 samples, 0.02%) + + + +__dquot_alloc_space (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +aa_get_buffer (10,101,010 samples, 0.02%) + + + +fsnotify_insert_event (40,404,040 samples, 0.09%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +xa_load (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::GetMaxHeight (20,202,020 samples, 0.04%) + + + +do_futex (60,606,060 samples, 0.13%) + + + +ext4_journal_check_start (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (242,424,240 samples, 0.53%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::operator!= (10,101,010 samples, 0.02%) + + + +blk_mq_dispatch_plug_list (60,606,060 samples, 0.13%) + + + +leveldb::SaveValue (20,202,020 samples, 0.04%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +std::condition_variable::~condition_variable (10,101,010 samples, 0.02%) + + + +file_modified (111,111,110 samples, 0.24%) + + + +ext4_es_lookup_extent (20,202,020 samples, 0.04%) + + + +file_modified (10,101,010 samples, 0.02%) + + + +ext4_da_map_blocks.constprop.0 (30,303,030 samples, 0.07%) + + + +do_syscall_64 (1,212,121,200 samples, 2.67%) +do.. + + +leveldb::IteratorWrapper::Update (121,212,120 samples, 0.27%) + + + +operator new (40,404,040 samples, 0.09%) + + + +__blk_mq_do_dispatch_sched (60,606,060 samples, 0.13%) + + + +ext4_bio_write_folio (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +percpu_counter_add_batch (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (20,202,020 samples, 0.04%) + + + +do_futex (50,505,050 samples, 0.11%) + + + +std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf (20,202,020 samples, 0.04%) + + + +leveldb::MemTable::Add (3,757,575,720 samples, 8.27%) +leveldb::Me.. + + +std::mutex::unlock (50,505,050 samples, 0.11%) + + + +leveldb::MaxGrandParentOverlapBytes (10,101,010 samples, 0.02%) + + + +std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (10,101,010 samples, 0.02%) + + + +do_fault (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::push_back (171,717,170 samples, 0.38%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (10,101,010 samples, 0.02%) + + + +blk_mq_run_hw_queue (30,303,030 samples, 0.07%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +do_sys_openat2 (2,181,818,160 samples, 4.80%) +do_sys.. + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::find (222,222,220 samples, 0.49%) + + + +leveldb::WriteBatch::Handler::Handler (10,101,010 samples, 0.02%) + + + +generic_write_checks (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::front (20,202,020 samples, 0.04%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +__blk_mq_get_tag (10,101,010 samples, 0.02%) + + + +__x64_sys_openat (20,202,020 samples, 0.04%) + + + +_int_malloc (20,202,020 samples, 0.04%) + + + +void std::_Destroy<std::pair<leveldb::Slice, leveldb::Slice>*> (10,101,010 samples, 0.02%) + + + +send_to_group (292,929,290 samples, 0.64%) + + + +handle_softirqs (20,202,020 samples, 0.04%) + + + +leveldb::GetLengthPrefixedSlice (141,414,140 samples, 0.31%) + + + +leveldb::DBImpl::Write (212,121,210 samples, 0.47%) + + + +locks_remove_file (10,101,010 samples, 0.02%) + + + +leveldb::BlockBuilder::Add (131,313,130 samples, 0.29%) + + + +filemap_get_pages (1,474,747,460 samples, 3.25%) +fil.. + + +do_futex (10,101,010 samples, 0.02%) + + + +mutex_lock (10,101,010 samples, 0.02%) + + + +[unknown] (20,202,020 samples, 0.04%) + + + +lockref_get_not_zero (20,202,020 samples, 0.04%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::Arena::Allocate (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__gthread_mutex_unlock (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +cfree@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +get_unused_fd_flags (20,202,020 samples, 0.04%) + + + +__filemap_get_folio (1,404,040,390 samples, 3.09%) +__f.. + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (40,404,040 samples, 0.09%) + + + +__x64_sys_lseek (212,121,210 samples, 0.47%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (10,101,010 samples, 0.02%) + + + +__GI___pthread_enable_asynccancel (10,101,010 samples, 0.02%) + + + +leveldb::Hash (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +find_lock_entries (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_create_storage (20,202,020 samples, 0.04%) + + + +___slab_alloc (30,303,030 samples, 0.07%) + + + +ext4_file_write_iter (111,111,110 samples, 0.24%) + + + +std::_Rb_tree_iterator<std::pair<unsigned long const, unsigned long> >::operator* (10,101,010 samples, 0.02%) + + + +ext4_release_file (10,101,010 samples, 0.02%) + + + +std::condition_variable::notify_one (10,101,010 samples, 0.02%) + + + +truncate_cleanup_folio (20,202,020 samples, 0.04%) + + + +leveldb::Benchmark::WriteRandom (16,585,858,420 samples, 36.51%) +leveldb::Benchmark::WriteRandom + + +mod_lruvec_state (30,303,030 samples, 0.07%) + + + +filemap_add_folio (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +do_syscall_64 (151,515,150 samples, 0.33%) + + + +mutex_unlock (10,101,010 samples, 0.02%) + + + +jbd2_journal_get_write_access (10,101,010 samples, 0.02%) + + + +__futex_wait (10,101,010 samples, 0.02%) + + + +hook_file_open (10,101,010 samples, 0.02%) + + + +std::mutex::unlock (6,030,302,970 samples, 13.27%) +std::mutex::unlock + + +x64_sys_call (2,070,707,050 samples, 4.56%) +x64_s.. + + +leveldb::IteratorWrapper::Next (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.04%) + + + +leveldb::WriteBatchInternal::Count (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (80,808,080 samples, 0.18%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::ok (10,101,010 samples, 0.02%) + + + +leveldb::InternalKey::DecodeFrom (40,404,040 samples, 0.09%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.02%) + + + +__rmqueue_pcplist (10,101,010 samples, 0.02%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +__ext4_mark_inode_dirty (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::BackgroundCompaction (6,101,010,040 samples, 13.43%) +leveldb::DBImpl::Bac.. + + +leveldb::(anonymous namespace)::ValueLogInserter::Put (20,202,020 samples, 0.04%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.02%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::select_on_container_copy_construction (10,101,010 samples, 0.02%) + + + +void std::__invoke_impl<void, void (27,040,403,770 samples, 59.52%) +void std::__invoke_impl<void, void + + +__memcmp_evex_movbe (60,606,060 samples, 0.13%) + + + +__mem_cgroup_charge (20,202,020 samples, 0.04%) + + + +leveldb::BlockHandle::BlockHandle (10,101,010 samples, 0.02%) + + + +std::basic_fstream<char, std::char_traits<char> >::basic_fstream (60,606,060 samples, 0.13%) + + + +ext4_da_write_end (282,828,280 samples, 0.62%) + + + +__mem_cgroup_charge (151,515,150 samples, 0.33%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::back (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (10,101,010 samples, 0.02%) + + + +update_io_ticks (70,707,070 samples, 0.16%) + + + +iterate_tty_write (20,202,020 samples, 0.04%) + + + +__x64_sys_write (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (484,848,480 samples, 1.07%) + + + +__d_lookup_rcu (10,101,010 samples, 0.02%) + + + +leveldb::Status::~Status (20,202,020 samples, 0.04%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::new_allocator (10,101,010 samples, 0.02%) + + + +our_mnt (20,202,020 samples, 0.04%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::operator* (10,101,010 samples, 0.02%) + + + +node_dirty_ok (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (1,323,232,310 samples, 2.91%) +en.. + + +getname (323,232,320 samples, 0.71%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_right (20,202,020 samples, 0.04%) + + + +inode_to_bdi (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (10,101,010 samples, 0.02%) + + + +mntput (10,101,010 samples, 0.02%) + + + +__rmqueue_pcplist (121,212,120 samples, 0.27%) + + + +schedule_debug.constprop.0 (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (40,404,040 samples, 0.09%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.02%) + + + +kmem_cache_free (30,303,030 samples, 0.07%) + + + +generic_perform_write (60,606,060 samples, 0.13%) + + + +_IO_setb (10,101,010 samples, 0.02%) + + + +std::basic_ios<char, std::char_traits<char> >::init (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (10,101,010 samples, 0.02%) + + + +ext4_da_map_blocks.constprop.0 (252,525,250 samples, 0.56%) + + + +exc_page_fault (30,303,030 samples, 0.07%) + + + +do_syscall_64 (2,575,757,550 samples, 5.67%) +do_sysc.. + + +obj_cgroup_uncharge (10,101,010 samples, 0.02%) + + + +fault_in_iov_iter_readable (60,606,060 samples, 0.13%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Valid (10,101,010 samples, 0.02%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (30,303,030 samples, 0.07%) + + + +node_dirty_ok (90,909,090 samples, 0.20%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (696,969,690 samples, 1.53%) + + + +leveldb::Slice::compare (20,202,020 samples, 0.04%) + + + +security_file_permission (20,202,020 samples, 0.04%) + + + +__get_user_nocheck_4 (10,101,010 samples, 0.02%) + + + +blk_mq_sched_dispatch_requests (898,989,890 samples, 1.98%) +b.. + + +leveldb::Version::~Version (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::empty (10,101,010 samples, 0.02%) + + + +futex_wait (10,101,010 samples, 0.02%) + + + +do_iter_readv_writev (3,040,404,010 samples, 6.69%) +do_iter_r.. + + +std::basic_ios<char, std::char_traits<char> >::good (20,202,020 samples, 0.04%) + + + +_raw_spin_unlock_irqrestore (20,202,020 samples, 0.04%) + + + +leveldb::Slice::size (40,404,040 samples, 0.09%) + + + +blk_mq_dispatch_rq_list (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::empty (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (20,202,020 samples, 0.04%) + + + +__fsnotify_parent (474,747,470 samples, 1.04%) + + + +x64_sys_call (20,202,020 samples, 0.04%) + + + +std::_Vector_base<leveldb::Slice, std::allocator<leveldb::Slice> >::~_Vector_base (20,202,020 samples, 0.04%) + + + +ext4_file_write_iter (111,111,110 samples, 0.24%) + + + +leveldb::Slice::size (40,404,040 samples, 0.09%) + + + +try_to_wake_up (10,101,010 samples, 0.02%) + + + +_int_free (90,909,090 samples, 0.20%) + + + +leveldb::Block::Block (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::KeyComparator::operator (1,474,747,460 samples, 3.25%) +lev.. + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +ext4_do_writepages (30,303,030 samples, 0.07%) + + + +iput (10,101,010 samples, 0.02%) + + + +xas_start (10,101,010 samples, 0.02%) + + + +leveldb::ParseInternalKey (111,111,110 samples, 0.24%) + + + +do_syscall_64 (10,101,010 samples, 0.02%) + + + +submit_bio_noacct_nocheck (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +ext4_block_write_begin (40,404,040 samples, 0.09%) + + + +leveldb::GetVarint32 (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_deallocate (40,404,040 samples, 0.09%) + + + +operator new (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<unsigned long, unsigned long>*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > >::operator* (20,202,020 samples, 0.04%) + + + +folio_alloc (686,868,680 samples, 1.51%) + + + +mod_objcg_state (20,202,020 samples, 0.04%) + + + +ima_file_free (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::LRUCache::Lookup (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Lock (30,303,030 samples, 0.07%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +blk_mq_dispatch_rq_list (10,101,010 samples, 0.02%) + + + +leveldb::Block::NewIterator (20,202,020 samples, 0.04%) + + + +make_vfsuid (10,101,010 samples, 0.02%) + + + +xas_start (10,101,010 samples, 0.02%) + + + +std::mutex::lock (70,707,070 samples, 0.16%) + + + +ext4_mark_iloc_dirty (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::Slice, std::allocator<leveldb::Slice> >::_M_get_Tp_allocator (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::_S_max_size (10,101,010 samples, 0.02%) + + + +filemap_map_pages (20,202,020 samples, 0.04%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::back (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (1,070,707,060 samples, 2.36%) +_.. + + +balance_dirty_pages_ratelimited_flags (70,707,070 samples, 0.16%) + + + +__fsnotify_parent (10,101,010 samples, 0.02%) + + + +_IO_str_init_static_internal (10,101,010 samples, 0.02%) + + + +__GI___lll_lock_wake (30,303,030 samples, 0.07%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.02%) + + + +xas_descend (30,303,030 samples, 0.07%) + + + +__memcmp_evex_movbe (60,606,060 samples, 0.13%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (30,303,030 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (40,404,040 samples, 0.09%) + + + +allocate_slab (50,505,050 samples, 0.11%) + + + +leveldb::Block::~Block (10,101,010 samples, 0.02%) + + + +leveldb::DecodeEntry (161,616,160 samples, 0.36%) + + + +fscrypt_file_open (60,606,060 samples, 0.13%) + + + +fdatasync (30,303,030 samples, 0.07%) + + + +do_futex (343,434,340 samples, 0.76%) + + + +mptscsih_qcmd (30,303,030 samples, 0.07%) + + + +aa_label_is_subset (10,101,010 samples, 0.02%) + + + +rw_verify_area (60,606,060 samples, 0.13%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_iterator<std::pair<unsigned long const, unsigned long> >::operator* (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +get_page_from_freelist (40,404,040 samples, 0.09%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +[unknown] (151,515,150 samples, 0.33%) + + + +lookup_fast (30,303,030 samples, 0.07%) + + + +leveldb::MutexLock::~MutexLock (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append (20,202,020 samples, 0.04%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_relocate (20,202,020 samples, 0.04%) + + + +void std::vector<leveldb::Slice, std::allocator<leveldb::Slice> >::_M_realloc_insert<leveldb::Slice const&> (90,909,090 samples, 0.20%) + + + +x64_sys_call (20,202,020 samples, 0.04%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::crc32c::Extend (242,424,240 samples, 0.53%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__futex_wait (20,202,020 samples, 0.04%) + + + +percpu_counter_add_batch (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::Add (242,424,240 samples, 0.53%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Next (777,777,770 samples, 1.71%) + + + +x64_sys_call (1,131,313,120 samples, 2.49%) +x6.. + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_Vector_base (20,202,020 samples, 0.04%) + + + +init_file (60,606,060 samples, 0.13%) + + + +std::pair<leveldb::Slice, leveldb::Slice> const& std::forward<std::pair<leveldb::Slice, leveldb::Slice> const&> (10,101,010 samples, 0.02%) + + + +__ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (202,020,200 samples, 0.44%) + + + +futex_wait_queue (40,404,040 samples, 0.09%) + + + +x64_sys_call (3,646,464,610 samples, 8.03%) +x64_sys_call + + +leveldb::Random::Next (10,101,010 samples, 0.02%) + + + +blk_mq_flush_plug_list.part.0 (10,101,010 samples, 0.02%) + + + +consume_obj_stock (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Flush (20,202,020 samples, 0.04%) + + + +leveldb::IteratorWrapper::SeekToFirst (20,202,020 samples, 0.04%) + + + +leveldb::Version::Unref (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +aa_put_buffer (10,101,010 samples, 0.02%) + + + +mpt_put_msg_frame (10,101,010 samples, 0.02%) + + + +create_empty_buffers (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +__strchr_evex (40,404,040 samples, 0.09%) + + + +x64_sys_call (222,222,220 samples, 0.49%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +rmqueue (131,313,130 samples, 0.29%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::operator[] (10,101,010 samples, 0.02%) + + + +dput (10,101,010 samples, 0.02%) + + + +void std::allocator_traits<std::allocator<std::pair<unsigned long, unsigned long> > >::construct<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long> > (10,101,010 samples, 0.02%) + + + +folio_alloc (70,707,070 samples, 0.16%) + + + +leveldb::EncodeFixed64 (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__alloc_pages (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::_Vector_impl::~_Vector_impl (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::AssertHeld (10,101,010 samples, 0.02%) + + + +read (2,535,353,510 samples, 5.58%) +read + + +__gnu_cxx::__normal_iterator<std::pair<unsigned long, unsigned long>*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > >::operator- (10,101,010 samples, 0.02%) + + + +xas_start (20,202,020 samples, 0.04%) + + + +jbd2_journal_stop (10,101,010 samples, 0.02%) + + + +dget_parent (20,202,020 samples, 0.04%) + + + +__fsnotify_parent (60,606,060 samples, 0.13%) + + + +filp_flush (60,606,060 samples, 0.13%) + + + +scsi_dispatch_cmd (10,101,010 samples, 0.02%) + + + +ext4_da_reserve_space (50,505,050 samples, 0.11%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32 (10,101,010 samples, 0.02%) + + + +mntput_no_expire (10,101,010 samples, 0.02%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (242,424,240 samples, 0.53%) + + + +leveldb::MemTable::ApproximateMemoryUsage (10,101,010 samples, 0.02%) + + + +ext4_buffered_write_iter (555,555,550 samples, 1.22%) + + + +leveldb::GetLengthPrefixedSlice (626,262,620 samples, 1.38%) + + + +std::ios_base::ios_base (20,202,020 samples, 0.04%) + + + +__memcmp_evex_movbe (40,404,040 samples, 0.09%) + + + +pthread_mutex_lock@plt (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (30,303,030 samples, 0.07%) + + + +ext4_generic_write_checks (30,303,030 samples, 0.07%) + + + +fsnotify_handle_inode_event.isra.0 (262,626,260 samples, 0.58%) + + + +mptspi_qcmd (10,101,010 samples, 0.02%) + + + +try_module_get (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::size (20,202,020 samples, 0.04%) + + + +x64_sys_call (1,292,929,280 samples, 2.85%) +x6.. + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::MergingIterator::key (10,101,010 samples, 0.02%) + + + +finish_task_switch.isra.0 (10,101,010 samples, 0.02%) + + + +leveldb::log::Writer::EmitPhysicalRecord (2,535,353,510 samples, 5.58%) +leveldb.. + + +bool __gnu_cxx::operator!=<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > > (10,101,010 samples, 0.02%) + + + +leveldb::Slice::operator[] (353,535,350 samples, 0.78%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +filemap_fdatawrite_wbc (30,303,030 samples, 0.07%) + + + +leveldb::TableCache::Get (1,141,414,130 samples, 2.51%) +le.. + + +std::__basic_file<char>::~__basic_file (20,202,020 samples, 0.04%) + + + +mptspi_qcmd (10,101,010 samples, 0.02%) + + + +blk_account_io_start (70,707,070 samples, 0.16%) + + + +_raw_spin_lock (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__filemap_fdatawrite_range (30,303,030 samples, 0.07%) + + + +free_unref_page_prepare (10,101,010 samples, 0.02%) + + + +timestamp_truncate (10,101,010 samples, 0.02%) + + + +leveldb::Slice::compare (10,101,010 samples, 0.02%) + + + +operator new (10,101,010 samples, 0.02%) + + + +get_page_from_freelist (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (10,101,010 samples, 0.02%) + + + +std::fpos<__mbstate_t>::fpos (20,202,020 samples, 0.04%) + + + +std::istream::sentry::sentry (10,101,010 samples, 0.02%) + + + +asm_sysvec_reschedule_ipi (10,101,010 samples, 0.02%) + + + +operator new[] (10,101,010 samples, 0.02%) + + + +refill_obj_stock (20,202,020 samples, 0.04%) + + + +__schedule (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +putname (30,303,030 samples, 0.07%) + + + +may_open (30,303,030 samples, 0.07%) + + + +mutex_unlock (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (262,626,260 samples, 0.58%) + + + +do_syscall_64 (10,101,010 samples, 0.02%) + + + +lru_gen_refault (40,404,040 samples, 0.09%) + + + +leveldb::Slice::operator[] (80,808,080 samples, 0.18%) + + + +_IO_file_open (50,505,050 samples, 0.11%) + + + +leveldb::Block::Iter::key (10,101,010 samples, 0.02%) + + + +filemap_add_folio (585,858,580 samples, 1.29%) + + + +ext4_da_write_begin (131,313,130 samples, 0.29%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +mptscsih_qcmd (10,101,010 samples, 0.02%) + + + +post_alloc_hook (10,101,010 samples, 0.02%) + + + +prepend_copy (60,606,060 samples, 0.13%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +leveldb::MutexLock::MutexLock (10,101,010 samples, 0.02%) + + + +std::mutex::lock (30,303,030 samples, 0.07%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::end (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +fopen@@GLIBC_2.2.5 (30,303,030 samples, 0.07%) + + + +ext4_release_folio (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (40,404,040 samples, 0.09%) + + + +crc32c_pcl_intel_update (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::end (10,101,010 samples, 0.02%) + + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<unsigned long, unsigned long>*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > >::base (10,101,010 samples, 0.02%) + + + +submit_bio_noacct_nocheck (20,202,020 samples, 0.04%) + + + +std::mutex::lock (10,101,010 samples, 0.02%) + + + +__srcu_read_unlock (10,101,010 samples, 0.02%) + + + +sysvec_reschedule_ipi (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (40,404,040 samples, 0.09%) + + + +__folio_mark_dirty (141,414,140 samples, 0.31%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (10,101,010 samples, 0.02%) + + + +__mark_inode_dirty (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_deallocate (10,101,010 samples, 0.02%) + + + +[unknown] (20,202,020 samples, 0.04%) + + + +sbitmap_get (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_allocate (10,101,010 samples, 0.02%) + + + +filemap_add_folio (181,818,180 samples, 0.40%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (20,202,020 samples, 0.04%) + + + +ext4_claim_free_clusters (10,101,010 samples, 0.02%) + + + +__mark_inode_dirty (50,505,050 samples, 0.11%) + + + +__radix_tree_lookup (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Lock (30,303,030 samples, 0.07%) + + + +std::ostream::sentry::sentry (10,101,010 samples, 0.02%) + + + +lockref_put_return (40,404,040 samples, 0.09%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (323,232,320 samples, 0.71%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*> (40,404,040 samples, 0.09%) + + + +__blk_mq_do_dispatch_sched (10,101,010 samples, 0.02%) + + + +rmqueue_bulk (90,909,090 samples, 0.20%) + + + +__vsnprintf_internal (10,101,010 samples, 0.02%) + + + +security_inode_permission (10,101,010 samples, 0.02%) + + + +__gnu_cxx::new_allocator<leveldb::Slice>::allocate (10,101,010 samples, 0.02%) + + + +__rcu_read_unlock (10,101,010 samples, 0.02%) + + + +submit_bio (20,202,020 samples, 0.04%) + + + +folio_add_lru (161,616,160 samples, 0.36%) + + + +void __gnu_cxx::new_allocator<leveldb::DBImpl::Writer*>::construct<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*> (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +setup_object (10,101,010 samples, 0.02%) + + + +kmem_cache_free (10,101,010 samples, 0.02%) + + + +obj_cgroup_charge (10,101,010 samples, 0.02%) + + + +rmqueue (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint (6,101,010,040 samples, 13.43%) +leveldb::(anonymous .. + + +std::_Rb_tree_iterator<std::pair<unsigned long const, unsigned long> >::operator* (30,303,030 samples, 0.07%) + + + +leveldb::operator== (10,101,010 samples, 0.02%) + + + +__ext4_journal_start_sb (10,101,010 samples, 0.02%) + + + +filemap_alloc_folio (70,707,070 samples, 0.16%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::deallocate (10,101,010 samples, 0.02%) + + + +__GI___pthread_enable_asynccancel (10,101,010 samples, 0.02%) + + + +folio_memcg_lock (20,202,020 samples, 0.04%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_right (20,202,020 samples, 0.04%) + + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (10,101,010 samples, 0.02%) + + + +__blk_mq_do_dispatch_sched (30,303,030 samples, 0.07%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::basic_ios<char, std::char_traits<char> >::_M_cache_locale (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (111,111,110 samples, 0.24%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice> > (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::vector (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +ext4_file_write_iter (20,202,020 samples, 0.04%) + + + +leveldb::GetLengthPrefixedSlice (20,202,020 samples, 0.04%) + + + +__x64_sys_close (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_addr (10,101,010 samples, 0.02%) + + + +truncate_inode_pages_range (30,303,030 samples, 0.07%) + + + +irqentry_exit (10,101,010 samples, 0.02%) + + + +rmqueue (10,101,010 samples, 0.02%) + + + +__alloc_pages_slowpath.constprop.0 (10,101,010 samples, 0.02%) + + + +std::pair<leveldb::Slice, leveldb::Slice>& std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::emplace_back<std::pair<leveldb::Slice, leveldb::Slice> > (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (10,101,010 samples, 0.02%) + + + +futex_wake (10,101,010 samples, 0.02%) + + + +std::operator& (20,202,020 samples, 0.04%) + + + +leveldb::IteratorWrapper::Valid (30,303,030 samples, 0.07%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice> > (60,606,060 samples, 0.13%) + + + +leveldb::IteratorWrapper::Valid (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_const_iterator<std::pair<unsigned long const, unsigned long> >::_Rb_tree_const_iterator (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::LRUCache::LRU_Append (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +ext4_dirty_inode (40,404,040 samples, 0.09%) + + + +leveldb::WriteBatchInternal::Contents (10,101,010 samples, 0.02%) + + + +ksys_write (151,515,150 samples, 0.33%) + + + +truncate_inode_pages_final (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::LRUCache::LRU_Append (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +std::basic_ios<char, std::char_traits<char> >::_M_cache_locale (20,202,020 samples, 0.04%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::value (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator* (10,101,010 samples, 0.02%) + + + +finish_task_switch.isra.0 (10,101,010 samples, 0.02%) + + + +try_to_unlazy (40,404,040 samples, 0.09%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::port::CondVar::SignalAll (10,101,010 samples, 0.02%) + + + +allocate_slab (20,202,020 samples, 0.04%) + + + +void std::_Destroy_aux<true>::__destroy<std::pair<leveldb::Slice, leveldb::Slice>*> (10,101,010 samples, 0.02%) + + + +blk_mq_sched_dispatch_requests (30,303,030 samples, 0.07%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator++ (10,101,010 samples, 0.02%) + + + +memset_orig (10,101,010 samples, 0.02%) + + + +_int_malloc (70,707,070 samples, 0.16%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::size (20,202,020 samples, 0.04%) + + + +ext4_invalidate_folio (20,202,020 samples, 0.04%) + + + +submit_bio_noacct (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +mpage_map_and_submit_buffers (10,101,010 samples, 0.02%) + + + +__ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +leveldb::GetLengthPrefixedSlice (30,303,030 samples, 0.07%) + + + +mutex_lock (20,202,020 samples, 0.04%) + + + +__GI___lll_lock_wake (20,202,020 samples, 0.04%) + + + +aa_dfa_match (111,111,110 samples, 0.24%) + + + +__memcmp_evex_movbe (70,707,070 samples, 0.16%) + + + +ima_file_free (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::Iter (10,101,010 samples, 0.02%) + + + +__futex_wait (50,505,050 samples, 0.11%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +leveldb::Status::ok (10,101,010 samples, 0.02%) + + + +__srcu_read_lock (10,101,010 samples, 0.02%) + + + +leveldb::Version::~Version (10,101,010 samples, 0.02%) + + + +leveldb::log::Writer::AddRecord (2,585,858,560 samples, 5.69%) +leveldb.. + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +operator new (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (60,606,060 samples, 0.13%) + + + +alloc_pages_mpol (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Lookup (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +__file_remove_privs (10,101,010 samples, 0.02%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +__block_commit_write (60,606,060 samples, 0.13%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatch::Put (151,515,150 samples, 0.33%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Valid (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::WriteBatchInternal::ConverToValueLog (202,020,200 samples, 0.44%) + + + +copy_page_from_iter_atomic (20,202,020 samples, 0.04%) + + + +ext4_llseek (20,202,020 samples, 0.04%) + + + +submit_bio (10,101,010 samples, 0.02%) + + + +__memcmp_evex_movbe (40,404,040 samples, 0.09%) + + + +[libstdc++.so.6.0.30] (10,101,010 samples, 0.02%) + + + +map_id_up (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (30,303,030 samples, 0.07%) + + + +__schedule (20,202,020 samples, 0.04%) + + + +leveldb::port::Mutex::Lock (70,707,070 samples, 0.16%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +apparmor_file_permission (60,606,060 samples, 0.13%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::push_back (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +leveldb::Table::BlockReader (181,818,180 samples, 0.40%) + + + +futex_hash (20,202,020 samples, 0.04%) + + + +_raw_spin_unlock_irqrestore (5,363,636,310 samples, 11.81%) +_raw_spin_unlock_.. + + +copy_page_from_iter_atomic (10,101,010 samples, 0.02%) + + + +blk_mq_sched_dispatch_requests (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (30,303,030 samples, 0.07%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::MemTableInserter::~MemTableInserter (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksForward (10,101,010 samples, 0.02%) + + + +wake_up_q (40,404,040 samples, 0.09%) + + + +leveldb::GetLengthPrefixedSlice (50,505,050 samples, 0.11%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +file_write_and_wait_range (121,212,120 samples, 0.27%) + + + +entry_SYSCALL_64_after_hwframe (30,303,030 samples, 0.07%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +pthread_mutex_unlock@@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +send_to_group (50,505,050 samples, 0.11%) + + + +bool std::has_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::PackSequenceAndType (10,101,010 samples, 0.02%) + + + +std::operator== (10,101,010 samples, 0.02%) + + + +mpage_map_and_submit_extent (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_S_max_size (10,101,010 samples, 0.02%) + + + +iput (30,303,030 samples, 0.07%) + + + +lookup_fast (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +xas_descend (30,303,030 samples, 0.07%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::Saver::Saver (10,101,010 samples, 0.02%) + + + +handle_softirqs (20,202,020 samples, 0.04%) + + + +touch_atime (50,505,050 samples, 0.11%) + + + +_raw_spin_unlock_irqrestore (20,202,020 samples, 0.04%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (20,202,020 samples, 0.04%) + + + +obj_cgroup_charge (10,101,010 samples, 0.02%) + + + +__srcu_read_unlock (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::MergingIterator::FindSmallest (484,848,480 samples, 1.07%) + + + +futex_wake_mark (10,101,010 samples, 0.02%) + + + +ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatch::WriteBatch (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (20,202,020 samples, 0.04%) + + + +leveldb::TableBuilder::WriteBlock (20,202,020 samples, 0.04%) + + + +__GI___lll_lock_wait (10,101,010 samples, 0.02%) + + + +leveldb::Arena::MemoryUsage (10,101,010 samples, 0.02%) + + + +_int_malloc (10,101,010 samples, 0.02%) + + + +mutex_lock (10,101,010 samples, 0.02%) + + + +[unknown] (80,808,080 samples, 0.18%) + + + +void std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_realloc_insert<std::pair<unsigned long, unsigned long> > (10,101,010 samples, 0.02%) + + + +leveldb::InternalKey::user_key (10,101,010 samples, 0.02%) + + + +wake_up_q (5,393,939,340 samples, 11.87%) +wake_up_q + + +do_futex (80,808,080 samples, 0.18%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +copy_page_from_iter_atomic (10,101,010 samples, 0.02%) + + + +__check_object_size.part.0 (80,808,080 samples, 0.18%) + + + +leveldb::WriteBatchInternal::ConverToValueLog (2,595,959,570 samples, 5.71%) +leveldb.. + + +leveldb::WriteBatchInternal::Count (10,101,010 samples, 0.02%) + + + +___slab_alloc (10,101,010 samples, 0.02%) + + + +_int_malloc (10,101,010 samples, 0.02%) + + + +obj_cgroup_uncharge (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::size (10,101,010 samples, 0.02%) + + + +should_failslab.constprop.0 (10,101,010 samples, 0.02%) + + + +void std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_realloc_insert<std::pair<leveldb::Slice, leveldb::Slice> > (20,202,020 samples, 0.04%) + + + +leveldb::Block::NewIterator (10,101,010 samples, 0.02%) + + + +_raw_spin_lock (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::push_back (90,909,090 samples, 0.20%) + + + +leveldb::(anonymous namespace)::ValueLogChecker::Put (111,111,110 samples, 0.24%) + + + +___slab_alloc (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (80,808,080 samples, 0.18%) + + + +leveldb::IteratorWrapper::Valid (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (212,121,210 samples, 0.47%) + + + +operator delete (10,101,010 samples, 0.02%) + + + +balance_dirty_pages_ratelimited (70,707,070 samples, 0.16%) + + + +leveldb::Slice::compare (20,202,020 samples, 0.04%) + + + +leveldb::GetVarint32Ptr (121,212,120 samples, 0.27%) + + + +mpt_put_msg_frame (848,484,840 samples, 1.87%) +m.. + + +[unknown] (10,101,010 samples, 0.02%) + + + +blk_mq_run_hw_queue (10,101,010 samples, 0.02%) + + + +futex_wake (10,101,010 samples, 0.02%) + + + +generic_file_read_iter (1,878,787,860 samples, 4.14%) +gene.. + + +leveldb::(anonymous namespace)::MergingIterator::Next (1,515,151,500 samples, 3.33%) +lev.. + + +xas_load (70,707,070 samples, 0.16%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (20,202,020 samples, 0.04%) + + + +std::basic_ios<char, std::char_traits<char> >::clear (10,101,010 samples, 0.02%) + + + +__blk_mq_sched_dispatch_requests (60,606,060 samples, 0.13%) + + + +std::unique_lock<std::mutex>::unique_lock (10,101,010 samples, 0.02%) + + + +do_writev (3,646,464,610 samples, 8.03%) +do_writev + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::size (10,101,010 samples, 0.02%) + + + +__get_user_nocheck_4 (10,101,010 samples, 0.02%) + + + +leveldb::DeleteBlock (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (151,515,150 samples, 0.33%) + + + +blk_mq_dispatch_rq_list (878,787,870 samples, 1.93%) +b.. + + +___slab_alloc (30,303,030 samples, 0.07%) + + + +security_file_permission (60,606,060 samples, 0.13%) + + + +__GI___pthread_enable_asynccancel (20,202,020 samples, 0.04%) + + + +std::istream::seekg (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (20,202,020 samples, 0.04%) + + + +leveldb::IteratorWrapper::key (10,101,010 samples, 0.02%) + + + +pthread_cond_broadcast@@GLIBC_2.3.2 (30,303,030 samples, 0.07%) + + + +current_obj_cgroup (10,101,010 samples, 0.02%) + + + +__srcu_read_unlock (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed64 (30,303,030 samples, 0.07%) + + + +std::mutex::lock (30,303,030 samples, 0.07%) + + + +complete_walk (40,404,040 samples, 0.09%) + + + +blk_mq_sched_dispatch_requests (10,101,010 samples, 0.02%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::load (10,101,010 samples, 0.02%) + + + +xas_load (60,606,060 samples, 0.13%) + + + +atime_needs_update (50,505,050 samples, 0.11%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +leveldb::Random::Next (30,303,030 samples, 0.07%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32PtrFallback (10,101,010 samples, 0.02%) + + + +[unknown] (4,686,868,640 samples, 10.32%) +[unknown] + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::InitDataBlock (30,303,030 samples, 0.07%) + + + +std::basic_fstream<char, std::char_traits<char> >::basic_fstream (10,101,010 samples, 0.02%) + + + +blk_mq_sched_dispatch_requests (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +balance_dirty_pages_ratelimited (202,020,200 samples, 0.44%) + + + +leveldb::IteratorWrapper::key (30,303,030 samples, 0.07%) + + + +cgroup_rstat_flush (101,010,100 samples, 0.22%) + + + +fscrypt_file_open (10,101,010 samples, 0.02%) + + + +ext4_getblk (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatch::Put (70,707,070 samples, 0.16%) + + + +std::atomic<leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node*>::store (20,202,020 samples, 0.04%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~_Vector_base (10,101,010 samples, 0.02%) + + + +leveldb::Status::Status (10,101,010 samples, 0.02%) + + + +block_write_end (262,626,260 samples, 0.58%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::~vector (40,404,040 samples, 0.09%) + + + +d_lookup (10,101,010 samples, 0.02%) + + + +irqentry_exit_to_user_mode (10,101,010 samples, 0.02%) + + + +do_syscall_64 (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::BackgroundCall (6,101,010,040 samples, 13.43%) +leveldb::DBImpl::Bac.. + + +ksys_lseek (10,101,010 samples, 0.02%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate (30,303,030 samples, 0.07%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append (10,101,010 samples, 0.02%) + + + +mntput (20,202,020 samples, 0.04%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::BGWork (6,101,010,040 samples, 13.43%) +leveldb::DBImpl::BGW.. + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::less<unsigned long>::operator (70,707,070 samples, 0.16%) + + + +leveldb::DBImpl::MakeRoomForWrite (70,707,070 samples, 0.16%) + + + +rmqueue (20,202,020 samples, 0.04%) + + + +std::pair<unsigned long, unsigned long>& std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::emplace_back<std::pair<unsigned long, unsigned long> > (181,818,180 samples, 0.40%) + + + +ext4_evict_inode (10,101,010 samples, 0.02%) + + + +ext4_buffered_write_iter (2,999,999,970 samples, 6.60%) +ext4_buff.. + + +blk_mq_flush_plug_list.part.0 (919,191,910 samples, 2.02%) +b.. + + +clear_page_erms (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::MergingIterator::value (191,919,190 samples, 0.42%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +alloc_buffer_head (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::Sync (30,303,030 samples, 0.07%) + + + +__memcpy (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32Ptr (60,606,060 samples, 0.13%) + + + +leveldb::(anonymous namespace)::MergingIterator::Valid (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_max_size (10,101,010 samples, 0.02%) + + + +operator delete (10,101,010 samples, 0.02%) + + + +leveldb::SaveValue (10,101,010 samples, 0.02%) + + + +leveldb::EncodeVarint64 (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::end (10,101,010 samples, 0.02%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::Writer::~Writer (10,101,010 samples, 0.02%) + + + +mod_memcg_state (10,101,010 samples, 0.02%) + + + +file_modified (10,101,010 samples, 0.02%) + + + +blk_mq_run_hw_queue (20,202,020 samples, 0.04%) + + + +leveldb::WriteBatchInternal::SetCount (20,202,020 samples, 0.04%) + + + +memcmp@plt (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +__rcu_read_unlock (10,101,010 samples, 0.02%) + + + +std::mutex::lock (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +up_write (10,101,010 samples, 0.02%) + + + +ktime_get_coarse_real_ts64 (10,101,010 samples, 0.02%) + + + +std::mutex::lock (10,101,010 samples, 0.02%) + + + +operator new (20,202,020 samples, 0.04%) + + + +generic_update_time (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::Writer*& std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::emplace_back<leveldb::DBImpl::Writer*> (10,101,010 samples, 0.02%) + + + +page_cache_ra_unbounded (1,292,929,280 samples, 2.85%) +pa.. + + +bdev_getblk (10,101,010 samples, 0.02%) + + + +void std::_Destroy<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice> > (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::push_back (10,101,010 samples, 0.02%) + + + +__x64_sys_unlink (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::FlushBuffer (242,424,240 samples, 0.53%) + + + +__xas_next (10,101,010 samples, 0.02%) + + + +ext4_mpage_readpages (111,111,110 samples, 0.24%) + + + +__ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +__memcg_slab_post_alloc_hook (50,505,050 samples, 0.11%) + + + +leveldb::TableBuilder::WriteBlock (262,626,260 samples, 0.58%) + + + +leveldb::ExtractUserKey (111,111,110 samples, 0.24%) + + + +leveldb::Slice::data (20,202,020 samples, 0.04%) + + + +ext4_file_write_iter (575,757,570 samples, 1.27%) + + + +entry_SYSCALL_64_after_hwframe (30,303,030 samples, 0.07%) + + + +try_to_wake_up (343,434,340 samples, 0.76%) + + + +page_cache_ra_order (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (242,424,240 samples, 0.53%) + + + +_IO_file_close_it@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +leveldb::DBImpl::DoCompactionWork (5,484,848,430 samples, 12.07%) +leveldb::DBImpl::D.. + + +do_syscall_64 (202,020,200 samples, 0.44%) + + + +leveldb::Iterator::~Iterator (30,303,030 samples, 0.07%) + + + +folio_add_file_rmap_ptes (10,101,010 samples, 0.02%) + + + +std::pair<leveldb::Slice, leveldb::Slice>& std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::emplace_back<std::pair<leveldb::Slice, leveldb::Slice> > (161,616,160 samples, 0.36%) + + + +up_write (10,101,010 samples, 0.02%) + + + +leveldb::ParseInternalKey (20,202,020 samples, 0.04%) + + + +kmem_cache_alloc (40,404,040 samples, 0.09%) + + + +__x64_sys_futex (50,505,050 samples, 0.11%) + + + +ksys_read (2,070,707,050 samples, 4.56%) +ksys_.. + + +create_empty_buffers (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +__x64_sys_write (202,020,200 samples, 0.44%) + + + +__gnu_cxx::new_allocator<std::pair<unsigned long, unsigned long> >::new_allocator (10,101,010 samples, 0.02%) + + + +blk_mq_sched_dispatch_requests (60,606,060 samples, 0.13%) + + + +mem_cgroup_flush_stats.part.0 (101,010,100 samples, 0.22%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +memset_orig (50,505,050 samples, 0.11%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::_Deque_iterator (20,202,020 samples, 0.04%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +check_heap_object (40,404,040 samples, 0.09%) + + + +timestamp_truncate (20,202,020 samples, 0.04%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +leveldb::crc32c::Value (252,525,250 samples, 0.56%) + + + +lockref_put_return (20,202,020 samples, 0.04%) + + + +virtual thunk to std::basic_fstream<char, std::char_traits<char> >::~basic_fstream (151,515,150 samples, 0.33%) + + + +inotify_free_event (20,202,020 samples, 0.04%) + + + +dd_insert_requests (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +__fdget_pos (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::begin (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +std::istream::tellg (20,202,020 samples, 0.04%) + + + +leveldb::Block::Iter::Compare (252,525,250 samples, 0.56%) + + + +_raw_spin_unlock_irqrestore (121,212,120 samples, 0.27%) + + + +_raw_spin_unlock (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::value (60,606,060 samples, 0.13%) + + + +inode_to_bdi (10,101,010 samples, 0.02%) + + + +leveldb::Version::~Version (10,101,010 samples, 0.02%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::deallocate (10,101,010 samples, 0.02%) + + + +ext4_nonda_switch (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::Get (737,373,730 samples, 1.62%) + + + +leveldb::DBImpl::user_comparator (10,101,010 samples, 0.02%) + + + +__GI___lll_lock_wait (20,202,020 samples, 0.04%) + + + +leveldb::GetLengthPrefixedSlice (10,101,010 samples, 0.02%) + + + +do_writepages (30,303,030 samples, 0.07%) + + + +scsi_queue_rq (878,787,870 samples, 1.93%) +s.. + + +leveldb::Arena::MemoryUsage (10,101,010 samples, 0.02%) + + + +folio_alloc_buffers (10,101,010 samples, 0.02%) + + + +[unknown] (20,202,020 samples, 0.04%) + + + +leveldb::TableBuilder::FileSize (20,202,020 samples, 0.04%) + + + +ext4_io_submit (60,606,060 samples, 0.13%) + + + +_raw_spin_unlock_irqrestore (343,434,340 samples, 0.76%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::batch_insert (141,414,140 samples, 0.31%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::begin (10,101,010 samples, 0.02%) + + + +__memcmp_evex_movbe (40,404,040 samples, 0.09%) + + + +kfree (20,202,020 samples, 0.04%) + + + +do_syscall_64 (4,020,201,980 samples, 8.85%) +do_syscall_64 + + +std::ostream::write (20,202,020 samples, 0.04%) + + + +std::__basic_file<char>::seekoff (20,202,020 samples, 0.04%) + + + +apparmor_file_alloc_security (30,303,030 samples, 0.07%) + + + +kmem_cache_alloc (30,303,030 samples, 0.07%) + + + +blk_mq_dispatch_plug_list (10,101,010 samples, 0.02%) + + + +leveldb::MutexLock::~MutexLock (50,505,050 samples, 0.11%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::push_back (10,101,010 samples, 0.02%) + + + +blk_mq_dispatch_rq_list (10,101,010 samples, 0.02%) + + + +memcmp@plt (20,202,020 samples, 0.04%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +fclose@@GLIBC_2.2.5 (20,202,020 samples, 0.04%) + + + +clear_page_erms (222,222,220 samples, 0.49%) + + + +__GI___lll_lock_wake (30,303,030 samples, 0.07%) + + + +leveldb::PutLengthPrefixedSlice (40,404,040 samples, 0.09%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::front (10,101,010 samples, 0.02%) + + + +apparmor_current_getlsmblob_subj (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::MakeRoomForWrite (10,101,010 samples, 0.02%) + + + +pthread_mutex_unlock@@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +cfree@GLIBC_2.2.5 (30,303,030 samples, 0.07%) + + + +leveldb::Slice::size (20,202,020 samples, 0.04%) + + + +__kmalloc (70,707,070 samples, 0.16%) + + + +__GI___lll_lock_wake (383,838,380 samples, 0.84%) + + + +getname (10,101,010 samples, 0.02%) + + + +lookup_fast (10,101,010 samples, 0.02%) + + + +__get_user_nocheck_4 (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Lock (50,505,050 samples, 0.11%) + + + +leveldb::IteratorWrapper::Valid (10,101,010 samples, 0.02%) + + + +__rcu_read_unlock (20,202,020 samples, 0.04%) + + + +blk_mq_dispatch_rq_list (60,606,060 samples, 0.13%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::push_back (212,121,210 samples, 0.47%) + + + +lookup_bh_lru (10,101,010 samples, 0.02%) + + + +do_syscall_64 (40,404,040 samples, 0.09%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::base (10,101,010 samples, 0.02%) + + + +std::pair<unsigned long, unsigned long>&& std::forward<std::pair<unsigned long, unsigned long> > (20,202,020 samples, 0.04%) + + + +scsi_dispatch_cmd (20,202,020 samples, 0.04%) + + + +ext4_file_open (10,101,010 samples, 0.02%) + + + +mptspi_qcmd (858,585,850 samples, 1.89%) +m.. + + +do_syscall_64 (121,212,120 samples, 0.27%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +std::__basic_file<char>::is_open (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +blk_mq_dispatch_rq_list (20,202,020 samples, 0.04%) + + + +filemap_get_pages (10,101,010 samples, 0.02%) + + + +futex_wake (343,434,340 samples, 0.76%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (30,303,030 samples, 0.07%) + + + +std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf (50,505,050 samples, 0.11%) + + + +std::_Select1st<std::pair<unsigned long const, unsigned long> >::operator (20,202,020 samples, 0.04%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +ext4_dirty_inode (10,101,010 samples, 0.02%) + + + +__irq_exit_rcu (20,202,020 samples, 0.04%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +do_syscall_64 (2,343,434,320 samples, 5.16%) +do_sys.. + + +__gnu_cxx::new_allocator<std::pair<unsigned long, unsigned long> >::max_size (10,101,010 samples, 0.02%) + + + +dput (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::NextEntryOffset (10,101,010 samples, 0.02%) + + + +__srcu_read_unlock (20,202,020 samples, 0.04%) + + + +std::mutex::unlock (20,202,020 samples, 0.04%) + + + +leveldb::GetLengthPrefixedSlice (20,202,020 samples, 0.04%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +dput (10,101,010 samples, 0.02%) + + + +__gthread_mutex_unlock (10,101,010 samples, 0.02%) + + + +try_to_wake_up (5,363,636,310 samples, 11.81%) +try_to_wake_up + + +rw_verify_area (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.02%) + + + +pthread_mutex_unlock@plt (10,101,010 samples, 0.02%) + + + +__check_heap_object (10,101,010 samples, 0.02%) + + + +__memcg_slab_free_hook (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +fsnotify (60,606,060 samples, 0.13%) + + + +leveldb::TableBuilder::ok (60,606,060 samples, 0.13%) + + + +leveldb::PutLengthPrefixedSlice (40,404,040 samples, 0.09%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +scsi_dispatch_cmd (30,303,030 samples, 0.07%) + + + +xas_load (20,202,020 samples, 0.04%) + + + +__fdget_pos (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_iterator<std::pair<unsigned long const, unsigned long> >::operator* (20,202,020 samples, 0.04%) + + + +__dquot_alloc_space (30,303,030 samples, 0.07%) + + + +blk_mq_dispatch_plug_list (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.02%) + + + +leveldb::WriteBatch::Put (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (20,202,020 samples, 0.04%) + + + +lockref_get_not_zero (20,202,020 samples, 0.04%) + + + +mem_cgroup_commit_charge (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +dget_parent (10,101,010 samples, 0.02%) + + + +futex_wake (1,101,010,090 samples, 2.42%) +fu.. + + +leveldb::EncodeVarint64 (40,404,040 samples, 0.09%) + + + +entry_SYSCALL_64_after_hwframe (1,222,222,210 samples, 2.69%) +en.. + + +__d_lookup_rcu (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (20,202,020 samples, 0.04%) + + + +std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output (20,202,020 samples, 0.04%) + + + +folio_batch_move_lru (141,414,140 samples, 0.31%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.02%) + + + +scsi_dispatch_cmd (60,606,060 samples, 0.13%) + + + +get_page_from_freelist (10,101,010 samples, 0.02%) + + + +__cxxabiv1::__si_class_type_info::~__si_class_type_info (60,606,060 samples, 0.13%) + + + +module_put (20,202,020 samples, 0.04%) + + + +x64_sys_call (222,222,220 samples, 0.49%) + + + +leveldb::Block::Iter::Seek (626,262,620 samples, 1.38%) + + + +std::basic_streambuf<char, std::char_traits<char> >::xsgetn (10,101,010 samples, 0.02%) + + + +__futex_queue (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +all (45,434,342,980 samples, 100%) + + + +fault_in_iov_iter_readable (10,101,010 samples, 0.02%) + + + +void std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_realloc_insert<std::pair<leveldb::Slice, leveldb::Slice> > (131,313,130 samples, 0.29%) + + + +alloc_pages_mpol (646,464,640 samples, 1.42%) + + + +blk_mq_sched_dispatch_requests (20,202,020 samples, 0.04%) + + + +scsi_complete (10,101,010 samples, 0.02%) + + + +void std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::_M_push_back_aux<leveldb::DBImpl::Writer*> (20,202,020 samples, 0.04%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Next (181,818,180 samples, 0.40%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator[] (323,232,320 samples, 0.71%) + + + +ext4_block_write_begin (50,505,050 samples, 0.11%) + + + +std::atomic<bool>::load (50,505,050 samples, 0.11%) + + + +std::ios_base::_M_call_callbacks (10,101,010 samples, 0.02%) + + + +__futex_unqueue (10,101,010 samples, 0.02%) + + + +ext4_get_inode_loc (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +blk_mq_submit_bio (80,808,080 samples, 0.18%) + + + +leveldb::PutVarint32 (121,212,120 samples, 0.27%) + + + +__x64_sys_futex (343,434,340 samples, 0.76%) + + + +__gnu_cxx::__normal_iterator<leveldb::FileMetaData* const*, std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +ext4_dirty_inode (40,404,040 samples, 0.09%) + + + +leveldb::(anonymous namespace)::LRUCache::Release (20,202,020 samples, 0.04%) + + + +__x64_sys_futex (5,565,656,510 samples, 12.25%) +__x64_sys_futex + + +wake_up_q (343,434,340 samples, 0.76%) + + + +leveldb::MutexLock::~MutexLock (10,101,010 samples, 0.02%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +bool std::has_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > > (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +std::operator& (10,101,010 samples, 0.02%) + + + +workingset_refault (40,404,040 samples, 0.09%) + + + +blk_mq_flush_plug_list (30,303,030 samples, 0.07%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (20,202,020 samples, 0.04%) + + + +d_namespace_path.constprop.0 (252,525,250 samples, 0.56%) + + + +leveldb::(anonymous namespace)::ValueLogChecker::CheckValid (10,101,010 samples, 0.02%) + + + +try_to_wake_up (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::key (10,101,010 samples, 0.02%) + + + +leveldb::EncodeFixed32 (20,202,020 samples, 0.04%) + + + +std::pair<unsigned long, unsigned long>::pair<unsigned long&, unsigned long, true> (10,101,010 samples, 0.02%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::deallocate (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +wake_q_add_safe (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::value (181,818,180 samples, 0.40%) + + + +do_writepages (121,212,120 samples, 0.27%) + + + +leveldb::WriteBatchInternal::Count (10,101,010 samples, 0.02%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +__kmalloc (20,202,020 samples, 0.04%) + + + +asm_exc_page_fault (30,303,030 samples, 0.07%) + + + +leveldb::IteratorWrapper::Next (20,202,020 samples, 0.04%) + + + +page_cache_sync_ra (10,101,010 samples, 0.02%) + + + +mark_buffer_dirty (202,020,200 samples, 0.44%) + + + +leveldb::Block::Iter::ParseNextKey (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Lock (10,101,010 samples, 0.02%) + + + +pthread_mutex_lock@@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32 (40,404,040 samples, 0.09%) + + + +__blk_mq_sched_dispatch_requests (10,101,010 samples, 0.02%) + + + +get_mem_cgroup_from_mm (10,101,010 samples, 0.02%) + + + +_IO_default_xsputn (40,404,040 samples, 0.09%) + + + +leveldb::(anonymous namespace)::ValueLogChecker::~ValueLogChecker (40,404,040 samples, 0.09%) + + + +shuffle_freelist (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32Ptr (50,505,050 samples, 0.11%) + + + +__folio_mark_dirty (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (20,202,020 samples, 0.04%) + + + +leveldb::IteratorWrapper::key (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (40,404,040 samples, 0.09%) + + + +entry_SYSCALL_64_after_hwframe (121,212,120 samples, 0.27%) + + + +std::_Vector_base<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_deallocate (10,101,010 samples, 0.02%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +leveldb::GetLengthPrefixedSlice (50,505,050 samples, 0.11%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::allocate (20,202,020 samples, 0.04%) + + + +blk_done_softirq (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32Ptr (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::~_Vector_base (10,101,010 samples, 0.02%) + + + +futex_wait (10,101,010 samples, 0.02%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__relocate_a<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice>*, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > (10,101,010 samples, 0.02%) + + + +do_futex (1,111,111,100 samples, 2.45%) +do.. + + +balance_dirty_pages_ratelimited_flags (171,717,170 samples, 0.38%) + + + +blk_finish_plug (30,303,030 samples, 0.07%) + + + +percpu_counter_add_batch (20,202,020 samples, 0.04%) + + + +generic_perform_write (2,828,282,800 samples, 6.22%) +generic_.. + + +do_syscall_64 (999,999,990 samples, 2.20%) +d.. + + +blk_mq_dispatch_plug_list (30,303,030 samples, 0.07%) + + + +leveldb::Block::Iter::NextEntryOffset (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::data (10,101,010 samples, 0.02%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::PosixWritableFile::WriteUnbuffered (10,101,010 samples, 0.02%) + + + +leveldb::PutLengthPrefixedSlice (10,101,010 samples, 0.02%) + + + +futex_q_lock (10,101,010 samples, 0.02%) + + + +alloc_pages_mpol (20,202,020 samples, 0.04%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::__relocate_a<std::pair<leveldb::Slice, leveldb::Slice>*, std::pair<leveldb::Slice, leveldb::Slice>*, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > (10,101,010 samples, 0.02%) + + + +futex_wait_queue (10,101,010 samples, 0.02%) + + + +blk_mq_submit_bio (60,606,060 samples, 0.13%) + + + +leveldb::(anonymous namespace)::LRUCache::Lookup (10,101,010 samples, 0.02%) + + + +db_bench (45,434,342,980 samples, 100.00%) +db_bench + + +std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (27,040,403,770 samples, 59.52%) +std::thread::_State_impl<std::thread::_Invoker<std::tuple<void + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +handle_pte_fault (10,101,010 samples, 0.02%) + + + +leveldb::EncodeFixed64 (10,101,010 samples, 0.02%) + + + +__cxxabiv1::__si_class_type_info::__do_dyncast (30,303,030 samples, 0.07%) + + + +std::__basic_file<char>::is_open (10,101,010 samples, 0.02%) + + + +_raw_spin_lock (10,101,010 samples, 0.02%) + + + +syscall_exit_to_user_mode_prepare (10,101,010 samples, 0.02%) + + + +__cond_resched (20,202,020 samples, 0.04%) + + + +do_futex (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (40,404,040 samples, 0.09%) + + + +do_syscall_64 (20,202,020 samples, 0.04%) + + + +generic_update_time (10,101,010 samples, 0.02%) + + + +__wake_up (40,404,040 samples, 0.09%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::key (60,606,060 samples, 0.13%) + + + +std::allocator_traits<std::allocator<std::pair<unsigned long, unsigned long> > >::deallocate (10,101,010 samples, 0.02%) + + + +leveldb::port::CondVar::SignalAll (10,101,010 samples, 0.02%) + + + +__cond_resched (10,101,010 samples, 0.02%) + + + +ext4_sync_file (30,303,030 samples, 0.07%) + + + +leveldb::BuildTable (494,949,490 samples, 1.09%) + + + +ext4_da_reserve_space (20,202,020 samples, 0.04%) + + + +std::pair<leveldb::Slice, leveldb::Slice>* std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >, std::pair<leveldb::Slice, leveldb::Slice>*> (50,505,050 samples, 0.11%) + + + +node_page_state (50,505,050 samples, 0.11%) + + + +rw_verify_area (10,101,010 samples, 0.02%) + + + +fsnotify_destroy_event (20,202,020 samples, 0.04%) + + + +__ext4_mark_inode_dirty (30,303,030 samples, 0.07%) + + + +strncpy_from_user (30,303,030 samples, 0.07%) + + + +blk_add_rq_to_plug (60,606,060 samples, 0.13%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +fsnotify (20,202,020 samples, 0.04%) + + + +submit_bio_noacct (60,606,060 samples, 0.13%) + + + +blk_mq_dispatch_plug_list (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::KeyComparator::operator (30,303,030 samples, 0.07%) + + + +__es_insert_extent (10,101,010 samples, 0.02%) + + + +__mark_inode_dirty (10,101,010 samples, 0.02%) + + + +fclose@@GLIBC_2.2.5 (60,606,060 samples, 0.13%) + + + +leveldb::VersionSet::LogAndApply (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::LRUCache::Unref (10,101,010 samples, 0.02%) + + + +dd_dispatch_request (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_aux (10,101,010 samples, 0.02%) + + + +mpt_put_msg_frame (30,303,030 samples, 0.07%) + + + +leveldb::MutexLock::~MutexLock (90,909,090 samples, 0.20%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (10,101,010 samples, 0.02%) + + + +generic_update_time (40,404,040 samples, 0.09%) + + + +irq_exit_rcu (20,202,020 samples, 0.04%) + + + +__blk_mq_alloc_requests (10,101,010 samples, 0.02%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_deallocate (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice> const*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::operator* (10,101,010 samples, 0.02%) + + + +std::operator== (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (6,030,302,970 samples, 13.27%) +leveldb::port::Mutex.. + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (222,222,220 samples, 0.49%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator[] (111,111,110 samples, 0.24%) + + + +leveldb::LookupKey::LookupKey (10,101,010 samples, 0.02%) + + + +std::codecvt<char, char, __mbstate_t>::do_always_noconv (20,202,020 samples, 0.04%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +leveldb::crc32c::Extend (212,121,210 samples, 0.47%) + + + +leveldb::DBImpl::Writer::Writer (10,101,010 samples, 0.02%) + + + +__futex_wait (10,101,010 samples, 0.02%) + + + +std::ostream::write (50,505,050 samples, 0.11%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize (10,101,010 samples, 0.02%) + + + +vfs_write (181,818,180 samples, 0.40%) + + + +futex_wait (50,505,050 samples, 0.11%) + + + +leveldb::DBImpl::Writer::Writer (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__GI__IO_un_link.part.0 (20,202,020 samples, 0.04%) + + + +wake_all_kswapds (10,101,010 samples, 0.02%) + + + +_int_malloc (10,101,010 samples, 0.02%) + + + +do_syscall_64 (111,111,110 samples, 0.24%) + + + +free_buffer_head (10,101,010 samples, 0.02%) + + + +mptspi_qcmd (60,606,060 samples, 0.13%) + + + +__schedule (10,101,010 samples, 0.02%) + + + +__memmove_evex_unaligned_erms (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::FinishCompactionOutputFile (131,313,130 samples, 0.29%) + + + +irqentry_exit (10,101,010 samples, 0.02%) + + + +leveldb::MutexLock::MutexLock (30,303,030 samples, 0.07%) + + + +leveldb::IteratorWrapper::Update (151,515,150 samples, 0.33%) + + + +std::basic_ios<char, std::char_traits<char> >::good (10,101,010 samples, 0.02%) + + + +ext4_writepages (121,212,120 samples, 0.27%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::Iterator::RegisterCleanup (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +__folio_batch_release (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (90,909,090 samples, 0.20%) + + + +check_heap_object (10,101,010 samples, 0.02%) + + + +should_failslab.constprop.0 (10,101,010 samples, 0.02%) + + + +vfs_write (141,414,140 samples, 0.31%) + + + +refill_obj_stock (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::push_back (10,101,010 samples, 0.02%) + + + +leveldb::Slice::remove_prefix (10,101,010 samples, 0.02%) + + + +__fsnotify_parent (60,606,060 samples, 0.13%) + + + +generic_permission (10,101,010 samples, 0.02%) + + + +futex_wait_setup (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::Update (40,404,040 samples, 0.09%) + + + +page_cache_async_ra (1,292,929,280 samples, 2.85%) +pa.. + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +std::_Deque_base<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::_M_get_Tp_allocator (10,101,010 samples, 0.02%) + + + +__GI___writev (4,424,242,380 samples, 9.74%) +__GI___writev + + +__fput (323,232,320 samples, 0.71%) + + + +leveldb::FindFile (50,505,050 samples, 0.11%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_key (70,707,070 samples, 0.16%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::clear (10,101,010 samples, 0.02%) + + + +leveldb::EncodeFixed64 (10,101,010 samples, 0.02%) + + + +std::mutex::lock (50,505,050 samples, 0.11%) + + + +leveldb::EncodeVarint32 (40,404,040 samples, 0.09%) + + + +__strchrnul_evex (50,505,050 samples, 0.11%) + + + +inode_permission (70,707,070 samples, 0.16%) + + + +mpt_put_msg_frame (10,101,010 samples, 0.02%) + + + +try_to_wake_up (1,070,707,060 samples, 2.36%) +t.. + + +ext4_reserve_inode_write (20,202,020 samples, 0.04%) + + + +ktime_get_coarse_real_ts64 (10,101,010 samples, 0.02%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32 (20,202,020 samples, 0.04%) + + + +leveldb::Arena::AllocateAligned (20,202,020 samples, 0.04%) + + + +leveldb::IteratorWrapper::value (20,202,020 samples, 0.04%) + + + +wakeup_kswapd (10,101,010 samples, 0.02%) + + + +__ext4_mark_inode_dirty (30,303,030 samples, 0.07%) + + + +futex_wait_setup (30,303,030 samples, 0.07%) + + + +irqentry_exit (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::_Vector_base<leveldb::Slice, std::allocator<leveldb::Slice> >::_M_deallocate (10,101,010 samples, 0.02%) + + + +leveldb::TableBuilder::status (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::GetLengthPrefixedSlice (60,606,060 samples, 0.13%) + + + +idr_find (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (20,202,020 samples, 0.04%) + + + +__memcmp_evex_movbe (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::ExtractUserKey (60,606,060 samples, 0.13%) + + + +__gnu_cxx::new_allocator<leveldb::Slice>::_M_max_size (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +filemap_alloc_folio (10,101,010 samples, 0.02%) + + + +__memcmp_evex_movbe (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (20,202,020 samples, 0.04%) + + + +std::_Select1st<std::pair<unsigned long const, unsigned long> >::operator (10,101,010 samples, 0.02%) + + + +apparmor_current_getlsmblob_subj (10,101,010 samples, 0.02%) + + + +dget_parent (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (4,030,302,990 samples, 8.87%) +entry_SYSCAL.. + + +std::less<unsigned long>::operator (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +file_close_fd_locked (20,202,020 samples, 0.04%) + + + +x64_sys_call (151,515,150 samples, 0.33%) + + + +xas_descend (20,202,020 samples, 0.04%) + + + +leveldb::crc32c::Value (20,202,020 samples, 0.04%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.02%) + + + +generic_update_time (40,404,040 samples, 0.09%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::GetRestartPoint (20,202,020 samples, 0.04%) + + + +std::allocator_traits<std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::allocate (10,101,010 samples, 0.02%) + + + +apparmor_file_permission (30,303,030 samples, 0.07%) + + + +void std::thread::_Invoker<std::tuple<void (27,040,403,770 samples, 59.52%) +void std::thread::_Invoker<std::tuple<void + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::MemTableInserter::Put (242,424,240 samples, 0.53%) + + + +std::allocator_traits<std::allocator<std::pair<unsigned long, unsigned long> > >::max_size (20,202,020 samples, 0.04%) + + + +leveldb::WriteBatchInternal::checkValueLog (262,626,260 samples, 0.58%) + + + +leveldb::GetVarint64 (10,101,010 samples, 0.02%) + + + +aa_audit_file (10,101,010 samples, 0.02%) + + + +evict (10,101,010 samples, 0.02%) + + + +do_fault (30,303,030 samples, 0.07%) + + + +folio_lruvec_lock_irqsave (20,202,020 samples, 0.04%) + + + +ext4_evict_inode (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::ValueLogInserter::ValueLogInserter (20,202,020 samples, 0.04%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +ext4_evict_inode (10,101,010 samples, 0.02%) + + + +std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::lower_bound (90,909,090 samples, 0.20%) + + + +leveldb::MutexLock::~MutexLock (20,202,020 samples, 0.04%) + + + +leveldb::Slice::compare (101,010,100 samples, 0.22%) + + + +__do_fault (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (20,202,020 samples, 0.04%) + + + +__alloc_pages (585,858,580 samples, 1.29%) + + + +leveldb::GetVarint32Ptr (565,656,560 samples, 1.24%) + + + +llseek@GLIBC_2.2.5 (2,080,808,060 samples, 4.58%) +llsee.. + + +std::locale::locale (10,101,010 samples, 0.02%) + + + +__GI___pthread_disable_asynccancel (40,404,040 samples, 0.09%) + + + +[unknown] (30,303,030 samples, 0.07%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::Compaction::ShouldStopBefore (70,707,070 samples, 0.16%) + + + +__x64_sys_writev (10,101,010 samples, 0.02%) + + + +leveldb::MutexLock::~MutexLock (20,202,020 samples, 0.04%) + + + +blk_finish_plug (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::value (101,010,100 samples, 0.22%) + + + +futex_wait_queue (20,202,020 samples, 0.04%) + + + +apparmor_file_open (646,464,640 samples, 1.42%) + + + +fsnotify (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (30,303,030 samples, 0.07%) + + + +fsnotify (383,838,380 samples, 0.84%) + + + +kmem_cache_alloc (60,606,060 samples, 0.13%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::KeyIsAfterNode (171,717,170 samples, 0.38%) + + + +__rcu_read_lock (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Node (20,202,020 samples, 0.04%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +ondemand_readahead (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +x64_sys_call (20,202,020 samples, 0.04%) + + + +get_page_from_freelist (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +leveldb::Version::Ref (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::Next (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_check_len (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::key (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (10,101,010 samples, 0.02%) + + + +ext4_dirty_inode (40,404,040 samples, 0.09%) + + + +ext4_file_write_iter (20,202,020 samples, 0.04%) + + + +unsigned long const& std::min<unsigned long> (10,101,010 samples, 0.02%) + + + +leveldb::Slice::operator[] (50,505,050 samples, 0.11%) + + + +__filemap_get_folio (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__gnu_cxx::new_allocator<leveldb::FileMetaData*>::max_size (10,101,010 samples, 0.02%) + + + +apparmor_file_permission (20,202,020 samples, 0.04%) + + + +generic_perform_write (353,535,350 samples, 0.78%) + + + +bio_associate_blkg (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::KeyComparator::operator (20,202,020 samples, 0.04%) + + + +std::remove_reference<char const*&>::type&& std::move<char const*&> (10,101,010 samples, 0.02%) + + + +fsnotify (10,101,010 samples, 0.02%) + + + +pthread_cond_wait@@GLIBC_2.3.2 (10,101,010 samples, 0.02%) + + + +percpu_counter_add_batch (20,202,020 samples, 0.04%) + + + +blk_mq_submit_bio (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::BuildBatchGroup (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::Valid (20,202,020 samples, 0.04%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::allocate (10,101,010 samples, 0.02%) + + + +leveldb::Slice::size (20,202,020 samples, 0.04%) + + + +leveldb::DBImpl::Writer::~Writer (20,202,020 samples, 0.04%) + + + +dget_parent (20,202,020 samples, 0.04%) + + + +tty_write (20,202,020 samples, 0.04%) + + + +leveldb::Slice::remove_prefix (20,202,020 samples, 0.04%) + + + +leveldb::Slice::empty (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::value (60,606,060 samples, 0.13%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::~vector (40,404,040 samples, 0.09%) + + + +leveldb::(anonymous namespace)::KeyBuffer::slice (10,101,010 samples, 0.02%) + + + +fsnotify_insert_event (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint32Ptr (20,202,020 samples, 0.04%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +page_cache_ra_order (1,292,929,280 samples, 2.85%) +pa.. + + +__gthread_active_p (10,101,010 samples, 0.02%) + + + +std::deque<leveldb::DBImpl::Writer*, std::allocator<leveldb::DBImpl::Writer*> >::empty (10,101,010 samples, 0.02%) + + + +security_file_permission (20,202,020 samples, 0.04%) + + + +entry_SYSCALL_64_after_hwframe (1,767,676,750 samples, 3.89%) +entr.. + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::remove_reference<std::pair<leveldb::Slice, leveldb::Slice>&>::type&& std::move<std::pair<leveldb::Slice, leveldb::Slice>&> (10,101,010 samples, 0.02%) + + + +from_kuid (10,101,010 samples, 0.02%) + + + +std::locale::~locale (50,505,050 samples, 0.11%) + + + +clear_page_erms (40,404,040 samples, 0.09%) + + + +entry_SYSCALL_64_after_hwframe (10,101,010 samples, 0.02%) + + + +prepend_path (222,222,220 samples, 0.49%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +blk_mq_flush_plug_list (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (70,707,070 samples, 0.16%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign (10,101,010 samples, 0.02%) + + + +__blk_mq_sched_dispatch_requests (898,989,890 samples, 1.98%) +_.. + + +leveldb::(anonymous namespace)::HandleTable::FindPointer (20,202,020 samples, 0.04%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +__kmalloc (151,515,150 samples, 0.33%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +apparmor_file_free_security (30,303,030 samples, 0.07%) + + + +dget_parent (10,101,010 samples, 0.02%) + + + +__x64_sys_unlink (30,303,030 samples, 0.07%) + + + +leveldb::GetVarint64Ptr (20,202,020 samples, 0.04%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +__gnu_cxx::new_allocator<std::pair<leveldb::Slice, leveldb::Slice> >::deallocate (20,202,020 samples, 0.04%) + + + +leveldb::operator== (10,101,010 samples, 0.02%) + + + +std::operator& (10,101,010 samples, 0.02%) + + + +__GI___lll_lock_wait (171,717,170 samples, 0.38%) + + + +leveldb::Slice::data (20,202,020 samples, 0.04%) + + + +leveldb::InternalKeyComparator::Compare (30,303,030 samples, 0.07%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +wake_q_add_safe (10,101,010 samples, 0.02%) + + + +file_tty_write.constprop.0 (20,202,020 samples, 0.04%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::NoBarrier_SetNext (20,202,020 samples, 0.04%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +fault_in_iov_iter_readable (20,202,020 samples, 0.04%) + + + +std::_Vector_base<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_Vector_impl::_Vector_impl (10,101,010 samples, 0.02%) + + + +mpage_map_and_submit_buffers (30,303,030 samples, 0.07%) + + + +leveldb::IteratorWrapper::Next (363,636,360 samples, 0.80%) + + + +leveldb::Block::Iter::ParseNextKey (80,808,080 samples, 0.18%) + + + +leveldb::Status::ok (10,101,010 samples, 0.02%) + + + +_raw_spin_lock (10,101,010 samples, 0.02%) + + + +truncate_inode_pages_range (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (1,131,313,120 samples, 2.49%) +__.. + + +__fdget_pos (20,202,020 samples, 0.04%) + + + +std::istream::sentry::sentry (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::Slice::data (10,101,010 samples, 0.02%) + + + +filemap_fdatawrite_wbc (121,212,120 samples, 0.27%) + + + +leveldb::WriteBatchInternal::InsertInto (4,040,404,000 samples, 8.89%) +leveldb::Wri.. + + +blk_complete_reqs (10,101,010 samples, 0.02%) + + + +leveldb::Slice::remove_prefix (20,202,020 samples, 0.04%) + + + +ext4_da_get_block_prep (252,525,250 samples, 0.56%) + + + +leveldb::DBImpl::Put (1,444,444,430 samples, 3.18%) +lev.. + + +__ext4_mark_inode_dirty (30,303,030 samples, 0.07%) + + + +get_futex_key (10,101,010 samples, 0.02%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +futex_wait (20,202,020 samples, 0.04%) + + + +lockref_get_not_zero (10,101,010 samples, 0.02%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +leveldb::(anonymous namespace)::ShardedLRUCache::Value (10,101,010 samples, 0.02%) + + + +irq_exit_rcu (10,101,010 samples, 0.02%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +std::allocator<leveldb::Slice>::~allocator (10,101,010 samples, 0.02%) + + + +submit_bio_noacct (20,202,020 samples, 0.04%) + + + +leveldb::BlockBuilder::Add (10,101,010 samples, 0.02%) + + + +_raw_spin_unlock_irqrestore (30,303,030 samples, 0.07%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::key (50,505,050 samples, 0.11%) + + + +pthread_mutex_lock@plt (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::end (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::FindGreaterOrEqual (3,434,343,400 samples, 7.56%) +leveldb::S.. + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::push_back (20,202,020 samples, 0.04%) + + + +mod_objcg_state (20,202,020 samples, 0.04%) + + + +x64_sys_call (50,505,050 samples, 0.11%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::vector (121,212,120 samples, 0.27%) + + + +leveldb::DBImpl::GarbageCollect (4,272,727,230 samples, 9.40%) +leveldb::DBIm.. + + +ktime_get_coarse_real_ts64 (10,101,010 samples, 0.02%) + + + +entry_SYSCALL_64_after_hwframe (242,424,240 samples, 0.53%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::SetNext (10,101,010 samples, 0.02%) + + + +leveldb::ExtractUserKey (20,202,020 samples, 0.04%) + + + +leveldb::DecodeFixed32 (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::CompactMemTable (535,353,530 samples, 1.18%) + + + +do_syscall_64 (5,737,373,680 samples, 12.63%) +do_syscall_64 + + +leveldb::InternalKeyComparator::Compare (151,515,150 samples, 0.33%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back (10,101,010 samples, 0.02%) + + + +inotify_handle_inode_event (242,424,240 samples, 0.53%) + + + +fsnotify (363,636,360 samples, 0.80%) + + + +_find_next_zero_bit (20,202,020 samples, 0.04%) + + + +entry_SYSCALL_64_after_hwframe (40,404,040 samples, 0.09%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_do_relocate (10,101,010 samples, 0.02%) + + + +truncate_inode_pages_range (10,101,010 samples, 0.02%) + + + +handle_pte_fault (30,303,030 samples, 0.07%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::begin (10,101,010 samples, 0.02%) + + + +__blk_flush_plug (10,101,010 samples, 0.02%) + + + +_IO_link_in (10,101,010 samples, 0.02%) + + + +__futex_wait (10,101,010 samples, 0.02%) + + + +security_file_free (10,101,010 samples, 0.02%) + + + +__x64_sys_close (535,353,530 samples, 1.18%) + + + +__x64_sys_writev (3,646,464,610 samples, 8.03%) +__x64_sys_w.. + + +entry_SYSCALL_64_after_hwframe (5,757,575,700 samples, 12.67%) +entry_SYSCALL_64_af.. + + +__filemap_add_folio (10,101,010 samples, 0.02%) + + + +leveldb::ExtractUserKey (20,202,020 samples, 0.04%) + + + +operator delete (20,202,020 samples, 0.04%) + + + +blk_mq_run_hw_queue (10,101,010 samples, 0.02%) + + + +handle_mm_fault (30,303,030 samples, 0.07%) + + + +kmem_cache_free (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::Writer*&& std::forward<leveldb::DBImpl::Writer*> (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Iterator::Seek (10,101,010 samples, 0.02%) + + + +security_file_alloc (30,303,030 samples, 0.07%) + + + +__GI___unlink (30,303,030 samples, 0.07%) + + + +percpu_counter_add_batch (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Node::Node (20,202,020 samples, 0.04%) + + + +void std::_Construct<std::pair<leveldb::Slice, leveldb::Slice>, std::pair<leveldb::Slice, leveldb::Slice> const&> (10,101,010 samples, 0.02%) + + + +__f_unlock_pos (10,101,010 samples, 0.02%) + + + +leveldb::Table::InternalGet (949,494,940 samples, 2.09%) +l.. + + +read_pages (1,030,303,020 samples, 2.27%) +r.. + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (10,101,010 samples, 0.02%) + + + +_find_first_bit (20,202,020 samples, 0.04%) + + + +__memmove_evex_unaligned_erms (30,303,030 samples, 0.07%) + + + +jbd2_journal_try_to_free_buffers (10,101,010 samples, 0.02%) + + + +_raw_spin_trylock (111,111,110 samples, 0.24%) + + + +std::vector<leveldb::Slice, std::allocator<leveldb::Slice> >::~vector (30,303,030 samples, 0.07%) + + + +try_to_wake_up (10,101,010 samples, 0.02%) + + + +__srcu_read_unlock (20,202,020 samples, 0.04%) + + + +new_slab (20,202,020 samples, 0.04%) + + + +_raw_spin_unlock_irqrestore (10,101,010 samples, 0.02%) + + + +security_current_getlsmblob_subj (30,303,030 samples, 0.07%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::~vector (10,101,010 samples, 0.02%) + + + +__GI__IO_un_link.part.0 (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::FileMetaData*, std::allocator<leveldb::FileMetaData*> >::empty (10,101,010 samples, 0.02%) + + + +__rcu_read_unlock (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::TwoLevelIterator::SkipEmptyDataBlocksForward (10,101,010 samples, 0.02%) + + + +pthread_once@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +filemap_release_folio (10,101,010 samples, 0.02%) + + + +irqentry_exit (10,101,010 samples, 0.02%) + + + +__memcmp_evex_movbe (181,818,180 samples, 0.40%) + + + +leveldb::Slice::remove_prefix (10,101,010 samples, 0.02%) + + + +x64_sys_call (10,101,010 samples, 0.02%) + + + +leveldb::SkipList<char const*, leveldb::MemTable::KeyComparator>::Insert (3,686,868,650 samples, 8.11%) +leveldb::Sk.. + + +[unknown] (10,101,010 samples, 0.02%) + + + +__alloc_pages (60,606,060 samples, 0.13%) + + + +std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<char const*> >, std::is_move_constructible<char const*>, std::is_move_assignable<char const*> >::value, void>::type std::swap<char const*> (10,101,010 samples, 0.02%) + + + +leveldb::BlockContents::BlockContents (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Lock (20,202,020 samples, 0.04%) + + + +leveldb::InternalKeyComparator::Compare (282,828,280 samples, 0.62%) + + + +ima_file_check (60,606,060 samples, 0.13%) + + + +[unknown] (50,505,050 samples, 0.11%) + + + +ext4_has_free_clusters (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +__fput_sync (424,242,420 samples, 0.93%) + + + +std::mutex::unlock (20,202,020 samples, 0.04%) + + + +void std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_realloc_insert<std::pair<unsigned long, unsigned long> > (131,313,130 samples, 0.29%) + + + +make_vfsgid (10,101,010 samples, 0.02%) + + + +up_write (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +do_syscall_64 (1,323,232,310 samples, 2.91%) +do.. + + +get_mem_cgroup_from_mm (50,505,050 samples, 0.11%) + + + +leveldb::(anonymous namespace)::LRUCache::Lookup (60,606,060 samples, 0.13%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +leveldb::Status::operator= (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +leveldb::(anonymous namespace)::BytewiseComparatorImpl::Compare (10,101,010 samples, 0.02%) + + + +submit_bio_noacct_nocheck (60,606,060 samples, 0.13%) + + + +scsi_queue_rq (10,101,010 samples, 0.02%) + + + +block_invalidate_folio (20,202,020 samples, 0.04%) + + + +inotify_merge (10,101,010 samples, 0.02%) + + + +fault_in_readable (10,101,010 samples, 0.02%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +copy_iovec_from_user (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (50,505,050 samples, 0.11%) + + + +malloc (141,414,140 samples, 0.31%) + + + +__radix_tree_lookup (20,202,020 samples, 0.04%) + + + +__GI___lll_lock_wake (5,949,494,890 samples, 13.09%) +__GI___lll_lock_wake + + +leveldb::Block::Iter::GetRestartPoint (10,101,010 samples, 0.02%) + + + +leveldb::IteratorWrapper::key (10,101,010 samples, 0.02%) + + + +cfree@GLIBC_2.2.5 (10,101,010 samples, 0.02%) + + + +blk_finish_plug (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::GetRestartPoint (20,202,020 samples, 0.04%) + + + +security_file_free (70,707,070 samples, 0.16%) + + + +leveldb::PutVarint64 (10,101,010 samples, 0.02%) + + + +fsnotify_destroy_event (10,101,010 samples, 0.02%) + + + +std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_S_right (10,101,010 samples, 0.02%) + + + +filemap_get_entry (10,101,010 samples, 0.02%) + + + +common_interrupt (10,101,010 samples, 0.02%) + + + +__x64_sys_read (30,303,030 samples, 0.07%) + + + +leveldb::(anonymous namespace)::MergingIterator::key (30,303,030 samples, 0.07%) + + + +__GI___libc_open (2,919,191,890 samples, 6.43%) +__GI___l.. + + +rmqueue (10,101,010 samples, 0.02%) + + + +build_open_flags (10,101,010 samples, 0.02%) + + + +std::mutex::lock (10,101,010 samples, 0.02%) + + + +std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> >::_M_valptr (10,101,010 samples, 0.02%) + + + +blk_mq_flush_plug_list (919,191,910 samples, 2.02%) +b.. + + +leveldb::DecodeFixed32 (20,202,020 samples, 0.04%) + + + +try_to_wake_up (40,404,040 samples, 0.09%) + + + +[unknown] (30,303,030 samples, 0.07%) + + + +std::vector<leveldb::Slice, std::allocator<leveldb::Slice> >::push_back (111,111,110 samples, 0.24%) + + + +do_syscall_64 (1,767,676,750 samples, 3.89%) +do_s.. + + +__alloc_pages (10,101,010 samples, 0.02%) + + + +schedule_debug.constprop.0 (10,101,010 samples, 0.02%) + + + +leveldb::GetVarint64 (20,202,020 samples, 0.04%) + + + +ext4_buffered_write_iter (111,111,110 samples, 0.24%) + + + +__GI___lll_lock_wake (70,707,070 samples, 0.16%) + + + +ext4_reserve_inode_write (10,101,010 samples, 0.02%) + + + +blk_finish_plug (919,191,910 samples, 2.02%) +b.. + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::_M_check_len (60,606,060 samples, 0.13%) + + + +leveldb::Slice::data (60,606,060 samples, 0.13%) + + + +filemap_alloc_folio (10,101,010 samples, 0.02%) + + + +leveldb::MemTable::KeyComparator::operator (101,010,100 samples, 0.22%) + + + +leveldb::Status::Status (10,101,010 samples, 0.02%) + + + +leveldb::Version::Get (1,333,333,320 samples, 2.93%) +le.. + + +memcg_account_kmem (10,101,010 samples, 0.02%) + + + +ksys_write (1,242,424,230 samples, 2.73%) +ks.. + + +_raw_spin_lock_irqsave (20,202,020 samples, 0.04%) + + + +evict (30,303,030 samples, 0.07%) + + + +mptscsih_qcmd (858,585,850 samples, 1.89%) +m.. + + +ext4_da_write_end (60,606,060 samples, 0.13%) + + + +__x64_sys_futex (10,101,010 samples, 0.02%) + + + +__blk_mq_sched_dispatch_requests (20,202,020 samples, 0.04%) + + + +folio_mark_accessed (10,101,010 samples, 0.02%) + + + +std::vector<leveldb::DBImpl::CompactionState::Output, std::allocator<leveldb::DBImpl::CompactionState::Output> >::size (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +crypto_shash_update (10,101,010 samples, 0.02%) + + + +leveldb::port::Mutex::Unlock (90,909,090 samples, 0.20%) + + + +__vfprintf_internal (10,101,010 samples, 0.02%) + + + +std::_Deque_iterator<leveldb::DBImpl::Writer*, leveldb::DBImpl::Writer*&, leveldb::DBImpl::Writer**>::operator++ (10,101,010 samples, 0.02%) + + + +new_slab (50,505,050 samples, 0.11%) + + + +path_init (10,101,010 samples, 0.02%) + + + +leveldb::Block::Iter::value (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +operator new (10,101,010 samples, 0.02%) + + + +do_read_fault (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size (10,101,010 samples, 0.02%) + + + +blk_mq_run_hw_queue (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > >::size (10,101,010 samples, 0.02%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +__import_iovec (10,101,010 samples, 0.02%) + + + +std::ostream::write (10,101,010 samples, 0.02%) + + + +__gnu_cxx::__aligned_membuf<std::pair<unsigned long const, unsigned long> >::_M_ptr (10,101,010 samples, 0.02%) + + + +aa_file_perm (10,101,010 samples, 0.02%) + + + +__ext4_mark_inode_dirty (10,101,010 samples, 0.02%) + + + +fput (40,404,040 samples, 0.09%) + + + +std::basic_filebuf<char, std::char_traits<char> >::underflow (20,202,020 samples, 0.04%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_S_do_relocate (20,202,020 samples, 0.04%) + + + +do_futex (20,202,020 samples, 0.04%) + + + +pthread_cond_signal@@GLIBC_2.3.2 (1,303,030,290 samples, 2.87%) +pt.. + + +__fsnotify_parent (40,404,040 samples, 0.09%) + + + +get_unused_fd_flags (30,303,030 samples, 0.07%) + + + +leveldb::Slice::Slice (10,101,010 samples, 0.02%) + + + +clear_page_erms (10,101,010 samples, 0.02%) + + + +handle_softirqs (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::_M_check_len (30,303,030 samples, 0.07%) + + + +__irq_exit_rcu (10,101,010 samples, 0.02%) + + + +_copy_to_iter (10,101,010 samples, 0.02%) + + + +sysvec_reschedule_ipi (10,101,010 samples, 0.02%) + + + +[unknown] (10,101,010 samples, 0.02%) + + + +std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace (10,101,010 samples, 0.02%) + + + +dquot_file_open (20,202,020 samples, 0.04%) + + + +alloc_fd (10,101,010 samples, 0.02%) + + + +__close_nocancel (1,262,626,250 samples, 2.78%) +__.. + + +vfs_write (1,151,515,140 samples, 2.53%) +vf.. + + +schedule (10,101,010 samples, 0.02%) + + + +evict (10,101,010 samples, 0.02%) + + + +asm_common_interrupt (10,101,010 samples, 0.02%) + + + +__d_lookup (10,101,010 samples, 0.02%) + + + +futex_wait_queue (10,101,010 samples, 0.02%) + + + +futex_wait (10,101,010 samples, 0.02%) + + + +std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > >::back (10,101,010 samples, 0.02%) + + + +leveldb::DBImpl::Get (2,262,626,240 samples, 4.98%) +leveld.. + + +std::istream::sentry::sentry (30,303,030 samples, 0.07%) + + + +[unknown] (60,606,060 samples, 0.13%) + + + +ext4_writepages (30,303,030 samples, 0.07%) + + + +leveldb::PutVarint64 (40,404,040 samples, 0.09%) + + + +leveldb::Random::Uniform (10,101,010 samples, 0.02%) + + + +inode_needs_update_time (10,101,010 samples, 0.02%) + + + +leveldb::InternalKeyComparator::Compare (212,121,210 samples, 0.47%) + + + +leveldb::WriteBatch::WriteBatch (10,101,010 samples, 0.02%) + + + +leveldb::Status::operator= (20,202,020 samples, 0.04%) + + + +aa_str_perms (121,212,120 samples, 0.27%) + + + +leveldb::TableBuilder::status (20,202,020 samples, 0.04%) + + + +entry_SYSCALL_64_after_hwframe (20,202,020 samples, 0.04%) + + + +scsi_queue_rq (60,606,060 samples, 0.13%) + + + +__gnu_cxx::__normal_iterator<std::pair<leveldb::Slice, leveldb::Slice>*, std::vector<std::pair<leveldb::Slice, leveldb::Slice>, std::allocator<std::pair<leveldb::Slice, leveldb::Slice> > > >::__normal_iterator (10,101,010 samples, 0.02%) + + + +leveldb::log::Writer::EmitPhysicalRecord (313,131,310 samples, 0.69%) + + + +entry_SYSCALL_64_after_hwframe (2,343,434,320 samples, 5.16%) +entry_.. + + +blk_mq_dispatch_plug_list (909,090,900 samples, 2.00%) +b.. + + +ext4_do_writepages (121,212,120 samples, 0.27%) + + + +ext4_inode_table (10,101,010 samples, 0.02%) + + + + diff --git a/设计文档.md b/设计文档.md index ba13452..38ff753 100644 --- a/设计文档.md +++ b/设计文档.md @@ -1,656 +1,1167 @@ -# 代码设计 - -## 1.项目概述 - -### 1.1 实现字段查询功能 - -LevelDB 的基本数据结构是由一个 key 和对应的 value 组成,其中 value 是一个简单的字节序列(可以是字符串或二进制数据)。默认情况下,LevelDB 不支持像关系型数据库那样的字段查询功能。然而,在实际应用中,用户可能需要对存储的数据进行更加精细的操作,特别是当值包含多个逻辑字段时,直接使用现有的 LevelDB 接口难以满足需求。 -在本实验中,我们的目标是扩展 LevelDB 的功能,使其 value 支持多字段结构,并实现通过字段值查询对应的 key 的功能。 - -### 1.2 KV 分离 - -在 LevelDB 及其采用的 LSM 树结构中,性能挑战之一在于 Compaction 操作的效率。Compaction 是指将内存中的数据合并到磁盘上的过程,此过程中涉及大量的读写操作,对于系统的整体性能有着重要影响。在 Compaction 时,所有涉及到的旧 sstable 中的键值对都将被写入到新 sstable 中,而 Value 通常比 Key 大得多。如果将 Key 和 Value 分离存储,合并时只涉及 key 写入 sstable 的过程,可以显著减少 Compaction 的开销,从而提升性能。 -基于此我们计划实施键值分离策略。具体而言,键将保持原有的排序方式,而值将被独立存储。这样做可以在不影响查询性能的前提下,大幅降低 Compaction 过程中的数据迁移量,进而减少不必要的磁盘 I/O ,提升系统的合并效率。 - - - - - -## 2.功能设计 - -Andy Pavlo在15445课程中说,完成一个项目,应先写出能够完成正确性要求的代码,再在此基础上提升性能,避免不成熟的优化方式。 - -因此,我们的项目流程将保持每周推进代码进度,在完成目标要求的代码的基础上,不断迭代优化性能。 - -![image-20241125122706607](设计文档.assets/image-20241125122706607.png) - -### 2.1.字段设计 - -- **设计目标**: - - 将 LevelDB 中的 `value` 组织成字段数组,每个数组元素对应一个字段(字段名:字段值)。 - - 字段会被序列化为字符串,然后插入LevelDB。 - - 这些字段可以通过解析字符串得到,字段名与字段值都是字符串类型。 - - 允许任意调整字段。 - - 实现通过字段值查询对应的 `key`。 -- **实现思路**: - -函数 `Put_with_fields` 负责插入含字段的数据。原字段数据经过序列化函数 `SerializeValue` 处理后,函数 `Put_with_fields` 调用 `Put` 将序列化后的字段插入 leveldb。 - -函数 `Get_with_fields` 负责获得含字段的数据。使用 `Get` 从 leveldb 中获取 `key` 和序列化后的 `value`,调用 `ParseValue` 可以将字段反序列化。 - -函数 `Get_keys_by_field` 使用iterator遍历数据库中的所有键值对,解析每个 `Value`,提取字段数组 `FieldArray`。检查字段数组中是否存在目标字段,如果匹配,则记录其对应的 `Key`。将所有匹配 `key` 汇总到 `keys` 中返回。 - -**初步实现**(第一周 已完成):在 leveldb 内部实现以上功能。内部实现会导致读取时无法区分多字段类型和原生 kv 对,扩展性不足。 - -**后续改进_1**(第二周 已完成):为了解决无法区分多字段类型和原生 kv 对的问题,将以上函数功能实现在用户层级,使 leveldb 内部对多字段类型无感知。 - -**后续改进_2**(第三周 已完成):在完成其余功能过程中,发现leveldb在coding类中有一些编码实现,因此也做了将字段设计放入coding类实现的版本。 - - - -### 2.2.KV分离 - -#### 设计思路 - -- **KV 分离设计** - - a. 将LevelDB的key-value存储结构进行扩展,分离存储key和value。(当Value长度不大时不进行分离) - - b. 将Key和指向Value的元数据存储在LSM-tree中。 - - c.将Value和其余需要额外存储在ValueLog的元数据存储于ValueLog文件。通过LSM-tree中的元数据可查询到对应的Value所处的ValueLog。 - -- **读取操作。** - - KV分离后依然支持点查询与范围查询操作。 - -- **Value log的管理** - - a.通过GC操作释放Value log中的无效数据。(对于我们的不同实现版本,GC操作有所不同) - - b.GC能把旧Value log中没有失效的数据写入新的Value log,并在有必要时更新LSM-tree。 - - c.GC过程不能过度阻塞用户的Put和Get操作。(过度阻塞则和原本消耗大量资源的Compaction无区别,没有得到期望的性能提升) - -- **确保操作的原子性** - -​ a.Write时先写ValueLog再写WAL,从而保证操作的原子性。 - -​ b.对不同版本的GC实现,均需保证GC操作过程中发生dump后,恢复数据仍能保证正确性。 - -#### 实现思路 - -#### 初步实现:Single ValueLog(第一周 已完成) - -使用单一Value Log简单的实现KV分离,该实现较为简单,仅需在Put/Get函数内部进行简单修改,但在大数据量场景下性能极差。 - -##### 优点:实现简单,合并时开销小 - -##### 缺点:大数据量下性能极差,不能作为最终方案。 - - - -#### 第二种实现:ValueLog per table(第二周 已完成) - -对每个SSTable和MemTable建立一个Value Log。该实现相比于初步实现更加复杂,需要在合并时查询所有相关Value Log,并建立新Value Log。此外还要考虑在合并结束后将废弃的Value Log异步删除。 - -**Trick.为什么要在Put到MemTable时就放入Value Log而非dump至SS Table时才放入Value Log?** - -原因:将写ValueLog推迟至SSTable并没有减少Put时写入磁盘的总数据量(写ValueLog:ValueLog中写Value,WAl中写Key和Value元数据;不写ValueLog:WAL中写Key和Value),优点是将两次无法并行的写文件操作变为一次写文件操作。但该方法有一个缺陷,即leveldb原生的管理数据的方式是MemTable和SSTable大小相等。而经过这样改变后,MemTable在dump成SSTable后其大小会突然减少(Value全部转移至ValueLog),导致一个SSTable中存储的数据量过少。而原本valuelog的优势(一个SSTable可以放更多键值对使得table cache命中率变高)也将不存在了。我们将两个做法都进行了实现,通过对比性能发现后者不如前者,因此选择保留前者设计。 - -##### 优点:随合并自动GC,无需考虑GC。 - -##### 缺点:合并时开销未能减小。 - -#### 第三种实现:Fixsize ValueLog(第三周 已完成) - -**该实现参考TiTanDB实现** - -使用相对固定大小的Value Log,例如每个Value Log大小约为16MB。新添加的键值对依次将值与其长度(其实还有键和键长度)存入最新Value Log,当Value Log大小满了之后就创建新Value Log。需要设计一种异步的GC方法,该方法不会对Compaction,Get或Put造成明显的延迟。 - -##### 优点:合并时开销小。 - -##### 缺点:需要设计一种优秀的异步GC方式。 - -## 3. 数据结构设计 - -### KV分离后 Value 结构设计 - -一个Value,开头是使用Varint64存储的FieldNum,表示有FieldNum个Field组成。然后是使用Varint64存储的Field X name size,表示该field的字段名长度,然后是字段名,然后是使用Varint64存储的Field X Value size,表示该field的值长度,然后是值。 - -![leveldb_values](设计文档.assets/leveldb_values.png) - -### ValueLog结构设计 - -#### Single ValueLog设计 - -使用一个Value Log文件的设计中,我们只需记录Value在Value Log中对应的偏移量和Value长度即可。 - -Value Log中只记录Value值,无需记录元信息。 - -![ValueLog](设计文档.assets/ValueLog-17325302026895.png) - -#### ValueLog per table设计 - -Value设计为:1字节标志位+Varint64文件ID+Varint64偏移量+Varint64长度。 - -在存储时根据Value大小是否较大选择进行KV分离。若分离则标志位为true,否则标志位为false。 - -日志文件中仍然只需记录Value值即可,无需记录元信息。 - -![ValueLog](设计文档.assets/ValueLog-17325304026617.png) - -#### Fixsize ValueLog设计(第一版,有漏洞) - - - -![ValueLog](设计文档.assets/ValueLog-17325310409799.png) - -这一版设计有些复杂,但存在漏洞。我们的最终设计并非如此。 - -在Value开头使用一字节标志位表示是否KV分离。 - -如果KV分离,则接下来是Varint64的文件ID和Varint64的文件内offset。 - -在ValueLog中,在开头记录当前会索引到该Value Log的键值对数量Using count。如果Using count==0,则表示该ValueLog不被任何键值对使用,可以删除。 - -**Using count在Value Log添加键值对时进行+1**。 - -**Using count**在**其中任意键值对被合并**,**并且 该键值对由于合并时被更加新的键值对覆盖 或者 该键值对的True using Sign=False**时,进行**-1**。 - -在一个Value通过SSTable索引到Value Log后,其索引到的开头是一个**Value True Using Sign**。该标志位同样是一字节,标志了当前该Value是否是真正的Value。 - -**若标志位为True表示是真正的Value,那么标志位后是Varint64的Value长度+Value本身。** - -**若标志位为False表示不是真正的Value,那么标志位后是Varint64的下一个可能存在有真实对应Value的Value Log文件ID和Varint64的在下一个Value Log文件中的offset。** - -**Value True Using Sign发生变化有两种情况:** - -**1** - -一个键值对由于合并时被更加新的键值对覆盖时,不仅将Using count进行-1,同时也将其Value True Using Sign设置为False。 - -**2** - -在键值对加入到Value Log时,其Value True Using Sign设置为True。 - -当后台异步GC过程检测到一个Value Log的Using count较小时,将对其中Value True Using Sign仍为True的Value做以下处理: - - - -1.将Value对应的数据(设为True的标志位,Value len和Value本身)像新数据一样写入最新的Value Log中。 - -2.将原Value True Using Sign置为False - -3.将原Value Log中标志位后的数据修改为新写入的Value Log的ID和数据所处的Offset。 - -(保证原Value大小大于16,以防Varint64(Value len)+Value len [!CAUTION] -> -> **!注意!在实现过程中发现性能缺陷** - -当合并时由于需要扫描合并的SSTable,要对其中每个Value做读ValueLog操作(因为可能可以更新Value指向的ValueLog),导致一次合并会涉及很多次的ValueLog文件读写,性能过于低效,因此想到了新的操作方法。 - - - -#### fixsize_valuelog实际设计 - -![d85456f5f58abb55d9e83f3c020f0b7](设计文档.assets/d85456f5f58abb55d9e83f3c020f0b7.png) - -#### 新的`valuelog` 文件的组织方式: - -`valuelog` 文件存储了 **键值对(KV)** 数据,每条记录按照以下格式组织: - -1. **键的长度**(`key_len`):`uint64_t`,标识键的字节长度。 -2. **键**(`key`):实际的键数据,长度为 `key_len`。 -3. **值的长度**(`value_len`):`uint64_t`,标识值的字节长度。 -4. **值**(`value`):实际的值数据,长度为 `value_len`。 - -在sstable中key对应的value位置存储了对应valuelog文件的id和在文件中的offset。 - -**注1:在valueLog中重复存key会导致写方法,但是是有必要的,详见GC过程** - -**注2:将Key放在Value后是一个潜在的优化,可以加速Get** - -#### gc过程: - -垃圾回收的核心思想是扫描所有非最新的 `valuelog` 文件(最新的ValueLog还会被插入新的数据,因此不对其进行垃圾回收),检查文件中的记录是否有效。如果记录的键值对已失效(比如键在 `sstable` 中不存在或元数据不匹配),则该记录会被忽略;如果记录的键值对是该键对应最新的键值对,则将该键值对重新Put进MemTable。在对整个旧的`ValueLog`做完上述操作后删除整个旧的的 `valuelog` 文件。 - -#### 详细过程 - -1. **扫描数据库目录**: -- 遍历 `valuelog` 文件。 -2. **处理每个 `valuelog` 文件**: - - - 打开文件,逐条读取记录。 -3. **读取每条记录**: - - 按文件结构读取 `key_len`、`key`、`value_len`、`value`。 - - 检查 sstable是否包含该键: - - 如果键不存在,忽略此条记录。 - - 如果键存在,验证元数据是否有效(包括 `valuelog_id` 和 `offset`)。 - - 有效的键值对会被重新 put 进入数据库(在此操作中自然的被插入到最新的ValueLog中),SSTable中无效的键值对则会在compaction过程中被自然的回收。 -4. **清理无效文件**: -- 对ValueLog扫描完毕后,删除该ValueLog。 - -#### 验证元数据/重新Put的正确性保证 - -在发现当前键值对有效后会将该键值对重新调用Put插入数据库,然而在此过程中如果有用户新插入了对应的Key的键值对,则有概率覆盖用户插入的键值对,这是错误的。因此我们要保证在此过程中不会新插入新的该Key对应的键值对。 - -我们使用了三个新的操作来实现该操作: - -1.一个新的全局互斥锁GC_mutex - -2.一个新的全局变量inserting_key,使用GC_mutex管理的conditional variable进行访问保护 - -3.更改write逻辑,可以访问当前writer队列的末尾write请求,并在其做完时获得其对应的conditional variable的提醒 - -下图是实现整个操作的模拟,左侧是图标,Lock和UnLock都指对GC_mutex的操作 - -![lock_for_GC](设计文档.assets/lock_for_GC.png) - -## 4. 接口/函数设计 - -#### 4. 1Value多字段设计 - -##### **4.1.1 数据序列化与反序列化** - -**序列化字段数组为字符串值** - -```cpp -std::string SerializeValue(const FieldArray& fields); -``` - -- **输入**:字段数组 `fields`。 - -- **输出**:序列化后的字符串。 - - - -**反序列化字符串值为字段数组** - -```c++ -void DeserializeValue(const std::string& value_str, FieldArray* res); -``` - -- **输入**:序列化字符串 `value_str`。 -- **输出**:字段数组 `res`。 - - - -##### **4.1.2 数据查询接口** - -**按字段查找键** - -```c++ -Status DB::Get_keys_by_field(const ReadOptions& options, const Field field, std::vector* keys); -``` - -- **输入**: - - 读取选项 `options`。 - - 字段值 `field`。 -- **输出**: - - 操作状态 `Status`。 - - 符合条件的键列表 `keys`。 - - - -##### **4.1.3 判断文件是否为 `valuelog` 文件** - -**判断给定文件是否为 `.valuelog` 格式的文件。** - -```c++ -bool IsValueLogFile(const std::string& filename) ; -``` - -**输入**: - -- 文件名 `filename`,可以是完整路径或纯文件名。 - -**输出**: - -- 布尔值 `true`:文件是 `valuelog` 文件。 -- 布尔值 `false`:文件不是 `valuelog` 文件。 - - - -##### **4.1.4 解析 `sstable` 中的Value元信息(用于Fixsize ValueLog)** - -**解析 `sstable` 中存储的值,提取 `valuelog_id` 和 `offset` 信息。** - -```c++ -void ParseStoredValue(const std::string& stored_value, uint64_t& valuelog_id, uint64_t& offset); -``` - -- **输入**: - - 存储值 `stored_value`,格式为 `"valuelog_id|offset"`。 -- **输出**: - - `valuelog_id`:解析出的 ValueLog 文件 ID。 - - `offset`:解析出的记录偏移量。 - - - -##### **4.1.5 获取 `ValueLog` 文件 ID** - -**从文件名中提取 ValueLog 文件的 ID(假设文件名格式为 `number.valuelog`)。** - -``` -uint64_t GetValueLogID(const std::string& valuelog_name); -``` - -- **输入**: - - 文件名 `valuelog_name`,可以是完整路径或仅文件名,格式需符合 `number.valuelog`。 -- **输出**: - - `uint64_t` 类型,返回提取的文件 ID。 - - - -#### 4.2 Value Log设计 - -##### **4.2.1 WriteValueLog** - -将一堆键值对的值顺序写入Value Log,用于writebatch写入数据库,以及Value Log GC的时候(valuelog per table)。两者都会对多个键值对同时操作,因此设计为批处理。 - -该函数被mutex_保护,保证不会多线程调用。 - -```cpp -std::vector> WriteValueLog(std::vector value); -``` - -- **输入**:一个Slice vector,表示要写入Value Log的Value们。 - -- **输出**:一个std::pair vector,每个pair中:第一个uint64_t是Value Log文件ID,第二个uint64_t是处在Value Log中的偏移量。 - -> [!NOTE] -> -> 在第三版设计中,valuelog中会存储key,所以还需要传入key - - - -##### **4.2.2 ReadValueLog** - -通过Value Log读取目标键值对的值。 - -```cpp -Status ReadValueLog(uint64_t file_id, uint64_t offset,Slice* value); -``` - -- **输入**:第一个uint64_t是Value Log文件ID,第二个uint64_t是处在Value Log中的偏移量,第三个是指向要传回的value的指针。 -- **输出**:一个Status,表示是否成功传回对应Value。 - -> [!NOTE] -> -> 在第三版设计中,valuelog中会存储key,所以还会多一个返回参数Key - -##### **4.2.3 测试GC** - -调用`MaybeScheduleGarbageCollect()`来安排一个后台线程执行垃圾回收任务。它会等待所有已安排的垃圾回收任务完成,这通过循环检查`background_garbage_collect_scheduled_`标志,并在该标志为真时等待`background_gc_finished_signal_`信号来实现。 - -```cpp -void DBImpl::manual_GarbageCollect() -``` - - - -##### **4.2.4 调用线程进行GC** - -启动一个新的后台线程执行`BGWorkGC`方法。使用互斥锁gc_mutex_确保同时最多只有一个GC后台线程会进行。 - -```cpp -void DBImpl::MaybeScheduleGarbageCollect() -``` - - - -##### **4.2.5 调用负责GC函数** - -调用`BackgroundGarbageCollect()`进行实际的垃圾回收工作。 - -```cpp -void DBImpl::BGWorkGC(void* db) -``` - - - -##### **4.2.6 后台GC函数** - -负责执行后台垃圾回收任务(即调用GarbageCollect)。确保在完成任务后通知等待的线程。 - -(当前等待的函数仅两个:Test与DBImpl的析构函数) - -```cpp -void DBImpl::BackgroundGarbageCollect() -``` - - - -##### **4.2.7 后台GC函数** - -垃圾回收的核心实现。在目前的设计下,它遍历数据库目录中的所有valuelog文件,并尝试回收不再需要的数据。 - -```cpp -void DBImpl::GarbageCollect() -``` - - - -##### 4.2.8 改动TableMeta(用于valuelog per table) - -对TableMeta新增一个uint64_t的属性valuelog_id,表示该SSTable所对应的valuelog id。如果该SSTable内所有Value长度均小于ValueLog要求长度,则该属性值为0。 - -这个设计对versionEdit以及compact的各个函数均有影响。 - - - -##### 4.2.9 class ValueLogInserter : public WriteBatch::Handler{} - -用于将一个WriteBatch里的所有键值对插入到ValueLog里,并生成将Value指向ValueLog的新WriteBatch。 - - - -##### 4.2.10 Status WriteBatchInternal::ConverToValueLog(WriteBatch* b,DB* db_) - -使用ValueLogInserter将b中的键值对更新至ValueLog,并将更新后的WriteBatch放回b。 - -该函数用于Write中的队首线程build batch后且写WAL日志/写Memtable前。 - - - ------- - - - -## 5. 功能测试 - -### 5.1**单元测试(测试用例)**: - -#### 依据我们的设计,每周的工作内容完成后,都将对当前完成的功能进行正确性检验。以下以第一周我们完成的功能为例: - -#### 第一周(已完成) - -**字段数组的存储与读取:** - -验证了 `Put_with_fields` 和 `Get_with_fields` 的正确性,确保字段数组可以正确序列化存储并反序列化读取。 - -**基于字段的键查询:** - -验证了 `Get_keys_by_field` 的逻辑,确保能够根据字段值查找所有匹配的键。 - -**Key Value分离:** - -并未额外设计,通过上两个功能的正确运行能够证明Key Value分离的初步实现大体是正确的。 - - - -#### 第二、三周(已完成) - -**对多字段Value实现更严谨的测试** - -针对范围查询进行更严格的测试(因为范围查询难于单点查询),进行了乱序插入后测试范围查询能否查询到分布在lsm-tree各处且key完全随机的目标value。 - -``` -std::vector keys; - std::vector target_keys; - for(int i=0;i<10000;i++){ - std::string key=std::to_string(rand()%10000)+"_"+std::to_string(i);//random for generate nonincreasing keys - FieldArray fields={ - {"name", key}, - {"address", std::to_string(rand()%7)}, - {"phone", std::to_string(rand()%114514)} - }; - if(rand()%5==0){ - fields[0].second="special_key"; - target_keys.push_back(key); - } - keys.push_back(key); - db->Put(WriteOptions(),key,SerializeValue(fields)); - } - std::sort(target_keys.begin(),target_keys.end()); - std::vector key_res; - Get_keys_by_field(db,ReadOptions(),{"name", "special_key"},&key_res); - ASSERT_TRUE(CompareKey(key_res, target_keys)); -``` - -2.向表内插入大量value较大的键值对后检验正确性(该测试被leveldb原benchmark完美取代。使用leveldb原benchmark获得了正确性保障) - -对于for(int j=0;j<5000;j++)这一段,我们也尝试过将5000改成rand()%1000,同样通过了测试。 - -``` -std::vector values; - for(int i=0;i<500000;i++){ - std::string key=std::to_string(i); - std::string value; - for(int j=0;j<5000;j++){ - value+=std::to_string(i); - } - values.push_back(value); - db->Put(writeOptions,key,value); - } - for(int i=0;i<500000;i++){ - std::string key=std::to_string(i); - std::string value; - Status s=db->Get(readOptions,key,&value); - assert(s.ok()); - if(values[i]!=value){ - std::cout< values; - for(int i=0;i<5000;i++){ - std::string key=std::to_string(i); - std::string value; - for(int j=0;j<1000;j++){ - value+=std::to_string(i); - } - values.push_back(value); - db->Put(writeOptions,key,value); - } - std::cout<<"start gc"<manual_GarbageCollect(); - std::cout<<"finish gc"<Get(readOptions,key,&value); - assert(s.ok()); - if(values[i]!=value){ - std::cout<>。 + +- 以一种可以包含所有字段总长度以及每个字段各自的长度以及数据的方式对其进行序列化与反序列化。 + +函数 `SerializeValue` 负责将`vector>`形式的字段数组序列化为单个字符串。 + +函数 `DeserializeValue` 负责反序列化含字段的数据。如果反序列化失败则返回异常Status。 + +函数 `Get_keys_by_field` 使用iterator遍历数据库中的所有键值对,使用`DeserializeValue`解析每个 `Value`,如果成功提取字段数组 `FieldArray`则检查字段数组中是否存在目标字段,如果匹配,则记录其对应的 `Key`。将所有匹配 `key` 汇总到 `keys` 中返回。 + + + +### 2.2.KV分离 + +#### 设计思路 + +- **KV 分离设计** + + - 将LevelDB的key-value存储结构进行扩展,分离存储key和value。(当Value长度不大时不进行分离) + + - 将Key和Value的元数据存储在LSM-tree中。 + + - 将Value和其余需要额外存储在ValueLog的元数据存储于ValueLog文件。通过LSM-tree中Value的元数据可查询到对应的Value所处的ValueLog。 + +- **读取操作。** + + - 实现KV分离后仍支持原先点查询与范围查询操作。 + - 实现额外的无序范围查询以减少由于KV分离所导致的范围查询性能损失。 + +- **Value log的管理** + + - 数据在进入MemTable与Wal日志前先进入ValueLog。 + - 用户可以在Options中启用ValueLog CRC选项,使ValueLog文件遭到损坏时数据库仍能正常运行。 + - 通过GC操作释放Value log中的无效数据。GC能将旧Value log中没有失效的数据写入新的Value log,并更新LSM-tree。 + - GC过程不能过度阻塞用户的Put和Get操作。(过度阻塞则和原本消耗大量资源的Compaction无区别,没有得到期望的性能提升) + - GC操作仅对无效数据达到一定量级的ValueLog进行。 + - 使用常驻内存的ValueLog元数据表来维护ValueLog中有效数据占比的信息。 + +- **操作正确性** + + - Write时先写ValueLog再写WAL,从而保证操作的原子性。 + - GC操作需使用某种算法设计来保证GC操作与其他Put操作和Get操作并发的正确性。 + +#### 初步实现:Single ValueLog + +使用单一Value Log简单的实现KV分离,该实现较为简单,仅需在Put/Get函数内部进行简单修改,但在大数据量场景下性能极差。 + +##### 优点:实现简单,合并时开销小 + +##### 缺点:大数据量下性能极差,不能作为最终方案。 + + + +#### 优化实现:ValueLog per table + +对每个SSTable和MemTable建立一个Value Log。该实现相比于初步实现更加复杂,需要在合并时查询所有相关Value Log,并建立新Value Log。此外还要考虑在合并结束后将废弃的Value Log异步删除。 + +**Trick.为什么要在Put到MemTable时就放入Value Log而非dump至SS Table时才放入Value Log?** + +原因:将写ValueLog推迟至SSTable并没有减少Put时写入磁盘的总数据量(写ValueLog:ValueLog中写Value,WAl中写Key和Value元数据;不写ValueLog:WAL中写Key和Value),优点是将两次无法并行的写文件操作变为一次写文件操作。但该方法有一个缺陷,即leveldb原生的管理数据的方式是MemTable和SSTable大小相等。而经过这样改变后,MemTable在dump成SSTable后其大小会突然减少(Value全部转移至ValueLog),导致一个SSTable中存储的数据量过少。而原本valuelog的优势(一个SSTable可以放更多键值对使得table cache命中率变高)也将不存在了。我们将两个做法都进行了实现,通过对比性能发现后者不如前者,因此选择保留前者设计。 + +##### 优点:随合并自动GC,无需考虑GC。 + +##### 缺点:合并时开销未能减小。 + + + +#### 最终实现:Fixsize ValueLog + +**该实现参考TiTanDB实现** + +使用相对固定大小的Value Log,默认每个Value Log大小约为64MB。新添加的键值对依次将值与其长度(其实还有键和键长度)存入最新Value Log,当Value Log大小满了之后就创建新Value Log。需要设计一种异步的GC方法,该方法不会对Compaction,Get或Put造成明显的延迟。 + +##### 优点:合并时开销小。 + +##### 缺点:需要使用异步GC对ValueLog进行垃圾回收,会造成一定的写放大。 + +## 3. 实现设计 + +### 序列化 Value 结构设计 + +开头是使用Varint64存储的FieldNum,表示有FieldNum个Field组成。然后是使用Varint64存储的Field X name size,表示该field的字段名长度,然后是字段名,然后是使用Varint64存储的Field X Value size,表示该field的值长度,然后是值。 + +![leveldb_values](设计文档.assets/leveldb_values.png) + +### ValueLog结构设计 + +#### Single ValueLog设计 + +使用一个Value Log文件的设计中,我们只需记录Value在Value Log中对应的偏移量和Value长度即可。 + +Value Log中只记录Value值,无需记录元信息。 + +![ValueLog](设计文档.assets/ValueLog-17325302026895.png) + +#### ValueLog per table设计 + +Value设计为:1字节标志位+Varint64文件ID+Varint64偏移量+Varint64长度。 + +在存储时根据Value大小是否较大选择进行KV分离。若分离则标志位为true,否则标志位为false。 + +日志文件中仍然只需记录Value值即可,无需记录元信息。 + +![ValueLog](设计文档.assets/ValueLog-17325304026617.png) + +#### Fixsize ValueLog设计(第一版,有漏洞) + + + +![ValueLog](设计文档.assets/ValueLog-17325310409799.png) + +这一版设计有些复杂,但存在漏洞。我们的最终设计并非如此。 + +在Value开头使用一字节标志位表示是否KV分离。 + +如果KV分离,则接下来是Varint64的文件ID和Varint64的文件内offset。 + +在ValueLog中,在开头记录当前会索引到该Value Log的键值对数量Using count。如果Using count==0,则表示该ValueLog不被任何键值对使用,可以删除。 + +**Using count在Value Log添加键值对时进行+1**。 + +**Using count**在**其中任意键值对被合并**,**并且 该键值对由于合并时被更加新的键值对覆盖 或者 该键值对的True using Sign=False**时,进行**-1**。 + +在一个Value通过SSTable索引到Value Log后,其索引到的开头是一个**Value True Using Sign**。该标志位同样是一字节,标志了当前该Value是否是真正的Value。 + +**若标志位为True表示是真正的Value,那么标志位后是Varint64的Value长度+Value本身。** + +**若标志位为False表示不是真正的Value,那么标志位后是Varint64的下一个可能存在有真实对应Value的Value Log文件ID和Varint64的在下一个Value Log文件中的offset。** + +**Value True Using Sign发生变化有两种情况:** + +**1** + +一个键值对由于合并时被更加新的键值对覆盖时,不仅将Using count进行-1,同时也将其Value True Using Sign设置为False。 + +**2** + +在键值对加入到Value Log时,其Value True Using Sign设置为True。 + +当后台异步GC过程检测到一个Value Log的Using count较小时,将对其中Value True Using Sign仍为True的Value做以下处理: + + + +1.将Value对应的数据(设为True的标志位,Value len和Value本身)像新数据一样写入最新的Value Log中。 + +2.将原Value True Using Sign置为False + +3.将原Value Log中标志位后的数据修改为新写入的Value Log的ID和数据所处的Offset。 + +(保证原Value大小大于16,以防Varint64(Value len)+Value len [!CAUTION] +> +> **!注意!在实现过程中发现性能缺陷** + +当合并时由于需要扫描合并的SSTable,要对其中每个Value做读ValueLog操作(因为可能可以更新Value指向的ValueLog),导致一次合并会涉及很多次的ValueLog文件读写,性能过于低效,因此想到了新的操作方法。 + + + +#### fixsize_valuelog实际设计 + +![d85456f5f58abb55d9e83f3c020f0b7](设计文档.assets/d85456f5f58abb55d9e83f3c020f0b7.png) + +#### 最终`valuelog` 文件的组织方式: + +`valuelog` 文件存储了 **键值对(KV)** 数据,每条记录按照以下格式组织: + +1. **值的长度**(`value_len`):`uint64_t`,标识值的字节长度。 +2. **值**(`value`):实际的值数据,长度为 `value_len`。 +3. **键的长度**(`key_len`):`uint64_t`,标识键的字节长度。 +4. **键**(`key`):实际的键数据,长度为 `key_len`。 +5. **CRC校验码**:如果启用了valuelog_crc,那么在键后会加上一个uin32_t(4字节)的CRC校验码。该校验码通过对value和key进行双重哈希得到。 + +在sstable中key对应的value位置存储了对应valuelog文件的id和在文件中的offset。 + +**trick1:在valueLog中重复存key会导致写方法,但是是有必要的,详见GC过程** + +**trick2:将Key放在Value后,使得不启用CRC校验码时可以无需读取key_len和key,加速read** + +**trick3:CRC校验码无需校验长度,因为如果长度不对,那么解析出来的值/键/CRC校验码位置也都会出错** + +**trick4:CRC校验码使用Extend进行两重哈希,因为如果要对key和value一起哈希,那么每次校验需要额外开辟一个给key和value一起使用的内存空间,往该内存空间填充数据的过程如下:文件指针获取value长度,右移,获取key长度,左移,获取value,右移,获取key;性能不如单独开空间的连续右移读取操作** + +### gc过程: + +垃圾回收的核心思想是扫描所有非最新的 `valuelog` 文件(最新的ValueLog还会被插入新的数据,因此不对其进行垃圾回收),检查文件中的记录是否有效。如果记录的键值对已失效(比如键在 `sstable` 中不存在或元数据不匹配),则该记录会被忽略;如果记录的键值对是该键对应最新的键值对,则将该键值对重新Put进MemTable。在对整个旧的`ValueLog`做完上述操作后删除整个旧的的 `valuelog` 文件。 + +#### 详细过程 + +1. **扫描数据库目录**: +- 遍历所有未被GC处理的`valuelog` 文件。 +- 使用内存表`valuelog_origin`和`valuelog_usage`判定每个ValueLog是否空洞率达到要求。如果达到要求则进入第二步。(该操作要持有mutex_锁) +2. **依次处理所有通过第一步的 `valuelog` 文件**: + - 打开文件,逐条读取记录。 + - 如果打开文件失败,则忽略该ValueLog。否则进入第三步。 +3. **读取每条记录**: + - 按文件结构读取 `value_len`、`value`、`key_len`、`key`。 + - 检查 sstable是否包含该键: + - 如果键不存在,忽略此条记录。 + - 如果键存在,验证元数据是否有效(包括 `valuelog_id` 和 `offset`)。 + - 若元数据匹配不上,同样忽略此条记录。 + - 有效的键值对会被重新 put 进入数据库(在此操作中自然的被插入到最新的ValueLog中),SSTable中无效的键值对则会在compaction过程中被自然的回收。 + - 如果一条记录异常(读文件失败,或者CRC校验失败),则跳过整个ValueLog(已经GC的部分不影响)。该ValueLog不会进入后面的**延迟删除**环节。 +4. **延迟清理GC完毕的ValueLog文件**: +- 对ValueLog扫描完毕后,**延迟删除(Trick2)**该ValueLog。 + +#### Trick1:验证元数据/重新Put的正确性保证 + +在发现当前键值对有效后会将该键值对重新调用Put插入数据库,然而在此过程中如果有用户新插入了对应的Key的键值对,则有概率覆盖用户插入的键值对,这是错误的。因此我们要保证在此过程中不会新插入新的该Key对应的键值对。 + +我们使用了三个新的操作来实现该操作: + +1.一个新的全局变量inserting_key,使用mutex_管理的conditional variable进行访问保护 + +2.更改write逻辑,在即将进入writer队列前,使用`ValueLogChecker`对要插入的writebatch进行遍历,确保writebatch中不存在与inserting_key相同的key。 + +下图是实现整个操作的模拟,左侧是图标,Lock和UnLock都指对GC_mutex的操作 + +![lock_for_GC](设计文档.assets/lock_for_GC.png) + +ValueLogChecker主要逻辑如下: + +lock_key\_=mutex_ + +cond_var\_=mutex_保护的条件变量 + +```c++ +//check if all data in the writebatch is different from the given key (the key gc is searching) +//if find a key was the same to target key, then all keys must be scaned again. +void CheckValid(){ + int len=keys.size(); + if(!len)return; + int l=0; + int r=len-1; + bool locked=false; + while(!lock_key_->empty()){ + locked=false; + while(!lock_key_->empty()&&keys[l]==*lock_key_){ + cond_var_->Wait(); + locked=true; + } + if(locked){ + r=l-1;//a full round to make sure no key = current lock_key + if(r<0)r=len-1; + } + else if(l==r)break; + if(++l==len)l=0; + } + } +``` + + + +#### Trick2:仅针对空洞率高的ValueLog进行GC,使用内存表维护ValueLog空洞率 + +使用内存表`ValueLogOrigin`和`ValueLogUsage`来维护每个ValueLog中总共记录的键值对数量,以及其中有效的键值对数量。 + +##### 维护内存表的三个地方: + +1.`writeValueLog`末尾:将本次插入的数量加入两张内存表中。 + +2.`doCompactionWork`抛弃重复key的旧数据时:如果它使用ValueLog,就解析出它对应的ValueLog ID,将对应的ValueLogUsage值-1。 + +3.`Recover`结束时:需要遍历所有恢复完成后有效的数据,将它们对应的ValueLog加入ValueLogOrigin和ValueLogUsage。这一步有些复杂,请看以下说明。 + +![recover_valuelog](设计文档.assets/recover_valuelog.png) + + + +#### Trick3:延迟删除valueLog文件 + +在leveldb中,同一时间正在进行的多个查询可能读到不同版本的数据。因此即使我们将一整个valuelog进行GC后,指向该valueLog的kv键值对仍然可能被一个较旧的长时间查询读到。因此,我们必须确保所有指向该valueLog的键值对都已经绝对不会读到,才可对该valueLog进行删除。并且延迟删除valueLog的设计本身并不会对系统带来磁盘空间上的更多负担,因此该实现是可以进行的。 + +那么重要的就是该如何实现该设计。 + +我们的设计是:利用versionset维护的version链表,当且仅当在valueLog m GC完成时活着的所有version都死亡时(从version链表中移除,触发析构函数),才会将该valueLog删除。 + +**我们在全局维护一个global map(在versionset类中),该map记录了所有GC完成,有待被删除的valueLog ID和它们对应的活跃version数量。** + +**我们在每个version中维护一个 valueLog set,表示该version移除时要在global map更新的valueLogID。** + +**一个version的析构函数在将一个valueLog的活跃version数量降至0时,会直接将该valueLog删除。** + +![later_delete](设计文档.assets/later_delete.png) + +### 范围读取优化 + +#### 实现1.prefetch + +实现了该方法,但效果不佳,且与valueLog cache冲突,现在不在最新的代码中。 + +**可以checkout旧commit来体验:9d8062e474e0a121bae0a167754cb869892ab124** + +**1.在创建internal iterator时,还伴随着一个隐式的prefetch iterator的创建** + +**2.在internal iterator进行seek(to first/to last/to particular key)操作后,prefetch iterator会做同样的seek,然后异步的进行next并将对value的解析交给worker线程们。worker线程将处理后的结果放入该Value对应偏移量的prefetch数组位置中。** + +**3.主线程使用bool原子变量对prefetch数组进行访问,如果已经有元素,那么直接加载该元素。** + +经过实验发现,我们的prefetch有一些缺陷。 + +**缺陷1.IO次数未减少** + +通过实验发现,在benchmark中扫描性能在最后情况仅提升一倍,并且prefetch已经高度命中(92%命中prefetch)。 + +经过perf火焰图测试发现,大多数时间仍用于系统调用read,IO仍然是瓶颈,因此未从本质上解决问题。 + +![prefetch](设计文档.assets/prefetch.svg) + +**缺陷2:prefetch数组需要存放所有Value,实践中不可行** + +由于以上两个缺陷,我们抛弃了Prefetch功能,转而实现了后面更高效的新方法。 + +#### 实现2.ValueLog Cache + +- 复用leveldb的LRU cache接口。 + +- 在Options中增加一个memory valuelog number作为LRU链表上限。该上限可以通过计算期望的valueLog使用内存容量除以valueLog大小得到。 + +- 每次读valuelog时,若该valuelog非最新valuelog,则通过LRU cache来读取。(不在cache中则会插入cache) + +- leveldb::RandomAccessFile在绝大多数状况使用mmap来访问文件。尝试过不使用mmap而固定使用将整个文件读入内存作为cache的方式,效果远不如mmap。 + +**优势** + +当ValueLogCache可以容纳数据库中所有ValueLog时,性能表现很棒,Scan可以达到原LevelDB Scan性能的2/3。(原4000MB/S,现在3000MB/S,不使用ValueLogCache则400MB/S) + +**劣势** + +当ValueLogCache无法容纳所有ValueLog时,性能提升水平将骤降,Scan性能仅从400MB/S提升至500MB/S。 + +我们保留了ValueLog Cache的设计。与此同时我们提出了一种新的Scan方式,使用这种新的Scan方式将解决以上遇到的大部分问题。 + +#### 实现3.Unordered Iterator + +**观察:**许多使用NoSQL scan功能的场景并不需求Iterator返回数据的有序性。并且使用Iterator时并不会用Prev和Next反复横跳,而是单向遍历。 + +基于观察,我们提出了Unordered Iterator。即与原Iterator功能相同但不保证返回数据有序性的Iterator。 + +该Iterator有以下特点: + +**1.性能比普通Iterator提升约3~4倍** + +**2.相比于ValueLog Cache内存需求大大减小,一般32MB即可满足需求** + +**3.不支持Prev,Seek,SeekToFirst, SeekToLast功能。在创建Iterator时需要给定Key的上下界lowerbound,upperbound** + +#### 工作流程 + +过程有些复杂,只能上代码了。 + +注:mode==0表示在使用iter遍历阶段 + +mode==1表示遍历valuelog_map阶段 + +mode==2表示读完所有数据,InValid了。 + +``` +void UnorderedIter::Next() { + if(mode==0){ + if(iter_->Valid()&&!keyGreaterThanRequire()) + { + if(first_one){ + first_one=false; + } + else iter_->Next(); + for(; + iter_->Valid()&&memory_usageNext()) + { + if(checkLongValue(iter_->value())){ + auto pr=GetAndParseValue(iter_->value()); + valuelog_map[pr.first].push_back(pr.second); + } + else{ + now_key=iter_->key(); + now_value=iter_->value(); + now_value.remove_prefix(1); + return; + } + } + } + + valuelog_map_iter=valuelog_map.begin(); + if(valuelog_map_iter!=valuelog_map.end()){ + + for(auto it=valuelog_map.begin();it!=valuelog_map.end();it++){ + std::sort(it->second.begin(),it->second.end()); + } + + std::string file_name_ = ValueLogFileName(db_name_, valuelog_map_iter->first); + assert(!current_file); + current_file=new std::ifstream(file_name_, std::ios::in | std::ios::binary); + vec_idx=0; + } + + } + + mode=1; + + if(valuelog_map_iter==valuelog_map.end()){ + mode=2; + return; + } + + int offset=valuelog_map_iter->second[vec_idx++]; + bool res=MyReadValuelog(offset); + + if(vec_idx>=valuelog_map_iter->second.size()){ + valuelog_map_iter++; + + if(valuelog_map_iter==valuelog_map.end()){ + valuelog_map.clear(); + memory_usage=0; + mode=0; + if(current_file){ + current_file->close(); + delete current_file; + current_file=nullptr; + } + } + else{ + std::string file_name_ = ValueLogFileName(db_name_, valuelog_map_iter->first); + if(current_file){ + current_file->close(); + delete current_file; + } + current_file=new std::ifstream(file_name_, std::ios::in | std::ios::binary); + vec_idx=0; + } + + } + + if(!res)Next();//ignore fault like other iter did + +} +``` + +大体思路: + +1.如果读取到的值是ValueLog中的,那么就将它的元数据(ValueLog ID+Offset)记录在map中,并暂时跳过它。 + +2.如果map中积攒的ID和Offset到达指定内存使用量大小,那么接下来知直到map清空为止,都会不使用iter.Next而是遍历map。 + +3.遍历map流程:遍历顺序伪代码大概为: + +``` +for(id: ValueLogIDs){ + file=OpenValueLog(id) + for(offset: ValueLogOffsets[id]){ + return file.read(offset) + } +} +``` + + + +## 4. 部分需注意的接口/函数设计 + +由于代码过多,仅说明几个有代表性的函数。 + +#### 4. 1Value多字段设计 + +##### **4.1.1 数据序列化与反序列化** + +**序列化字段数组为字符串值** + +```cpp +std::string SerializeValue(const FieldArray& fields); +``` + +- **输入**:字段数组 `fields`。 + +- **输出**:序列化后的字符串。 + + + +**反序列化字符串值为字段数组** + +```c++ +Status DeserializeValue(const std::string& value_str,FieldArray* res); +``` + +- **输入**: + - 序列化字符串 `value_str`。 + - 存放反序列化结果的`res`。 +- **输出**:反序列化状态,如果反序列化失败则返回异常状态。 + + + +##### **4.1.2 数据查询接口** + +**按字段查找键** + +```c++ +Status Get_keys_by_field(DB *db,const ReadOptions& options, const Field field,std::vector *keys); +``` + +- **输入**: + - 使用的数据库`db` + - 读取选项 `options` + - 字段值 `field` + - 用于存放满足条件的keys的数组`keys` +- **输出**: + - 操作状态 `Status`。 + +#### 4.2 Value Log设计 + +##### 4.2.1ValueLogInserter + +用于将writebatch中的数据插入valuelog,并生成新的writebatch。 + +**特点:为了提升性能以及保证正确性,将batch中所有要插入valuelog的数据排到最后使用writeValueLog进行统一插入。这样一个writeBatch只会写ValueLog一次** + +**注意,这个函数会对writebatch内部数据进行重排序!然而可以证明在我们使用它的地方(插入Memtable之前),重排序是不影响正确性的。这里的重排序等价于将writer队列里相邻的元素进行交换。** + +```c++ +class ValueLogInserter : public WriteBatch::Handler { + public: + WriteBatch writeBatch_; + DB* db_; + int use_valuelog_len_; + std::vector> kvs; + ValueLogInserter(DB* db,int use_valuelog_len){ + db_=db; + use_valuelog_len_=use_valuelog_len; + } + + void Put(const Slice& key, const Slice& value) override { + Slice new_value; + std::string buf; + if(value.size()WriteValueLog(kvs); + for(int i=0;iIterate(&inserter); + inserter.batch_insert(); + *b=inserter.writeBatch_; + return res; +} +``` + + + +##### **4.2.2 WriteValueLog** + +将一堆键值对的值顺序写入Value Log,用于writebatch写入数据库,在数据库正常运行时一般writebatch包含多个键值对,因此设计为批处理。 + +该函数被mutex_保护,保证不会多线程调用。 + +```cpp +std::vector> WriteValueLog(std::vector value); +``` + +- **输入**:一个Slice vector,表示要写入Value Log的Value们。 + +- **输出**:一个std::pair vector,每个pair中:第一个uint64_t是Value Log文件ID,第二个uint64_t是处在Value Log中的偏移量。 + +**函数内部只使用了一次文件写入操作,因此可以提升性能且避免多次写入导致的非原子操作。** + + + +##### **4.2.2 ReadValueLog** + +通过Value Log读取目标键值对的值。 + +```cpp +Status DBImpl::ReadValueLog(uint64_t file_id, uint64_t offset, + std::string* value, bool check_crc) +``` + +- **输入**:第一个uint64_t是Value Log文件ID,第二个uint64_t是处在Value Log中的偏移量,第三个是指向要传回的value的指针。第四个是是否检查数据正确性。 +- **输出**:一个Status,表示是否成功传回对应Value。 + +**函数内部使用ValueLog Cache提升随机读与Scan性能。UnorderIterator不使用该函数** + +##### **4.2.3 手动GC** + +调用`MaybeScheduleGarbageCollect()`来安排一个后台线程执行垃圾回收任务。它会等待所有已安排的垃圾回收任务完成,这通过循环检查`background_garbage_collect_scheduled_`标志,并在该标志为真时等待`background_gc_finished_signal_`信号来实现。 + +```cpp +void DBImpl::manual_GarbageCollect() { + MaybeScheduleGarbageCollect(); + while (background_garbage_collect_scheduled_) { + background_gc_finished_signal_.Wait(); + } + gc_mutex_.Unlock(); +} +``` + +##### **4.2.7 后台GC函数** + +垃圾回收的核心实现。在设计中已经对函数内容进行了详细的解释。 + +**该函数内部会获取mutex\_锁,请勿在持有mutex_的情况下执行** + +```cpp +void DBImpl::GarbageCollect() +``` + + + +##### 4.2.8 三种iterator + +分别对应:普通iterator,不解析Value的Iterator(即原版Iterator),Unordered Iterator + +``` + Iterator* NewIterator(const ReadOptions&) override; + Iterator* NewOriginalIterator(const ReadOptions&); + Iterator* NewUnorderedIterator(const ReadOptions&,const Slice &lower_key,const Slice &upper_key) override;//upper key not included +``` + + + +##### 4.2.9 新增可选项 + +Options新增: + +``` + //when a value's length>=this value, leveldb will use valuelog to improve performance + int use_valuelog_length=1000;//if -1,then don't use valuelog. If env=memEnv, then it must be set to -1. + + // maximum size of value_log file + int value_log_size=1<<26; + //cache for valuelog(may use lot of memory) + int mem_value_log_number=0;//0=don't use valuelog cache + //memory usage limit for a single unordered iterator + float GC_THRESHOLD=0.6; + //if valuelog_crc is on, every k-v pair using valuelog_crc will use crc in valuelog_crc + bool valuelog_crc=false; + //use GC for valuelog + bool valuelog_gc=true; +``` + +ReadOptions新增: + +``` + bool find_value_log_for_gc = false;//为true时会返回经过parseTrueValue的结果,为false则会返回未经处理的Value,即第一位为标志位的value。 + + int max_unorder_iter_memory_usage=64<<20; //每个unordered_iterator可使用的内存量 + + bool verify_checksums_for_valuelog=false; //是否启用CRC校验码来使得valueLog文件获得高可用性。 +``` + +WriteOptions新增: + +``` + bool valuelog_write=false;//用于GC自己的插入操作,用户不应该设置为true。为true时,valueLog不会对数据进行与inserting_key的比较 +``` + + + +------ + + + +## 5. 功能测试 + +### 5.1**单元测试(测试用例)**: + +我们写了共九个大测试。 + +分别为: + +- 数据全部处于valueLog 的iterator测试 +- 数据部分处于valueLog 的iterator测试 +- Unordered iterator测试 +- 多字段的 field测试 + - 包括混合value(一些value使用多字段,一些value不使用多字段而是原生value)的测试 +- get_keys_by_field测试 + - 包括混合value(一些value使用多字段,一些value不使用多字段而是原生value)的测试 +- valuelog 的通用common测试 +- valuelog文件损坏或丢失的corruption测试 + - 包含在遇到valueLog损毁的数据时,iterator对异常数据的两方向跳过测试。 +- 垃圾回收有效性的garbagecollect测试 +- valuelog元数据恢复的recover测试 + +### 5.2**性能测试(Benchmark)与结果**: + +我们使用两种benchMark进行测试,分别为LevelDB的原生benchMark以及YSCB-BenchMark。 + +对于原生benchMark,我们增加了对UnorderedIterator的性能测试。 + +对于YCSB-BenchMark,我们增加了对GetKeysByField的支持,使用我们的YCSB-BenchMark可以在任意负载中加上该查询。并且对范围查询我们使用了UnorderedIterator。 + +两者的数据来源均放在benchmark_data.md中。 + +#### LevelDB-Bencmark + +##### 测试条件: + +每个Value长度为5000 + +``` +LevelDB: version 1.23 +Date: Sat Jan 4 21:54:09 2025 +CPU: 24 * AMD Ryzen AI 9 HX 370 w/ Radeon 890M +CPUCache: 1024 KB +Keys: 16 bytes each +Values: 5000 bytes each (2500 bytes after compression) +Entries: 1000000 +RawSize: 4783.6 MB (estimated) +FileSize: 2399.4 MB (estimated) +``` + +#### 吞吐/延迟/写放大 + +##### 吞吐 + +单位为每秒完成的数据量(1/平均延迟) + +``` +fillseq : 106112.8 ops/s +fillsync : 56.15 ops/s +fillrandom : 610308.24 ops/s +overwrite : 228731.95 ops/s +readrandom : 169747.14 ops/s +readunorderseq : 800640.51 ops/s +readseq : 308546.43 ops/s +readreverse : 300751.88 ops/s +``` + +##### 延迟(平均延迟) + +``` +fillseq : 9.424 micros/op +fillsync : 1322.246 micros/op +fillrandom : 16.385 micros/op +overwrite : 43.718 micros/op +readrandom : 5.891 micros/op +readunorderseq : 1.249 micros/op +readseq : 3.241 micros/op +readreverse : 3.325 micros/op +``` + +##### 写放大 + +compaction写放大:一次db_bench中采样的多个compact报告 + +``` +Compacted 4@0 + 1@1 files => 6669290 bytes +Compacted 4@0 + 4@1 files => 10282912 bytes +Compacted 5@1 + 1@2 files => 11013480 bytes +Compacted 1@1 + 6@2 files => 11644355 bytes +Compacted 1@1 + 6@2 files => 12208492 bytes +Compacted 1@1 + 6@2 files => 12737041 bytes +Compacted 1@1 + 7@2 files => 13229722 bytes +Compacted 1@1 + 7@2 files => 13696506 bytes +Compacted 3@0 + 1@1 files => 5170431 bytes +Compacted 1@1 + 4@2 files => 8884824 bytes +Compacted 1@1 + 3@2 files => 4365997 bytes +``` + +gc写放大:一次db_bench中采样的多个gc报告 + +``` +gc valuelog 10 success and write 29198136 bytes +gc valuelog 13 success and write 26650008 bytes +gc valuelog 14 success and write 23499960 bytes +gc valuelog 15 success and write 20951832 bytes +gc valuelog 16 success and write 18965496 bytes +gc valuelog 17 success and write 16582896 bytes +gc valuelog 18 success and write 15213528 bytes +gc valuelog 21 success and write 13969560 bytes +gc valuelog 22 success and write 12545016 bytes +gc valuelog 23 success and write 11777568 bytes +gc valuelog 24 success and write 11602008 bytes +gc valuelog 25 success and write 11441496 bytes +gc valuelog 26 success and write 11762520 bytes +gc valuelog 29 success and write 11486640 bytes +gc valuelog 30 success and write 12208944 bytes +gc valuelog 31 success and write 11953128 bytes +gc valuelog 32 success and write 12555048 bytes +gc valuelog 33 success and write 12334344 bytes +``` + + + + + +#### 读性能对比 + +##### 随机读 + +![image-20250105205822843](设计文档.assets/image-20250105205822843.png) + +##### 原生范围查询 + +![image-20250105205545925](设计文档.assets/image-20250105205545925.png) + +#### unordered范围查询与有序查询对比 + +![image-20250105210350396](设计文档.assets/image-20250105210350396.png) + +#### 写性能对比 + +单位:(micros/op) + +顺序插入性能加速比为2。 + +随机插入加速比为11。 + +随机覆写加速比为5.18。 + +![image-20250105205248481](设计文档.assets/image-20250105205248481.png) + +#### 全表合并 + +性能加速比为100。(因为大量数据都不在LSM-Tree中) + +![image-20250105211313118](设计文档.assets/image-20250105211313118.png) + +#### YCSB-Benchmark + +**图例解析:Version_0代表原levelDB,Version_3代表我们最新的代码,后面的数字乘法表示value长度为x\*y, value使用x个长度为y的field组成。(组成value的函数为我们的SereializeValue,解析函数是我们的DesereializeValue)** + +##### WorkLoada(场景:**软件使用session存储记录最近的操作**) + +操作占比: + +``` +readproportion=0.5 +updateproportion=0.5 +``` + +性能对比: + +(Read操作在大数据长度下反而吞吐量降低的原因应该是因为同时处理的Write操作大大增多) + +![image-20250105214330108](设计文档.assets/image-20250105214330108.png) + +![image-20250105214340947](设计文档.assets/image-20250105214340947.png) + + + +##### WorkLoadb(场景:**照片标签;添加标签是一种更新操作,但大多数操作是读取**) + +操作占比: + +``` +readproportion=0.95 +updateproportion=0.05 +``` + +性能对比: + +![image-20250105214821722](设计文档.assets/image-20250105214821722.png) + +![image-20250105214830808](设计文档.assets/image-20250105214830808.png) + +##### WorkLoadc(场景:**用户资料缓存,其中资料在其他地方构建(例如,在 Hadoop 中)**) + +操作占比: + +``` +readproportion=1 +``` + +性能对比: + +![image-20250105214948117](设计文档.assets/image-20250105214948117.png) + +##### WorkLoadd(场景:用户状态更新:用户想要读取最新的数据) + +操作占比: + +``` +readproportion=0.95 +insertproportion=0.05 +``` + +性能对比: + +![image-20250105215019964](设计文档.assets/image-20250105215019964.png) + +![image-20250105215125243](设计文档.assets/image-20250105215125243.png) + +##### WorkLoade(场景:带线程的对话(或论坛帖子),其中每次扫描都是为了获取给定线程中的帖子(假设这些帖子是按线程 ID 聚集的)。) + +操作占比: + +可以看到每次扫描长度很短,因此unorderiter的大范围查询优势无法发挥。 + +``` +scanproportion=0.95 +insertproportion=0.05 +maxscanlength=100 +``` + +性能对比: + +![image-20250105215224964](设计文档.assets/image-20250105215224964.png) + +![image-20250105215237395](设计文档.assets/image-20250105215237395.png) + +##### WorkLoadf(场景:用户数据库,其中用户记录由用户读取和修改,或者用于记录用户活动) + +操作占比: + +``` +readproportion=0.5 +readmodifywriteproportion=0.5 +``` + +性能对比: + +![image-20250105215644951](设计文档.assets/image-20250105215644951.png) + +![image-20250105215719856](设计文档.assets/image-20250105215719856.png) + +#### GetKeys性能 + +##### WorkLoadGetKeys(场景:大部分随机读,小部分使用全表扫描) + +**仅测试version_3,因为原leveldb无该功能** + +操作占比: + +``` +readproportion=0.999 +getkeysbyfieldproportion=0.001 +``` + +性能对比: + +![image-20250105220322830](设计文档.assets/image-20250105220322830.png) + +![image-20250105220226773](设计文档.assets/image-20250105220226773.png) + +## 6. 正确性分析与性能分析 + +#### 1.内存管理分析 + +使用Valgrind对内存泄漏进行测试。通过Valgrind测试我们找到了许多代码导致内存泄漏的点。经过修正,最新的代码已经没有大的内存泄漏: + +```sh +==1245789== +==1245789== HEAP SUMMARY: +==1245789== in use at exit: 904 bytes in 6 blocks +==1245789== total heap usage: 5,307,916 allocs, 5,307,910 frees, 14,706,723,479 bytes allocated +==1245789== +==1245789== 8 bytes in 1 blocks are definitely lost in loss record 1 of 6 +==1245789== at 0x4849013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) +==1245789== by 0x12E025: leveldb::DBImpl::MaybeScheduleGarbageCollect() (db_impl.cc:738) +==1245789== by 0x12DD53: leveldb::DBImpl::manual_GarbageCollect() (db_impl.cc:689) +==1245789== by 0x11F2CD: Test_garbage_collect_test_Test::TestBody() (test.cpp:585) +==1245789== by 0x1BA874: void testing::internal::HandleSehExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2653) +==1245789== by 0x1B326E: void testing::internal::HandleExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2689) +==1245789== by 0x18C767: testing::Test::Run() (gtest.cc:2728) +==1245789== by 0x18D1F7: testing::TestInfo::Run() (gtest.cc:2874) +==1245789== by 0x18DB95: testing::TestSuite::Run() (gtest.cc:3052) +==1245789== by 0x19E681: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:6020) +==1245789== by 0x1BB997: bool testing::internal::HandleSehExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2653) +==1245789== by 0x1B4514: bool testing::internal::HandleExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2689) +==1245789== +==1245789== 8 bytes in 1 blocks are definitely lost in loss record 2 of 6 +==1245789== at 0x4849013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) +==1245789== by 0x12E025: leveldb::DBImpl::MaybeScheduleGarbageCollect() (db_impl.cc:738) +==1245789== by 0x12DD53: leveldb::DBImpl::manual_GarbageCollect() (db_impl.cc:689) +==1245789== by 0x1207DC: Test_recovery_test_Test::TestBody() (test.cpp:684) +==1245789== by 0x1BA874: void testing::internal::HandleSehExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2653) +==1245789== by 0x1B326E: void testing::internal::HandleExceptionsInMethodIfSupported(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2689) +==1245789== by 0x18C767: testing::Test::Run() (gtest.cc:2728) +==1245789== by 0x18D1F7: testing::TestInfo::Run() (gtest.cc:2874) +==1245789== by 0x18DB95: testing::TestSuite::Run() (gtest.cc:3052) +==1245789== by 0x19E681: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:6020) +==1245789== by 0x1BB997: bool testing::internal::HandleSehExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2653) +==1245789== by 0x1B4514: bool testing::internal::HandleExceptionsInMethodIfSupported(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2689) +==1245789== +==1245789== 288 bytes in 1 blocks are possibly lost in loss record 5 of 6 +==1245789== at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) +==1245789== by 0x40147D9: calloc (rtld-malloc.h:44) +==1245789== by 0x40147D9: allocate_dtv (dl-tls.c:375) +==1245789== by 0x40147D9: _dl_allocate_tls (dl-tls.c:634) +==1245789== by 0x4C337B4: allocate_stack (allocatestack.c:430) +==1245789== by 0x4C337B4: pthread_create@@GLIBC_2.34 (pthread_create.c:647) +==1245789== by 0x4947328: std::thread::_M_start_thread(std::unique_ptr >, void (*)()) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30) +==1245789== by 0x170167: std::thread::thread(void (&)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*&&) (std_thread.h:143) +==1245789== by 0x16FE3D: leveldb::(anonymous namespace)::PosixEnv::Schedule(void (*)(void*), void*) (env_posix.cc:822) +==1245789== by 0x12DEE9: leveldb::DBImpl::MaybeScheduleCompaction() (db_impl.cc:718) +==1245789== by 0x131C65: leveldb::DBImpl::MakeRoomForWrite(bool) (db_impl.cc:1556) +==1245789== by 0x1310F8: leveldb::DBImpl::Write(leveldb::WriteOptions const&, leveldb::WriteBatch*) (db_impl.cc:1374) +==1245789== by 0x134D41: leveldb::DB::Put(leveldb::WriteOptions const&, leveldb::Slice const&, leveldb::Slice const&) (db_impl.cc:2072) +==1245789== by 0x130E87: leveldb::DBImpl::Put(leveldb::WriteOptions const&, leveldb::Slice const&, leveldb::Slice const&) (db_impl.cc:1343) +==1245789== by 0x117F82: Test_mix_valuelog_iterator_test_Test::TestBody() (test.cpp:169) +==1245789== +==1245789== LEAK SUMMARY: +==1245789== definitely lost: 16 bytes in 2 blocks +==1245789== indirectly lost: 0 bytes in 0 blocks +==1245789== possibly lost: 288 bytes in 1 blocks +==1245789== still reachable: 600 bytes in 3 blocks +==1245789== suppressed: 0 bytes in 0 blocks +==1245789== Reachable blocks (those to which a pointer was found) are not shown. +==1245789== To see them, rerun with: --leak-check=full --show-leak-kinds=all +==1245789== +==1245789== For lists of detected and suppressed errors, rerun with: -s +==1245789== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0) +``` + +#### 2.正确性分析 + +我们的代码能够通过LevelDB原生的所有测试!以及我们新加的ValueLog测试。 + +在build目录下使用`./leveldb_tests`进行levelDB原生的所有测试 + +![image-20250105194658678](设计文档.assets/image-20250105194658678.png) + +在build目录下使用`./valuelogTest`进行我们的ValueLog测试 + +![image-20250105194455143](设计文档.assets/image-20250105194455143.png) + + + +#### 3.overwrite性能下降分析 + +在benchMark测试中发现,overwrite相比于fillRandom下降了较多的性能,因此使用perf进行了对比分析。 + +通过perf发现,原因是由于overwrite导致许多valueLog的空洞率下降,从而使得GC开始运行,进而使得Write操作需要在获取mutex_锁的情况下进行key的等值检查,有些耗费时间。 + +以下第一张图是fillRandom的火焰图,第二张图是overwrite的火焰图。 + +![write_1](设计文档.assets/write_1.svg) + +![write_2](设计文档.assets/write_2.svg) + +## 7. 分工和进度安排 + +| 功能 | 完成日期 | 分工 | +| --------------------------------------- | -------- | ------------- | +| 完成初步的多字段Value实现和KV分离实现 | 11月20日 | 谢瑞阳 | +| 完成设计文档 | 11月27日 | 徐翔宇&谢瑞阳 | +| 将多字段Value实现迁移至用户层级 | 11月27日 | 徐翔宇 | +| 完成第二版ValueLog | 11月28日 | 徐翔宇&谢瑞阳 | +| 完成第二版ValueLog的测试 | 11月28日 | 徐翔宇&谢瑞阳 | +| 完成第三版ValueLog | 12月4日 | 徐翔宇&谢瑞阳 | +| 完成第三版ValueLog的测试 | 12月4日 | 徐翔宇&谢瑞阳 | +| 完成BenchMark,对不同KV分离方案进行测试 | 12月8日 | 徐翔宇&谢瑞阳 | +| 学习TiTanDB的代码,学习优化方法 | 12月13日 | 徐翔宇&谢瑞阳 | +| ValueLog元数据管理初步实现 | 12月22日 | 徐翔宇 | +| ValueLog元数据管理改进实现,支持Recover | 12月26日 | 谢瑞阳 | +| Prefetch iterator实现 | 12月26日 | 徐翔宇&谢瑞阳 | +| valuelog cache实现 | 12月30号 | 徐翔宇&谢瑞阳 | +| unordered iterator实现 | 1月1号 | 谢瑞阳 | +| valuelog crc校验码实现 | 1月3号 | 徐翔宇&谢瑞阳 | +| 完善各类测试 | 1月3号 | 徐翔宇&谢瑞阳 | +| 各类性能测试数据记录以及分析 | 1月5日 | 徐翔宇 | +| 完成设计文档 | 1月5日 | 徐翔宇&谢瑞阳 | + +