Version
6.2.0-SNAPSHOT
Feature
GaphMemIndexedSet is based on the architecture of GraphMemRoaring, but replaces the RoaringBitmaps by simple index-lists and a reverse index.
Benefits;
- memory footprint is comparable to GraphMemFast for smaller graphs up to 1M triples. For larger graphs (BSBM 25M and 50M) the footprint is even smaller.
Graph#add speed is comparable to GraphMemFast (depending on the graph)
Graph#delete speed is faster than GraphMemFast, especially for large graphs
Graph#find / #stream:
S__, _P_, O__ --> slightly slower than GraphMemFast
SPO --> faster than GraphMemFast
___ --> faster than GraphMemFast
SP_, S_O, _PO --> faster than GraphMemFast in most cases
Graph#contains:
SP_, S_O, _PO --> dependent on insert order --> the only non-optimal thing I discovered
- other match pattern behave like
#find
GraphMem#copy --> faster than GraphMemFast
- supporting the same indexing strategies as GraphMemRoaring
Are you interested in contributing a solution yourself?
Yes
Version
6.2.0-SNAPSHOT
Feature
GaphMemIndexedSetis based on the architecture ofGraphMemRoaring, but replaces theRoaringBitmapsby simple index-lists and a reverse index.Benefits;
Graph#addspeed is comparable toGraphMemFast(depending on the graph)Graph#deletespeed is faster than GraphMemFast, especially for large graphsGraph#find/#stream:S__,_P_,O__--> slightly slower than GraphMemFastSPO--> faster than GraphMemFast___--> faster than GraphMemFastSP_,S_O,_PO--> faster than GraphMemFast in most casesGraph#contains:SP_,S_O,_PO--> dependent on insert order --> the only non-optimal thing I discovered#findGraphMem#copy--> faster than GraphMemFastAre you interested in contributing a solution yourself?
Yes