Skip to content

Commit

Permalink
storage: instrument eager ReplicaGC
Browse files Browse the repository at this point in the history
We have been seeing long startup times which disappear spontaneously. During a
restart of the beta cluster, the following goroutine was observed, which suggests
that we were spending a lot of time GCing replicas on startup.

    engine              ??:0                     _Cfunc_DBIterNext(cockroachdb#324, cockroachdb#323, 0, 0, 0, 0, 0, 0, 0)
    engine              rocksdb.go:1135          (*rocksDBIterator).Next(cockroachdb#235)
    storage             replica_data_iter.go:104 (*ReplicaDataIterator).Next(cockroachdb#316)
    storage             store.go:1748            (*Store).destroyReplicaData(#109, cockroachdb#317, 0, 0)
    storage             store.go:841             (*Store).Start.func2(0x101b, cockroachdb#300, 0x36, 0x40, cockroachdb#301, 0x36, 0x40, cockroachdb#315, 0x3, 0x4, ...)
    storage             store.go:734             IterateRangeDescriptors.func1(cockroachdb#306, 0x40, 0x41, cockroachdb#307, 0x92, 0x92, cockroachdb#341, 0, 0x186c, 0x4000, ...)
    engine              mvcc.go:1593             MVCCIterate(cockroachdb#329, #68, #47, #81, cockroachdb#232, 0x9, 0x10, cockroachdb#233, 0xb, 0x10, ...)
    storage             store.go:738             IterateRangeDescriptors(cockroachdb#330, cockroachdb#196, #47, #81, cockroachdb#195, #179, #110)
    storage             store.go:867             (*Store).Start(#109, cockroachdb#330, cockroachdb#196, #179, cockroachdb#185, 0x1)
    server              node.go:405              (*Node).initStores(#78, cockroachdb#330, cockroachdb#196, #98, 0x1, 0x1, #179, 0, #55)
    server              node.go:330              (*Node).start(#78, cockroachdb#330, cockroachdb#196, #42, #129, #98, 0x1, 0x1, 0, 0, ...)
    server              server.go:431            (*Server).Start(#5, cockroachdb#330, cockroachdb#196, #95, 0x1)
    cli                 start.go:368             runStart(#34, #178, 0, 0x9, 0, 0)
    cobra               command.go:599           (*Command).execute(#34, #177, 0x9, 0x9, #34, #177)
    cobra               command.go:689           (*Command).ExecuteC(#33, #70, cockroachdb#343, #72)
    cobra               command.go:648           (*Command).Execute(#33, #71, cockroachdb#343)
    cli                 cli.go:96                Run(#64, 0xa, 0xa, 0, 0)
    main                main.go:37               main()
  • Loading branch information
tbg committed Aug 31, 2016
1 parent 33f28d3 commit f6ec548
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 0 deletions.
1 change: 1 addition & 0 deletions storage/migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ func migrate7310And6991(ctx context.Context, batch engine.ReadWriter, desc roach
// don't have a snapshot here, so we could wind up lowering the commit
// index (which would error out and fatal us).
if hs.Commit == 0 {
log.Warningf(ctx, "migration: synthesized HardState for %+v", desc)
if err := synthesizeHardState(ctx, batch, state, hs); err != nil {
return errors.Wrap(err, "could not migrate HardState")
}
Expand Down
1 change: 1 addition & 0 deletions storage/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -838,6 +838,7 @@ func (s *Store) Start(ctx context.Context, stopper *stop.Stopper) error {
// the replica before shutting down. Destroy the replica now
// to avoid creating a new replica without a valid replica ID
// (which is necessary to have a non-nil raft group)
log.Infof(ctx, "eagerly GC'ed %+v", desc)
return false, s.destroyReplicaData(&desc)
}
if !desc.IsInitialized() {
Expand Down

0 comments on commit f6ec548

Please sign in to comment.