Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Splitstore running with LOTUS_CHAINSTORE_SPLITSTORE_COLDSTORETYPE=discard does a lot of unnecessary work. #11778

Open
5 of 11 tasks
ribasushi opened this issue Mar 25, 2024 · 6 comments
Assignees
Labels
kind/bug Kind: Bug

Comments

@ribasushi
Copy link
Contributor

Checklist

  • This is not a security-related bug/issue. If it is, please follow please follow the security policy.
  • I have searched on the issue tracker and the lotus forum, and there is no existing related issue or discussion.
  • I am running the Latest release, the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.
  • I did not make any code changes to lotus.

Lotus component

  • lotus daemon - chain sync
  • lotus fvm/fevm - Lotus FVM and FEVM interactions
  • lotus miner/worker - sealing
  • lotus miner - proving(WindowPoSt/WinningPoSt)
  • lotus JSON-RPC API
  • lotus message management (mpool)
  • Other

Lotus Version

v1.26.0

Repro Steps

A typical state-only node (i.e. what an SP would run) is usually configured as:

LOTUS_CHAINSTORE_ENABLESPLITSTORE=1
LOTUS_CHAINSTORE_SPLITSTORE_COLDSTORETYPE=discard
LOTUS_CHAINSTORE_SPLITSTORE_MARKSETTYPE=badger
LOTUS_CHAINSTORE_SPLITSTORE_HOTSTOREFULLGCFREQUENCY=1
LOTUS_CHAINSTORE_SPLITSTORE_COLDSTOREFULLGCFREQUENCY=0

The expectation here is that once the GC loop awakens, it:

  • switches all writes to a brand new hotstore
  • walks the chain/state to copy what is needed to the hotstore
  • drops the older store entirely

However a typical log from such a setup looks like the one below. Note various calculations of coldsets culimnating with purged cold objects lines. This is quite unexpected as the original blockstore is deleted right after this anyway 🤔

