Plan out moving GC limiting
This commit is contained in:
parent
5d9739a863
commit
0fe91846cd
@ -8,6 +8,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (s *SplitStore) gcHotAfterCompaction() {
|
func (s *SplitStore) gcHotAfterCompaction() {
|
||||||
|
// TODO size aware GC
|
||||||
|
// 1. Add a config value to specify targetted max number of bytes M
|
||||||
|
// 2. Use measurement of marked hotstore size H (we now have this), actual hostore size T (need to compute this), total move size H + T, approximate purged size P
|
||||||
|
// 3. Trigger moving GC whenever H + T is within 50 GB of M
|
||||||
|
// 4. if H + T > M use aggressive online threshold
|
||||||
|
// 5. Use threshold that covers 3 std devs of vlogs when doing aggresive online. Mean == (H + P) / T, assume normal distribution
|
||||||
|
// 6. Use threshold that covers 1 or 2 std devs of vlogs when doing regular online GC
|
||||||
var opts []bstore.BlockstoreGCOption
|
var opts []bstore.BlockstoreGCOption
|
||||||
if s.cfg.HotStoreFullGCFrequency > 0 && s.compactionIndex%int64(s.cfg.HotStoreFullGCFrequency) == 0 {
|
if s.cfg.HotStoreFullGCFrequency > 0 && s.compactionIndex%int64(s.cfg.HotStoreFullGCFrequency) == 0 {
|
||||||
opts = append(opts, bstore.WithFullGC(true))
|
opts = append(opts, bstore.WithFullGC(true))
|
||||||
|
Loading…
Reference in New Issue
Block a user