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?

---
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