2024-03-23T23:00:00.318Z        INFO    splitstore      splitstore/splitstore_compact.go:858    preparing compaction transaction
2024-03-23T23:00:00.318Z        INFO    splitstore      splitstore/splitstore_compact.go:155    compacting splitstore
2024-03-23T23:00:00.318Z        INFO    splitstore      splitstore/splitstore_compact.go:529    waiting for active views to complete
2024-03-23T23:00:00.318Z        INFO    splitstore      splitstore/splitstore_compact.go:532    waiting for active views done   {"took": 0.000208153}
2024-03-23T23:00:00.318Z        INFO    splitstore      splitstore/splitstore_compact.go:561    running compaction      {"currentEpoch": "3764280", "baseEpoch": "3759779", "boundaryEpoch": "3760680", "inclMsgsEpoch": "3760680", "compactionIndex": 316}
2024-03-23T23:00:00.373Z        INFO    splitstore      splitstore/splitstore_compact.go:582    protecting references with registered protectors
2024-03-23T23:00:00.387Z        INFO    splitstore      splitstore/splitstore_compact.go:510    protected 704 references through 1 protectors
2024-03-23T23:00:00.387Z        INFO    splitstore      splitstore/splitstore_compact.go:590    marking reachable objects
2024-03-24T03:37:04.228Z        INFO    splitstore      splitstore/splitstore_compact.go:1131   chain walk done {"walked": 17976211, "scanned": 17380, "walk size": 106998605179}
2024-03-24T03:37:04.229Z        INFO    splitstore      splitstore/splitstore_compact.go:646    marking done    {"took": 16623.842206758, "marked": 75380497}
2024-03-24T03:37:04.230Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 6061769}
2024-03-24T03:46:07.904Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 543.609838609, "protected": 2352445, "protected size": 3808673121}
2024-03-24T03:46:07.904Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 139713}
2024-03-24T03:46:30.640Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 22.734891501, "protected": 85782, "protected size": 141845289}
2024-03-24T03:46:30.640Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 1546}
2024-03-24T03:46:30.677Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 0.037617411, "protected": 183, "protected size": 115996}
2024-03-24T03:46:30.678Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 16}
2024-03-24T03:46:30.678Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 0.000280273, "protected": 1, "protected size": 2009}
2024-03-24T03:46:30.678Z        INFO    splitstore      splitstore/splitstore_compact.go:663    collecting cold objects
2024-03-24T04:12:28.383Z        INFO    splitstore      splitstore/splitstore_compact.go:728    cold collection done    {"took": 1557.705299515}
2024-03-24T04:12:28.383Z        INFO    splitstore      splitstore/splitstore_compact.go:730    compaction stats        {"hot": 77819224, "cold": 0, "purge": 3873964}
2024-03-24T04:12:28.384Z        INFO    splitstore      splitstore/splitstore_compact.go:1603   waiting for missing references
2024-03-24T04:12:28.384Z        INFO    splitstore      splitstore/splitstore_compact.go:1616   retrying for 712 missing references in 0s (attempt: 1)
2024-03-24T04:12:28.400Z        INFO    splitstore      splitstore/splitstore_compact.go:1616   retrying for 712 missing references in 1m0s (attempt: 2)
2024-03-24T04:13:28.417Z        INFO    splitstore      splitstore/splitstore_compact.go:1616   retrying for 712 missing references in 2m0s (attempt: 3)
2024-03-24T04:15:28.433Z        WARN    splitstore      splitstore/splitstore_compact.go:1656   still missing 712 references
2024-03-24T04:15:28.433Z        WARN    splitstore      splitstore/splitstore_compact.go:1658   unresolved missing reference: bafy2bzaceazjuqzgtoohmm4sesocobhmlntwdliq53z6s6hzfs3xtofq5qioq
2024-03-24T04:15:28.433Z        WARN    splitstore      splitstore/splitstore_compact.go:1658   unresolved missing reference: bafy2bzacebbtfl2nqmqpki54cup5xjowfz76dygy3fz5youul3uyk6tc3xqd6
2024-03-24T04:15:28.433Z        WARN    splitstore      splitstore/splitstore_compact.go:1658   unresolved missing reference: bafy2bzacedd2viizwn7xvkvyz2i56bunimwq2pf5scpqjqh3f7w7fzuianyd4
...
2024-03-24T04:15:28.447Z        WARN    splitstore      splitstore/splitstore_compact.go:1658   unresolved missing reference: bafy2bzacech2jesvnfcn3m3mzohdjpoquadiixx6qqf3ga6ahptcl2lw3wreo
2024-03-24T04:15:28.447Z        WARN    splitstore      splitstore/splitstore_compact.go:1658   unresolved missing reference: bafy2bzacea2l27gywl7zmxtphiytlph3ifr46s375meww5njczv72hfpn2vzm
2024-03-24T04:15:28.448Z        WARN    splitstore      splitstore/splitstore_compact.go:1658   unresolved missing reference: bafy2bzacedqo5iixuqx4z77axkdqjfacsxxzuuis5gzp2taxjifgahvtuigt2
2024-03-24T04:15:28.448Z        INFO    splitstore      splitstore/splitstore_compact.go:1607   waiting for missing references done     {"took": 180.063794422, "marked": 0}
2024-03-24T04:15:28.448Z        INFO    splitstore      splitstore/splitstore_compact.go:870    beginning critical section
2024-03-24T04:15:28.448Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 3540489}
2024-03-24T04:18:01.138Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 152.639520456, "protected": 255779, "protected size": 406782636}
2024-03-24T04:18:01.138Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 46489}
2024-03-24T04:18:07.423Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 6.284481943, "protected": 21801, "protected size": 34512897}
2024-03-24T04:18:07.423Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 9090}
2024-03-24T04:18:07.573Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 0.150330409, "protected": 13, "protected size": 5237}
2024-03-24T04:18:07.574Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 720}
2024-03-24T04:18:07.654Z        INFO    splitstore      splitstore/splitstore_compact.go:398    protecting transactional references     {"refs": 249}
2024-03-24T04:18:07.661Z        INFO    splitstore      splitstore/splitstore_compact.go:451    protecting transactional refs done      {"took": 0.006519503, "protected": 22, "protected size": 2681}
2024-03-24T04:18:07.661Z        INFO    splitstore      splitstore/splitstore_compact.go:897    waiting for sync
2024-03-24T04:18:30.298Z        INFO    splitstore      splitstore/splitstore_compact.go:904    waiting for sync done   {"took": 22.636658382}
2024-03-24T04:18:30.298Z        INFO    splitstore      splitstore/splitstore_compact.go:808    purging cold objects from the hotstore
2024-03-24T04:19:02.399Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzacedkun4a5f7tklxibcmdfnpfnia4gk7iq2vctiqskjgqc4haq35wus in bafy2bzacedxal6lq4462vq6mzk6efezm4n63bzyxniynm56llefulmdkvh7y4
2024-03-24T04:19:02.399Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzaced5mrfd2pjjnwtqmwgq2rlwcrm3xa5fqs74gxyx6j724s3wumpw6g in bafy2bzacedxal6lq4462vq6mzk6efezm4n63bzyxniynm56llefulmdkvh7y4
2024-03-24T04:19:02.996Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzacedkun4a5f7tklxibcmdfnpfnia4gk7iq2vctiqskjgqc4haq35wus in bafy2bzaceasonsg4rzq2jxurcuppd6zs7rxvpzncrizew5xdeuu4iru5nvpqw
2024-03-24T04:19:02.996Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzaced5mrfd2pjjnwtqmwgq2rlwcrm3xa5fqs74gxyx6j724s3wumpw6g in bafy2bzaceasonsg4rzq2jxurcuppd6zs7rxvpzncrizew5xdeuu4iru5nvpqw
2024-03-24T04:19:32.929Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzaceaii7gfjyu24u6vclm5aqwygdexf2np2m7crzhl4yz6lteqevdmfu in bafy2bzacebfrqe7as5r7l276lbmvftgaw6nankmhb654zkyrnhu4yqprkrppw
2024-03-24T04:19:32.929Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzacecdswcy36nfrnrztah6ionplfa2u2dsplfhz25ijdq3b7kfbhvyme in bafy2bzacebfrqe7as5r7l276lbmvftgaw6nankmhb654zkyrnhu4yqprkrppw
2024-03-24T04:19:33.174Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzaceaii7gfjyu24u6vclm5aqwygdexf2np2m7crzhl4yz6lteqevdmfu in bafy2bzaceaahzicwquwy3yzyj46eo5tq2fu46c7o2j6erazsorwdfadl7yfqw
2024-03-24T04:19:33.174Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzacecdswcy36nfrnrztah6ionplfa2u2dsplfhz25ijdq3b7kfbhvyme in bafy2bzaceaahzicwquwy3yzyj46eo5tq2fu46c7o2j6erazsorwdfadl7yfqw
2024-03-24T04:19:33.174Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzaceaii7gfjyu24u6vclm5aqwygdexf2np2m7crzhl4yz6lteqevdmfu in bafy2bzacea37p3fyswlrle6zahqomt6ecvmxpx2txvhmr4hovp3fg66od5uqy
2024-03-24T04:19:33.174Z        WARN    splitstore      splitstore/splitstore_compact.go:255    missing object reference bafy2bzacecdswcy36nfrnrztah6ionplfa2u2dsplfhz25ijdq3b7kfbhvyme in bafy2bzacea37p3fyswlrle6zahqomt6ecvmxpx2txvhmr4hovp3fg66od5uqy
2024-03-24T04:19:33.315Z        INFO    splitstore      splitstore/splitstore_compact.go:1362   purged cold objects     {"purged": 3873944, "live": 20}
2024-03-24T04:19:33.315Z        INFO    splitstore      splitstore/splitstore_compact.go:814    purging cold objects from hotstore done {"took": 63.016751594}
2024-03-24T04:19:33.315Z        INFO    splitstore      splitstore/splitstore_compact.go:950    ending critical section
2024-03-24T04:19:33.315Z        INFO    splitstore      splitstore/splitstore_compact.go:816    critical section done   {"total protected size": 4391939866, "total marked live size": 7180366}
2024-03-24T04:19:33.316Z        INFO    splitstore      splitstore/splitstore_gc.go:48  measured hot store size: 150870195222, approximate new size: 121358586083, should do full true, can do full true
2024-03-24T04:19:33.316Z        INFO    splitstore      splitstore/splitstore_gc.go:72  garbage collecting blockstore
2024-03-24T04:19:33.322Z        INFO    badgerbs        badger/blockstore.go:314        moving blockstore from /home/lotus/.lotus/datastore/splitstore/hot.badger to /srv/space/chain/hot.badger.1711253973322580088
2024-03-24T04:50:59.441Z        INFO    badgerbs        badger/blockstore.go:440        removing link /home/lotus/.lotus/datastore/splitstore/hot.badger.old.1711255840
2024-03-24T04:50:59.441Z        INFO    splitstore      splitstore/splitstore_gc.go:81  garbage collecting blockstore done      {"took": 1886.125662842}
2024-03-24T04:50:59.442Z        INFO    splitstore      splitstore/splitstore_gc.go:64  measured hot store size after GC: 144227728014
2024-03-24T04:51:00.086Z        INFO    splitstore      splitstore/splitstore_compact.go:160    compaction done {"took": 21059.768283158}

