You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Stephen Allen <sa...@apache.org> on 2012/08/24 21:52:48 UTC

Re: scope of transaction in Fuseki for SPARQL UPDATE

On Fri, Aug 24, 2012 at 11:42 AM, Bill Roberts <bi...@swirrl.com> wrote:
> With Fuseki, if I send a SPARQL UPDATE to the 'update' endpoint that contains more than one operation, eg
>
>
>
> DELETE {…pattern…} WHERE {…} ;
> INSERT DATA { …some triples…}
>
> what is the scope of the transaction?  Does it include both of the operations? Or does each operation happen in a separate transaction?
>
> (Note that I am thinking of a case that can't easily be merged into a single DELETE..INSERT..WHERE pattern so does require more than one operation}
>

The relevent part of SPARQL 1.1 Update [1] is:
    Each request SHOULD be treated atomically by a SPARQL 1.1
    Update service, i.e., the execution of all the operations in one
    request should be performed atomically. Any resulting concurrency
    issues will be a matter for each implementation to consider
    according to its own architecture.

Fuseki will perform multiple update operations in a single request
atomically.  It depends on the underlying store as to whether or not
this is a full ACID transaction.  TDB will use transactions.

-Stephen

[1] http://www.w3.org/TR/sparql11-update/#updateServices

Re: scope of transaction in Fuseki for SPARQL UPDATE

Posted by Bill Roberts <bi...@swirrl.com>.
Great, thanks very much Stephen for the comprehensive answer. 


Bill



On 24 Aug 2012, at 20:52, Stephen Allen <sa...@apache.org> wrote:

> On Fri, Aug 24, 2012 at 11:42 AM, Bill Roberts <bi...@swirrl.com> wrote:
>> With Fuseki, if I send a SPARQL UPDATE to the 'update' endpoint that contains more than one operation, eg
>> 
>> 
>> 
>> DELETE {…pattern…} WHERE {…} ;
>> INSERT DATA { …some triples…}
>> 
>> what is the scope of the transaction?  Does it include both of the operations? Or does each operation happen in a separate transaction?
>> 
>> (Note that I am thinking of a case that can't easily be merged into a single DELETE..INSERT..WHERE pattern so does require more than one operation}
>> 
> 
> The relevent part of SPARQL 1.1 Update [1] is:
>    Each request SHOULD be treated atomically by a SPARQL 1.1
>    Update service, i.e., the execution of all the operations in one
>    request should be performed atomically. Any resulting concurrency
>    issues will be a matter for each implementation to consider
>    according to its own architecture.
> 
> Fuseki will perform multiple update operations in a single request
> atomically.  It depends on the underlying store as to whether or not
> this is a full ACID transaction.  TDB will use transactions.
> 
> -Stephen
> 
> [1] http://www.w3.org/TR/sparql11-update/#updateServices