Skip to content

Commit 3bf7e44

Browse files
committed
preserve originals in rebalance
1 parent b204230 commit 3bf7e44

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

p2p/kademlia/rebalance_worker.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,17 @@ func (s *DHT) rebalanceOnce(ctx context.Context, startCursor string, deleteConfi
173173
continue
174174
}
175175

176-
if rebalanceShouldTrackDeleteConfirm(isOwner, holders) {
177-
deleteConfirm[keyHex]++
178-
if rebalanceShouldDelete(deleteConfirm[keyHex], deleted) {
179-
if err := s.store.BatchDeleteRecords([]string{keyHex}); err != nil {
176+
// Preserve uploader/original copies even when this node is not in the
177+
// current owner set and replica count is healthy.
178+
if selfStatus.IsOriginal {
179+
delete(deleteConfirm, keyHex)
180+
continue
181+
}
182+
183+
if rebalanceShouldTrackDeleteConfirm(isOwner, holders) {
184+
deleteConfirm[keyHex]++
185+
if rebalanceShouldDelete(deleteConfirm[keyHex], deleted) {
186+
if err := s.store.BatchDeleteRecords([]string{keyHex}); err != nil {
180187
logtrace.Error(ctx, "rebalance: local delete failed", logtrace.Fields{
181188
logtrace.FieldModule: "p2p",
182189
logtrace.FieldError: err.Error(),

0 commit comments

Comments
 (0)