Describe the Bug

I ran into this while experimenting with different blockstores that do not implement the Delete* blockstore methods. Started digging because in the described discard configuration there should have been no way to enter this codepath: https://github.com/filecoin-project/lotus/blob/v1.26.0/blockstore/splitstore/splitstore_compact.go#L1438-L1449, yet it clearly does get hit.

I suspect there is a missing noop somewhere, as the original focus was on making the active coldstore case work. Given the discard setup is way more prevalent, ask is to review this when time permits ( wink-wink when @ZenGround0 is back 😻)

Not porposing a patch as I can't readily follow the code as written...

Logging Information

See up
@ZenGround0
Copy link
Contributor

This is a good point. I've made a simple change that should make using non-Delete supporting blockstores work for this configuration: #11880.

Let me know if there are any performance benefits noticed and I can open this up for real. It's possible to spend ~5-10x the work on figuring out exactly how much of the critical section code we can skip but I doubt there will be enough general motivation for me to go that route. If anyone figured that out wrote it up and PRed it I'd definitely review.

Also note I'm not deploying the optimization in the case of moving gc's triggered by oversized stores for simplicity and because the tradeoff should fall more towards redundant deleting in that case.

@ZenGround0 ZenGround0 self-assigned this Apr 15, 2024
@ribasushi
Copy link
Contributor Author

