smiroslav commented on code in PR #1748:
URL: https://github.com/apache/jackrabbit-oak/pull/1748#discussion_r1840716523


##########
oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/util/AzureRequestOptions.java:
##########
@@ -45,52 +43,43 @@ public class AzureRequestOptions {
     private AzureRequestOptions() {
     }
 
-    /**
-     * Apply default request options to the blobRequestOptions if they are not 
already set.
-     * @param blobRequestOptions
-     */
-    public static void applyDefaultRequestOptions(BlobRequestOptions 
blobRequestOptions) {
-        if (blobRequestOptions.getRetryPolicyFactory() == null) {
-            int retryAttempts = Integer.getInteger(RETRY_ATTEMPTS_PROP, 
DEFAULT_RETRY_ATTEMPTS);
-            if (retryAttempts > 0) {
-                Integer retryBackoffSeconds = 
Integer.getInteger(RETRY_BACKOFF_PROP, DEFAULT_RETRY_BACKOFF_SECONDS);
-                blobRequestOptions.setRetryPolicyFactory(new 
RetryLinearRetry((int) TimeUnit.SECONDS.toMillis(retryBackoffSeconds), 
retryAttempts));
-            }
-        }
-        if (blobRequestOptions.getMaximumExecutionTimeInMs() == null) {
-            int timeoutExecution = Integer.getInteger(TIMEOUT_EXECUTION_PROP, 
DEFAULT_TIMEOUT_EXECUTION);
-            if (timeoutExecution > 0) {
-                blobRequestOptions.setMaximumExecutionTimeInMs((int) 
TimeUnit.SECONDS.toMillis(timeoutExecution));
-            }
-        }
-        if (blobRequestOptions.getTimeoutIntervalInMs() == null) {
-            int timeoutInterval = Integer.getInteger(TIMEOUT_INTERVAL_PROP, 
DEFAULT_TIMEOUT_INTERVAL);
-            if (timeoutInterval > 0) {
-                blobRequestOptions.setTimeoutIntervalInMs((int) 
TimeUnit.SECONDS.toMillis(timeoutInterval));
-            }
-        }
+
+    public static RequestRetryOptions getRetryOptionsDefault() {
+        return getRetryOptionsDefault(null);
+    }
+
+    public static RequestRetryOptions getRetryOptionsDefault(String 
secondaryHost) {
+        int retryAttempts = Integer.getInteger(RETRY_BACKOFF_PROP, 
DEFAULT_RETRY_BACKOFF_SECONDS);
+        int timeoutExecution = Integer.getInteger(TIMEOUT_EXECUTION_PROP, 
DEFAULT_TIMEOUT_EXECUTION);
+        int timeoutInterval = Integer.getInteger(TIMEOUT_INTERVAL_PROP, 
DEFAULT_TIMEOUT_INTERVAL);
+        long timeoutIntervalToMs = timeoutInterval * 1_000L;
+        long timeoutIntervalMax = timeoutIntervalToMs * 5;
+
+        return new RequestRetryOptions(RetryPolicyType.EXPONENTIAL,
+                retryAttempts,
+                timeoutExecution,
+                timeoutIntervalToMs,

Review Comment:
   the intent of ```TIMEOUT_INTERVAL_PROP``` was to specify max execution time 
for one retry 
   
   From the Java documentation 
   ```
   Sets the timeout to use when making this request.
   The server timeout interval begins at the time that the complete request has 
been received by the service, and the server begins processing the response. If 
the timeout interval elapses before the response is returned to the client, the 
operation times out. The timeout interval resets with each retry, if the 
request is retried.
   ```
   
   You can check the intent of the properties in the linked below nad map it to 
the corresponding ones in v12
   
   
https://github.com/Azure/azure-storage-java/blob/v8.6.6/microsoft-azure-storage/src/com/microsoft/azure/storage/RequestOptions.java#L266
   
   `timeoutIntervalToMs ` should be the third argument.
   
https://learn.microsoft.com/en-us/java/api/com.azure.storage.common.policy.requestretryoptions?view=azure-java-stable#com-azure-storage-common-policy-requestretryoptions-requestretryoptions(com-azure-storage-common-policy-retrypolicytype-java-lang-integer-java-lang-integer-java-lang-long-java-lang-long-java-lang-string)
   
   
   
   



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to