[ https://issues.apache.org/jira/browse/JENA-624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15033684#comment-15033684 ]
A. Soroka commented on JENA-624: -------------------------------- Re: multiple invocations of {{end}}: The code for which you are looking is in {{LockMRPlusSW::leaveCriticalSection}}. It's {{if (isHeldByCurrentThread()) unlock();}}. I believe that the sequence you outline is safe. If you like I can add a test for that to demonstrate it. Would that be good? Or are you saying that the interaction with threads doesn't belong in {{LockMRPlusSW}} but in {{DatasetGraphInMemory}}, as you outline? Re: lock exposure: I'm not sure I understand. Are you suggesting that there should be a fresh lock associated to each transaction? Or a single dataset-wide lock that is used by transactions? I'm a little confused about your remark "The lock may (dubiously) be protecting other code but is not MRSW safe." The lock in question is {{LockMRPlusSW}}, which is very much designed to be MRSW safe, although of course there are always bugs! > Develop a new in-memory RDF Dataset implementation > -------------------------------------------------- > > Key: JENA-624 > URL: https://issues.apache.org/jira/browse/JENA-624 > Project: Apache Jena > Issue Type: Improvement > Reporter: Andy Seaborne > Assignee: A. Soroka > Labels: java, linked_data, rdf > > The current (Jan 2014) Jena in-memory dataset uses a general purpose > container that works for any storage technology for graphs together with > in-memory graphs. > This project would develop a new implementation design specifically for RDF > datasets (triples and quads) and efficient SPARQL execution, for example, > using multi-core parallel operations and/or multi-version concurrent > datastructures to maximise true parallel operation. > This is a system project suitable for someone interested in datatbase > implementation, datastructure design and implementation, operating systems or > distributed systems. > Note that TDB can operate in-memory using a simulated disk with > copy-in/copy-out semantics for disk-level operations. It is for faithful > testing TDB infrastructure and is not designed performance, general in-memory > use or use at scale. While lesson may be learnt from that system, TDB > in-memory is not the answer here. -- This message was sent by Atlassian JIRA (v6.3.4#6332)