go-ethereum icon indicating copy to clipboard operation
go-ethereum copied to clipboard

core, cmd/utils: when configured via flag, in block execution: prefetch all reads from account/storage tries, terminate prefetcher synchronously.

Open jwasinger opened this issue 1 year ago • 4 comments

Pulled out from https://github.com/ethereum/go-ethereum/pull/29719

jwasinger avatar May 20 '24 04:05 jwasinger

jiejuelema

zhaoxiangjunupi avatar May 20 '24 08:05 zhaoxiangjunupi

Okay

Mazzika1 avatar May 21 '24 02:05 Mazzika1

Oaky

Mazzika1 avatar May 21 '24 02:05 Mazzika1

~~Haven't quite got this working yet...~~. Seems somewhat okay now.

jwasinger avatar May 21 '24 05:05 jwasinger

Full sync benchmark nodes are running around block 12.2 million (bench7 is running this PR with the witness collection flag enabled, bench8 is master)

image

image

image

Witness collection mode is causing additional prefetch reads which all hit the db cache. There appears to be no performance impact.

Prefetcher duplicate/waste metrics cease to be meaningful if --collectwitnesses is passed. The account/storage loads are higher (but again, these hit the db cache so it's not a problem).

image

jwasinger avatar May 23 '24 04:05 jwasinger

@karalabe I think I've mostly addressed your feedback and simplified the PR.

jwasinger avatar Jun 04 '24 05:06 jwasinger