Skip to content

spike(storage): evaluate sorting and partitioning reuse for construction (#1504) #1506

Description

@DecisionNerd

Purpose

Evaluate DataFusion/Arrow sorting and partitioning facilities (and hybrids) against GraphForge's custom construction sorting/partitioning, with runnable evidence or a specific independently reviewed incompatibility proof.

Prerequisite

Blocked by the #1504 inventory/protocol child. Use that protocol; do not invent thresholds after measuring.

Scope

  • Prototype representative construction/shaping operations using suitable library sorting and partitioning facilities, including selective kernel reuse and integrated execution alternatives.
  • Compare allocation/copy costs, ordering semantics, global merges, repartitioning, skew behavior, and memory admission against the current implementation.
  • Cover power-law hubs and partitions exceeding the current fail-closed budget; distinguish safe refusal from successfully processing a larger input. Evaluate bounded processing/spill alternatives without assuming adaptive partitioning alone solves skew.
  • Explain interaction with recorded UUID splitters, surrogate assignment, endpoint resolution, and canonical publication. Do not require byte-identical transient intermediates unless the publication contract demands them.

Acceptance criteria

  • Runnable representative sorting/partitioning replacement or hybrid experiment exists, or a specific independently reviewed correctness/API incompatibility proof for each inapplicable candidate.
  • Evidence covers skew/hub and over-budget partition cases with explicit safe-refusal vs success outcomes.
  • Fair repeated measurements and a maintenance/correctness tradeoff assessment are recorded for this mechanism.
  • Poor encode performance from spike(storage): prove the Arrow/DataFusion seam on encode, with a go/no-go decision gate #1465, speculation, or time-box expiry is not used as incompatibility proof.
  • Results stay bounded to tested mechanism/design/envelope; no wholesale engine verdict.

Non-goals

Production migration; rewriting graph semantics/public APIs; closing #1504 alone.

Parent

Native sub-issue and blocker of #1504. Blocked by inventory/protocol child.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreCore source code changestestingTest coverage and testing infrastructure

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions