Michael sent me a copy of his database.
cc'ed [email protected]
On 16/05/11 14:43, Michael Brunnbauer wrote:
>
> re
>
> On Thu, May 12, 2011 at 09:57:36PM +0100, Andy Seaborne wrote:
>> I can't reproduce the error - I'm running Joseki, breakpointing in a
>> query, issuing the update (using the SOH sripts s-query and s-update)
>> and the update is locked out.
>>
>> Could you give some more details - what's the update, what do the
>> concurrent queries look like?
>
> I can reproduce the ConcurrentModificationException with the attached TDB
> containing 100000 Quads and the attached config file. If I do
>
> load<http://blogspace.com/swhack/chatlogs/rdflogs/2002-06-24.rdf>
> into<http://blogspace.com/swhack/chatlogs/rdflogs/2002-06-24.rdf>
>
> on the testupdate service from a HTML form and then (quick)
>
> select count(*) where { graph ?g { ?s ?p ?o }}
>
> on the test service from another HTML form, I get the error for the
select.
>
> Does this help you ?
>
> Can you confirm that TDB 0.8.8 will have problems with TDBs modified
by TDB
> 0.8.10 ?
>
> cu,
> brunni
>
No luck I'm afraid. Works for me.
joseki-config attached. This is Joseki in CVS at the moment.
load:
-------------------------------------
#!/bin/bash
X='load <http://blogspace.com/swhack/chatlogs/rdflogs/2002-06-24.rdf>
into <http://blogspace.com/swhack/chatlogs/rdflogs/2002-06-24.rdf>'
../s-update --service http://localhost:2020/update "$X"
-------------------------------------
query:
-------------------------------------
#!/bin/bash
Q='select count(*) where { graph ?g { ?s ?p ?o }}'
../s-query --service http://localhost:2020/sparql "$Q"
-------------------------------------
s-* are the scripts from Fuseki.
http://openjena.org/repo/org/openjena/fuseki/0.2.0/fuseki-0.2.0-SOH.zip
using your database, I put 'query' in a loop to hammer the server, then
issued the 'load' multiple times. It worked - and when a load hit the
server I saw the query rate stutter as the load took a lock.
Andy
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix module: <http://joseki.org/2003/06/module#> .
@prefix joseki: <http://joseki.org/2005/06/configuration#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
[] rdf:type joseki:Server .
<#service1>
rdf:type joseki:Service ;
rdfs:label "TDB/Query" ;
joseki:serviceRef "sparql" ;
joseki:dataset <#tdb> ;
joseki:processor joseki:ProcessorSPARQL_FixedDS ;
.
<#service2>
rdf:type joseki:Service ;
rdfs:label "TDB/Update" ;
joseki:serviceRef "update" ;
joseki:dataset <#tdb> ;
joseki:processor joseki:ProcessorSPARQLUpdate ;
.
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .
<#tdb> rdf:type tdb:DatasetTDB ;
tdb:location "TDB" ;
.
## --------------------------------------------------------------
## Processors
joseki:ProcessorSPARQL_FixedDS
rdfs:label "SPARQL processor for fixed datasets" ;
rdf:type joseki:Processor ;
module:implementation
[ rdf:type joseki:ServiceImpl ;
module:className <java:org.joseki.processors.SPARQL>
] ;
# This processor does not accept queries with FROM/FROM NAMED
joseki:allowExplicitDataset "false"^^xsd:boolean ;
joseki:allowWebLoading "false"^^xsd:boolean ;
# The database is safe for MRSW (multiple-reader, single-writer).
joseki:lockingPolicy joseki:lockingPolicyMRSW ;
.
joseki:ProcessorSPARQLUpdate
rdfs:label "SPARQL Update processor" ;
rdf:type joseki:Processor ;
module:implementation
[ rdf:type joseki:ServiceImpl ;
module:className <java:org.joseki.processors.SPARQLUpdate>
] ;
joseki:lockingPolicy joseki:lockingPolicyMRSW ;
.
# Local Variables:
# tab-width: 4
# indent-tabs-mode: nil
# End: