Bitcoin full node and query server

Apr 26, 2023

View in context in the libbitcoin Slack #general mirror.

evoskuil01:35
This was again, significant thrashing. This was strictly a read operation, and the thrashing started when the disk became full. The issue here, as with reading while writing (guarded writing), is that reading index information requires spanning the archive bodies of txs, tx, spend, and point - while also paging through the entire store. However, despite full indexes for the entire run (unlike with writing, as they are build during the run), the cost was constant and low with nothing cached in RAM. I stopped the run (accidentally) at tx 504,393,291, and then restarted it. Notice that the store warmed up very quickly (down from the peak) and averaged slightly higher than the earlier 2s/100k. But this rate had increased toward the end to an average of 2s/100k. So this was the cost of warming back up. In other words, merely dumping (not flushing, there are no writes) the memory buffer during this period prevented the thrashing. It's possible that it would have just worked itself out due to flushing had I not stopped it - as I've seen happen elsewhere. I'll do another run soon.
(edited)