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.
