Participants: Fermi, yiyang, Wei-Chiu, Chung En, Sammi

1. Object Versioning Feature (Main Topic)
Presented by yiyang:

Design approach:
Follow S3's versioning model using two tables — a key table (current
version) and a non-current version table — to minimize overhead for regular
users.
Version ID: Based on transaction ID internally, but returned as an encoded
string (similar to S3's random-looking ID); configurable generation
strategy.
Old versioning disabled: The previous Ozone versioning caused OOM issues
and was disabled; the new design avoids those problems.
Snapshot exclusion: Versioning and snapshot are mutually exclusive; since
OBS doesn't support snapshot, this conflict is largely avoided.
Lifecycle integration: Versioning cleanup service and lifecycle service
should be merged (default enabled) to avoid redundant scanning.
Max versioning vs. lifecycle policy conflict: Needs a defined behavior when
global config and user-set lifecycle policy differ.

Feature JIRA: https://issues.apache.org/jira/browse/HDDS-15728
Design PR: https://github.com/apache/ozone/pull/10822

2. Object Locking (Chung En)
Proposed a two-phase approach: implement locking for the current version
first, then extend to support versioned objects after versioning merges to
master.
Chung En will write a design doc and present it at the next meeting.

3. Vector Table / Vector DB
Peter is working on a vector table POC implementing an S3-like API.
Wei-Chiu suggested using an existing vector DB (e.g., a known open-source
DB) rather than building one from scratch.

4. Action Items
yiyang: Add diagrams to the design doc; integrate lifecycle cleanup; update
snapshot/versioning boundary.
Sammi: Investigate transaction ID replay behavior on restart.
Chung En: Write object locking design doc for next time meeting review.

Reply via email to