bharatviswa504 commented on a change in pull request #651: HDDS-1339. Implement
ratis snapshots on OM
URL: https://github.com/apache/hadoop/pull/651#discussion_r270122895
##########
File path:
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerStateMachine.java
##########
@@ -308,56 +357,35 @@ private IOException constructExceptionForFailedRequest(
STATUS_CODE + omResponse.getStatus());
}
- /*
- * Apply a committed log entry to the state machine.
- */
- @Override
- public CompletableFuture<Message> applyTransaction(TransactionContext trx) {
- try {
- OMRequest request = OMRatisHelper.convertByteStringToOMRequest(
- trx.getStateMachineLogEntry().getLogData());
- CompletableFuture<Message> future = CompletableFuture
- .supplyAsync(() -> runCommand(request));
- return future;
- } catch (IOException e) {
- return completeExceptionally(e);
- }
- }
-
/**
- * Query the state machine. The request must be read-only.
+ * Submits write request to OM and returns the response Message.
+ * @param request OMRequest
+ * @return response from OM
+ * @throws ServiceException
*/
- @Override
- public CompletableFuture<Message> query(Message request) {
- try {
- OMRequest omRequest = OMRatisHelper.convertByteStringToOMRequest(
- request.getContent());
- return CompletableFuture.completedFuture(runCommand(omRequest));
- } catch (IOException e) {
- return completeExceptionally(e);
+ private Message runCommand(OMRequest request, long trxLogIndex) {
+ OMResponse response = handler.handle(request);
+ if (response.getSuccess()) {
Review comment:
Why we have checked getSuccess here, then considered that as
lastAppliedIndex.
As when there are cases like bucket creation failed for an already existing
bucket, the success will be set false. But that transaction request is
successfully completed. This one also should be considered as applied only
right?(Even though it does not mutate om DB, but the transaction request has
been completed)
----------------------------------------------------------------
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
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]