Commit Graph
10836 Commits
Author SHA1 Message Date
Raúl Kripalani 8cfba5b092 renames and polish. 2021-03-05 14:46:18 +02:00
Raúl Kripalani b1b452bc0f remove dependency from blockstore/splitstore => chain/store. 2021-03-05 14:46:18 +02:00
vyzo b9400c590f use crypto/rand for bloom salt 2021-03-05 14:46:18 +02:00
vyzo e612fff1fe also estimate liveset size during warm up 2021-03-05 14:46:18 +02:00
vyzo 748dd962d8 snake current tipset from head change notification 2021-03-05 14:46:18 +02:00
vyzo cb36d5b6a4 warm up splitstore at first head change notification 2021-03-05 14:46:18 +02:00
Raúl Kripalani 1a804fbdec move splitstore into blockstore package. 2021-03-05 14:46:18 +02:00
Raúl Kripalani 1b51c10d78 split off lmdb support to a different branch. 2021-03-05 14:46:18 +02:00
vyzo 3733456bca go mod tidy 2021-03-05 14:46:18 +02:00
vyzo 0fc2f3a26f fix post-rebase compilation errors 2021-03-05 14:46:18 +02:00
vyzo 3282f856ec fix tests 2021-03-05 14:46:18 +02:00
vyzo 99c6e4f48f adjust min bloom filter size 2021-03-05 14:46:18 +02:00
vyzo cae5ddce88 dynamically size bloom filters 2021-03-05 14:46:18 +02:00
vyzo 5639261e44 make compaction parameters variable 2021-03-05 14:46:18 +02:00
vyzo 7587ab6234 quiet the stupid linter 2021-03-05 14:46:18 +02:00
vyzo e582f0b713 remove references to splitstore from lotus-shed 2021-03-05 14:46:18 +02:00
vyzo 05fee27840 remove stale references to lmdb from splitstore implementation 2021-03-05 14:46:18 +02:00
vyzo f62999d2b8 use named constants for bloom filter parameters 2021-03-05 14:46:18 +02:00
vyzo 44aadb931a rehash salted keys in bloom filter 2021-03-05 14:46:17 +02:00
vyzo 88849201ff fix tests 2021-03-05 14:46:17 +02:00
vyzo f5ce7957f3 size bloom filter for 50M objects 2021-03-05 14:46:17 +02:00
vyzo f4c6bc6a86 comment nomenclature 2021-03-05 14:46:17 +02:00
vyzo 4cc672d0c5 batch move objects from coldstore to hotstore 2021-03-05 14:46:17 +02:00
vyzo 97abbe1eca add (salted) bloom filter liveset 2021-03-05 14:46:17 +02:00
vyzo aba6530411 batch deletion for purging the tracking store 2021-03-05 14:46:17 +02:00
vyzo 09cd1175a1 structured log for beginning of compaction 2021-03-05 14:46:17 +02:00
vyzo e52c709d8a more accurate setting of skip params 2021-03-05 14:46:17 +02:00
vyzo 2426ffb277 better logging plus moving some code around 2021-03-05 14:46:17 +02:00
vyzo 2f26026991 compactSimple should walk the cold epoch at depth 1
So that it finds reachable objects that should stay in the hotstore
2021-03-05 14:46:17 +02:00
vyzo 783dcda19c add Sync to the tracking store 2021-03-05 14:46:17 +02:00
vyzo 364076c1ea set NoSync option for bolt livesets 2021-03-05 14:46:17 +02:00
vyzo 73259aa350 add configuration for splitstore and default to a simple compaction algorithm 2021-03-05 14:46:17 +02:00
vyzo 2e4d45ef07 test for bolt backed tracking store 2021-03-05 14:46:17 +02:00
vyzo f1c61c4753 implement bolt backed tracking store 2021-03-05 14:46:17 +02:00
vyzo b83994797a separate LMDB options for hotstore and tracking stores 2021-03-05 14:46:17 +02:00
vyzo 2c1a9781cf add test for bolt liveset 2021-03-05 14:46:17 +02:00
vyzo 27a9b974db implement bolt-backed liveset 2021-03-05 14:46:17 +02:00
vyzo cb1789ea6e gomod: use bolt 2021-03-05 14:46:17 +02:00
vyzo 68b6f913c7 propagate useLMDB option to splitstore through DI 2021-03-05 14:46:17 +02:00
vyzo 923a3db4b0 abstract tracking store and live set construction 2021-03-05 14:46:17 +02:00
vyzo 8f0ddac41a add comment 2021-03-05 14:46:17 +02:00
vyzo e79445123f handle MDB_KEY_EXIST in tracking store Puts 2021-03-05 14:46:17 +02:00
vyzo 9977f5c3ec rewrite sweep logic to avoid doing writes/deletes nested in a read txn 2021-03-05 14:46:17 +02:00
vyzo ee751f88cd refactor lmdb specific snoop/liveset code into their own files
paves the way for different back ends
2021-03-05 14:46:17 +02:00
vyzo 99c7d8e3eb more informative names for the hotstore directories 2021-03-05 14:46:17 +02:00
vyzo 8e12377e69 handle consistency edge case 2021-03-05 14:46:17 +02:00
vyzo 31268ba685 walk snapshot the same way snapshot exporting does; skip old msgs and receipts by default.
so that we don't panic with missing blocks in non-archival nodes
2021-03-05 14:46:17 +02:00
vyzo 5068d51ac3 use CompactionCold epochs for delinating the cold epoch cliff
this allows us to change the thresholds for testing.
2021-03-05 14:46:17 +02:00
vyzo d44719dbd3 amend confusing comment 2021-03-05 14:46:17 +02:00
vyzo 842ec43c2f get rid of goroutine iteration in tracking store; long live ForEach 2021-03-05 14:46:17 +02:00