From 90027fbe5e59f8c88d6bad834d3ba08632a9e511 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 7 Jun 2026 18:36:34 +0000 Subject: object/store: Add CoordinatedQuarantine --- object/store/doc.go | 1 + object/store/quarantiner.go | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'object') diff --git a/object/store/doc.go b/object/store/doc.go index f186f39f..40feea47 100644 --- a/object/store/doc.go +++ b/object/store/doc.go @@ -13,4 +13,5 @@ // Instead, we define distinct optional capabilities // for object-wise writes, pack-wise writes, etc., // and compose them for quarantined writes. +// However, a coordinated quarantine is defined as necessary. package store diff --git a/object/store/quarantiner.go b/object/store/quarantiner.go index 19fbdc0c..467d5c35 100644 --- a/object/store/quarantiner.go +++ b/object/store/quarantiner.go @@ -55,6 +55,14 @@ type PackQuarantiner interface { BeginPackQuarantine(opts PackQuarantineOptions) (PackQuarantine, error) } +// CoordinatedQuarantine represents one quarantine +// that accepts both object-wise and pack-wise writes +// behind a single Promote/Discard. +type CoordinatedQuarantine interface { + ObjectQuarantine + PackQuarantine +} + // CoordinatedQuarantineOptions controls the options // for one coordinated quarantine creation. type CoordinatedQuarantineOptions struct { @@ -69,8 +77,5 @@ type CoordinatedQuarantineOptions struct { // The returned quarantine is usable // anywhere either split quarantine is expected. type CoordinatedQuarantiner interface { - BeginCoordinatedQuarantine(opts CoordinatedQuarantineOptions) (interface { - ObjectQuarantine - PackQuarantine - }, error) + BeginCoordinatedQuarantine(opts CoordinatedQuarantineOptions) (CoordinatedQuarantine, error) } -- cgit v1.3.1-10-gc9f91