Details
-
Improvement
-
Resolution: Won't Fix
-
Major
-
None
Description
Currently we are not addressing concurrency issues that might occur on accessing the KnowledgeBase.
Jena supports 2 levels of concurrency:
- Same JVM concurrency for multi-threaded access.
- http://jena.sourceforge.net/how-to/concurrency.html
- Using Read/Write locks, Jena can offer a MRSW(Multiple Readers, Single Writer) locking mechanism that can be implemented for all model operations, including SPARQL queries.
- Database level concurrency for multiple applications access.
- http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/model/Model.html#supportsTransactions%28%29
- As long as the database driver or the database itself that are being used support it, Jena exposes the begin/commit/abort transaction operations trough it's Model interface. Using this should ensure that no partial commits are being read before the transaction is over.
Using the 2 above Jena provided concurrency mechanisms should help ensure model consistency, especially for operations with side-effects (like the validation operation for instance).