1 parent
83440f20e2
commit
12e0c99850
32 files changed
+729
-109
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# RustBox 0.2.12 storage/search operations
|
||||
# RustBox 0.2.13 storage/search operations
|
||||
|
||||
RustBox 0.2.12 treats SQL, blob storage and search as independent capabilities. The database engine does not decide whether `data_dir` is allowed.
|
||||
RustBox 0.2.13 treats SQL, blob storage and search as independent capabilities. The database engine does not decide whether `data_dir` is allowed.
|
||||
|
||||
## Deployment matrix
|
||||
|
||||
@@ -28,6 +28,12 @@ For NFS/CephFS/GlusterFS:
|
||||
|
||||
Attachment SQL rows store logical object keys. This keeps SQL independent from a node-specific filesystem path.
|
||||
|
||||
## Durable blob deletion
|
||||
|
||||
Attachment deletion is not best-effort. RustBox writes a `blob_delete_outbox` entry in the same SQL transaction that removes the attachment row or draft row, then attempts the physical delete immediately. A background worker retries failures with claim leases and exponential backoff until the object is gone; object-store `NotFound` is treated as success. The same path is used for local filesystem, shared POSIX/NFS and S3-compatible backends. Failed finalized uploads and failed migration destination objects are also queued for cleanup.
|
||||
|
||||
This avoids orphan accumulation when storage is temporarily unavailable while also avoiding the inverse failure mode where a blob is deleted first and the SQL transaction later fails.
|
||||
|
||||
## Search and outbox
|
||||
|
||||
OpenSearch is the cluster-capable indexer. Every indexed document is scoped by `user_hash`; queries add a server-side tenant filter and deterministic document IDs are routed by tenant.
|
||||
|
||||
Reference in new issue
Block a user