Skip to content

Unsorted line/area ingest double-ingests and leaves orphan unsorted columns resident #170

Description

@Alek99

From a full data-transport audit at b0f8780.

Today: _ingest_xy canonicalizes and runs the fused zone_maps_pair scan; then, if not is_sorted(x), line (python/xy/marks.py:801-810), area (~:887-891), and error_band (~:963-966) argsort + gather into new columns that are ingested again (second full zone scan each), while the original unsorted canonical columns stay in the ColumnStore for the figure's lifetime — referenced by nothing, but counted in memory_report.

Cost: ~2x ingest CPU and ~2x canonical memory for the common unsorted-line case.

Proposed fix: canonicalize via columns._canonicalize first and sort before the single ingest; or replace the store entries after sorting (checkpoint/rollback machinery already exists in the store).

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs investigateAudit finding awaiting validation/measurementperformanceReduces copies, bytes, or CPU on the data path

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions