Interface ITransactionalMultiVersion
-
- All Superinterfaces:
IMultiVersion,IMultiVersionOperations
- All Known Subinterfaces:
IAsyncTransactionalMultiVersion,IMultiVersionActivePivot,IMultiVersionAggregateProvider,IMultiVersionAggregateProviderHolder,IMultiVersionAxisHierarchy,IMultiVersionConcreteReference,IMultiVersionCube,IMultiVersionDataActivePivot,IMultiVersionDistributedActivePivot,IMultiVersionDistributedAxisHierarchy,IMultiVersionDistributedHierarchy,IMultiVersionDistributedMeasureHierarchy,IMultiVersionGlobalAggregateProvider,IMultiVersionHierarchy,IMultiVersionIndex,IMultiVersionIntegerArray,IMultiVersionLongArray,IMultiVersionMeasureHierarchy,IMultiVersionRecordIndex,IMultiVersionRecordSet,IMultiVersionSecondaryRecordIndex,IMultiVersionStore,IMultiVersionStorePartition,IMultiVersionUniqueRecordIndex
- All Known Implementing Classes:
AAnalysisHierarchy,AAnalysisHierarchyV2,AAsyncTransactionalMultiVersion,ABucketHierarchy,AMultiVersionAggregateProvider,AMultiVersionAnalysisHierarchy,AMultiVersionAxisHierarchy,AMultiVersionConcreteReference,AMultiVersionGlobalAggregateProvider,AMultiVersionIndexedAggregateProvider,AMultiVersionPartitionedAggregateProvider,AMultiVersionPartitionedIndexedAggregateProvider,AMultiVersionSecondaryRecordIndex,AMultiVersionUniqueRecordIndex,ATransactionalMultiVersion,CalculatedMemberTrivialAnalysisHierarchy,DistributedAggregateProvider,DistributedMultiVersionAggregateProviderHolder,DummyAggregateProvider,MultiVersionActivePivot,MultiVersionAggregateProviderHolder,MultiVersionAxisHierarchy,MultiVersionBitmapAggregateProvider,MultiVersionColumnarRecordSet,MultiVersionCompositeSecondaryRecordIndex,MultiVersionCompositeUniqueRecordIndex,MultiVersionCube,MultiVersionDataActivePivot,MultiVersionDistributedActivePivot,MultiVersionDistributedAxisHierarchy,MultiVersionDistributedMeasureHierarchy,MultiVersionIntegerArray,MultiVersionLazyDeleteLinkedIndex,MultiVersionLeafAggregateProvider,MultiVersionLongArray,MultiVersionMeasureHierarchy,MultiVersionNoIndexConcreteReference,MultiVersionPartitionedBitmapAggregateProvider,MultiVersionPartitionedLeafAggregateProvider,MultiVersionSecondaryConcreteReference,MultiVersionSecondaryRecordIndex,MultiVersionStore,MultiVersionStorePartition,MultiVersionUniqueConcreteReference,MultiVersionUniqueRecordIndex,TimeBucketHierarchy
public interface ITransactionalMultiVersion extends IMultiVersion, IMultiVersionOperations
Interface of a multiversion component.Exposes and maintains several concurrent versions of one underlying component, each of those versions is uniquely associated to the epoch that created it.
Multiversion components may allow modifications of the underlying component, those modifications are considered pending and invisible until they are committed. When the changes are committed, a new version of the underlying component is created.
- Author:
- ActiveViam
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ITransactiongetOrCreateTransaction()ITransactiongetTransaction()Returns the current transaction.voidrollback()Rolls back the changes that have been written in the transient state.-
Methods inherited from interface com.qfs.multiversion.IMultiVersion
getMostRecentVersion
-
Methods inherited from interface com.qfs.multiversion.IMultiVersionOperations
commit
-
-
-
-
Method Detail
-
getTransaction
ITransaction getTransaction()
Returns the current transaction.- Returns:
- the current transaction or
nullwhen there is no transaction - See Also:
getOrCreateTransaction()
-
getOrCreateTransaction
ITransaction getOrCreateTransaction()
Returns the current transaction.
The result is nevernullcontrary togetTransaction().THIS METHOD SHOULD BE CALLED ONLY IF
IMultiVersionOperations.commit(IEpoch)(orrollback()) IS GUARANTEED TO BE CALLED otherwise this could cause a memory leak if the transaction holds a version (because the multiversion will keep the transaction).- Returns:
- the current transaction
- See Also:
getTransaction()
-
rollback
void rollback()
Rolls back the changes that have been written in the transient state.Thread-safety: unless specific otherwise by the implementing class, it is not thread-safe to call
IMultiVersionOperations.commit(IEpoch)andIMultiVersionOperations.rollback()concurrently.After this call
getTransaction(), should returnnull.- Specified by:
rollbackin interfaceIMultiVersionOperations- See Also:
getOrCreateTransaction()
-
-