On 08/02/16 14:27, A. Soroka wrote:
Ah, right, I see that now. So it’s got to be a kind of “getCharacteristics()” 
method, but you are breaking that down into individual characteristics. Got it. 
Do you think it is worth trying to reflect the 
untransactional/transactional/abortable choice in the assembler language? Or is 
that meant to directly record the implementations that are being used?

I don't see a connection to assemblers - it's about the implementation's abilities.

    Andy


---
A. Soroka
The University of Virginia Library

On Feb 8, 2016, at 3:42 AM, Andy Seaborne <[email protected]> wrote:

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