Commit Graph
12439 Commits
Author SHA1 Message Date
vyzo 40f42db7fa walk tweaks 2021-07-04 18:38:28 +03:00
vyzo 09efed50fd check for lookback references to block headers in walk 2021-07-04 18:38:28 +03:00
vyzo 7de0771883 count txn live objects explicitly for logging 2021-07-04 18:38:28 +03:00
vyzo e29b64c5de check both markset and txn liveset before declaring an object cold 2021-07-04 18:38:28 +03:00
vyzo 4bed3161f0 fix broken purge count log 2021-07-04 18:38:28 +03:00
vyzo 7307eb54dc cache stack repr computation 2021-07-04 18:38:28 +03:00
vyzo 57e25ae1cd use succint timetamp in debug logs 2021-07-04 18:38:28 +03:00
vyzo b2b13bbe89 fix debug panic 2021-07-04 18:38:28 +03:00
vyzo 0b315e97c8 fix index out of range 2021-07-04 18:38:28 +03:00
vyzo dec61fa333 deduplicate stack logs and optionally trace write stacks 2021-07-04 18:38:28 +03:00
vyzo 7ebef6d838 better log message 2021-07-04 18:38:28 +03:00
vyzo 40ff5bf164 log put errors in splitstore log 2021-07-04 18:38:28 +03:00
vyzo 9fda61abec fix error check for unreachable cids 2021-07-04 18:38:28 +03:00
vyzo 4a71c68e06 move code around for better readability 2021-07-04 18:38:28 +03:00
vyzo 31497f4bd3 use internal get during walk to avoid blowing the compaction txn
otherwise the walk itself precludes purge... duh!
2021-07-04 18:38:28 +03:00
vyzo 6af3a23dd4 use a map for txn protection mark set 2021-07-04 18:38:28 +03:00
vyzo 65ccc99e79 minor tweaks in purge
- allocate once
- log purge count
2021-07-04 18:38:28 +03:00
vyzo cb665d07e0 fix transactional race during compaction
It is possible for an object to be written or recreated (and checked with Has)
after the mark completes and during the purge; if this happens we will purge
a live block.
2021-07-04 18:38:28 +03:00
vyzo 649b7dd162 add config option for hot headers 2021-07-04 18:38:28 +03:00
vyzo 50ebaf25aa don't log read misses before warmup 2021-07-04 18:38:28 +03:00
vyzo 375a1790e7 reset counters after flush 2021-07-04 18:38:28 +03:00
vyzo b187b5c301 fix lint 2021-07-04 18:38:28 +03:00
vyzo a53c4e1597 implement debug log 2021-07-04 18:38:28 +03:00
vyzo fce7b8dc9b flush move log when cold collection is done 2021-07-04 18:38:28 +03:00
vyzo fc247e4223 add debug log skeleton 2021-07-04 18:38:28 +03:00
vyzo 0390285c4e always do full walks, not only when there is a sync gap 2021-07-04 18:38:28 +03:00
vyzo 30dbe4978b adjust compaction range 2021-07-04 18:38:28 +03:00
vyzo a21f55919b CompactionThreshold should be 4 finalities
otherwise we'll wear clown shoes with the slack and end up in continuous compaction.
2021-07-04 18:38:28 +03:00
vyzo 79d21489df fix test 2021-07-04 18:38:28 +03:00
vyzo a25ac80777 reintroduce compaction slack 2021-07-04 18:38:28 +03:00
vyzo a178c1fb93 fix test 2021-07-04 18:38:28 +03:00
vyzo c4d95de987 coalesce back-to-back compactions
get rid of the CompactionCold construct, run a single compaction on catch up
2021-07-04 18:38:28 +03:00
vyzo b7897595eb augment current epoch by +1
to account for off by one conditions
2021-07-04 18:38:28 +03:00
vyzo 933c786421 update write epoch in the background every second 2021-07-04 18:38:28 +03:00
vyzo 66f1630f14 fix lint issue 2021-07-04 18:38:28 +03:00
vyzo bb17608ae0 track writeEpoch relative to current wall clock time
The issue: head change notifications are not emitted until after catching up,
which results in all writes during a catch up period being tracked at the base epoch.
2021-07-04 18:38:28 +03:00
vyzo 421f05eab9 save the warm up epoch only if successful in warming up 2021-07-04 18:38:28 +03:00
vyzo 9b6448518c refactor warmup to trigger at startup and not wait for sync 2021-07-04 18:38:28 +03:00
vyzo 3fe4261f12 don't attempt compaction while still syncing 2021-07-04 18:38:28 +03:00
vyzo 7b02673620 don't try to visit genesis parent blocks 2021-07-04 18:38:28 +03:00
vyzo 997f2c098b keep headers hot when running with a noop splitstore 2021-07-04 18:38:28 +03:00
vyzo 7c814cd2e3 refactor genesis state loading code into its own method 2021-07-04 18:38:28 +03:00
vyzo 41573f1fb2 also walk parent message receipts when including messages in the walk 2021-07-04 18:38:28 +03:00
vyzo fa6481401d reduce SyncGapTime to 1 minute
for maximal safety.
2021-07-04 18:38:28 +03:00
vyzo fda291b876 fix test 2021-07-04 18:38:28 +03:00
vyzo d33a44e67f first visit the cid, then short-circuit non dagcbor objects 2021-07-04 18:38:28 +03:00
vyzo bdb97d6186 more robust handling of sync gap walks 2021-07-04 18:38:28 +03:00
vyzo 7cf75e667d keep genesis-linked state hot 2021-07-04 18:38:28 +03:00
vyzo e9f531b4aa don't open bolt tracking store with NoSync, it might get corrupted 2021-07-04 18:38:28 +03:00
Raúl Kripalani b2b7eb2ded metrics: increment misses in View(). 2021-07-04 18:38:28 +03:00