From bd4214107519d127ec6eab3185e2407288c3e8db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E4=BA=BA=E9=B1=BC?= <1823748191@qq.com> Date: Tue, 7 Jan 2025 10:20:59 +0800 Subject: [PATCH] add readseq compare without compaction thread --- benchmark_data.md | 108 ++++++++++++++++++++++++ 设计文档.assets/image-20250107101406637.png | Bin 0 -> 16393 bytes 设计文档.md | 15 +++- 3 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 设计文档.assets/image-20250107101406637.png diff --git a/benchmark_data.md b/benchmark_data.md index ed39740..44d346d 100644 --- a/benchmark_data.md +++ b/benchmark_data.md @@ -1590,3 +1590,111 @@ All steps completed successfully! +# 有无GC db_bench + +原leveldb: + +``` +LevelDB: version 1.23 +Date: Tue Jan 7 01:32:40 2025 +CPU: 32 * Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz +CPUCache: 11264 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 : 43.561 micros/op; 109.8 MB/s +fillsync : 8360.610 micros/op; 0.6 MB/s (1000 ops) +fillrandom : 306.627 micros/op; 15.6 MB/s +overwrite : 423.441 micros/op; 11.3 MB/s +readrandom : 41.489 micros/op; (864322 of 1000000 found) +readrandom : 33.352 micros/op; (864083 of 1000000 found) +readseq : 1.077 micros/op; 4442.3 MB/s +readreverse : 2.384 micros/op; 2006.2 MB/s +compact : 27672776.000 micros/op; +readrandom : 23.430 micros/op; (864105 of 1000000 found) +readseq : 1.262 micros/op; 3791.0 MB/s +readreverse : 2.488 micros/op; 1922.6 MB/s +fill100K : 909.619 micros/op; 104.9 MB/s (1000 ops) +crc32c : 1.708 micros/op; 2287.5 MB/s (4K per op) +snappycomp : 9937.000 micros/op; (snappy failure) +snappyuncomp : 10061.000 micros/op; (snappy failure) +zstdcomp : 6627.000 micros/op; (zstd failure) +zstduncomp : 6851.000 micros/op; (zstd failure) +``` + +无GC: + +``` +LevelDB: version 1.23 +Date: Tue Jan 7 01:12:39 2025 +CPU: 32 * Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz +CPUCache: 11264 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 : 15.353 micros/op; 311.6 MB/s +fillsync : 8307.683 micros/op; 0.6 MB/s (1000 ops) +fillrandom : 16.065 micros/op; 297.8 MB/s +overwrite : 16.277 micros/op; 293.9 MB/s +readrandom : 13.119 micros/op; (864322 of 1000000 found) +readrandom : 12.603 micros/op; (864083 of 1000000 found) +readunorderseq : 4.414 micros/op; 1083.8 MB/s +readseq : 10.850 micros/op; 440.9 MB/s +readreverse : 10.840 micros/op; 441.3 MB/s +compact : 301143.000 micros/op; +readrandom : 11.220 micros/op; (864482 of 1000000 found) +readunorderseq : 3.934 micros/op; 1216.1 MB/s +readseq : 10.685 micros/op; 447.7 MB/s +readreverse : 10.865 micros/op; 440.3 MB/s +fill100K : 114.789 micros/op; 830.9 MB/s (1000 ops) +crc32c : 1.734 micros/op; 2253.3 MB/s (4K per op) +snappycomp : 9693.000 micros/op; (snappy failure) +snappyuncomp : 9252.000 micros/op; (snappy failure) +zstdcomp : 9907.000 micros/op; (zstd failure) +zstduncomp : 8232.000 micros/op; (zstd failure) +``` + +有GC: + +``` +LevelDB: version 1.23 +Date: Tue Jan 7 01:26:45 2025 +CPU: 32 * Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz +CPUCache: 11264 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 : 15.083 micros/op; 317.2 MB/s +fillsync : 8272.137 micros/op; 0.6 MB/s (1000 ops) +fillrandom : 17.520 micros/op; 273.0 MB/s +overwrite : 23.640 micros/op; 202.3 MB/s +readrandom : 18.831 micros/op; (864322 of 1000000 found) +readrandom : 12.227 micros/op; (864083 of 1000000 found) +readunorderseq : 4.124 micros/op; 1159.9 MB/s +readseq : 10.532 micros/op; 454.2 MB/s +readreverse : 10.518 micros/op; 454.8 MB/s +compact : 344150.000 micros/op; +readrandom : 18.466 micros/op; (864482 of 1000000 found) +readunorderseq : 3.753 micros/op; 1274.6 MB/s +readseq : 9.922 micros/op; 482.1 MB/s +readreverse : 10.438 micros/op; 458.3 MB/s +fill100K : 109.456 micros/op; 871.4 MB/s (1000 ops) +crc32c : 1.621 micros/op; 2410.0 MB/s (4K per op) +snappycomp : 11457.000 micros/op; (snappy failure) +snappyuncomp : 9203.000 micros/op; (snappy failure) +zstdcomp : 6013.000 micros/op; (zstd failure) +zstduncomp : 9923.000 micros/op; (zstd failure) +``` + diff --git a/设计文档.assets/image-20250107101406637.png b/设计文档.assets/image-20250107101406637.png new file mode 100644 index 0000000000000000000000000000000000000000..25fa0344da1a09f25077c3a60ddce0a056126716 GIT binary patch literal 16393 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 literal 0 HcmV?d00001 diff --git a/设计文档.md b/设计文档.md index ad92187..f5d1c82 100644 --- a/设计文档.md +++ b/设计文档.md @@ -452,6 +452,8 @@ mode==1表示遍历valuelog_map阶段 mode==2表示读完所有数据,InValid了。 +小优化:对于大value会复用内存空间,避免每次都free和new一块大空间。经过测试该优化会带来一些性能提升。(不在以下函数而在MyReadValuelog函数中) + ``` void UnorderedIter::Next() { if(mode==0){ @@ -784,7 +786,7 @@ WriteOptions新增: ### 5.1**单元测试(测试用例)**: -我们写了共十个大测试。 +我们写了共十个大测试。测试的具体内容请看test/test.cpp。 分别为: - 写ValueLog完成后未进入WAL日志的崩溃恢复测试(通过查看ValueLog内部可以看到恢复后未完成的数据从ValueLog中删除) @@ -908,8 +910,16 @@ gc valuelog 33 success and write 12334344 bytes ##### 随机读 +在有compaction的情况下的读性能对比,可以看到我们的读性能更好。 + ![image-20250105205822843](设计文档.assets/image-20250105205822843.png) +在无compaction的情况下随机对比: + +发现不考虑合并对读取性能影响的情况下,我们的随机读性能仍然更优。 + +![image-20250107101406637](设计文档.assets/image-20250107101406637.png) + ##### 原生范围查询 ![image-20250105205545925](设计文档.assets/image-20250105205545925.png) @@ -1053,7 +1063,7 @@ getkeysbyfieldproportion=0.001 ![image-20250105220226773](设计文档.assets/image-20250105220226773.png) -## 6. 正确性分析与性能分析 +## 6. 内存管理分析、正确性分析与性能分析 #### 1.内存管理分析 @@ -1172,4 +1182,3 @@ getkeysbyfieldproportion=0.001 | 各类性能测试数据记录以及分析 | 1月5日 | 徐翔宇 | | 完成设计文档 | 1月5日 | 徐翔宇&谢瑞阳 | -