thanks Andy,

how can I track commits? I went to 
http://svn.apache.org/viewvc?rev=1398525&view=rev, which allows me to look 
at individual revision numbers, but can I subscribe to a mailing list 
where the revisions are sent to? Or, can I use viewvc to just see the 
commits to Jena components?

Simon




From:
Andy Seaborne <[email protected]>
To:
[email protected]
Date:
10/16/2012 08:08 AM
Subject:
Re: concurrent modification in BlockMgrJournal



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




Reply via email to