abdullah alamoudi has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2665
Change subject: WIP: improvements to active retry infrastructure
......................................................................
WIP: improvements to active retry infrastructure
Change-Id: I4246e2a276e1f80569a07630e182aab8f49dd115
---
M
asterixdb/asterix-active/src/main/java/org/apache/asterix/active/CountRetryPolicy.java
M
asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IRetryPolicy.java
M
asterixdb/asterix-active/src/main/java/org/apache/asterix/active/InfiniteRetryPolicy.java
M
asterixdb/asterix-active/src/main/java/org/apache/asterix/active/NoRetryPolicyFactory.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
M
asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
6 files changed, 10 insertions(+), 5 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/65/2665/1
diff --git
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/CountRetryPolicy.java
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/CountRetryPolicy.java
index 6633810..b964430 100644
---
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/CountRetryPolicy.java
+++
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/CountRetryPolicy.java
@@ -28,7 +28,7 @@
}
@Override
- public boolean retry() {
+ public boolean retry(Throwable failure) {
if (attempted < count) {
attempted++;
return true;
diff --git
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IRetryPolicy.java
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IRetryPolicy.java
index a010984..c7f2701 100644
---
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IRetryPolicy.java
+++
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/IRetryPolicy.java
@@ -23,5 +23,5 @@
/**
* @return true if one more attempt should be done
*/
- boolean retry();
+ boolean retry(Throwable failure);
}
diff --git
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/InfiniteRetryPolicy.java
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/InfiniteRetryPolicy.java
index 074f8f4..fde67e6 100644
---
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/InfiniteRetryPolicy.java
+++
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/InfiniteRetryPolicy.java
@@ -27,7 +27,7 @@
}
@Override
- public boolean retry() {
+ public boolean retry(Throwable failure) {
synchronized (listener) {
try {
listener.wait(5000); //NOSONAR this method is being called in
a while loop
diff --git
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/NoRetryPolicyFactory.java
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/NoRetryPolicyFactory.java
index 1596c17..a48283a 100644
---
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/NoRetryPolicyFactory.java
+++
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/NoRetryPolicyFactory.java
@@ -20,7 +20,7 @@
public class NoRetryPolicyFactory implements IRetryPolicyFactory {
public static final NoRetryPolicyFactory INSTANCE = new
NoRetryPolicyFactory();
- private static final IRetryPolicy policy = () -> false;
+ private static final IRetryPolicy policy = failure -> false;
private NoRetryPolicyFactory() {
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
index 2de8319..1f72856 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/active/RecoveryTask.java
@@ -93,6 +93,7 @@
synchronized (listener) {
if (!cancelRecovery) {
listener.setState(ActivityState.PERMANENTLY_FAILED);
+ listener.setRunning(metadataProvider, false);
}
}
} else {
@@ -112,7 +113,7 @@
return null;
}
LOGGER.log(level, "calling the policy");
- while (policy.retry()) {
+ while (policy.retry(failure)) {
synchronized (listener) {
if (cancelRecovery) {
return null;
@@ -170,7 +171,9 @@
return null;
}
if (listener.getState() == ActivityState.TEMPORARILY_FAILED) {
+ LOGGER.warn("Recovery for {} permanently failed",
listener.getEntityId());
listener.setState(ActivityState.PERMANENTLY_FAILED);
+ listener.setRunning(metadataProvider, false);
}
listener.notifyAll();
}
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
index c4b23ef..8367fa0 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
@@ -213,6 +213,8 @@
return aOrderedListToString((AOrderedList) aObj);
case STRING:
return ((AString) aObj).getStringValue();
+ case BOOLEAN:
+ return ((ABoolean) aObj).getBoolean().toString();
default:
throw new AlgebricksException("value of type " +
aObj.getType() + " is not supported yet");
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/2665
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4246e2a276e1f80569a07630e182aab8f49dd115
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>