go-ethereum/core/state
rjl493456442 21920207e4
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464)
Previously, PathDB used a single buffer to aggregate database writes,
which needed to be flushed atomically. However, flushing large amounts
of data (e.g., 256MB) caused significant overhead, often blocking the
system for around 3 seconds during the flush.

To mitigate this overhead and reduce performance spikes, a double-buffer
mechanism is introduced. When the active buffer fills up, it is marked
as frozen and a background flushing process is triggered. Meanwhile, a
new buffer is allocated for incoming writes, allowing operations to
continue uninterrupted.

This approach reduces system blocking times and provides flexibility in
adjusting buffer parameters for improved performance.
2025-06-22 20:40:54 +08:00
..
pruner all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
snapshot triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464) 2025-06-22 20:40:54 +08:00
access_events.go core/state, core/vm: update stateless gas costs to follow the verkle-gen-7 testnet (#31014) 2025-05-15 20:43:52 +08:00
access_events_test.go core/state, core/vm: update stateless gas costs to follow the verkle-gen-7 testnet (#31014) 2025-05-15 20:43:52 +08:00
access_list.go core/state: remove pointless wrapper functions (#30891) 2024-12-11 11:05:59 +01:00
database.go core/state: expose the state reader stats (#31998) 2025-06-21 12:58:04 +08:00
dump.go fix: skip storage entries with missing preimage keys (#32051) 2025-06-17 20:13:03 +08:00
iterator.go core/state: introduce code reader interface (#30816) 2024-11-29 15:32:45 +01:00
iterator_test.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
journal.go core/state: fix copy of storageChange (#31874) 2025-05-23 13:10:10 +02:00
metrics.go core/rawdb,state: add preimage miss metric (#31295) 2025-03-07 11:23:19 +01:00
reader.go core/state: expose the state reader stats (#31998) 2025-06-21 12:58:04 +08:00
state_object.go all: reuse the global hash buffer (#31839) 2025-06-18 15:29:14 +08:00
state_object_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
state_test.go all: implement state history v2 (#30107) 2025-01-17 02:59:02 +01:00
statedb.go all: reuse the global hash buffer (#31839) 2025-06-18 15:29:14 +08:00
statedb_fuzz_test.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
statedb_hooked.go core/tracing: state journal wrapper (#30441) 2025-02-05 13:58:25 +01:00
statedb_hooked_test.go core/tracing: stringer for gas and nonce change reasons (#31234) 2025-02-28 12:53:56 +01:00
statedb_test.go triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464) 2025-06-22 20:40:54 +08:00
stateupdate.go all: implement state history v2 (#30107) 2025-01-17 02:59:02 +01:00
sync.go core,eth,internal: fix typo (#29024) 2024-02-20 19:42:48 +08:00
sync_test.go triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464) 2025-06-22 20:40:54 +08:00
transient_storage.go core/state: better randomized testing (postcheck) on journalling (#29627) 2024-04-25 09:56:25 +02:00
trie_prefetcher.go metrics, cmd/geth: change init-process of metrics (#30814) 2024-12-10 13:27:29 +01:00
trie_prefetcher_test.go all: implement state history v2 (#30107) 2025-01-17 02:59:02 +01:00