From 71b21db0d9e846ceae006aa764c4e82240a62afa Mon Sep 17 00:00:00 2001 From: zenground0 Date: Fri, 3 Mar 2023 11:14:52 -0500 Subject: [PATCH] chain prune hot -- hotstore online gc --- api/api_full.go | 11 +++- api/mocks/mock_full.go | 14 +++++ api/proxy_gen.go | 13 ++++ api/v0api/gomock_reflect_637439595/prog.go | 64 ++++++++++++++++++++ api/version.go | 2 +- blockstore/badger/blockstore.go | 60 ++++++++++++++++-- blockstore/badger/blockstore_test.go | 4 +- blockstore/blockstore.go | 16 ++++- blockstore/splitstore/splitstore_compact.go | 2 +- blockstore/splitstore/splitstore_gc.go | 20 +++++- blockstore/splitstore/splitstore_prune.go | 13 ++++ build/openrpc/full.json.gz | Bin 33490 -> 33602 bytes build/openrpc/gateway.json.gz | Bin 8480 -> 8480 bytes build/openrpc/miner.json.gz | Bin 16042 -> 16043 bytes build/openrpc/worker.json.gz | Bin 5226 -> 5225 bytes cli/chain.go | 33 +++++++++- documentation/en/api-v1-unstable-methods.md | 22 ++++++- documentation/en/cli-lotus.md | 38 +++++++++++- node/impl/full/chain.go | 11 ++++ 19 files changed, 305 insertions(+), 18 deletions(-) create mode 100644 api/v0api/gomock_reflect_637439595/prog.go diff --git a/api/api_full.go b/api/api_full.go index 99955e537..a3ff77978 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -183,10 +183,14 @@ type FullNode interface { // nodes. ChainExportRangeInternal(ctx context.Context, head, tail types.TipSetKey, cfg ChainExportConfig) error //perm:admin - // ChainPrune prunes the stored chain state and garbage collects; only supported if you + // ChainPrune forces compaction on cold store and garbage collects; only supported if you // are using the splitstore ChainPrune(ctx context.Context, opts PruneOpts) error //perm:admin + // ChainHotGC does online (badger) GC on the hot store; only supported if you are using + // the splitstore + ChainHotGC(ctx context.Context, opts HotGCOpts) error //perm:admin + // ChainCheckBlockstore performs an (asynchronous) health check on the chain/state blockstore // if supported by the underlying implementation. ChainCheckBlockstore(context.Context) error //perm:admin @@ -1354,6 +1358,11 @@ type PruneOpts struct { RetainState int64 } +type HotGCOpts struct { + Threshold float64 + Periodic bool +} + type EthTxReceipt struct { TransactionHash ethtypes.EthHash `json:"transactionHash"` TransactionIndex ethtypes.EthUint64 `json:"transactionIndex"` diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index 87da67179..7567c7171 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -394,6 +394,20 @@ func (mr *MockFullNodeMockRecorder) ChainHead(arg0 interface{}) *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHead", reflect.TypeOf((*MockFullNode)(nil).ChainHead), arg0) } +// ChainHotGC mocks base method. +func (m *MockFullNode) ChainHotGC(arg0 context.Context, arg1 api.HotGCOpts) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ChainHotGC", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// ChainHotGC indicates an expected call of ChainHotGC. +func (mr *MockFullNodeMockRecorder) ChainHotGC(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChainHotGC", reflect.TypeOf((*MockFullNode)(nil).ChainHotGC), arg0, arg1) +} + // ChainNotify mocks base method. func (m *MockFullNode) ChainNotify(arg0 context.Context) (<-chan []*api.HeadChange, error) { m.ctrl.T.Helper() diff --git a/api/proxy_gen.go b/api/proxy_gen.go index b5163f558..17be4088d 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -172,6 +172,8 @@ type FullNodeMethods struct { ChainHead func(p0 context.Context) (*types.TipSet, error) `perm:"read"` + ChainHotGC func(p0 context.Context, p1 HotGCOpts) error `perm:"admin"` + ChainNotify func(p0 context.Context) (<-chan []*HeadChange, error) `perm:"read"` ChainPrune func(p0 context.Context, p1 PruneOpts) error `perm:"admin"` @@ -1617,6 +1619,17 @@ func (s *FullNodeStub) ChainHead(p0 context.Context) (*types.TipSet, error) { return nil, ErrNotSupported } +func (s *FullNodeStruct) ChainHotGC(p0 context.Context, p1 HotGCOpts) error { + if s.Internal.ChainHotGC == nil { + return ErrNotSupported + } + return s.Internal.ChainHotGC(p0, p1) +} + +func (s *FullNodeStub) ChainHotGC(p0 context.Context, p1 HotGCOpts) error { + return ErrNotSupported +} + func (s *FullNodeStruct) ChainNotify(p0 context.Context) (<-chan []*HeadChange, error) { if s.Internal.ChainNotify == nil { return nil, ErrNotSupported diff --git a/api/v0api/gomock_reflect_637439595/prog.go b/api/v0api/gomock_reflect_637439595/prog.go new file mode 100644 index 000000000..39ca2319d --- /dev/null +++ b/api/v0api/gomock_reflect_637439595/prog.go @@ -0,0 +1,64 @@ +package main + +import ( + "encoding/gob" + "flag" + "fmt" + "os" + "path" + "reflect" + + "github.com/golang/mock/mockgen/model" + + pkg_ "github.com/filecoin-project/lotus/api/v0api" +) + +var output = flag.String("output", "", "The output file name, or empty to use stdout.") + +func main() { + flag.Parse() + + its := []struct { + sym string + typ reflect.Type + }{ + + {"FullNode", reflect.TypeOf((*pkg_.FullNode)(nil)).Elem()}, + } + pkg := &model.Package{ + // NOTE: This behaves contrary to documented behaviour if the + // package name is not the final component of the import path. + // The reflect package doesn't expose the package name, though. + Name: path.Base("github.com/filecoin-project/lotus/api/v0api"), + } + + for _, it := range its { + intf, err := model.InterfaceFromInterfaceType(it.typ) + if err != nil { + fmt.Fprintf(os.Stderr, "Reflection: %v\n", err) + os.Exit(1) + } + intf.Name = it.sym + pkg.Interfaces = append(pkg.Interfaces, intf) + } + + outfile := os.Stdout + if len(*output) != 0 { + var err error + outfile, err = os.Create(*output) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to open output file %q", *output) + } + defer func() { + if err := outfile.Close(); err != nil { + fmt.Fprintf(os.Stderr, "failed to close output file %q", *output) + os.Exit(1) + } + }() + } + + if err := gob.NewEncoder(outfile).Encode(pkg); err != nil { + fmt.Fprintf(os.Stderr, "gob encode: %v\n", err) + os.Exit(1) + } +} diff --git a/api/version.go b/api/version.go index 9c2113578..dc03c4a97 100644 --- a/api/version.go +++ b/api/version.go @@ -55,7 +55,7 @@ func VersionForType(nodeType NodeType) (Version, error) { // semver versions of the rpc api exposed var ( FullAPIVersion0 = newVer(1, 5, 0) - FullAPIVersion1 = newVer(2, 3, 0) + FullAPIVersion1 = newVer(2, 4, 0) MinerAPIVersion0 = newVer(1, 5, 0) WorkerAPIVersion0 = newVer(1, 7, 0) diff --git a/blockstore/badger/blockstore.go b/blockstore/badger/blockstore.go index da4f9f67d..3087c01f7 100644 --- a/blockstore/badger/blockstore.go +++ b/blockstore/badger/blockstore.go @@ -20,6 +20,7 @@ import ( pool "github.com/libp2p/go-buffer-pool" "github.com/multiformats/go-base32" "go.uber.org/zap" + "golang.org/x/xerrors" "github.com/filecoin-project/lotus/blockstore" ) @@ -44,7 +45,8 @@ const ( // MemoryMap is equivalent to badger/options.MemoryMap. MemoryMap = options.MemoryMap // LoadToRAM is equivalent to badger/options.LoadToRAM. - LoadToRAM = options.LoadToRAM + LoadToRAM = options.LoadToRAM + defaultGCThreshold = 0.125 ) // Options embeds the badger options themselves, and augments them with @@ -439,7 +441,7 @@ func (b *Blockstore) deleteDB(path string) { } } -func (b *Blockstore) onlineGC() error { +func (b *Blockstore) onlineGC(ctx context.Context, threshold float64) error { b.lockDB() defer b.unlockDB() @@ -448,6 +450,9 @@ func (b *Blockstore) onlineGC() error { if nworkers < 2 { nworkers = 2 } + if nworkers > 7 { // max out at 1 goroutine per badger level + nworkers = 7 + } err := b.db.Flatten(nworkers) if err != nil { @@ -455,7 +460,12 @@ func (b *Blockstore) onlineGC() error { } for err == nil { - err = b.db.RunValueLogGC(0.125) + select { + case <-ctx.Done(): + err = ctx.Err() + default: + err = b.db.RunValueLogGC(threshold) + } } if err == badger.ErrNoRewrite { @@ -468,7 +478,7 @@ func (b *Blockstore) onlineGC() error { // CollectGarbage compacts and runs garbage collection on the value log; // implements the BlockstoreGC trait -func (b *Blockstore) CollectGarbage(opts ...blockstore.BlockstoreGCOption) error { +func (b *Blockstore) CollectGarbage(ctx context.Context, opts ...blockstore.BlockstoreGCOption) error { if err := b.access(); err != nil { return err } @@ -485,8 +495,48 @@ func (b *Blockstore) CollectGarbage(opts ...blockstore.BlockstoreGCOption) error if options.FullGC { return b.movingGC() } + threshold := options.Threshold + if threshold == 0 { + threshold = defaultGCThreshold + } + return b.onlineGC(ctx, threshold) +} - return b.onlineGC() +// GCOnce runs garbage collection on the value log; +// implements BlockstoreGCOnce trait +func (b *Blockstore) GCOnce(ctx context.Context, opts ...blockstore.BlockstoreGCOption) error { + if err := b.access(); err != nil { + return err + } + defer b.viewers.Done() + + var options blockstore.BlockstoreGCOptions + for _, opt := range opts { + err := opt(&options) + if err != nil { + return err + } + } + if options.FullGC { + return xerrors.Errorf("FullGC option specified for GCOnce but full GC is non incremental") + } + + threshold := options.Threshold + if threshold == 0 { + threshold = defaultGCThreshold + } + + b.lockDB() + defer b.unlockDB() + + // Note no compaction needed before single GC as we will hit at most one vlog anyway + err := b.db.RunValueLogGC(threshold) + if err == badger.ErrNoRewrite { + // not really an error in this case, it signals the end of GC + return nil + } + + return err } // Size returns the aggregate size of the blockstore diff --git a/blockstore/badger/blockstore_test.go b/blockstore/badger/blockstore_test.go index fc81be43e..bf85104bb 100644 --- a/blockstore/badger/blockstore_test.go +++ b/blockstore/badger/blockstore_test.go @@ -145,7 +145,7 @@ func testMove(t *testing.T, optsF func(string) Options) { return nil }) g.Go(func() error { - return db.CollectGarbage(blockstore.WithFullGC(true)) + return db.CollectGarbage(ctx, blockstore.WithFullGC(true)) }) err = g.Wait() @@ -230,7 +230,7 @@ func testMove(t *testing.T, optsF func(string) Options) { checkPath() // now do another FullGC to test the double move and following of symlinks - if err := db.CollectGarbage(blockstore.WithFullGC(true)); err != nil { + if err := db.CollectGarbage(ctx, blockstore.WithFullGC(true)); err != nil { t.Fatal(err) } diff --git a/blockstore/blockstore.go b/blockstore/blockstore.go index f2fb00e8a..be1f1199f 100644 --- a/blockstore/blockstore.go +++ b/blockstore/blockstore.go @@ -36,7 +36,12 @@ type BlockstoreIterator interface { // BlockstoreGC is a trait for blockstores that support online garbage collection type BlockstoreGC interface { - CollectGarbage(options ...BlockstoreGCOption) error + CollectGarbage(ctx context.Context, options ...BlockstoreGCOption) error +} + +// BlockstoreGCOnce is a trait for a blockstore that supports incremental online garbage collection +type BlockstoreGCOnce interface { + GCOnce(ctx context.Context, options ...BlockstoreGCOption) error } // BlockstoreGCOption is a functional interface for controlling blockstore GC options @@ -45,6 +50,8 @@ type BlockstoreGCOption = func(*BlockstoreGCOptions) error // BlockstoreGCOptions is a struct with GC options type BlockstoreGCOptions struct { FullGC bool + // fraction of garbage in badger vlog before its worth processing in online GC + Threshold float64 } func WithFullGC(fullgc bool) BlockstoreGCOption { @@ -54,6 +61,13 @@ func WithFullGC(fullgc bool) BlockstoreGCOption { } } +func WithThreshold(threshold float64) BlockstoreGCOption { + return func(opts *BlockstoreGCOptions) error { + opts.Threshold = threshold + return nil + } +} + // BlockstoreSize is a trait for on-disk blockstores that can report their size type BlockstoreSize interface { Size() (int64, error) diff --git a/blockstore/splitstore/splitstore_compact.go b/blockstore/splitstore/splitstore_compact.go index cb24a3991..59bdd515d 100644 --- a/blockstore/splitstore/splitstore_compact.go +++ b/blockstore/splitstore/splitstore_compact.go @@ -794,7 +794,7 @@ func (s *SplitStore) doCompact(curTs *types.TipSet) error { // we are done; do some housekeeping s.endTxnProtect() - s.gcHotstore() + s.gcHotAfterCompaction() err = s.setBaseEpoch(boundaryEpoch) if err != nil { diff --git a/blockstore/splitstore/splitstore_gc.go b/blockstore/splitstore/splitstore_gc.go index c9be94d2e..3b53b8042 100644 --- a/blockstore/splitstore/splitstore_gc.go +++ b/blockstore/splitstore/splitstore_gc.go @@ -7,7 +7,7 @@ import ( bstore "github.com/filecoin-project/lotus/blockstore" ) -func (s *SplitStore) gcHotstore() { +func (s *SplitStore) gcHotAfterCompaction() { var opts []bstore.BlockstoreGCOption if s.cfg.HotStoreFullGCFrequency > 0 && s.compactionIndex%int64(s.cfg.HotStoreFullGCFrequency) == 0 { opts = append(opts, bstore.WithFullGC(true)) @@ -23,7 +23,7 @@ func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreG log.Info("garbage collecting blockstore") startGC := time.Now() - if err := gc.CollectGarbage(opts...); err != nil { + if err := gc.CollectGarbage(s.ctx, opts...); err != nil { return err } @@ -33,3 +33,19 @@ func (s *SplitStore) gcBlockstore(b bstore.Blockstore, opts []bstore.BlockstoreG return fmt.Errorf("blockstore doesn't support garbage collection: %T", b) } + +func (s *SplitStore) gcBlockstoreOnce(b bstore.Blockstore, opts []bstore.BlockstoreGCOption) error { + if gc, ok := b.(bstore.BlockstoreGCOnce); ok { + log.Debug("gc blockstore once") + startGC := time.Now() + + if err := gc.GCOnce(s.ctx, opts...); err != nil { + return err + } + + log.Debugw("gc blockstore once done", "took", time.Since(startGC)) + return nil + } + + return fmt.Errorf("blockstore doesn't support gc once: %T", b) +} diff --git a/blockstore/splitstore/splitstore_prune.go b/blockstore/splitstore/splitstore_prune.go index 4a38045e8..2ff5e435f 100644 --- a/blockstore/splitstore/splitstore_prune.go +++ b/blockstore/splitstore/splitstore_prune.go @@ -47,6 +47,19 @@ var ( PruneThreshold = 7 * build.Finality ) +// GCHotstore runs online GC on the chain state in the hotstore according the to options specified +func (s *SplitStore) GCHotStore(opts api.HotGCOpts) error { + gcOpts := []bstore.BlockstoreGCOption{bstore.WithThreshold(opts.Threshold)} + + var err error + if opts.Periodic { + err = s.gcBlockstore(s.hot, gcOpts) + } else { + err = s.gcBlockstoreOnce(s.hot, gcOpts) + } + return err +} + // PruneChain instructs the SplitStore to prune chain state in the coldstore, according to the // options specified. func (s *SplitStore) PruneChain(opts api.PruneOpts) error { diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 9f3cec62820512793813f9de645be73b91bb7069..0b63bc6b992e59adba09f600b184e74c9a933f7b 100644 GIT binary patch delta 31268 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 delta 31111 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

* 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 delta 12482 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 GE&%{jvwxZZ delta 3897 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 Htu6ro)@PUE diff --git a/cli/chain.go b/cli/chain.go index c762faa8c..34f497e5b 100644 --- a/cli/chain.go +++ b/cli/chain.go @@ -1591,7 +1591,38 @@ func createExportFile(app *cli.App, path string) (io.WriteCloser, error) { var ChainPruneCmd = &cli.Command{ Name: "prune", - Usage: "prune the stored chain state and perform garbage collection", + Usage: "splitstore gc", + Subcommands: []*cli.Command{ + chainPruneColdCmd, + chainPruneHotGCCmd, + }, +} + +var chainPruneHotGCCmd = &cli.Command{ + Name: "hot", + Usage: "run online (badger vlog) garbage collection on hotstore", + Flags: []cli.Flag{ + &cli.Float64Flag{Name: "threshold", Value: 0.01, Usage: "Threshold of vlog garbage for gc"}, + &cli.BoolFlag{Name: "periodic", Value: false, Usage: "Run periodic gc over multiple vlogs. Otherwise run gc once"}, + }, + Action: func(cctx *cli.Context) error { + api, closer, err := GetFullNodeAPIV1(cctx) + if err != nil { + return err + } + defer closer() + ctx := ReqContext(cctx) + opts := lapi.HotGCOpts{} + opts.Periodic = cctx.Bool("periodic") + opts.Threshold = cctx.Float64("threshold") + + return api.ChainHotGC(ctx, opts) + }, +} + +var chainPruneColdCmd = &cli.Command{ + Name: "compact-cold", + Usage: "force splitstore compaction on cold store state and run gc", Flags: []cli.Flag{ &cli.BoolFlag{ Name: "online-gc", diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 93f78f573..d2daa8ffc 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -29,6 +29,7 @@ * [ChainGetTipSetByHeight](#ChainGetTipSetByHeight) * [ChainHasObj](#ChainHasObj) * [ChainHead](#ChainHead) + * [ChainHotGC](#ChainHotGC) * [ChainNotify](#ChainNotify) * [ChainPrune](#ChainPrune) * [ChainPutObj](#ChainPutObj) @@ -1074,6 +1075,25 @@ Response: } ``` +### ChainHotGC +ChainHotGC does online (badger) GC on the hot store; only supported if you are using +the splitstore + + +Perms: admin + +Inputs: +```json +[ + { + "Threshold": 12.3, + "Periodic": true + } +] +``` + +Response: `{}` + ### ChainNotify ChainNotify returns channel with chain head updates. First message is guaranteed to be of len == 1, and type == 'current'. @@ -1098,7 +1118,7 @@ Response: ``` ### ChainPrune -ChainPrune prunes the stored chain state and garbage collects; only supported if you +ChainPrune forces compaction on cold store and garbage collects; only supported if you are using the splitstore diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index 7800503aa..f8214749e 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -2117,7 +2117,7 @@ COMMANDS: decode decode various types encode encode various types disputer interact with the window post disputer - prune prune the stored chain state and perform garbage collection + prune splitstore gc help, h Shows a list of commands or help for one command OPTIONS: @@ -2465,10 +2465,28 @@ OPTIONS: ### lotus chain prune ``` NAME: - lotus chain prune - prune the stored chain state and perform garbage collection + lotus chain prune - splitstore gc USAGE: - lotus chain prune [command options] [arguments...] + lotus chain prune command [command options] [arguments...] + +COMMANDS: + compact-cold force splitstore compaction on cold store state and run gc + hot run online (badger vlog) garbage collection on hotstore + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help (default: false) + +``` + +#### lotus chain prune compact-cold +``` +NAME: + lotus chain prune compact-cold - force splitstore compaction on cold store state and run gc + +USAGE: + lotus chain prune compact-cold [command options] [arguments...] OPTIONS: --moving-gc use moving gc for garbage collecting the coldstore (default: false) @@ -2477,6 +2495,20 @@ OPTIONS: ``` +#### lotus chain prune hot +``` +NAME: + lotus chain prune hot - run online (badger vlog) garbage collection on hotstore + +USAGE: + lotus chain prune hot [command options] [arguments...] + +OPTIONS: + --periodic Run periodic gc over multiple vlogs. Otherwise run gc once (default: false) + --threshold value Threshold of vlog garbage for gc (default: 0.01) + +``` + ## lotus log ``` NAME: diff --git a/node/impl/full/chain.go b/node/impl/full/chain.go index ddaae4c98..465b680ef 100644 --- a/node/impl/full/chain.go +++ b/node/impl/full/chain.go @@ -748,3 +748,14 @@ func (a *ChainAPI) ChainPrune(ctx context.Context, opts api.PruneOpts) error { return pruner.PruneChain(opts) } + +func (a *ChainAPI) ChainHotGC(ctx context.Context, opts api.HotGCOpts) error { + pruner, ok := a.BaseBlockstore.(interface { + GCHotStore(api.HotGCOpts) error + }) + if !ok { + return xerrors.Errorf("base blockstore does not support hot GC (%T)", a.BaseBlockstore) + } + + return pruner.GCHotStore(opts) +}