Package org.eclipse.rdf4j.sail.nativerdf
Class NativeStore
java.lang.Object
org.eclipse.rdf4j.sail.helpers.AbstractSail
org.eclipse.rdf4j.sail.helpers.AbstractNotifyingSail
org.eclipse.rdf4j.sail.nativerdf.NativeStore
- All Implemented Interfaces:
FederatedServiceResolverClient,NotifyingSail,Sail
- Direct Known Subclasses:
LimitedSizeNativeStore
A SAIL implementation using B-Tree indexing on disk for storing and querying its data.
The NativeStore is designed for datasets between 100,000 and 100 million triples. On most operating systems, if there is sufficient physical memory, the NativeStore will act like the MemoryStore, because the read/write commands will be cached by the OS. This technique allows the NativeStore to operate quite well for millions of triples.
- Author:
- Arjohn Kampman, jeen
-
Field Summary
Fields inherited from class org.eclipse.rdf4j.sail.helpers.AbstractSail
connectionTimeOut, DEFAULT_CONNECTION_TIMEOUT, DEFAULT_ITERATION_SYNC_THRESHOLD, initializationLock -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new NativeStore.NativeStore(File dataDir) NativeStore(File dataDir, String tripleIndexes) -
Method Summary
Modifier and TypeMethodDescriptionGets a CollectionFactory that may be optimized for this store and may or may not use disk or other resources.protected NotifyingSailConnectionReturns a store-specific SailConnection object.Gets theFederatedServiceResolverused by this client.booleanprotected LockgetTransactionLock(IsolationLevel level) This call will block whenIsolationLevels.NONEis provided when there are active transactions with a higher isolation and block when a higher isolation is provided when there are active transactions withIsolationLevels.NONEisolation.Gets a ValueFactory object that can be used to create IRI-, blank node-, literal- and statement objects.protected voidInitializes this NativeStore.booleanChecks whether this Sail object is writable, i.e.voidsetDataDir(File dataDir) Sets the data directory for the Sail.voidSets theEvaluationStrategyto use.voidOverrides theFederatedServiceResolverused by this instance, but the given resolver is not shutDown when this instance is.voidsetForceSync(boolean forceSync) Specifies whether updates should be synced to disk forcefully, must be called before initialization.voidsetNamespaceCacheSize(int namespaceCacheSize) voidsetNamespaceIDCacheSize(int namespaceIDCacheSize) voidsetTripleIndexes(String tripleIndexes) Sets the triple indexes for the native store, must be called before initialization.voidsetValueCacheSize(int valueCacheSize) voidsetValueIDCacheSize(int valueIDCacheSize) voidshutDown()Shuts down the Sail, giving it the opportunity to synchronize any stale data.protected voidDo store-specific operations to ensure proper shutdown of the store.Methods inherited from class org.eclipse.rdf4j.sail.helpers.AbstractNotifyingSail
addSailChangedListener, getConnection, notifySailChanged, removeSailChangedListenerMethods inherited from class org.eclipse.rdf4j.sail.helpers.AbstractSail
addSupportedIsolationLevel, connectionClosed, debugEnabled, getDataDir, getDefaultIsolationLevel, getDefaultQueryEvaluationMode, getIterationCacheSyncThreshold, getSupportedIsolationLevels, init, isInitialized, isTrackResultSize, removeSupportedIsolationLevel, setConnectionTimeOut, setDefaultIsolationLevel, setDefaultQueryEvaluationMode, setIterationCacheSyncThreshold, setSupportedIsolationLevels, setSupportedIsolationLevels, setTrackResultSize, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.sail.Sail
getDataDir, getDefaultIsolationLevel, getSupportedIsolationLevels, init
-
Constructor Details
-
NativeStore
public NativeStore()Creates a new NativeStore. -
NativeStore
-
NativeStore
-
-
Method Details
-
setDataDir
Description copied from interface:SailSets the data directory for the Sail. The Sail can use this directory for storage of data, parameters, etc. This directory must be set before the Sail isinitialized.- Specified by:
setDataDirin interfaceSail- Overrides:
setDataDirin classAbstractSail
-
setTripleIndexes
Sets the triple indexes for the native store, must be called before initialization.- Parameters:
tripleIndexes- An index strings, e.g. spoc,posc.
-
getTripleIndexes
-
setForceSync
public void setForceSync(boolean forceSync) Specifies whether updates should be synced to disk forcefully, must be called before initialization. Enabling this feature may prevent corruption in case of events like power loss, but can have a severe impact on write performance. By default, this feature is disabled. -
getForceSync
public boolean getForceSync() -
setValueCacheSize
public void setValueCacheSize(int valueCacheSize) -
setValueIDCacheSize
public void setValueIDCacheSize(int valueIDCacheSize) -
setNamespaceCacheSize
public void setNamespaceCacheSize(int namespaceCacheSize) -
setNamespaceIDCacheSize
public void setNamespaceIDCacheSize(int namespaceIDCacheSize) -
getEvaluationStrategyFactory
- Returns:
- Returns the
EvaluationStrategy.
-
setEvaluationStrategyFactory
Sets theEvaluationStrategyto use. -
getFederatedServiceResolver
Description copied from interface:FederatedServiceResolverClientGets theFederatedServiceResolverused by this client.- Specified by:
getFederatedServiceResolverin interfaceFederatedServiceResolverClient- Returns:
- Returns the SERVICE resolver.
-
setFederatedServiceResolver
Overrides theFederatedServiceResolverused by this instance, but the given resolver is not shutDown when this instance is.- Specified by:
setFederatedServiceResolverin interfaceFederatedServiceResolverClient- Parameters:
resolver- The SERVICE resolver to set.
-
initializeInternal
Initializes this NativeStore.- Overrides:
initializeInternalin classAbstractSail- Throws:
SailException- If this NativeStore could not be initialized using the parameters that have been set.
-
shutDownInternal
Description copied from class:AbstractSailDo store-specific operations to ensure proper shutdown of the store.- Specified by:
shutDownInternalin classAbstractSail- Throws:
SailException
-
shutDown
Description copied from interface:SailShuts down the Sail, giving it the opportunity to synchronize any stale data. Care should be taken that all initialized Sails are being shut down before an application exits to avoid potential loss of data. Once shut down, a Sail can no longer be used until it is re-initialized.- Specified by:
shutDownin interfaceSail- Overrides:
shutDownin classAbstractSail- Throws:
SailException- If the Sail object encountered an error or unexpected situation internally.
-
isWritable
public boolean isWritable()Description copied from interface:SailChecks whether this Sail object is writable, i.e. if the data contained in this Sail object can be changed.- Specified by:
isWritablein interfaceSail
-
getConnectionInternal
Description copied from class:AbstractSailReturns a store-specific SailConnection object.- Specified by:
getConnectionInternalin classAbstractNotifyingSail- Returns:
- A connection to the store.
- Throws:
SailException
-
getValueFactory
Description copied from interface:SailGets a ValueFactory object that can be used to create IRI-, blank node-, literal- and statement objects.- Specified by:
getValueFactoryin interfaceSail- Returns:
- a ValueFactory object for this Sail object.
-
getTransactionLock
This call will block whenIsolationLevels.NONEis provided when there are active transactions with a higher isolation and block when a higher isolation is provided when there are active transactions withIsolationLevels.NONEisolation. Store is either exclusively inIsolationLevels.NONEisolation with potentially zero or more transactions, or exclusively in higher isolation mode with potentially zero or more transactions.- Parameters:
level- indicating desired modeIsolationLevels.NONEor higher- Returns:
- Lock used to prevent Store from switching isolation modes
- Throws:
SailException
-
getCollectionFactory
Description copied from interface:SailGets a CollectionFactory that may be optimized for this store and may or may not use disk or other resources.- Specified by:
getCollectionFactoryin interfaceSail- Returns:
- a CollectionFactory
-