chungen0126 commented on code in PR #305: URL: https://github.com/apache/ozone-site/pull/305#discussion_r2745341941
########## docs/03-core-concepts/01-architecture/07-consistency-guarantees.md: ########## @@ -0,0 +1,168 @@ +--- +sidebar_label: Consistency Guarantees +--- + +# Consistency Guarantees + +## OM (Ozone Manager) HA Consistency + +:::info +Notice: Before Ozone 2.2.0 (current is 2.1.0), all operations in OM are linearizable. After [HDDS-14424](https://issues.apache.org/jira/browse/HDDS-14424) is done and released in Ozone 2.2.0, users will have more options to configure the consistency guarantees for OM based on the tradeoff across scalability, throughput and staleness. +::: + +### Default Configuration (Non-Linearizable) (will release in Ozone 2.2) +- **Read Path**: Only the leader serves read requests +- **Mechanism**: Reads query the state machine directly without ReadIndex +- **Guarantee**: **Non-linearizable** - may return stale data during leader transitions +- **Performance**: No heartbeat rounds required for reads, better latency +- **Risk**: Short-period split-brain scenario possible (old leader may serve stale reads during leadership transition) + +### Optional: Linearizable Reads (will release in Ozone 2.2) +- **Configuration**: `ozone.om.ha.raft.server.read.option=LINEARIZABLE` +- **Mechanism**: Uses Raft ReadIndex (Raft section 6.4) +- **Guarantee**: Linearizability - reads reflect all committed writes +- **Trade-off**: Requires leader to confirm leadership via heartbeat rounds +- **Benefit**: Both the leader and followers can serve reads + +### Write Path +- **All writes** go through Ratis consensus for replication +- **Application**: Single-threaded executor ensures **ordered application** of transactions +- **Double Buffer**: Used for batching responses while maintaining ordering + +### Advanced Read Optimizations + +#### Follower Read with Local Lease (will release in Ozone 2.2) +- Config: `ozone.om.follower.read.local.lease.enabled=false` (default) Review Comment: This is now set to 'true' by default. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
