Skip to content

New GraphMemIndexedSet #3902

@arne-bdt

Description

@arne-bdt

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementIncrementally add new feature

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions