Class DatasetGraphRailed

java.lang.Object
org.apache.jena.sparql.core.DatasetGraphBase
org.apache.jena.sparql.core.DatasetGraphQuads
org.aksw.conjure.datasource.DatasetGraphRailed
All Implemented Interfaces:
org.aksw.jenax.dataaccess.sparql.common.TransactionalWrapper, org.apache.jena.atlas.lib.Closeable, org.apache.jena.sparql.core.DatasetGraph, org.apache.jena.sparql.core.Transactional

public class DatasetGraphRailed extends org.apache.jena.sparql.core.DatasetGraphQuads implements org.aksw.jenax.dataaccess.sparql.common.TransactionalWrapper
A dataset graph whose 'add' method creates new dataset graph instance once the current graph's size exceeds a threshold. Deletion and lookup of quads and quad patterns have to be delegated to all graphs part of the rail.
Author:
raven
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.jena.sparql.core.Transactional

    org.apache.jena.sparql.core.Transactional.Promote
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected List<org.apache.jena.sparql.core.DatasetGraph>
     
    protected ReadWriteLock
    A lock that needs to be acquired before the list of delegates can be modified
    protected org.aksw.jenax.dataaccess.sparql.factory.dataengine.RDFEngineFactory
     
    protected AtomicLong
     
    protected long
    Only check database size after that many triples
    protected org.apache.jena.riot.system.PrefixMap
     
    protected long
     
    protected Properties
     
    protected Path
     
    protected org.aksw.jenax.dataaccess.sparql.common.TransactionalMultiplex<org.apache.jena.sparql.core.Transactional>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    DatasetGraphRailed(Path railPropertiesFile, org.aksw.jenax.dataaccess.sparql.factory.dataengine.RDFEngineFactory delegateFactory)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(org.apache.jena.sparql.core.Quad quad)
     
    void
    addGraph(org.apache.jena.graph.Node graphName, org.apache.jena.graph.Graph graph)
     
    protected void
     
    protected void
     
    void
     
    void
    delete(org.apache.jena.sparql.core.Quad quad)
     
    Iterator<org.apache.jena.sparql.core.Quad>
    find(org.apache.jena.graph.Node g, org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)
     
    Iterator<org.apache.jena.sparql.core.Quad>
    findNG(org.apache.jena.graph.Node g, org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)
     
    org.apache.jena.graph.Graph
     
    org.apache.jena.sparql.core.Transactional
     
    org.apache.jena.graph.Graph
    getGraph(org.apache.jena.graph.Node graphNode)
     
    static long
     
    org.apache.jena.riot.system.PrefixMap
     
    static void
    setNumRailMembers(Properties props, long count)
     
    boolean
     

    Methods inherited from class org.apache.jena.sparql.core.DatasetGraphQuads

    listGraphNodes, removeGraph

    Methods inherited from class org.apache.jena.sparql.core.DatasetGraphBase

    add, clear, contains, contains, containsGraph, delete, deleteAny, deleteAny, find, find, getContext, getLock, getUnionGraph, isEmpty, isWildcard, size, toString, unsupportedMethod

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.apache.jena.sparql.core.DatasetGraph

    addAll, stream, stream, supportsTransactionAbort

    Methods inherited from interface org.apache.jena.sparql.core.Transactional

    begin, calc, calculate, calculateRead, calculateWrite, exec, execute, executeRead, executeWrite, promote

    Methods inherited from interface org.aksw.jenax.dataaccess.sparql.common.TransactionalWrapper

    abort, begin, begin, commit, end, getTransactionalDelegate, isInTransaction, promote, transactionMode, transactionType
  • Field Details

    • prefixes

      protected org.apache.jena.riot.system.PrefixMap prefixes
    • newRailCheckIntervalSize

      protected long newRailCheckIntervalSize
      Only check database size after that many triples
    • newRailCheckCount

      protected AtomicLong newRailCheckCount
    • delegatesLock

      protected ReadWriteLock delegatesLock
      A lock that needs to be acquired before the list of delegates can be modified
    • delegates

      protected List<org.apache.jena.sparql.core.DatasetGraph> delegates
    • transactional

      protected org.aksw.jenax.dataaccess.sparql.common.TransactionalMultiplex<org.apache.jena.sparql.core.Transactional> transactional
    • railPropertiesFile

      protected Path railPropertiesFile
    • railMemberSizeLimit

      protected long railMemberSizeLimit
    • railProperties

      protected Properties railProperties
    • memberFactory

      protected org.aksw.jenax.dataaccess.sparql.factory.dataengine.RDFEngineFactory memberFactory
  • Constructor Details

    • DatasetGraphRailed

      public DatasetGraphRailed(Path railPropertiesFile, org.aksw.jenax.dataaccess.sparql.factory.dataengine.RDFEngineFactory delegateFactory)
  • Method Details

    • checkTxn

      protected void checkTxn()
    • getNumRailMembers

      public static long getNumRailMembers(Properties props)
    • setNumRailMembers

      public static void setNumRailMembers(Properties props, long count)
    • prefixes

      public org.apache.jena.riot.system.PrefixMap prefixes()
      Specified by:
      prefixes in interface org.apache.jena.sparql.core.DatasetGraph
    • supportsTransactions

      public boolean supportsTransactions()
      Specified by:
      supportsTransactions in interface org.apache.jena.sparql.core.DatasetGraph
    • getDelegate

      public org.apache.jena.sparql.core.Transactional getDelegate()
      Specified by:
      getDelegate in interface org.aksw.jenax.dataaccess.sparql.common.TransactionalWrapper
    • addRail

      protected void addRail()
    • add

      public void add(org.apache.jena.sparql.core.Quad quad)
      Specified by:
      add in interface org.apache.jena.sparql.core.DatasetGraph
      Specified by:
      add in class org.apache.jena.sparql.core.DatasetGraphQuads
    • delete

      public void delete(org.apache.jena.sparql.core.Quad quad)
      Specified by:
      delete in interface org.apache.jena.sparql.core.DatasetGraph
      Specified by:
      delete in class org.apache.jena.sparql.core.DatasetGraphQuads
    • find

      public Iterator<org.apache.jena.sparql.core.Quad> find(org.apache.jena.graph.Node g, org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)
      Specified by:
      find in interface org.apache.jena.sparql.core.DatasetGraph
      Specified by:
      find in class org.apache.jena.sparql.core.DatasetGraphQuads
    • findNG

      public Iterator<org.apache.jena.sparql.core.Quad> findNG(org.apache.jena.graph.Node g, org.apache.jena.graph.Node s, org.apache.jena.graph.Node p, org.apache.jena.graph.Node o)
      Specified by:
      findNG in interface org.apache.jena.sparql.core.DatasetGraph
      Specified by:
      findNG in class org.apache.jena.sparql.core.DatasetGraphQuads
    • getDefaultGraph

      public org.apache.jena.graph.Graph getDefaultGraph()
      Specified by:
      getDefaultGraph in interface org.apache.jena.sparql.core.DatasetGraph
      Specified by:
      getDefaultGraph in class org.apache.jena.sparql.core.DatasetGraphBase
    • getGraph

      public org.apache.jena.graph.Graph getGraph(org.apache.jena.graph.Node graphNode)
      Specified by:
      getGraph in interface org.apache.jena.sparql.core.DatasetGraph
      Specified by:
      getGraph in class org.apache.jena.sparql.core.DatasetGraphBase
    • addGraph

      public void addGraph(org.apache.jena.graph.Node graphName, org.apache.jena.graph.Graph graph)
      Specified by:
      addGraph in interface org.apache.jena.sparql.core.DatasetGraph
      Overrides:
      addGraph in class org.apache.jena.sparql.core.DatasetGraphQuads
    • close

      public void close()
      Specified by:
      close in interface org.apache.jena.atlas.lib.Closeable
      Specified by:
      close in interface org.apache.jena.sparql.core.DatasetGraph
      Overrides:
      close in class org.apache.jena.sparql.core.DatasetGraphBase