On 10/12/15 17:41, A. Soroka wrote:
Ah, okay, cool. But was my other interpretation correct? A DatasetGraphInMemory 
using simple (non-transaction-supporting) TupleTables would be good for 
DatasetGraphFactory::create?


"so we are saying" - who is "we?!

maybe - if it's appreciably faster, yes; if it's not less point and it adds to maintenance.

That's why I was interested in a performance comparison.

---
A. Soroka
The University of Virginia Library

On Dec 10, 2015, at 12:38 PM, Andy Seaborne <[email protected]> wrote:

On 10/12/15 17:18, A. Soroka wrote:
Okay, so we are saying that a Dataset around a DatasetGraphInMemory using 
simple (non-transaction-supporting) TupleTables would be good for 
DatasetFactory::create or ::createGeneral? (Or both— I’m not totally clear 
about the difference between them.)

General holds graphs from other storages as a ptr to that graph.  It is a collection of 
graphs, no quads.  "GRAPH ?g" is a loop.

        Andy


---
A. Soroka
The University of Virginia Library

On Dec 10, 2015, at 10:25 AM, Andy Seaborne <[email protected]> wrote:

On 10/12/15 13:31, A. Soroka wrote:
To the first question, I think the answer is yes. It was very much my intention 
that TupleTable and its subtypes would provide opportunity to explore different 
useful structures (e.g. Claude Warren’s ideas about Bloom filters). A 
[Triple|Quad]Table that uses ordinary maps/structures in the same way as the 
current impl uses persistent structures should be very easy. Would you like me 
to cut such classes to have them available for non-transactional cases?

I’m not quite sure what your last sentence means; is it about the semantics of 
the factory methods?

There are 4 factory methods in each factory

* DatasetFactory.create()
The new place for in-memory, non-transactional dataset with graph-copy semantics.  
Currently, it is a general dataset with "add graph" overridden to do a copy-in.

* DatasetFactory.createTxnMem()
The new place for in-memory, transactional dataset (with graph-copy semantics).

* DatasetFactory.createMem()
The old place for in-memory datasets - goes to createGeneral()
Deprecated because if replaced by create() then details have changed.

* DatasetFactory.createGeneral()
The new place for general datasets.

   Andy


---
A. Soroka
The University of Virginia Library

On Dec 10, 2015, at 8:15 AM, Andy Seaborne <[email protected]> wrote:

On 09/12/15 21:00, A. Soroka wrote:
Cool. The extension points are basically TripleTable and QuadTable, because of 
the constructor DatasetGraphInMemory(QuadTable, TripleTable). Someone could 
offer their own impls and use that (public) constructor.

Does that mean it would be easy to do a non-transactional version, that used 
hash maps (or used hash maps at the top level at least)?

That would make an excellent performance comparison.

If it makes a difference, it can the implementation for Dataset(Graph)Factory.create() 
and have the copy-in semantics for "add graph".

        Andy






Reply via email to