spend ~5-10x the work on figuring out exactly how much of the critical section code we can skip

I believe that in discard mode things can be rearranged so there is no critical section at all, so the above estimate is kinda inaccurate 😅

What I am suggesting, and consider to be safe is:

The advantage here is that at no point do you have a state where some blocks will be lost, you also don't spend ~7GiB maintaining marksets, and you don't walk the sets multiple times.

Not saying this has to be done right then and there, just pushing back that the complex safety dance is warranted at all in light of MovingGC.

@ZenGround0
Copy link
Contributor

Nice that sounds like a well thought out and reasonable change. It's probably not something I'm going to get to for a while but I'd review anything you or anyone else sent my way in the meantime.

If you've got any preliminary estimates of the wasted work please put them here to help in motivating the change.

@ribasushi
Copy link
Contributor Author

If you've got any preliminary estimates of the wasted work

@ZenGround0 this is taken from a live box, my notes prefixed with ####

#### previous compaction ended at some point
2024-04-18T18:14:02.532Z        INFO    splitstore      splitstore/splitstore_compact.go:161    compaction done {"took": 11642.326724433}

#### compaction kicks in, 10:30 
2024-04-18T22:30:30.227Z        INFO    splitstore      splitstore/splitstore_compact.go:859    preparing compaction transaction
2024-04-18T22:30:30.227Z        INFO    splitstore      splitstore/splitstore_compact.go:156    compacting splitstore
2024-04-18T22:30:30.227Z        INFO    splitstore      splitstore/splitstore_compact.go:530    waiting for active views to complete
2024-04-18T22:30:30.227Z        INFO    splitstore      splitstore/splitstore_compact.go:533    waiting for active views done   {"took": 0.00000011}
2024-04-18T22:30:30.227Z        INFO    splitstore      splitstore/splitstore_compact.go:562    running compaction      {"currentEpoch": "3839101", "baseEpoch": "3834600", "boundaryEpoch": "3835501", "inclMsgsEpoch": "3835501", "compactionIndex": 338}
2024-04-18T22:30:30.271Z        INFO    splitstore      splitstore/splitstore_compact.go:583    protecting references with registered protectors
2024-04-18T22:30:30.275Z        INFO    splitstore      splitstore/splitstore_compact.go:511    protected 900 references through 1 protectors

