P
- Type of path (subtree identifier), which represents location in
treeD
- Type of data (payload), which represents data payloadpublic interface AsyncDataBroker<P extends org.opendaylight.yangtools.concepts.Path<P>,D> extends AsyncDataTransactionFactory<P,D>
All operations on the data tree are performed via one of the transactions:
newReadOnlyTransaction()
newWriteOnlyTransaction()
newReadWriteTransaction()
These transactions provide a stable isolated view of data tree, which is guaranteed to be not affected by other concurrent transactions, until transaction is committed.
For a detailed explanation of how transaction are isolated and how transaction-local
changes are committed to global data tree, see
AsyncReadTransaction
, AsyncWriteTransaction
,
AsyncReadWriteTransaction
and AsyncWriteTransaction.submit()
.
It is strongly recommended to use the type of transaction, which provides only the minimal capabilities you need. This allows for optimizations at the data broker / data store level. For example, implementations may optimize the transaction for reading if they know ahead of time that you only need to read data - such as not keeping additional meta-data, which may be required for write transactions.
Implementation Note: This interface is not intended to be implemented by users of MD-SAL, but only to be consumed by them.
Modifier and Type | Method and Description |
---|---|
AsyncReadOnlyTransaction<P,D> |
newReadOnlyTransaction()
Allocates a new read-only transaction which provides an immutable snapshot of the data tree.
|
AsyncReadWriteTransaction<P,D> |
newReadWriteTransaction()
Allocates new read-write transaction which provides a mutable view of the data
tree.
|
AsyncWriteTransaction<P,D> |
newWriteOnlyTransaction()
Allocates new write-only transaction based on latest state of data
tree.
|
AsyncReadOnlyTransaction<P,D> newReadOnlyTransaction()
AsyncDataTransactionFactory
The view of data tree is an immutable snapshot of current data tree state when transaction was allocated.
newReadOnlyTransaction
in interface AsyncDataTransactionFactory<P extends org.opendaylight.yangtools.concepts.Path<P>,D>
AsyncReadWriteTransaction<P,D> newReadWriteTransaction()
AsyncDataTransactionFactory
Preconditions for mutation of data tree are captured from the snapshot of
data tree state, when the transaction is allocated. If data was
changed during transaction in an incompatible way then the commit of this transaction
will fail. See AsyncWriteTransaction.submit()
for more
details about conflicting and not-conflicting changes and
failure scenarios.
newReadWriteTransaction
in interface AsyncDataTransactionFactory<P extends org.opendaylight.yangtools.concepts.Path<P>,D>
AsyncWriteTransaction<P,D> newWriteOnlyTransaction()
AsyncDataTransactionFactory
Preconditions for mutation of data tree are captured from the snapshot of
data tree state, when the transaction is allocated. If data was
changed during transaction in an incompatible way then the commit of this transaction
will fail. See AsyncWriteTransaction.submit()
for more
details about conflicting and not-conflicting changes and
failure scenarios.
Since this transaction does not provide a view of the data it SHOULD BE
used only by callers which are exclusive writers (exporters of data)
to the subtree they modify. This prevents optimistic
lock failures as described in AsyncWriteTransaction.submit()
.
Exclusivity of writers to particular subtree SHOULD BE enforced by external locking mechanism.
newWriteOnlyTransaction
in interface AsyncDataTransactionFactory<P extends org.opendaylight.yangtools.concepts.Path<P>,D>
Copyright © 2019 OpenDaylight. All rights reserved.