From 1b7431a3c3d3587f03d4df5815b3ebf54d4ec8b7 Mon Sep 17 00:00:00 2001 From: Samuel Stokes Date: Tue, 18 Jun 2024 11:35:02 -0400 Subject: [PATCH] Check 10 extra slots during backfill after first alreadyExists --- archiver/service/archiver.go | 20 ++++++++++++-------- archiver/service/archiver_test.go | 1 - 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/archiver/service/archiver.go b/archiver/service/archiver.go index f08d2d7..6b6b56e 100644 --- a/archiver/service/archiver.go +++ b/archiver/service/archiver.go @@ -145,7 +145,7 @@ func (a *Archiver) backfillBlobs(ctx context.Context, latest *v1.BeaconBlockHead backfillLoop := func(start *v1.BeaconBlockHeader, current *v1.BeaconBlockHeader) { curr, alreadyExists, err := current, false, error(nil) - count := 0 + storedCount, numExists := 0, 0 a.log.Info("backfill process initiated", "currHash", curr.Root.String(), "currSlot", curr.Header.Message.Slot, @@ -164,7 +164,7 @@ func (a *Archiver) backfillBlobs(ctx context.Context, latest *v1.BeaconBlockHead a.dataStoreClient.WriteBackfillProcesses(ctx, backfillProcesses) }() - for !alreadyExists { + for !alreadyExists || numExists < 10 { previous := curr if common.Hash(curr.Root) == a.cfg.OriginBlock { @@ -183,12 +183,16 @@ func (a *Archiver) backfillBlobs(ctx context.Context, latest *v1.BeaconBlockHead if !alreadyExists { a.metrics.RecordProcessedBlock(metrics.BlockSourceBackfill) - } - - count++ - if count%10 == 0 { - backfillProcesses[common.Hash(start.Root)] = storage.BackfillProcess{Start: *start, Current: *curr} - a.dataStoreClient.WriteBackfillProcesses(ctx, backfillProcesses) + numExists = 0 + storedCount++ + if storedCount%10 == 0 { + // Update storage every 10 slots + backfillProcesses[common.Hash(start.Root)] = storage.BackfillProcess{Start: *start, Current: *curr} + a.dataStoreClient.WriteBackfillProcesses(ctx, backfillProcesses) + } + } else { + numExists++ + a.log.Info("backfill found pre-existing slot", "numExists", numExists) } } } diff --git a/archiver/service/archiver_test.go b/archiver/service/archiver_test.go index 978ac6e..7057de9 100644 --- a/archiver/service/archiver_test.go +++ b/archiver/service/archiver_test.go @@ -237,7 +237,6 @@ func TestArchiver_BackfillFinishOldProcess(t *testing.T) { actualProcesses, err = svc.dataStoreClient.ReadBackfillProcesses(context.Background()) require.NoError(t, err) - svc.log.Info("backfill processes", "processes", actualProcesses) require.Equal(t, storage.BackfillProcesses{}, actualProcesses) }