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