Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
BUG-5280: switch transactionIdentifier
[controller.git]
/
opendaylight
/
md-sal
/
sal-distributed-datastore
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
datastore
/
TransactionChainProxy.java
diff --git
a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java
b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java
index d230a956c250d0bb359c2889bffa18ac4346d48f..b93f540f20783b74288b7112056883d6a535c9cf 100644
(file)
--- a/
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java
+++ b/
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java
@@
-17,11
+17,11
@@
import java.util.List;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
+import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nonnull;
-import org.opendaylight.controller.cluster.
datastore.identifiers.TransactionChain
Identifier;
-import org.opendaylight.controller.cluster.
datastore.identifier
s.TransactionIdentifier;
+import org.opendaylight.controller.cluster.
access.concepts.LocalHistory
Identifier;
+import org.opendaylight.controller.cluster.
access.concept
s.TransactionIdentifier;
import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionChain;
import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo;
import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException;
import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionChain;
import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo;
import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException;
@@
-119,11
+119,9
@@
final class TransactionChainProxy extends AbstractTransactionContextFactory<Loca
};
private static final Logger LOG = LoggerFactory.getLogger(TransactionChainProxy.class);
};
private static final Logger LOG = LoggerFactory.getLogger(TransactionChainProxy.class);
- private static final AtomicInteger CHAIN_COUNTER = new AtomicInteger();
private static final AtomicReferenceFieldUpdater<TransactionChainProxy, State> STATE_UPDATER =
AtomicReferenceFieldUpdater.newUpdater(TransactionChainProxy.class, State.class, "currentState");
private static final AtomicReferenceFieldUpdater<TransactionChainProxy, State> STATE_UPDATER =
AtomicReferenceFieldUpdater.newUpdater(TransactionChainProxy.class, State.class, "currentState");
- private final TransactionChainIdentifier transactionChainId;
private final TransactionContextFactory parent;
private volatile State currentState = IDLE_STATE;
private final TransactionContextFactory parent;
private volatile State currentState = IDLE_STATE;
@@
-148,15
+146,13
@@
final class TransactionChainProxy extends AbstractTransactionContextFactory<Loca
*/
private final ConcurrentMap<TransactionIdentifier, Promise<Object>> priorReadOnlyTxPromises = new ConcurrentHashMap<>();
*/
private final ConcurrentMap<TransactionIdentifier, Promise<Object>> priorReadOnlyTxPromises = new ConcurrentHashMap<>();
- TransactionChainProxy(final TransactionContextFactory parent) {
- super(parent.getActorContext());
-
- transactionChainId = new TransactionChainIdentifier(parent.getActorContext().getCurrentMemberName(), CHAIN_COUNTER.incrementAndGet());
+ TransactionChainProxy(final TransactionContextFactory parent, final LocalHistoryIdentifier historyId) {
+ super(parent.getActorContext(), historyId);
this.parent = parent;
}
public String getTransactionChainId() {
this.parent = parent;
}
public String getTransactionChainId() {
- return
transactionChainId
.toString();
+ return
getHistoryId()
.toString();
}
@Override
}
@Override
@@
-184,7
+180,13
@@
final class TransactionChainProxy extends AbstractTransactionContextFactory<Loca
currentState = CLOSED_STATE;
// Send a close transaction chain request to each and every shard
currentState = CLOSED_STATE;
// Send a close transaction chain request to each and every shard
- getActorContext().broadcast(new CloseTransactionChain(transactionChainId.toString()).toSerializable());
+
+ getActorContext().broadcast(new Function<Short, Object>() {
+ @Override
+ public Object apply(Short version) {
+ return new CloseTransactionChain(getHistoryId().toString(), version).toSerializable();
+ }
+ });
}
private TransactionProxy allocateWriteTransaction(final TransactionType type) {
}
private TransactionProxy allocateWriteTransaction(final TransactionType type) {
@@
-330,9
+332,4
@@
final class TransactionChainProxy extends AbstractTransactionContextFactory<Loca
promise.success(null);
}
}
promise.success(null);
}
}
-
- @Override
- protected TransactionIdentifier nextIdentifier() {
- return transactionChainId.newTransactionIdentifier();
- }
}
}