Skip to content

Evaluate a wavelet-matrix (grid) index to replace the six array orderings #68

Description

@matiastoro

Motivation

Evaluate a succinct grid index (wavelet matrix / k2-tree) for the triple store to cut the index memory and enable persistence, while still supporting the range/rank/select operations LTJ needs.

Current state (feasibility)

  • TripleIndex (src/runtime/ltj/triple_index.rs) holds six plain sorted Vec<IndexEntry> orderings, ~172 MiB in RAM at SF0.1 (measured), currently memory-only (rebuilt every open, ~670 ms). Persisting it would add ~12% to the .gdb.
  • A wavelet matrix over the triples represents them compactly (succinct) and answers the leapfrog intersection primitives (seek/next on sorted candidate lists) via rank/select, potentially replacing all six arrays with one compact structure.

Scope (evaluation first)

  1. Prototype a wavelet-matrix index for (src, label, tgt) triples.
  2. Compare RAM and query latency vs the six-array version on LDBC + micro-benchmarks.
  3. Assess persistence feasibility (succinct structures serialize well).

Overlaps #compact-CLTJ (the paper's CLTJ is built on wavelet trees). Research/prototype; large if adopted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceSpeed / memory optimizationresearchResearch / evaluation / spike

    Type

    No type

    Fields

    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