Ticket #522 (new enhancement)
SPARQL UPDATE should not materialize RDF Values
|Reported by:||thompsonbry||Owned by:||thompsonbry|
|Priority:||major||Milestone:||Performance optimizations (not query)|
|Component:||Bigdata RDF Database||Version:|
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.