Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix incorrect remove call in ShardManager
[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..6cfc7e1f05ff78208de740994c7b370487d2d752 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,17
+146,11
@@
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;
}
this.parent = parent;
}
- public String getTransactionChainId() {
- return transactionChainId.toString();
- }
-
@Override
public DOMStoreReadTransaction newReadOnlyTransaction() {
currentState.checkReady();
@Override
public DOMStoreReadTransaction newReadOnlyTransaction() {
currentState.checkReady();
@@
-184,7
+176,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(), version).toSerializable();
+ }
+ }, CloseTransactionChain.class);
}
private TransactionProxy allocateWriteTransaction(final TransactionType type) {
}
private TransactionProxy allocateWriteTransaction(final TransactionType type) {
@@
-227,7
+225,7
@@
final class TransactionChainProxy extends AbstractTransactionContextFactory<Loca
LOG.debug("Tx: {} - waiting for ready futures with pending Tx {}", txId, previousTransactionId);
} else {
previousTransactionId = "";
LOG.debug("Tx: {} - waiting for ready futures with pending Tx {}", txId, previousTransactionId);
} else {
previousTransactionId = "";
- LOG.debug("Waiting for ready futures on chain {}", get
TransactionChain
Id());
+ LOG.debug("Waiting for ready futures on chain {}", get
History
Id());
}
previous = combineFutureWithPossiblePriorReadOnlyTxFutures(previous, txId);
}
previous = combineFutureWithPossiblePriorReadOnlyTxFutures(previous, txId);
@@
-330,9
+328,4
@@
final class TransactionChainProxy extends AbstractTransactionContextFactory<Loca
promise.success(null);
}
}
promise.success(null);
}
}
-
- @Override
- protected TransactionIdentifier nextIdentifier() {
- return transactionChainId.newTransactionIdentifier();
- }
}
}