-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SortedBulkWrite #94
base: master
Are you sure you want to change the base?
SortedBulkWrite #94
Conversation
📊 Benchmark results for this run (12632779781) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12632779781/index.html after the github pages "build and deployment" action has completed. |
bc5694e
to
e3240a1
Compare
📊 Benchmark results for this run (12677593680) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12677593680/index.html after the github pages "build and deployment" action has completed. |
📊 Benchmark results for this run (12687333244) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12687333244/index.html after the github pages "build and deployment" action has completed. |
📊 Benchmark results for this run (12697597242) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12697597242/index.html after the github pages "build and deployment" action has completed. |
This is consistently faster, but not by much - I hope I'm doing something wrong, since this is a promising direction |
The skiplists aren't any faster when the elements are pre-sorted - seems this is a dead-end. |
📊 Benchmark results for this run (12734553143) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12734553143/index.html after the github pages "build and deployment" action has completed. |
📊 Benchmark results for this run (12735700559) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12735700559/index.html after the github pages "build and deployment" action has completed. |
Wow, reversing the sorting direction seems to have a measurable effect on writing speed - especially if combined with My measurements with reindexes so far:
Benchmark 1: COMMIT=35bf426e02210c1bbb04926f4ca2e0285fbfcd11 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0
Time (mean ± σ): 19991.811 s ± 13.229 s [User: 38973.445 s, System: 835.037 s]
Range (min … max): 19982.456 s … 20001.165 s 2 runs 2025-01-12T07:31:05Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-12T07:53:51Z Shutdown: done
Benchmark 1: COMMIT=e679204139afdcef19000c398c6fd1c18c440a82 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0
Time (abs ≡): 18993.418 s [User: 38371.601 s, System: 697.372 s] 2025-01-13T03:06:48Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-13T03:14:21Z Shutdown: done
Benchmark 1: COMMIT=d73f37dda221835b5109ede1b84db2dc7c4b74a1 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -dbcache=30000 -stopatheight=878000 -reindex-chainstate -printtocon
sole=0 -connect=0
Time (mean ± σ): 23664.320 s ± 111.385 s [User: 35795.225 s, System: 714.912 s]
Range (min … max): 23585.559 s … 23743.081 s 2 runs 2025-01-12T04:31:40Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-12T05:02:39Z Shutdown: done
hyperfine --runs 1 --parameter-list COMMIT e679204139afdcef19000c398c6fd1c18c440a82 --prepare 'git checkout {COMMIT} && git clean -fxd && git reset --hard && cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_TESTS=OFF -DENABLE_WALLET=OFF -DINSTALL_MAN=OFF && cmake --build build -j$(nproc)' 'COMMIT={COMMIT} ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -dbcache=30000 -stopatheight=878000 -reindex-chainstate -printtoconsole=0 -connect=0'
Benchmark 1: COMMIT=e679204139afdcef19000c398c6fd1c18c440a82 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -dbcache=30000 -stopatheight=878000 -reindex-chainstate -printtoconsole=0 -connect=0
Time (abs ≡): 22328.054 s [User: 35492.119 s, System: 609.247 s] 2025-01-13T03:56:37Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-13T04:07:19Z Shutdown: done
|
Ran a few reindexes: hyperfine --runs 2 --parameter-list COMMIT 35bf426e02210c1bbb04926f4ca2e0285fbfcd11,256a5c04f2eb190e45ec7d7ffb058c189174780a,a5920ec25f02b8b66b6f23f00e696a86b5352d69 --prepare 'rm -f /mnt/my_storage/BitcoinData/debug.log && git checkout {COMMIT} && git clean -fxd && git reset --hard && cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_TESTS=OFF -DENABLE_WALLET=OFF -DINSTALL_MAN=OFF && cmake --build build -j$(nproc)' --cleanup 'mv /mnt/my_storage/BitcoinData/debug.log /mnt/my_storage/logs/debug-{COMMIT}.log' 'COMMIT={COMMIT} ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0' Benchmark 1: COMMIT=35bf426e02210c1bbb04926f4ca2e0285fbfcd11 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0
Time (mean ± σ): 23766.362 s ± 5.864 s [User: 36042.690 s, System: 701.176 s]
Range (min … max): 23762.216 s … 23770.509 s 2 runs
Benchmark 2: COMMIT=256a5c04f2eb190e45ec7d7ffb058c189174780a ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0
Time (mean ± σ): 22966.570 s ± 97.248 s [User: 35741.689 s, System: 642.797 s]
Range (min … max): 22897.805 s … 23035.335 s 2 runs
Benchmark 3: COMMIT=a5920ec25f02b8b66b6f23f00e696a86b5352d69 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0
Time (mean ± σ): 22119.481 s ± 50.626 s [User: 35457.379 s, System: 578.014 s]
Range (min … max): 22083.683 s … 22155.279 s 2 runs Summary
COMMIT=a5920ec25f02b8b66b6f23f00e696a86b5352d69 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0 ran
1.04 ± 0.00 times faster than COMMIT=256a5c04f2eb190e45ec7d7ffb058c189174780a ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0
1.07 ± 0.00 times faster than COMMIT=35bf426e02210c1bbb04926f4ca2e0285fbfcd11 ./build/src/bitcoind -datadir=/mnt/my_storage/BitcoinData -stopatheight=878000 -dbcache=30000 -reindex-chainstate -connect=0 root@Ubuntu-2404-noble-amd64-base /mnt/my_storage/bitcoin # tail -3 ../logs/debug-35bf426e02210c1bbb04926f4ca2e0285fbfcd11.log
2025-01-14T00:46:32Z Flushed fee estimates to fee_estimates.dat.
2025-01-14T00:46:32Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-14T01:18:53Z Shutdown: done
root@Ubuntu-2404-noble-amd64-base /mnt/my_storage/bitcoin # tail -3 ../logs/debug-256a5c04f2eb190e45ec7d7ffb058c189174780a.log
2025-01-14T13:44:14Z Flushed fee estimates to fee_estimates.dat.
2025-01-14T13:44:14Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-14T14:06:10Z Shutdown: done
root@Ubuntu-2404-noble-amd64-base /mnt/my_storage/bitcoin # tail -3 ../logs/debug-a5920ec25f02b8b66b6f23f00e696a86b5352d69.log
2025-01-15T02:15:48Z Flushed fee estimates to fee_estimates.dat.
2025-01-15T02:15:49Z [warning] Flushing large (26 GiB) UTXO set to disk, it may take several minutes
2025-01-15T02:24:16Z Shutdown: done
git log --format="%h %s" 35bf426 256a5c0 a5920ec --no-walk
35bf426e02 Merge bitcoin/bitcoin#28724: wallet: Cleanup accidental encryption keys in watchonly wallets
256a5c04f2 nDefaultDbBatchSize = 64 << 20
a5920ec25f SortedWrite descending |
e4ce95a
to
77497f6
Compare
let's try sorting by hash only and putting erase entries to the end of the batch |
📊 Benchmark results for this run (12785267810) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12785267810/index.html after the github pages "build and deployment" action has completed. |
📊 Benchmark results for this run (12785866983) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12785866983/index.html after the github pages "build and deployment" action has completed. |
📊 Benchmark results for this run (12818682351) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12818682351/index.html after the github pages "build and deployment" action has completed. |
aa28431
to
7211cd5
Compare
📊 Benchmark results for this run (12828640623) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/12828640623/index.html after the github pages "build and deployment" action has completed. |
📊 Benchmark results for this run (13346339980) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/13346339980/index.html after the github pages "build and deployment" action has completed. |
e00115a
to
16a6aff
Compare
📊 Benchmark results for this run (13356211631) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/13356211631/index.html after the github pages "build and deployment" action has completed. |
8d19012
to
5182d38
Compare
5182d38
to
7fd2804
Compare
📊 Benchmark results for this run (13369869244) will be available at: https://bitcoin-dev-tools.github.io/benchcoin/results/pr-94/13369869244/index.html after the github pages "build and deployment" action has completed. |
c556197
to
7862a78
Compare
607732d
to
e0dab54
Compare
3b99594
to
4098c1c
Compare
No description provided.