From 060bcc7ec78698cd8b68b37be3d36808b380e31c Mon Sep 17 00:00:00 2001 From: ns Date: Sun, 10 Dec 2023 08:40:35 +0000 Subject: [PATCH] gc: invoke CollectGarbage() on badger to reclaim disk space --- gc.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/gc.go b/gc.go index 21cd8d6..84661b6 100644 --- a/gc.go +++ b/gc.go @@ -1,6 +1,10 @@ package main -import "context" +import ( + "context" + + badger4 "github.com/ipfs/go-ds-badger4" +) // GC is a really stupid simple algorithm where we just delete things until // weve deleted enough things @@ -10,11 +14,12 @@ func (nd *Node) GC(ctx context.Context, todelete int64) error { return err } +deleteBlocks: for todelete > 0 { select { case k, ok := <-keys: if !ok { - return nil + break deleteBlocks } size, err := nd.blockstore.GetSize(ctx, k) @@ -32,5 +37,12 @@ func (nd *Node) GC(ctx context.Context, todelete int64) error { } } + if ds, ok := nd.datastore.(*badger4.Datastore); ok { + err = ds.CollectGarbage(ctx) + if err != nil { + return err + } + } + return nil }