Skip to content

S3 Versioning (composite key, invertedVersionId, ListObjectVersions, delete markers) #20

Description

@frrist

Buckets are effectively Unversioned: an overwrite replaces in place. The versionId
machinery in §3 is not built — composite MST key escape(key)+TERM+invertedVersionId,
next_version_seq, ListObjectVersions, delete markers, Put/GetBucketVersioning
(Enabled/Suspended). The schema is designed toward it (blob_refs.version_id carries
the "null" sentinel; buckets.versioning/next_version_seq and
ObjectManifest.deleteMarker are reserved), so no manifest/MST-key migration is needed.

Also ratify the two flagged design decisions in §3 (composite key vs per-key version
index; direct-locator vs opaque versionId) and whether to raise MaxKeyBytes.

Refs: docs/architecture.md §3, §11, §12; code: bucket/manifest.go (DeleteMarker), mst/.

Part of #17

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions