Skip to content

Add MillenniumDB to the cross-system LDBC benchmark #69

Description

@matiastoro

Motivation

Add MillenniumDB to the cross-system benchmark. MillenniumDB (IMFD / U. Chile) implements worst-case-optimal (leapfrog trie) joins natively, making it the most apt head-to-head comparison for this engine's LTJ.

Current state (feasibility)

  • The harness (bench/cross-system/) already runs gqlite, graphqlite, kuzu, grafeo, neo4j, duckdb (ALL_SYSTEMS in run_all.sh).
  • Adding a system follows the documented recipe (see gqlrust/CLAUDE.md "Adding a system"): create bench/cross-system/millenniumdb/ with:
    • setup.py — load full LDBC SF0.1 (counts must match: 327,588 nodes / 1,477,965 edges)
    • run.py — emit the CSV schema + the ROW ... hash= line via _lib/row_hash.py (must byte-mirror canonicalize_* in src/bin/ldbc_bench.rs)
    • IC translations for the implemented ICs (2, 5, 6, 8, 9, 11)
    • requirements.txt, README.md, DIVERGENCES.md
    • register in run_all.sh (ALL_SYSTEMS, SETUP_CMD, SETUP_MARKER, RUNNER, REBUILD_FLAG) and in compare_results.py _normalize

Feasibility

Additive, no engine changes; follows a proven pattern. Effort is the loader + runner + a MillenniumDB client (it runs as a server; needs its HTTP/driver interface) and the IC dialect translations. The row-equivalence oracle (sha256 of iter-0 rows) keeps the comparison honest.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    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