private void sendRequest(final StateMachine.Fsm fsm, RequestEvent request) { TSOProto.Request req = request.getRequest(); if (req.hasTimestampRequest()) { timestampRequests.add(new RequestAndTimeout(request, newTimeout(new TimestampRequestTimeoutEvent()))); } else if (req.hasCommitRequest()) { TSOProto.CommitRequest commitReq = req.getCommitRequest(); commitRequests.put(commitReq.getStartTimestamp(), new RequestAndTimeout( request, newTimeout(new CommitRequestTimeoutEvent(commitReq.getStartTimestamp())))); } else { request.error(new IllegalArgumentException("Unknown request type")); return; } ChannelFuture f = channel.write(req); f.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) { if (!future.isSuccess()) { fsm.sendEvent(new ErrorEvent(future.getCause())); } } }); }
private void sendRequest(final StateMachine.Fsm fsm, RequestEvent request) { TSOProto.Request req = request.getRequest(); if (req.hasTimestampRequest()) { timestampRequests.add(new RequestAndTimeout(request, newTimeout(new TimestampRequestTimeoutEvent()))); } else if (req.hasCommitRequest()) { TSOProto.CommitRequest commitReq = req.getCommitRequest(); commitRequests.put(commitReq.getStartTimestamp(), new RequestAndTimeout( request, newTimeout(new CommitRequestTimeoutEvent(commitReq.getStartTimestamp())))); } else if (req.hasFenceRequest()) { TSOProto.FenceRequest fenceReq = req.getFenceRequest(); fenceRequests.put(fenceReq.getTableId(), new RequestAndTimeout( request, newTimeout(new FenceRequestTimeoutEvent(fenceReq.getTableId())))); } else { request.error(new IllegalArgumentException("Unknown request type")); return; } ChannelFuture f = channel.write(req); f.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) { if (!future.isSuccess()) { fsm.sendEvent(new ErrorEvent(future.getCause())); } } }); }
} else if (request.hasCommitRequest()) { TSOProto.CommitRequest cr = request.getCommitRequest(); requestProcessor.commitRequest(cr.getStartTimestamp(),
} else if (request.hasCommitRequest()) { TSOProto.CommitRequest cr = request.getCommitRequest(); requestProcessor.commitRequest(cr.getStartTimestamp(),
} else if (request.hasCommitRequest()) { TSOProto.CommitRequest cr = request.getCommitRequest(); requestProcessor.commitRequest(cr.getStartTimestamp(),
private void queueRetryOrError(StateMachine.Fsm fsm, RequestEvent e) { if (e.getRetriesLeft() > 0) { e.decrementRetries(); if (e.getRequest().hasCommitRequest()) { TSOProto.CommitRequest commitRequest = e.getRequest().getCommitRequest(); if (!commitRequest.getIsRetry()) { // Create a new retry for the commit request TSOProto.Request.Builder builder = TSOProto.Request.newBuilder(); TSOProto.CommitRequest.Builder commitBuilder = TSOProto.CommitRequest.newBuilder(); commitBuilder.mergeFrom(commitRequest); commitBuilder.setIsRetry(true); builder.setCommitRequest(commitBuilder.build()); e.setRequest(builder.build()); } } fsm.sendEvent(e); } else { e.error( new ServiceUnavailableException("Number of retries exceeded. This API request failed permanently")); } }
private void queueRetryOrError(StateMachine.Fsm fsm, RequestEvent e) { if (e.getRetriesLeft() > 0) { e.decrementRetries(); if (e.getRequest().hasCommitRequest()) { TSOProto.CommitRequest commitRequest = e.getRequest().getCommitRequest(); if (!commitRequest.getIsRetry()) { // Create a new retry for the commit request TSOProto.Request.Builder builder = TSOProto.Request.newBuilder(); TSOProto.CommitRequest.Builder commitBuilder = TSOProto.CommitRequest.newBuilder(); commitBuilder.mergeFrom(commitRequest); commitBuilder.setIsRetry(true); builder.setCommitRequest(commitBuilder.build()); e.setRequest(builder.build()); } } fsm.sendEvent(e); } else { e.error( new ServiceUnavailableException("Number of retries exceeded. This API request failed permanently")); } }
public Builder mergeFrom(org.apache.omid.proto.TSOProto.Request other) { if (other == org.apache.omid.proto.TSOProto.Request.getDefaultInstance()) return this; if (other.hasTimestampRequest()) { mergeTimestampRequest(other.getTimestampRequest()); } if (other.hasCommitRequest()) { mergeCommitRequest(other.getCommitRequest()); } if (other.hasHandshakeRequest()) { mergeHandshakeRequest(other.getHandshakeRequest()); } if (other.hasFenceRequest()) { mergeFenceRequest(other.getFenceRequest()); } this.mergeUnknownFields(other.getUnknownFields()); return this; }
public String toString() { String info = "Request type "; if (event.getRequest().hasTimestampRequest()) { info += "[Timestamp]"; } else if (event.getRequest().hasCommitRequest()) { info += "[Commit] Start TS ->" + event.getRequest().getCommitRequest().getStartTimestamp(); } else { info += "NONE"; } return info; } }
public String toString() { String info = "Request type "; if (event.getRequest().hasTimestampRequest()) { info += "[Timestamp]"; } else if (event.getRequest().hasCommitRequest()) { info += "[Commit] Start TS ->" + event.getRequest().getCommitRequest().getStartTimestamp(); } else { info += "NONE"; } return info; } }