On 08/02/16 00:03, A. Soroka wrote:
Is it worth trying to factor Transactional apart into
TransactionalPossiblyWithAbort and TransactionalWithAbort? (With
better names, of course! {grin})

There's a runtime/dynamic aspect. Whether a DSG can provide abort can depend on what it's wrapping - not all DSG are base units of storage like DatasetGraphInMemory.

e.g. DatasetGraphWrapper.

e.g. jena-text is a case where it is not a static feature that can be compiled in. In that case, whether abort is available depends on the underlying dataset graph has abort or not.

        Andy


---
A. Soroka
The University of Virginia Library

On Feb 6, 2016, at 11:15 AM, Andy Seaborne <[email protected]> wrote:

JENA-1089, JENA-1131

DatasetGraphs now support the Transactional interface, rather than it being an 
optional extra.  Dataset itself already had Transactional.

Implementations of DatasetGraph now need to opt out of transactions via the 
TransactionalNotSupported interface.

DatasetGraph and Dataset provide

   supportTransactions() : begin/commit/end
   supportTransactionAbort() : and also abort.

Some of the compound DSGs can't provide abort properly.  Crashing out of a 
transaction with an exception needs proper abort.

DatasetGraphText provides abort if and only if the underlying data does.

jena-text is the most complicated part of the changes.  All the tests pass but 
if you are a big user of jena-text with update it would be worth checking the 
changes.

Rob - I switched the tests for jena-jdbc-driver-mem to use the transaction 
memory dataset implementation. In the course of that, I
found and fixed an oddity in jena-jdbc-driver-mem:MemConnection. The code 
comments discuss the initialization issue.

        Andy


Reply via email to