@@ -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