Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-637

SPARQL UPDATE should not materialize RDF Values

    Details

    • Type: New Feature
    • Status: Open
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Bigdata RDF Database
    • Labels:
      None

      Description

      Materializing RDF Values from IVs is expensive and is not necessary for SPARQL UPDATE operations. The code paths should be reworked to avoid this operation whenever possible. This may be somewhat tricky when truth maintenance is involved if the existing APIs are not aligned for that.

      1. The DELETE/INSERT operator should not materialize IVs as Values. We need an alternative ASTConstructIterator which does ISPO constructs and then directly pumps the ISPOs into the assertion or retraction interface of the Sail. That interface might currently require Statements, in which case we have more work to do.

      2. CLEAR should run at a lower level. Even when TM is used (but not if isolation is used).

      3. DROP might have different semantics for isolation if we see DROP ALL. E.g., remove and re-register the triple store/quad store rather than recording delete markers for all tuples in all indices.

        Issue Links

          Activity

          Hide
          bryanthompson bryanthompson added a comment -

          The strong typing of the INSERT DATA and DELETE DATA "data" as a BigdataStatement[] was introduced to support [1]. This forces us to work with materialized RDF Values. That makes it more difficult to optimize SPARQL UPDATE by not materializing IVs as BigdataValues (this ticket).

          [1] https://sourceforge.net/apps/trac/bigdata/ticket/573 (NullPointerException when attempting to INSERT DATA containing a blank node)

          Show
          bryanthompson bryanthompson added a comment - The strong typing of the INSERT DATA and DELETE DATA "data" as a BigdataStatement[] was introduced to support [1] . This forces us to work with materialized RDF Values. That makes it more difficult to optimize SPARQL UPDATE by not materializing IVs as BigdataValues (this ticket). [1] https://sourceforge.net/apps/trac/bigdata/ticket/573 (NullPointerException when attempting to INSERT DATA containing a blank node)
          Hide
          bryanthompson bryanthompson added a comment -

          This ticket provides an optimization which would make sense in combination with BLZG-1956.

          Show
          bryanthompson bryanthompson added a comment - This ticket provides an optimization which would make sense in combination with BLZG-1956 .

            People

            • Assignee:
              bryanthompson bryanthompson
              Reporter:
              bryanthompson bryanthompson
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: