RATIS/THREE Data

The following write path, read path, and container replication applies only to Ozone RATIS/THREE data.

Write path

  • You can configure the placement of open containers using the ozone.scm.pipeline.placement.impl configuration key.
  • The pipeline placement policy is available in the org.apache.hdds.scm.pipeline package.
    • By default, the PipelinePlacementPolicy is used for topology awareness. Currently, this is the only pipeline placement policy implemented in Ozone.
    • To change to a user-customized implementation, use the following property
      <property>
                       <name>ozone.scm.pipeline.placement.impl</name>
                       <value>full_class_name_of_the_customized_implementation</value>
                       </property>
This placement policy complies with the algorithm used in HDFS. With the default three replicas, two replicas will be on the same rack and the third replica will be on a different rack.

Read path

Configure the read path to read the data from the closest pipeline using the following property:
<property>
         <name>ozone.network.topology.aware.read</name>
         <value>true</value>
         </property>

Container replication

  • You can configure the placement of closed three replica containers using the ozone.scm.container.placement.impl configuration key.
  • The container placement policies are available in the org.apache.hdds.scm.container.placement.algorithms package.
    • By default, the SCMContainerPlacementRackAware is used for topology awareness. This placement policy complies with the algorithm used in HDFS. With the default three replicas, two replicas will be on the same rack and the third replica will be on a different rack.
    • To change the placement of closed three replica containers, using the property ozone.scm.container.placement.impl, following is an example
    <property>
               <name>ozone.scm.container.placement.impl</name>
               <value>org.apache.hadoop.hdds.scm.container.placement.algorithms.SCMContainerPlacementCapacity
               </value>
               </property>