Java源码示例:io.atomix.protocols.raft.protocol.InstallResponse

示例1
/**
 * Handles an OK install response.
 */
@SuppressWarnings("unused")
protected void handleInstallResponseOk(RaftMemberContext member, InstallRequest request, InstallResponse response) {
  // Reset the member failure count and update the member's status if necessary.
  succeedAttempt(member);

  // If the install request was completed successfully, set the member's snapshotIndex and reset
  // the next snapshot index/offset.
  if (request.complete()) {
    member.setNextSnapshotIndex(0);
    member.setNextSnapshotOffset(0);
    member.setSnapshotIndex(request.snapshotIndex());
  }
  // If more install requests remain, increment the member's snapshot offset.
  else {
    member.setNextSnapshotOffset(request.chunkOffset() + 1);
  }

  // Recursively append entries to the member.
  appendEntries(member);
}
 
示例2
/**
 * Handles an install response.
 */
protected void handleInstallResponse(RaftMemberContext member, InstallRequest request, InstallResponse response, long timestamp) {
  if (response.status() == RaftResponse.Status.OK) {
    handleInstallResponseOk(member, request, response);
  } else {
    handleInstallResponseError(member, request, response);
  }
}
 
示例3
/**
 * Handles an ERROR install response.
 */
@SuppressWarnings("unused")
protected void handleInstallResponseError(RaftMemberContext member, InstallRequest request, InstallResponse response) {
  log.warn("Failed to install {}", member.getMember().memberId());
  member.setNextSnapshotIndex(0);
  member.setNextSnapshotOffset(0);
}
 
示例4
@Override
public CompletableFuture<InstallResponse> onInstall(InstallRequest request) {
  logRequest(request);
  return Futures.completedFuture(logResponse(InstallResponse.builder()
      .withStatus(Status.ERROR)
      .withError(RaftError.Type.UNAVAILABLE)
      .build()));
}
 
示例5
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return sendAndReceive(memberId, "install", request);
}
 
示例6
@Override
public void registerInstallHandler(Function<InstallRequest,
    CompletableFuture<InstallResponse>> handler) {
  registerHandler("install", handler);
}
 
示例7
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return getServer(memberId).thenCompose(listener ->
      listener.install(encode(request))).thenApply(this::decode);
}
 
示例8
@Override
public void registerInstallHandler(Function<InstallRequest,
    CompletableFuture<InstallResponse>> handler) {
  this.installHandler = handler;
}
 
示例9
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return sendAndReceive(memberId, "install", request);
}
 
示例10
@Override
public void registerInstallHandler(Function<InstallRequest,
    CompletableFuture<InstallResponse>> handler) {
  registerHandler("install", handler);
}
 
示例11
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return getServer(memberId).thenCompose(listener ->
      listener.install(encode(request))).thenApply(this::decode);
}
 
示例12
@Override
public void registerInstallHandler(Function<InstallRequest,
    CompletableFuture<InstallResponse>> handler) {
  this.installHandler = handler;
}
 
示例13
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return sendAndReceive(context.installSubject, request, memberId);
}
 
示例14
@Override
public void registerInstallHandler(Function<InstallRequest, CompletableFuture<InstallResponse>> handler) {
  clusterCommunicator.subscribe(context.installSubject, serializer::decode, handler, serializer::encode);
}
 
示例15
@Override
protected void handleInstallResponse(RaftMemberContext member, InstallRequest request, InstallResponse response, long timestamp) {
  super.handleInstallResponse(member, request, response, timestamp);
  recordHeartbeat(member, timestamp);
}
 
示例16
@Override
public CompletableFuture<InstallResponse> onInstall(InstallRequest request) {
  CompletableFuture<InstallResponse> future = super.onInstall(request);
  resetHeartbeatTimeout();
  return future;
}
 
示例17
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return sendAndReceive(memberId, "install", request);
}
 
示例18
@Override
public void registerInstallHandler(Function<InstallRequest, CompletableFuture<InstallResponse>> handler) {
  registerHandler("install", handler);
}
 
示例19
@Override
public CompletableFuture<InstallResponse> install(MemberId memberId, InstallRequest request) {
  return getServer(memberId).thenCompose(listener -> listener.install(encode(request))).thenApply(this::decode);
}
 
示例20
@Override
public void registerInstallHandler(Function<InstallRequest, CompletableFuture<InstallResponse>> handler) {
  this.installHandler = handler;
}
 
示例21
/**
 * Handles an install request.
 *
 * @param request The request to handle.
 * @return A completable future to be completed with the request response.
 */
CompletableFuture<InstallResponse> onInstall(InstallRequest request);