Open fridrik01 opened 1 year ago
Newbie question: what was the reason for having 3 separate databases to begin with?
I believe the idea was that it made it easy to tell if one was getting large and remove/disable it. I'd kind of like to introduce (even in shed) some form of GC command before we unify them, but I do think unifying them is the way to go (that and re-organizing our tables to massively reduce the amount of duplicate data).
In terms of: why multiple observers? We wanted to keep these subsystems separate. But I wouldn't be opposed to a new architecture here (that, e.g., lets us cleanly keep track of what we've indexed and what we haven't) as long as we can make it somewhat pluggable. HOWEVER, if we want to be able to enable/disable these indices independently... we'll need to track what has been indexed and what has not been indexed independently as well.
See https://github.com/filecoin-project/fvm-pm/issues/299
Lotus currently uses the following sqlite databases:
We should try to unify all the different databases into one which should make maintaining correctness and doing recovery/backfilling simpler.
Also, we make sure we handle the following:
Be able to configure lookback so these indices don't grow endlesslyNot needed as the indexes are tiny compared to chain data (less than 0.25%)11007