I forgot to mention that I'm still using Jena 2.13.0 , due to Banana-RDF not having updated.
2016-02-03 18:43 GMT+01:00 Jean-Marc Vanel <[email protected]>: > I think that the second pattern "create a dataset object on the thread", > or rather in my case > "create a dataset object for one HTTP request" > is worth trying. > > And I want to know why the doc seems to prefer the first pattern. > > 2016-02-03 18:30 GMT+01:00 A. Soroka <[email protected]>: > >> > On Feb 3, 2016, at 5:13 AM, Jean-Marc Vanel <[email protected]> >> wrote: >> > >> > In the documentation, >> > >> > >> https://jena.apache.org/documentation/tdb/tdb_transactions.html#multi-threaded-use >> > >> > it is not clear which use pattern is preferred and the reason why. >> >> The first pattern shows a single dataset object being shared between >> threads, each of which operates a transaction against that object, and the >> second pattern is introduced with "or create a dataset object on the thread >> (the case above is preferred):”. >> >> As to why, I am not familiar enough with TDB to be sure, but there is a >> comment on the second pattern "Each thread has a separate dataset object; >> these safely share the same storage but have independent transactions.” >> that would seem to indicate that the second pattern is vulnerable to having >> conflicts between transactions opened against the two different dataset >> objects. >> >> --- >> A. Soroka >> The University of Virginia Library >> >> >> > On Feb 3, 2016, at 5:13 AM, Jean-Marc Vanel <[email protected]> >> wrote: >> > >> > I have a repeating memory leak in TDB in my web application ( >> > >> https://github.com/jmvanel/semantic_forms/blob/master/scala/forms_play/README.md >> > ). >> > It is caching RDF documents from internet, typically dbpedia ressources. >> > >> > It is not the use case described in "Fuseki/TDB memory leak for >> concurrent >> > updates/queries" https://issues.apache.org/jira/browse/JENA-689 , as >> the >> > journal is empty after crash . >> > >> > A single Dataset object is used for the duration of the application, >> and I >> > suspect this is the root cause. >> > In the documentation, >> > >> > >> https://jena.apache.org/documentation/tdb/tdb_transactions.html#multi-threaded-use >> > >> > it is not clear which use pattern is preferred and the reason why. >> > >> > You someone confirm that keeping a single Dataset object for the >> duration >> > of the application is bad ? >> >> > > > -- > Jean-Marc Vanel > Déductions SARL - Consulting, services, training, > Rule-based programming, Semantic Web > http://deductions-software.com/ > +33 (0)6 89 16 29 52 > Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui > -- Jean-Marc Vanel Déductions SARL - Consulting, services, training, Rule-based programming, Semantic Web http://deductions-software.com/ +33 (0)6 89 16 29 52 Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui
