ref: 33a57ddd6fd9fbe4c01afa1fc70051a91b6d81fc
parent: c3fe7af6cf267e6fafe5ab24cd2cc238e3ba3029
author: Runxi Yu <runxiyu@umich.edu>
date: Mon Mar 30 14:07:18 EDT 2026
object/store: Hybrid quarantine interface
--- a/object/store/doc.go
+++ b/object/store/doc.go
@@ -9,7 +9,9 @@
// very different write models: writing one loose object is natural, while
// writing one object into a packfile backend is wasteful. Instead, we define
// distinct optional capabilities for object-wise writes, pack-wise writes,
-// and compose them against quarantined writes.
+// and compose them against quarantined writes. Where one logical quarantine
+// supports multiple write shapes together, this package also defines a
+// coordinated writer quarantine capability.
//
// Concrete implementations generally inherit the contract documented by the
// interfaces they satisfy. Implementation docs focus on additional guarantees
--- /dev/null
+++ b/object/store/quarantine_writer.go
@@ -1,0 +1,21 @@
+package objectstore
+
+// WriterQuarantine represents one quarantined write that accepts both object-
+// wise and pack-wise writes.
+type WriterQuarantine interface {+ Quarantine
+ ObjectWriter
+ PackWriter
+}
+
+// QuarantineOptions controls the options for one coordinated quarantine creation.
+type QuarantineOptions struct {+ Object ObjectQuarantineOptions
+ Pack PackQuarantineOptions
+}
+
+// WriterQuarantiner creates coordinated quarantines that support both object-
+// wise and pack-wise writes.
+type WriterQuarantiner interface {+ BeginQuarantine(opts QuarantineOptions) (WriterQuarantine, error)
+}
--
⑨