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