@@ -81,23 +81,16 @@ public void getSegmentFiles(
8181 final Writeable .Reader <GetSegmentFilesResponse > reader = GetSegmentFilesResponse ::new ;
8282 final ActionListener <GetSegmentFilesResponse > responseListener = ActionListener .map (listener , r -> r );
8383 // Few of the below assumptions and calculations are added for experimental release of segment replication feature in 2.3
84- // version.These will be changed in next release.
84+ // version. These will be changed in next release.
8585
8686 // Storing the size of files to fetch in bytes.
87- long sizeOfSegmentFiles = 0 ;
88- for (int i = 0 ; i < filesToFetch .size (); i ++) {
89- sizeOfSegmentFiles += filesToFetch .get (i ).length ();
90- }
91- // Making sure files size is in correct format to perform time calculation.
92- if (sizeOfSegmentFiles <0 ){
93- sizeOfSegmentFiles *=-1 ;
94- }
95- // Maximum size of files to fetch (segment files), that can be processed in 1 minute for a m5.xlarge machine.
96- long baseSegmentFilesSize = 300000000 ;
87+ final long sizeOfSegmentFiles = filesToFetch .stream ().mapToLong (file -> file .length ()).sum ();
88+
89+ // Maximum size of files to fetch (segment files) in bytes, that can be processed in 1 minute for a m5.xlarge machine.
90+ long baseSegmentFilesSize = 100000000 ;
9791
98- long timeToGetSegmentFiles = 1 ;
9992 // Formula for calculating time needed to process a replication event's files to fetch process
100- timeToGetSegmentFiles += sizeOfSegmentFiles / baseSegmentFilesSize ;
93+ final long timeToGetSegmentFiles = 1 + ( sizeOfSegmentFiles / baseSegmentFilesSize ) ;
10194 final GetSegmentFilesRequest request = new GetSegmentFilesRequest (
10295 replicationId ,
10396 targetAllocationId ,
0 commit comments