From: Robert Varga Date: Fri, 5 May 2017 10:04:12 +0000 (+0200) Subject: BUG-8372: improve forward/replay naming X-Git-Tag: release/carbon~30 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=cc21df8ade11f41843dc558e8fc93d5be92ed151 BUG-8372: improve forward/replay naming There is a bit of confusion between 'replay' and 'forward' methods. They serve two distinct purposes: - 'replay' happens during reconnect, i.e. for requests that have already entered the connection queue and have paid the delay cost, so they should not pay it again. - 'forward' happens after reconnect for requests that have raced with the reconnect process, i.e. they need to hop from the old connection to the new one. These need to enter the queue and pay the delay cost. This patch cleans the codepaths up to use consistent naming, making it clearer that the problem we are seeing is in the 'replay' path. Change-Id: Id854e09a0308f8d0a9144d59f41e31950cd58665 Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java index f2e72f18ec..dae12af731 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java @@ -306,8 +306,8 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id } @Override - void replaySuccessfulRequests(final Iterable previousEntries) { - proxy.replaySuccessfulRequests(previousEntries); + void replayRequests(final Iterable previousEntries) { + proxy.replayRequests(previousEntries); } @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehavior.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehavior.java index bc7eca75b8..d948992457 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehavior.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehavior.java @@ -144,7 +144,7 @@ abstract class AbstractDataStoreClientBehavior extends ClientActorBehavior request, final Consumer> callback) { + final void forwardRequest(final TransactionRequest request, final Consumer> callback) { final AbstractProxyTransaction successor = getSuccessorState().getSuccessor(); if (successor instanceof LocalProxyTransaction) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/BouncingReconnectForwarder.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/BouncingReconnectForwarder.java index 3fe6a09bf6..f2734ae15d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/BouncingReconnectForwarder.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/BouncingReconnectForwarder.java @@ -78,7 +78,7 @@ final class BouncingReconnectForwarder extends ReconnectForwarder { // FIXME: do not use sendRequest() once we have throttling in place, as we have already waited the // period required to get into the queue. - cohort.replayRequest(request, entry.getCallback(), this::sendToSuccessor); + cohort.forwardRequest(request, entry.getCallback(), this::sendToSuccessor); } catch (RequestException e) { entry.complete(request.toRequestFailure(e)); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/HistoryReconnectCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/HistoryReconnectCohort.java index 7e6ff671a4..f1939dc846 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/HistoryReconnectCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/HistoryReconnectCohort.java @@ -18,7 +18,7 @@ import org.opendaylight.controller.cluster.access.client.ConnectionEntry; abstract class HistoryReconnectCohort implements AutoCloseable { abstract ProxyReconnectCohort getProxy(); - abstract void replaySuccessfulRequests(Iterable previousEntries); + abstract void replayRequests(Iterable previousEntries); @Override public abstract void close(); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyHistory.java index 88e86bc089..827c19e526 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyHistory.java @@ -211,7 +211,7 @@ abstract class ProxyHistory implements Identifiable { @GuardedBy("lock") @Override - void replaySuccessfulRequests(final Iterable previousEntries) { + void replayRequests(final Iterable previousEntries) { // First look for our Create message for (ConnectionEntry e : previousEntries) { final Request req = e.getRequest(); @@ -257,18 +257,18 @@ abstract class ProxyHistory implements Identifiable { } @Override - void replayRequest(final Request request, final Consumer> callback, - final BiConsumer, Consumer>> replayTo) throws RequestException { + void forwardRequest(final Request request, final Consumer> callback, + final BiConsumer, Consumer>> forwardTo) throws RequestException { if (request instanceof TransactionRequest) { - replayTransactionRequest((TransactionRequest) request, callback); + forwardTransactionRequest((TransactionRequest) request, callback); } else if (request instanceof LocalHistoryRequest) { - replayTo.accept(request, callback); + forwardTo.accept(request, callback); } else { throw new IllegalArgumentException("Unhandled request " + request); } } - private void replayTransactionRequest(final TransactionRequest request, + private void forwardTransactionRequest(final TransactionRequest request, final Consumer> callback) throws RequestException { final AbstractProxyTransaction proxy; @@ -282,7 +282,7 @@ abstract class ProxyHistory implements Identifiable { throw new RequestReplayException("Failed to find proxy for %s", request); } - proxy.replayRequest(request, callback); + proxy.forwardRequest(request, callback); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyReconnectCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyReconnectCohort.java index 2f97f901ff..0ad4dc5336 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyReconnectCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ProxyReconnectCohort.java @@ -18,10 +18,10 @@ import org.opendaylight.yangtools.concepts.Identifiable; abstract class ProxyReconnectCohort implements Identifiable { - abstract void replaySuccessfulRequests(Iterable previousEntries); + abstract void replayRequests(Iterable previousEntries); abstract ProxyHistory finishReconnect(); - abstract void replayRequest(Request request, Consumer> callback, + abstract void forwardRequest(Request request, Consumer> callback, BiConsumer, Consumer>> replayTo) throws RequestException; }