BUG-5280: implement message queueing 61/39561/75
authorRobert Varga <rovarga@cisco.com>
Sat, 28 May 2016 23:27:24 +0000 (01:27 +0200)
committerRobert Varga <rovarga@cisco.com>
Wed, 6 Jul 2016 09:52:24 +0000 (11:52 +0200)
commit50a2f5eb1c94650bc1be1e49d3a5382a1a74a9b3
tree5508bf792f20d6ef63134a033d0536d30aa90c19
parentc6e3a444f7e8702aade9839ca950bc9790be8831
BUG-5280: implement message queueing

This patch implements the basic queueing and timeout retry mechanism
in ClientActorBehavior.

This implementation is not very efficient, as each send goes through
the actor's mailbox, but it gets the job done and is correct. It will
be optimized in a follow-up patch, which will refactor internal
workings so that SequencedQueue is fully thread-safe and correct with
regard to request enqueue, timeouts and retries.

Change-Id: I207a30877328dbdc08d42f76a0db55b5ae162de5
Signed-off-by: Robert Varga <rovarga@cisco.com>
13 files changed:
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/DistributedDataStoreClientBehavior.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/ClientActorBehavior.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/ClientActorContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/InitialClientActorContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/InternalCommand.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/NoProgressException.java [new file with mode: 0644]
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/RequestCallback.java [new file with mode: 0644]
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SavingClientActorBehavior.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueue.java [new file with mode: 0644]
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueueEntry.java [new file with mode: 0644]
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/actors/client/ClientActorContextTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueueEntryTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/actors/client/SequencedQueueTest.java [new file with mode: 0644]