#### after minimal book-keeping the walk starts, still 10:30
2024-04-18T22:30:30.275Z        INFO    splitstore      splitstore/splitstore_compact.go:591    marking reachable objects

#### chain walk finishes, 2h:15m later.  If we were doing the double-write+discard: this is where we would be done
2024-04-19T00:43:22.110Z        INFO    splitstore      splitstore/splitstore_compact.go:1132   chain walk done {"walked": 18338482, "scanned": 17551, "walk size": 109736150855}
2024-04-19T00:43:22.110Z        INFO    splitstore      splitstore/splitstore_compact.go:647    marking done    {"took": 7971.835486386, "marked": 75666676}
2024-04-19T00:43:22.110Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 1401625}
2024-04-19T00:45:50.305Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 148.190733457, "protected": 1089896, "protected size": 1770652155}
2024-04-19T00:45:50.305Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 39611}
2024-04-19T00:45:53.562Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 3.257028861, "protected": 19973, "protected size": 33138337}
2024-04-19T00:45:53.562Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 306}
2024-04-19T00:45:53.564Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 0.002156554, "protected": 8, "protected size": 10425}
2024-04-19T00:45:53.564Z        INFO    splitstore      splitstore/splitstore_compact.go:664    collecting cold objects
2024-04-19T01:21:03.447Z        INFO    splitstore      splitstore/splitstore_compact.go:729    cold collection done    {"took": 2109.882403991}
2024-04-19T01:21:03.447Z        INFO    splitstore      splitstore/splitstore_compact.go:731    compaction stats        {"hot": 76776652, "cold": 0, "purge": 31872786}
2024-04-19T01:21:03.447Z        INFO    splitstore      splitstore/splitstore_compact.go:1620   waiting for missing references
2024-04-19T01:21:03.447Z        INFO    splitstore      splitstore/splitstore_compact.go:1633   retrying for 577 missing references in 0s (attempt: 1)
2024-04-19T01:21:03.451Z        INFO    splitstore      splitstore/splitstore_compact.go:1633   retrying for 577 missing references in 1m0s (attempt: 2)
2024-04-19T01:22:03.456Z        INFO    splitstore      splitstore/splitstore_compact.go:1633   retrying for 577 missing references in 2m0s (attempt: 3)
2024-04-19T01:24:03.460Z        WARN    splitstore      splitstore/splitstore_compact.go:1673   still missing 577 references
2024-04-19T01:24:03.463Z        INFO    splitstore      splitstore/splitstore_compact.go:1624   waiting for missing references done     {"took": 180.016592517, "marked": 0}
2024-04-19T01:24:03.463Z        INFO    splitstore      splitstore/splitstore_compact.go:871    beginning critical section
2024-04-19T01:24:03.463Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 451025}
2024-04-19T01:24:47.721Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 44.256593237, "protected": 312168, "protected size": 507603365}
2024-04-19T01:24:47.721Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 18344}
2024-04-19T01:24:48.993Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 1.272144382, "protected": 7385, "protected size": 12366489}
2024-04-19T01:24:48.993Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 216}
2024-04-19T01:24:48.994Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 0.001029779, "protected": 10, "protected size": 4284}
2024-04-19T01:24:48.994Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 15}
2024-04-19T01:24:49.019Z        INFO    splitstore      splitstore/splitstore_compact.go:399    protecting transactional references     {"refs": 24}
2024-04-19T01:24:49.020Z        INFO    splitstore      splitstore/splitstore_compact.go:452    protecting transactional refs done      {"took": 0.000338611, "protected": 2, "protected size": 4020}
2024-04-19T01:24:49.020Z        INFO    splitstore      splitstore/splitstore_compact.go:898    waiting for sync
2024-04-19T01:25:00.124Z        INFO    splitstore      splitstore/splitstore_compact.go:905    waiting for sync done   {"took": 11.10491354}
2024-04-19T01:25:00.125Z        INFO    splitstore      splitstore/splitstore_compact.go:809    purging cold objects from the hotstore
2024-04-19T01:33:55.821Z        INFO    splitstore      splitstore/splitstore_compact.go:1363   purged cold objects     {"purged": 31872650, "live": 136}
2024-04-19T01:33:55.822Z        INFO    splitstore      splitstore/splitstore_compact.go:815    purging cold objects from hotstore done {"took": 535.696978518}
2024-04-19T01:33:55.822Z        INFO    splitstore      splitstore/splitstore_compact.go:951    ending critical section
2024-04-19T01:33:55.822Z        INFO    splitstore      splitstore/splitstore_compact.go:817    critical section done   {"total protected size": 2323779075, "total marked live size": 129462916}

