Class AbstractMemoryOverflowModel<T extends AbstractModel>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractSet<Statement>
-
- org.eclipse.rdf4j.model.impl.AbstractModel
-
- org.eclipse.rdf4j.model.impl.AbstractMemoryOverflowModel<T>
-
- All Implemented Interfaces:
Serializable,Iterable<Statement>,Collection<Statement>,Set<Statement>,Model,NamespaceAware
@InternalUseOnly public abstract class AbstractMemoryOverflowModel<T extends AbstractModel> extends AbstractModel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intBATCH_SIZEThe default batch size is 1024.protected Tdiskstatic intMEMORY_THRESHOLD_HIGHms GC activity over the past second that triggers overflow to diskstatic intMEMORY_THRESHOLD_LOWms GC activity over the past second that skips overflow to disk in anticipation of GC freeing up memorystatic intMEMORY_THRESHOLD_MEDIUMms GC activity over the past second that disables overflow to diskstatic intMIN_AVAILABLE_MEM_BEFORE_OVERFLOWINGThe minimum amount of free memory before overflowing to disk.-
Fields inherited from class org.eclipse.rdf4j.model.impl.AbstractModel
NULL_CONTEXT
-
-
Constructor Summary
Constructors Constructor Description AbstractMemoryOverflowModel()AbstractMemoryOverflowModel(Set<Namespace> namespaces)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanadd(Resource subj, IRI pred, Value obj, Resource... contexts)Adds one or more statements to the model.booleanadd(Statement st)booleanaddAll(Collection<? extends Statement> c)booleanclear(Resource... contexts)Removes statements with the specified context exist in this model.booleancontains(Resource subj, IRI pred, Value obj, Resource... contexts)Determines if statements with the specified subject, predicate, object and (optionally) context exist in this model.Modelfilter(Resource subj, IRI pred, Value obj, Resource... contexts)Returns a filtered view of the statements with the specified subject, predicate, object and (optionally) context.Optional<Namespace>getNamespace(String prefix)Gets the namespace that is associated with the specified prefix, if any.Set<Namespace>getNamespaces()Gets the set that contains the assigned namespaces.Iterator<Statement>iterator()protected abstract voidoverflowToDiskInner(Model memory)booleanremove(Resource subj, IRI pred, Value obj, Resource... contexts)Removes statements with the specified subject, predicate, object and (optionally) context exist in this model.Optional<Namespace>removeNamespace(String prefix)Removes a namespace declaration by removing the association between a prefix and a namespace name.voidremoveTermIteration(Iterator<Statement> iter, Resource subj, IRI pred, Value obj, Resource... contexts)Called by aggregate sets when a term has been removed from a term iterator.NamespacesetNamespace(String prefix, String name)Sets the prefix for a namespace.voidsetNamespace(Namespace namespace)Sets the prefix for a namespace.intsize()-
Methods inherited from class org.eclipse.rdf4j.model.impl.AbstractModel
clear, closeIterator, contains, containsAll, contexts, isEmpty, objects, predicates, remove, removeAll, retainAll, subjects, toArray, toArray, unmodifiable
-
Methods inherited from class java.util.AbstractSet
equals, hashCode
-
Methods inherited from class java.util.AbstractCollection
toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface org.eclipse.rdf4j.model.Model
getStatements
-
Methods inherited from interface java.util.Set
equals, hashCode, spliterator
-
-
-
-
Field Detail
-
BATCH_SIZE
public static int BATCH_SIZE
The default batch size is 1024. This is the number of statements that will be written to disk at a time.
-
MEMORY_THRESHOLD_HIGH
public static int MEMORY_THRESHOLD_HIGH
ms GC activity over the past second that triggers overflow to disk
-
MEMORY_THRESHOLD_MEDIUM
public static int MEMORY_THRESHOLD_MEDIUM
ms GC activity over the past second that disables overflow to disk
-
MEMORY_THRESHOLD_LOW
public static int MEMORY_THRESHOLD_LOW
ms GC activity over the past second that skips overflow to disk in anticipation of GC freeing up memory
-
MIN_AVAILABLE_MEM_BEFORE_OVERFLOWING
public static int MIN_AVAILABLE_MEM_BEFORE_OVERFLOWING
The minimum amount of free memory before overflowing to disk. Defaults to 32 MB for heaps smaller than 1 GB and 128 MB for heaps larger than 1 GB.
-
disk
protected transient volatile T extends AbstractModel disk
-
-
Method Detail
-
getNamespaces
public Set<Namespace> getNamespaces()
Description copied from interface:NamespaceAwareGets the set that contains the assigned namespaces.
-
getNamespace
public Optional<Namespace> getNamespace(String prefix)
Description copied from interface:NamespaceAwareGets the namespace that is associated with the specified prefix, if any. If multiple namespaces match the given prefix, the result may not be consistent over successive calls to this method.- Parameters:
prefix- A namespace prefix.- Returns:
- The namespace name that is associated with the specified prefix, or
Optional.empty()if there is no such namespace.
-
setNamespace
public Namespace setNamespace(String prefix, String name)
Description copied from interface:ModelSets the prefix for a namespace. This will replace any existing namespace associated to the prefix.- Parameters:
prefix- The new prefix.name- The namespace name that the prefix maps to.- Returns:
- The
Namespaceobject for the given namespace.
-
setNamespace
public void setNamespace(Namespace namespace)
Description copied from interface:ModelSets the prefix for a namespace. This will replace any existing namespace associated to the prefix.- Parameters:
namespace- ANamespaceobject to use in this Model.
-
removeNamespace
public Optional<Namespace> removeNamespace(String prefix)
Description copied from interface:ModelRemoves a namespace declaration by removing the association between a prefix and a namespace name.- Parameters:
prefix- The namespace prefix of which the assocation with a namespace name is to be removed.- Returns:
- the previous namespace bound to the prefix or
Optional.empty()
-
contains
public boolean contains(Resource subj, IRI pred, Value obj, Resource... contexts)
Description copied from interface:ModelDetermines if statements with the specified subject, predicate, object and (optionally) context exist in this model. Thesubject,predicateandobjectparameters can benullto indicate wildcards. Thecontextsparameter is a wildcard and accepts zero or more values. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match. Note: to match statements without an associated context, specify the valuenulland explicitly cast it to typeResource.Examples:
model.contains(s1, null, null)is true if any statements in this model have subjects1,
model.contains(null, null, null, c1)is true if any statements in this model have contextc1,
model.contains(null, null, null, (Resource)null)is true if any statements in this model have no associated context,
model.contains(null, null, null, c1, c2, c3)is true if any statements in this model have contextc1,c2orc3.- Parameters:
subj- The subject of the statements to match,nullto match statements with any subject.pred- The predicate of the statements to match,nullto match statements with any predicate.obj- The object of the statements to match,nullto match statements with any object.contexts- The contexts of the statements to match. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match.- Returns:
trueif statements match the specified pattern.
-
add
public boolean add(Resource subj, IRI pred, Value obj, Resource... contexts)
Description copied from interface:ModelAdds one or more statements to the model. This method creates a statement for each specified context and adds those to the model. If no contexts are specified, a single statement with no associated context is added. If this Model is a filtered Model then null (if context empty) values are permitted and will use the corresponding filtered values.- Parameters:
subj- The statement's subject.pred- The statement's predicate.obj- The statement's object.contexts- The contexts to add statements to.
-
add
public boolean add(Statement st)
- Specified by:
addin interfaceCollection<T extends AbstractModel>- Specified by:
addin interfaceSet<T extends AbstractModel>- Overrides:
addin classAbstractModel
-
addAll
public boolean addAll(Collection<? extends Statement> c)
- Specified by:
addAllin interfaceCollection<T extends AbstractModel>- Specified by:
addAllin interfaceSet<T extends AbstractModel>- Overrides:
addAllin classAbstractModel
-
remove
public boolean remove(Resource subj, IRI pred, Value obj, Resource... contexts)
Description copied from interface:ModelRemoves statements with the specified subject, predicate, object and (optionally) context exist in this model. Thesubject,predicateandobjectparameters can benullto indicate wildcards. Thecontextsparameter is a wildcard and accepts zero or more values. If no contexts are specified, statements will be removed disregarding their context. If one or more contexts are specified, statements with a context matching one of these will be removed. Note: to remove statements without an associated context, specify the valuenulland explicitly cast it to typeResource.Examples:
model.remove(s1, null, null)removes any statements in this model have subjects1,
model.remove(null, null, null, c1)removes any statements in this model have contextc1,
model.remove(null, null, null, (Resource)null)removes any statements in this model have no associated context,
model.remove(null, null, null, c1, c2, c3)removes any statements in this model have contextc1,c2orc3.- Parameters:
subj- The subject of the statements to remove,nullto remove statements with any subject.pred- The predicate of the statements to remove,nullto remove statements with any predicate.obj- The object of the statements to remove,nullto remove statements with any object.contexts- The contexts of the statements to remove. If no contexts are specified, statements will be removed disregarding their context. If one or more contexts are specified, statements with a context matching one of these will be removed.- Returns:
trueif one or more statements have been removed.
-
size
public int size()
- Specified by:
sizein interfaceCollection<T extends AbstractModel>- Specified by:
sizein interfaceSet<T extends AbstractModel>- Specified by:
sizein classAbstractCollection<Statement>
-
iterator
public Iterator<Statement> iterator()
- Specified by:
iteratorin interfaceCollection<T extends AbstractModel>- Specified by:
iteratorin interfaceIterable<T extends AbstractModel>- Specified by:
iteratorin interfaceSet<T extends AbstractModel>- Specified by:
iteratorin classAbstractCollection<Statement>
-
clear
public boolean clear(Resource... contexts)
Description copied from interface:ModelRemoves statements with the specified context exist in this model.- Specified by:
clearin interfaceModel- Overrides:
clearin classAbstractModel- Parameters:
contexts- The context of the statements to remove.- Returns:
trueif one or more statements have been removed.
-
filter
public Model filter(Resource subj, IRI pred, Value obj, Resource... contexts)
Description copied from interface:ModelReturns a filtered view of the statements with the specified subject, predicate, object and (optionally) context. Thesubject,predicateandobjectparameters can benullto indicate wildcards. Thecontextsparameter is a wildcard and accepts zero or more values. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match. Note: to match statements without an associated context, specify the valuenulland explicitly cast it to typeResource.The returned model is backed by this Model, so changes to this Model are reflected in the returned model, and vice-versa. If this Model is modified while an iteration over the returned model is in progress (except through the iterator's own
removeoperation), the results of the iteration are undefined. The model supports element removal, which removes the corresponding statement from this Model, via theIterator.remove,Set.remove,removeAll,retainAll, andclearoperations. The statements passed to theaddandaddAlloperations must match the parameter pattern.Examples:
model.filter(s1, null, null)matches all statements that have subjects1,
model.filter(null, null, null, c1)matches all statements that have contextc1,
model.filter(null, null, null, (Resource)null)matches all statements that have no associated context,
model.filter(null, null, null, c1, c2, c3)matches all statements that have contextc1,c2orc3.- Parameters:
subj- The subject of the statements to match,nullto match statements with any subject.pred- The predicate of the statements to match,nullto match statements with any predicate.obj- The object of the statements to match,nullto match statements with any object.contexts- The contexts of the statements to match. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match.- Returns:
- The statements that match the specified pattern.
- See Also:
Model.getStatements(Resource, IRI, Value, Resource...)
-
removeTermIteration
public void removeTermIteration(Iterator<Statement> iter, Resource subj, IRI pred, Value obj, Resource... contexts)
Description copied from class:AbstractModelCalled by aggregate sets when a term has been removed from a term iterator. Exactly one of the last four terms will be non-empty.- Specified by:
removeTermIterationin classAbstractModel- Parameters:
iter- The iterator used to navigate the live set (never null)subj- the subject term to be removed or nullpred- the predicate term to be removed or nullobj- the object term to be removed or nullcontexts- an array of one context term to be removed or an empty array
-
overflowToDiskInner
protected abstract void overflowToDiskInner(Model memory)
-
-