Skip to content

Commit c2c8586

Browse files
whbingpony.chen
authored andcommitted
HDDS-10773. Simplify OM RaftProperties formatting (apache#6605)
(cherry picked from commit ce864a7)
1 parent 54b82ce commit c2c8586

1 file changed

Lines changed: 56 additions & 97 deletions

File tree

hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java

Lines changed: 56 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -599,10 +599,9 @@ public void stop() {
599599
public static RaftProperties newRaftProperties(ConfigurationSource conf,
600600
int port, String ratisStorageDir) {
601601
// Set RPC type
602-
final String rpcType = conf.get(
602+
final RpcType rpc = SupportedRpcType.valueOfIgnoreCase(conf.get(
603603
OMConfigKeys.OZONE_OM_RATIS_RPC_TYPE_KEY,
604-
OMConfigKeys.OZONE_OM_RATIS_RPC_TYPE_DEFAULT);
605-
final RpcType rpc = SupportedRpcType.valueOfIgnoreCase(rpcType);
604+
OMConfigKeys.OZONE_OM_RATIS_RPC_TYPE_DEFAULT));
606605
final RaftProperties properties = RatisHelper.newRaftProperties(rpc);
607606

608607
// Set the ratis port number
@@ -613,8 +612,7 @@ public static RaftProperties newRaftProperties(ConfigurationSource conf,
613612
}
614613

615614
// Set Ratis storage directory
616-
RaftServerConfigKeys.setStorageDir(properties,
617-
Collections.singletonList(new File(ratisStorageDir)));
615+
RaftServerConfigKeys.setStorageDir(properties, Collections.singletonList(new File(ratisStorageDir)));
618616

619617
final int logAppenderQueueByteLimit = (int) conf.getStorageSize(
620618
OMConfigKeys.OZONE_OM_RATIS_LOG_APPENDER_QUEUE_BYTE_LIMIT,
@@ -641,128 +639,93 @@ public static RaftProperties newRaftProperties(ConfigurationSource conf,
641639

642640
private static void setRaftLeaderElectionProperties(RaftProperties properties, ConfigurationSource conf) {
643641
// Disable/enable the pre vote feature in Ratis
644-
RaftServerConfigKeys.LeaderElection.setPreVote(properties,
645-
conf.getBoolean(OMConfigKeys.OZONE_OM_RATIS_SERVER_ELECTION_PRE_VOTE,
646-
OMConfigKeys.OZONE_OM_RATIS_SERVER_ELECTION_PRE_VOTE_DEFAULT));
642+
RaftServerConfigKeys.LeaderElection.setPreVote(properties, conf.getBoolean(
643+
OMConfigKeys.OZONE_OM_RATIS_SERVER_ELECTION_PRE_VOTE,
644+
OMConfigKeys.OZONE_OM_RATIS_SERVER_ELECTION_PRE_VOTE_DEFAULT));
647645
}
648646

649647
private static void setRaftLogProperties(RaftProperties properties,
650648
int logAppenderQueueByteLimit, ConfigurationSource conf) {
651649
// Set RAFT segment size
652-
final long raftSegmentSize = (long) conf.getStorageSize(
650+
RaftServerConfigKeys.Log.setSegmentSizeMax(properties, SizeInBytes.valueOf((long) conf.getStorageSize(
653651
OMConfigKeys.OZONE_OM_RATIS_SEGMENT_SIZE_KEY,
654-
OMConfigKeys.OZONE_OM_RATIS_SEGMENT_SIZE_DEFAULT,
655-
StorageUnit.BYTES);
656-
RaftServerConfigKeys.Log.setSegmentSizeMax(properties,
657-
SizeInBytes.valueOf(raftSegmentSize));
652+
OMConfigKeys.OZONE_OM_RATIS_SEGMENT_SIZE_DEFAULT, StorageUnit.BYTES)));
658653

659654
// Set to enable RAFT to purge logs up to Snapshot Index
660-
RaftServerConfigKeys.Log.setPurgeUptoSnapshotIndex(properties,
661-
conf.getBoolean(
662-
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_UPTO_SNAPSHOT_INDEX,
663-
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_UPTO_SNAPSHOT_INDEX_DEFAULT
664-
)
665-
);
655+
RaftServerConfigKeys.Log.setPurgeUptoSnapshotIndex(properties, conf.getBoolean(
656+
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_UPTO_SNAPSHOT_INDEX,
657+
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_UPTO_SNAPSHOT_INDEX_DEFAULT));
658+
666659
// Set number of last RAFT logs to not be purged
667-
RaftServerConfigKeys.Log.setPurgePreservationLogNum(properties,
668-
conf.getLong(
669-
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_PRESERVATION_LOG_NUM,
670-
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_PRESERVATION_LOG_NUM_DEFAULT
671-
)
672-
);
660+
RaftServerConfigKeys.Log.setPurgePreservationLogNum(properties, conf.getLong(
661+
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_PRESERVATION_LOG_NUM,
662+
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_PRESERVATION_LOG_NUM_DEFAULT));
673663

674664
// Set RAFT segment pre-allocated size
675-
final long raftSegmentPreallocatedSize = (long) conf.getStorageSize(
665+
RaftServerConfigKeys.Log.setPreallocatedSize(properties, SizeInBytes.valueOf((long) conf.getStorageSize(
676666
OMConfigKeys.OZONE_OM_RATIS_SEGMENT_PREALLOCATED_SIZE_KEY,
677-
OMConfigKeys.OZONE_OM_RATIS_SEGMENT_PREALLOCATED_SIZE_DEFAULT,
678-
StorageUnit.BYTES);
679-
int logAppenderQueueNumElements = conf.getInt(
667+
OMConfigKeys.OZONE_OM_RATIS_SEGMENT_PREALLOCATED_SIZE_DEFAULT, StorageUnit.BYTES)));
668+
669+
// Set RAFT buffer element limit
670+
RaftServerConfigKeys.Log.Appender.setBufferElementLimit(properties, conf.getInt(
680671
OMConfigKeys.OZONE_OM_RATIS_LOG_APPENDER_QUEUE_NUM_ELEMENTS,
681-
OMConfigKeys.OZONE_OM_RATIS_LOG_APPENDER_QUEUE_NUM_ELEMENTS_DEFAULT);
682-
RaftServerConfigKeys.Log.Appender.setBufferElementLimit(properties,
683-
logAppenderQueueNumElements);
684-
RaftServerConfigKeys.Log.Appender.setBufferByteLimit(properties,
685-
SizeInBytes.valueOf(logAppenderQueueByteLimit));
686-
RaftServerConfigKeys.Log.setWriteBufferSize(properties,
687-
SizeInBytes.valueOf(logAppenderQueueByteLimit + 8));
688-
RaftServerConfigKeys.Log.setPreallocatedSize(properties,
689-
SizeInBytes.valueOf(raftSegmentPreallocatedSize));
690-
RaftServerConfigKeys.Log.Appender.setInstallSnapshotEnabled(properties,
691-
false);
692-
final int logPurgeGap = conf.getInt(
672+
OMConfigKeys.OZONE_OM_RATIS_LOG_APPENDER_QUEUE_NUM_ELEMENTS_DEFAULT));
673+
674+
RaftServerConfigKeys.Log.Appender.setBufferByteLimit(properties, SizeInBytes.valueOf(logAppenderQueueByteLimit));
675+
RaftServerConfigKeys.Log.setWriteBufferSize(properties, SizeInBytes.valueOf(logAppenderQueueByteLimit + 8));
676+
RaftServerConfigKeys.Log.Appender.setInstallSnapshotEnabled(properties, false);
677+
678+
RaftServerConfigKeys.Log.setPurgeGap(properties, conf.getInt(
693679
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_GAP,
694-
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_GAP_DEFAULT);
695-
RaftServerConfigKeys.Log.setPurgeGap(properties, logPurgeGap);
680+
OMConfigKeys.OZONE_OM_RATIS_LOG_PURGE_GAP_DEFAULT));
681+
696682
// Set the number of maximum cached segments
697683
RaftServerConfigKeys.Log.setSegmentCacheNumMax(properties, 2);
698684
}
699685

700686
private static void setGrpcConfig(RaftProperties properties, int logAppenderQueueByteLimit) {
701687
// For grpc set the maximum message size
702688
// TODO: calculate the optimal max message size
703-
GrpcConfigKeys.setMessageSizeMax(properties,
704-
SizeInBytes.valueOf(logAppenderQueueByteLimit));
689+
GrpcConfigKeys.setMessageSizeMax(properties, SizeInBytes.valueOf(logAppenderQueueByteLimit));
705690
}
706691

707692
private static void setRaftRpcProperties(RaftProperties properties, ConfigurationSource conf) {
708693
// Set the server request timeout
709-
TimeUnit serverRequestTimeoutUnit =
710-
OMConfigKeys.OZONE_OM_RATIS_SERVER_REQUEST_TIMEOUT_DEFAULT.getUnit();
711-
long serverRequestTimeoutDuration = conf.getTimeDuration(
694+
TimeUnit serverRequestTimeoutUnit = OMConfigKeys.OZONE_OM_RATIS_SERVER_REQUEST_TIMEOUT_DEFAULT.getUnit();
695+
final TimeDuration serverRequestTimeout = TimeDuration.valueOf(conf.getTimeDuration(
712696
OMConfigKeys.OZONE_OM_RATIS_SERVER_REQUEST_TIMEOUT_KEY,
713-
OMConfigKeys.OZONE_OM_RATIS_SERVER_REQUEST_TIMEOUT_DEFAULT
714-
.getDuration(), serverRequestTimeoutUnit);
715-
final TimeDuration serverRequestTimeout = TimeDuration.valueOf(
716-
serverRequestTimeoutDuration, serverRequestTimeoutUnit);
717-
RaftServerConfigKeys.Rpc.setRequestTimeout(properties,
718-
serverRequestTimeout);
697+
OMConfigKeys.OZONE_OM_RATIS_SERVER_REQUEST_TIMEOUT_DEFAULT.getDuration(), serverRequestTimeoutUnit),
698+
serverRequestTimeoutUnit);
699+
RaftServerConfigKeys.Rpc.setRequestTimeout(properties, serverRequestTimeout);
719700

720701
// Set the server min and max timeout
721-
TimeUnit serverMinTimeoutUnit =
722-
OMConfigKeys.OZONE_OM_RATIS_MINIMUM_TIMEOUT_DEFAULT.getUnit();
723-
long serverMinTimeoutDuration = conf.getTimeDuration(
702+
TimeUnit serverMinTimeoutUnit = OMConfigKeys.OZONE_OM_RATIS_MINIMUM_TIMEOUT_DEFAULT.getUnit();
703+
final TimeDuration serverMinTimeout = TimeDuration.valueOf(conf.getTimeDuration(
724704
OMConfigKeys.OZONE_OM_RATIS_MINIMUM_TIMEOUT_KEY,
725-
OMConfigKeys.OZONE_OM_RATIS_MINIMUM_TIMEOUT_DEFAULT
726-
.getDuration(), serverMinTimeoutUnit);
727-
final TimeDuration serverMinTimeout = TimeDuration.valueOf(
728-
serverMinTimeoutDuration, serverMinTimeoutUnit);
729-
long serverMaxTimeoutDuration =
730-
serverMinTimeout.toLong(TimeUnit.MILLISECONDS) + 200;
731-
final TimeDuration serverMaxTimeout = TimeDuration.valueOf(
732-
serverMaxTimeoutDuration, TimeUnit.MILLISECONDS);
733-
RaftServerConfigKeys.Rpc.setTimeoutMin(properties,
734-
serverMinTimeout);
735-
RaftServerConfigKeys.Rpc.setTimeoutMax(properties,
736-
serverMaxTimeout);
705+
OMConfigKeys.OZONE_OM_RATIS_MINIMUM_TIMEOUT_DEFAULT.getDuration(), serverMinTimeoutUnit),
706+
serverMinTimeoutUnit);
707+
final TimeDuration serverMaxTimeout = serverMinTimeout.add(200, TimeUnit.MILLISECONDS);
708+
RaftServerConfigKeys.Rpc.setTimeoutMin(properties, serverMinTimeout);
709+
RaftServerConfigKeys.Rpc.setTimeoutMax(properties, serverMaxTimeout);
737710

738711
// Set the server Rpc slowness timeout and Notification noLeader timeout
739-
TimeUnit nodeFailureTimeoutUnit =
740-
OMConfigKeys.OZONE_OM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_DEFAULT
741-
.getUnit();
742-
long nodeFailureTimeoutDuration = conf.getTimeDuration(
712+
TimeUnit nodeFailureTimeoutUnit = OMConfigKeys.OZONE_OM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_DEFAULT.getUnit();
713+
final TimeDuration nodeFailureTimeout = TimeDuration.valueOf(conf.getTimeDuration(
743714
OMConfigKeys.OZONE_OM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_KEY,
744-
OMConfigKeys.OZONE_OM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_DEFAULT
745-
.getDuration(), nodeFailureTimeoutUnit);
746-
final TimeDuration nodeFailureTimeout = TimeDuration.valueOf(
747-
nodeFailureTimeoutDuration, nodeFailureTimeoutUnit);
748-
RaftServerConfigKeys.Notification.setNoLeaderTimeout(properties,
749-
nodeFailureTimeout);
750-
RaftServerConfigKeys.Rpc.setSlownessTimeout(properties,
751-
nodeFailureTimeout);
715+
OMConfigKeys.OZONE_OM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_DEFAULT.getDuration(), nodeFailureTimeoutUnit),
716+
nodeFailureTimeoutUnit);
717+
RaftServerConfigKeys.Notification.setNoLeaderTimeout(properties, nodeFailureTimeout);
718+
RaftServerConfigKeys.Rpc.setSlownessTimeout(properties, nodeFailureTimeout);
752719
}
753720

754721
private static void setRaftRetryCacheProperties(RaftProperties properties, ConfigurationSource conf) {
755722
// Set timeout for server retry cache entry
756-
TimeUnit retryCacheTimeoutUnit = OMConfigKeys
757-
.OZONE_OM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_DEFAULT.getUnit();
758-
long retryCacheTimeoutDuration = conf.getTimeDuration(
723+
TimeUnit retryCacheTimeoutUnit = OMConfigKeys.OZONE_OM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_DEFAULT.getUnit();
724+
final TimeDuration retryCacheTimeout = TimeDuration.valueOf(conf.getTimeDuration(
759725
OMConfigKeys.OZONE_OM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_KEY,
760-
OMConfigKeys.OZONE_OM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_DEFAULT
761-
.getDuration(), retryCacheTimeoutUnit);
762-
final TimeDuration retryCacheTimeout = TimeDuration.valueOf(
763-
retryCacheTimeoutDuration, retryCacheTimeoutUnit);
764-
RaftServerConfigKeys.RetryCache.setExpiryTime(properties,
765-
retryCacheTimeout);
726+
OMConfigKeys.OZONE_OM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_DEFAULT.getDuration(), retryCacheTimeoutUnit),
727+
retryCacheTimeoutUnit);
728+
RaftServerConfigKeys.RetryCache.setExpiryTime(properties, retryCacheTimeout);
766729
}
767730

768731
private static void setRaftSnapshotProperties(RaftProperties properties, ConfigurationSource conf) {
@@ -775,15 +738,11 @@ private static void setRaftSnapshotProperties(RaftProperties properties, Configu
775738
// The transaction info value in OM DB is used as
776739
// snapshot value after restart.
777740

778-
RaftServerConfigKeys.Snapshot.setAutoTriggerEnabled(
779-
properties, true);
741+
RaftServerConfigKeys.Snapshot.setAutoTriggerEnabled(properties, true);
780742

781-
long snapshotAutoTriggerThreshold = conf.getLong(
743+
RaftServerConfigKeys.Snapshot.setAutoTriggerThreshold(properties, conf.getLong(
782744
OMConfigKeys.OZONE_OM_RATIS_SNAPSHOT_AUTO_TRIGGER_THRESHOLD_KEY,
783-
OMConfigKeys.OZONE_OM_RATIS_SNAPSHOT_AUTO_TRIGGER_THRESHOLD_DEFAULT);
784-
785-
RaftServerConfigKeys.Snapshot.setAutoTriggerThreshold(properties,
786-
snapshotAutoTriggerThreshold);
745+
OMConfigKeys.OZONE_OM_RATIS_SNAPSHOT_AUTO_TRIGGER_THRESHOLD_DEFAULT));
787746
}
788747

789748
private static void setRaftCloseThreshold(RaftProperties properties, ConfigurationSource conf) {

0 commit comments

Comments
 (0)