szetszwo commented on code in PR #8641: URL: https://github.com/apache/ozone/pull/8641#discussion_r2182699932
########## hadoop-hdds/docs/content/feature/multi-raft-support.md: ########## @@ -0,0 +1,114 @@ +--- +title: "Multi-Raft Support in Ozone" +menu: + main: + parent: Features +summary: "Enables each Datanode to participate in multiple Ratis pipelines concurrently to improve resource utilization and write throughput." +--- +<!--- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +## Multi-Raft in Datanodes + +Multi-Raft support allows a Datanode to participate +multiple Ratis replication groups (pipelines) at the same time +for improving write throughput and ensuring better utilization +of disk and network resources. +This is particularly useful when Datanodes have multiple disks +or the network has a very high bandwidth. + +### Background + +The early Ozone versions supported only one Raft pipeline per Datanode. +This limited its concurrent write handling capacity for replicated data +and led to under-utilization of resources. +The use of Multi-Raft tremendously improved the resource utilization. + +## Prerequisites +- Ozone 0.5.0 or later +- Replication type: RATIS +- Multiple metadata directories on each Datanode + (via `hdds.container.ratis.datanode.storage.dir`) + - Adequate CPU, memory, and network bandwidth + +## How It Works +SCM can now create overlapping pipelines: +each Datanode can join multiple Raft groups +up to a configurable limit. +This boosts concurrency and avoids idle nodes and idle disks. +Raft logs are stored separately on different metadata directories +in order to reduce disk contention. +Ratis handles concurrent logs per node. + +## Configuration +- `hdds.container.ratis.datanode.storage.dir` (no default) + - A list of metadata directory paths. + - `ozone.scm.datanode.pipeline.limit` (default: 2) Review Comment: The indentation is incorrect for this item. -- 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: issues-unsubscr...@ozone.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org For additional commands, e-mail: issues-h...@ozone.apache.org