I meant to improve the interoperability at least, if not the concurrency.

BTW, how long is the queue of blocked requests permitted to grow?

On Mon, Mar 1, 2021 at 9:52 AM Martynas Jusevičius
<marty...@atomgraph.com> wrote:
>
> Thanks for the explanation.
>
> But an implementation is also free to reject a second request, per the
> specification?
>
> So for SPARQL 1.1 a write strategy portable across implementations
> should be sequential, i.e. one request has to complete before the next
> one is executed?
>
> Is that something SPARQL 1.2 could improve?
>
> On Sun, Feb 28, 2021 at 12:47 PM Andy Seaborne <a...@apache.org> wrote:
> >
> >
> >
> > On 26/02/2021 14:41, Martynas Jusevičius wrote:
> > > Hi,
> > >
> > > How does Fuseki handle concurrent write requests?
> >
> > Serializably.
> >
> > If we are talking about TDB or TIM, it MR+SW, "multiple reader AND
> > single writer" enforced so that if a second writer turns up, it waist
> > for the first to complete. Includes text indexing.
> >
> > (Generally, not just RDF, this is quite common pattern nowadays.)
> >
> > General datasets (mixed storage, rules)is MRSW "multiple reader OR
> > single writer".
> >
> > > Both SPARQL update and GSP?
> >
> > Yes.
> >
> > > Say if there's an active POST to the graph store and another one is
> > > received, what happens?
> >
> > The second one waits.
> >
> > There isn't any "read-committed" or other ways that phantom reads, or
> > skew happen.  AKA count() only returns an answer that was right at a
> > point in time.
> >
> > Fuseki does not expose read-commited-on-promotion which the machinery
> > supports. And that is the only weaker isolation form in TDB/TIM.
> >
> > > The only mention of concurrency in the SPARQL specs that I can find
> > > says it's implementation-defined:
> > > "Each request should be treated atomically by a SPARQL 1.1 Update
> > > service. The term 'atomically' means that a single request will result
> > > in either no effect or a complete effect, regardless of the number of
> > > operations that may be present in the request. Any resulting
> > > concurrency issues will be a matter for each implementation to
> > > consider according to its own architecture. In particular, using the
> > > SERVICE keyword in the WHERE clause of operations in an Update request
> > > will usually result in a loss of atomicity."
> > > https://www.w3.org/TR/sparql11-update/#updateServices
> > >
> > > Martynas
> > >

Reply via email to