saintstack commented on a change in pull request #941: HBASE-23326 Implement a 
ProcedureStore which stores procedures in a H…
URL: https://github.com/apache/hbase/pull/941#discussion_r361023358
 
 

 ##########
 File path: 
hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.java
 ##########
 @@ -24,9 +24,18 @@
 import org.apache.yetus.audience.InterfaceStability;
 
 /**
- * The ProcedureStore is used by the executor to persist the state of each 
procedure execution.
- * This allows to resume the execution of pending/in-progress procedures in 
case
- * of machine failure or service shutdown.
+ * The ProcedureStore is used by the executor to persist the state of each 
procedure execution. This
+ * allows to resume the execution of pending/in-progress procedures in case of 
machine failure or
+ * service shutdown.
+ * <p/>
+ * Notice that, the implementation must guarantee that the maxProcId when 
loading is the maximum one
+ * in the whole history, not only the current live procedures. This is very 
important as for
+ * executing remote procedures, we have some nonce checks at region server 
side to prevent executing
+ * non-idempotent operations more than once. If the procedure id could go 
back, then we may
+ * accidentally ignore some important operations such as region assign or 
unassign.<br/>
+ * This may lead to some garbages so we provide a {@link #cleanup()} method, 
the framework will call
+ * this method periodically and the store implementation could do some clean 
up works in this
+ * method.
 
 Review comment:
   Good

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to