On 15/10/12 22:38, Simon Helsen wrote:
thanks for the quick analysis. I am pretty sure there is no concurrent
access inside one active transaction (Our code doesn't do that kind of
thing). But we are using TDB's ability to insert a quad filter and during
the query calculations, you escape to our registered filter which may on
its turn perform a graph find action. This is what you can see in the
stack trace, i.e. we enter ARQ in
com.hp.hpl.jena.sparql.engine.ResultSetStream.hasNext and Jena jumps back
in org.openjena.atlas.iterator.RepeatApplyIterator.hasNext, which then
calls com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.find. However,
it all happens in one and the same thread.
Can you tell me what classes I need to look at? I will probably have to
backport and patch 2.7.1 for our earlier release based on that version. I
would be able to provide a patch to our test team and have them restart a
run
Simon
The changes are all in BlockMgrJournal: the commit email to
[email protected] has all the details - see below for a copy of
the start of that message which includes a link to the diff.
Re: quad filtering.
That does not cause this problem as it does not result in two threads in
Set<>.add.
Don't see why if shouldn't work, it's just like another read action
inside a transaction.
The filtering is applied outside the core index access code, (it filters
a NodeId binding iterator) so, to the TDB system, it looks just like
another read action during iteration of another read action which is fine.
Andy
Author: andy
Date: Mon Oct 15 21:10:21 2012
New Revision: 1398525
URL: http://svn.apache.org/viewvc?rev=1398525&view=rev
Log:
Only record read/readIterator blocks during a transaction.
Modified:
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java
Modified:
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java?rev=1398525&r1=1398524&r2=1398525&view=diff