#### it is 1:33, another 50 minutes after the initial walk was finished. This could be dropped ( roughly a quarter of the total time ~3h time)
2024-04-19T01:33:55.822Z        WARN    splitstore      splitstore/splitstore_gc.go:32  error getting hotstore size: blockstore does not support the Size() method, estimating empty hot store for targeting
2024-04-19T01:33:55.822Z        INFO    splitstore      splitstore/splitstore_gc.go:48  measured hot store size: 0, approximate new size: 122016804302, should do full true, can do full true
2024-04-19T01:33:55.822Z        INFO    splitstore      splitstore/splitstore_gc.go:72  garbage collecting blockstore
2024-04-19T01:33:55.822Z        INFO    badgerbs        badger/blockstore.go:392        moving blockstore from /home/lotus/.lotus/datastore/splitstore/hot.badger to /srv/data/lotus/hot.badger.1713490435822150252
2024-04-19T01:49:28.407Z        INFO    badgerbs        badger/blockstore.go:591        removing link /home/lotus/.lotus/datastore/splitstore/hot.badger.old.1713491360
2024-04-19T01:49:28.407Z        INFO    splitstore      splitstore/splitstore_gc.go:81  garbage collecting blockstore done      {"took": 932.585799977}
2024-04-19T01:49:28.407Z        WARN    splitstore      splitstore/splitstore_gc.go:32  error getting hotstore size: blockstore does not support the Size() method, estimating empty hot store for targeting
2024-04-19T01:49:28.407Z        INFO    splitstore      splitstore/splitstore_gc.go:64  measured hot store size after GC: 0
2024-04-19T01:49:28.786Z        INFO    splitstore      splitstore/splitstore_compact.go:161    compaction done {"took": 11938.558167483}

@ZenGround0
Copy link
Contributor

Very useful information, thank you.

Is this with or without the patch in #11880? Im curious to see how much if at all that helped.

@ribasushi
Copy link
Contributor Author

@ZenGround0 you missed my writeup there: #11880 (comment)

Yes, the patch is removed above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Kind: Bug
Projects
None yet
Development

No branches or pull requests

2 participants