storm.trident.state
Interface State
- All Known Subinterfaces:
- MapState<T>, ReadOnlyMapState<T>, ReadOnlySnapshottable<T>, Snapshottable<T>
- All Known Implementing Classes:
- CachedBatchReadsMap, NonTransactionalMap, OpaqueMap, ReadOnlyState, SnapshottableMap, TransactionalMap
public interface State
There's 3 different kinds of state:
1. non-transactional: ignores commits, updates are permanent. no rollback. a cassandra incrementing state would be like this
2. repeat-transactional: idempotent as long as all batches for a txid are identical
3. opaque-transactional: the most general kind of state. updates are always done
based on the previous version of the value if the current commit = latest stored commit
Idempotent even if the batch for a txid can change.
repeat transactional is idempotent for transactional spouts
opaque transactional is idempotent for opaque or transactional spouts
Trident should log warnings when state is idempotent but updates will not be idempotent
because of spout
Method Summary |
void |
beginCommit(java.lang.Long txid)
|
void |
commit(java.lang.Long txid)
|
beginCommit
void beginCommit(java.lang.Long txid)
commit
void commit(java.lang.Long txid)