public class StandardStoreFeatures extends Object implements StoreFeatures
StandardStoreFeatures.Builder
-customizable implementation of StoreFeatures.Modifier and Type | Class and Description |
---|---|
static class |
StandardStoreFeatures.Builder
The only way to instantiate
StandardStoreFeatures . |
Modifier and Type | Method and Description |
---|---|
Configuration |
getKeyConsistentTxConfig()
Get a transaction configuration that enforces key consistency.
|
Configuration |
getLocalKeyConsistentTxConfig()
Get a transaction configuration that enforces local key consistency.
|
TimestampProviders |
getPreferredTimestamps()
If this storage backend supports one particular type of data
timestamp/version better than others.
|
Configuration |
getScanTxConfig()
Get a transaction configuration suitable for reading data into a
ScanJob . |
boolean |
hasBatchMutation()
Whether this storage backend supports batch mutations via
KeyColumnValueStoreManager.mutateMany(java.util.Map, StoreTransaction) . |
boolean |
hasCellTTL()
Returns true if this storage backend support time-to-live (TTL) settings for column-value entries.
|
boolean |
hasConsistentScan()
Whether this storage backend supports a consistent key order among different scans.
|
boolean |
hasLocalKeyPartition()
Whether this storage backend has a (possibly improper) subset of the
its accessible data stored locally, that is, partially available for
I/O operations without necessarily going over the network.
|
boolean |
hasLocking()
|
boolean |
hasMultiQuery()
Whether this storage backend supports query operations on multiple keys
via
KeyColumnValueStore.getSlice(java.util.List, SliceQuery, StoreTransaction) and KeyColumnValueStore.getMultiSlices(MultiKeysQueryGroups, StoreTransaction) |
boolean |
hasOptimisticLocking()
Whether the store will commit pending mutations optimistically and make other pending changes
to the same cells fail on tx.commit() (true) or will fail pending mutations pessimistically on tx.commit()
if other parallel transactions have already marked the relevant cells dirty.
|
boolean |
hasOrderedScan()
Whether this storage backend supports global key scans via
KeyColumnValueStore.getKeys(KeyRangeQuery, StoreTransaction) . |
boolean |
hasScan()
|
boolean |
hasStoreTTL()
Returns true if this storage backend supports time-to-live (TTL) settings on a per-store basis.
|
boolean |
hasTimestamps()
Returns true if column-value entries in this storage backend are annotated with a timestamp,
else false.
|
boolean |
hasTxIsolation()
Whether this storage backend's transactions support isolation.
|
boolean |
hasUnorderedScan()
Whether this storage backend supports global key scans via
KeyColumnValueStore.getKeys(SliceQuery, StoreTransaction) . |
boolean |
hasVisibility()
Returns true if this storage backend supports entry-level visibility by attaching a visibility or authentication
token to each column-value entry in the data store and limited retrievals to "visible" entries.
|
boolean |
isDistributed()
Whether this storage backend writes and reads data from more than one
machine.
|
boolean |
isKeyConsistent()
Whether this storage backend provides strong consistency within each
key/row.
|
boolean |
isKeyOrdered()
Whether this storage backend preserves key locality.
|
boolean |
supportsInterruption()
Whether calls to this manager and its stores may be safely interrupted
without leaving the underlying system in an inconsistent state.
|
boolean |
supportsPersistence()
Whether the backend supports data persistence.
|
public boolean hasScan()
StoreFeatures
hasScan
in interface StoreFeatures
public boolean hasUnorderedScan()
StoreFeatures
KeyColumnValueStore.getKeys(SliceQuery, StoreTransaction)
.hasUnorderedScan
in interface StoreFeatures
public boolean hasConsistentScan()
StoreFeatures
KeyColumnValueStore.getKeys(MultiSlicesQuery, StoreTransaction)
hasConsistentScan
in interface StoreFeatures
public boolean hasOrderedScan()
StoreFeatures
KeyColumnValueStore.getKeys(KeyRangeQuery, StoreTransaction)
.hasOrderedScan
in interface StoreFeatures
public boolean hasMultiQuery()
StoreFeatures
KeyColumnValueStore.getSlice(java.util.List, SliceQuery, StoreTransaction)
and KeyColumnValueStore.getMultiSlices(MultiKeysQueryGroups, StoreTransaction)
hasMultiQuery
in interface StoreFeatures
public boolean hasLocking()
StoreFeatures
KeyColumnValueStore.acquireLock(org.janusgraph.diskstorage.StaticBuffer, org.janusgraph.diskstorage.StaticBuffer, org.janusgraph.diskstorage.StaticBuffer, StoreTransaction)
hasLocking
in interface StoreFeatures
public boolean hasBatchMutation()
StoreFeatures
KeyColumnValueStoreManager.mutateMany(java.util.Map, StoreTransaction)
.hasBatchMutation
in interface StoreFeatures
public boolean isKeyOrdered()
StoreFeatures
isKeyOrdered
in interface StoreFeatures
public boolean isDistributed()
StoreFeatures
isDistributed
in interface StoreFeatures
public boolean hasTxIsolation()
StoreFeatures
hasTxIsolation
in interface StoreFeatures
public boolean isKeyConsistent()
StoreFeatures
isKeyConsistent
in interface StoreFeatures
public boolean hasTimestamps()
StoreFeatures
hasTimestamps
in interface StoreFeatures
public TimestampProviders getPreferredTimestamps()
StoreFeatures
StoreFeatures.hasTimestamps()
is
false.getPreferredTimestamps
in interface StoreFeatures
public boolean hasCellTTL()
StoreFeatures
Entry
, the entry will
disappear from the storage backend after the given amount of time. See references to
EntryMetaData.TTL
for example usage in JanusGraph internals.
This is the finer-grained of the two TTL modes.hasCellTTL
in interface StoreFeatures
public boolean hasStoreTTL()
StoreFeatures
StoreMetaData.TTL
. This is the coarser-grained of the two
TTL modes.hasStoreTTL
in interface StoreFeatures
public boolean hasVisibility()
StoreFeatures
hasVisibility
in interface StoreFeatures
public boolean supportsPersistence()
StoreFeatures
supportsPersistence
in interface StoreFeatures
public Configuration getKeyConsistentTxConfig()
StoreFeatures
StoreFeatures.isKeyConsistent()
is
false.getKeyConsistentTxConfig
in interface StoreFeatures
public Configuration getLocalKeyConsistentTxConfig()
StoreFeatures
StoreFeatures.isKeyConsistent()
is false.
Backends which don't support the notion of "local" strong consistency may
return the same configuration returned by
StoreFeatures.getKeyConsistentTxConfig()
.getLocalKeyConsistentTxConfig
in interface StoreFeatures
public Configuration getScanTxConfig()
StoreFeatures
ScanJob
. Transactions opened on this config will only be
used to read data, not to write it, and they'll be rolled back
when those reads are completed. The configuration returned by this
method should disable transaction isolation, if the store supports it.getScanTxConfig
in interface StoreFeatures
public boolean hasLocalKeyPartition()
StoreFeatures
StoreManager.getLocalKeyPartition()
must
return a valid list as described in that method. If this is false, that
method will not be invoked.hasLocalKeyPartition
in interface StoreFeatures
public boolean supportsInterruption()
StoreFeatures
supportsInterruption
in interface StoreFeatures
public boolean hasOptimisticLocking()
StoreFeatures
hasOptimisticLocking
in interface StoreFeatures
Copyright © 2012–2024. All rights reserved.