Skip to content

[FEA] GFQL bindings_table (row bindings) from chain using Yannakakis prune #880

Description

@lmeyerov

Summary

Umbrella for benchmark-visible GFQL row-bindings / joined-row semantics still marked workaround-backed partial in pyg-bench.

Fresh Rerun Receipt (2026-05-09 PT)

  • Run: results/runs/local-snb-interactive-closeout-2026-05-09
  • Residual report filter: backend=gfql, status=partial, issue_ref=graphistry/pygraphistry#880
  • Result: 14 residual lanes remained before the post-rerun child split closeouts.

Active Post-Rerun Child Split

Prior Closed Split Wave (kept for traceability)

Final Closeout Checklist

Non-Blocking Follow-Up

Activity

  1. lmeyerov commented on Mar 30, 2026

    @lmeyerov
    ContributorAuthor

    Concrete benchmark-backed repros are now split out from this broader bindings/materialization request:

    These came up while wiring the first official SNB Interactive subset in pyg-bench on the local staged fixture. If the eventual fix path is shared, this broader issue still looks like the right umbrella.

  2. lmeyerov commented on Apr 1, 2026

    @lmeyerov
    ContributorAuthor

    Partial progress landed in #1008.\n\nWhat is now covered:\n- direct Cypher connected multi-alias scalar projection ()\n- connected multi-pattern and bounded reentry cases that were surfacing as \n\nWhat remains open here:\n- the broader / generalized row-bindings architecture beyond the connected single-path / connected multi-pattern lane that intentionally targeted.\n\nSo should stay open as the wider umbrella, but the narrower user-visible blockers and are now resolved by #1008.

  3. lmeyerov commented on Apr 1, 2026

    @lmeyerov
    ContributorAuthor

    Correction to my prior comment: shell interpolation mangled the markdown.

    Partial progress landed in #1008.

    What is now covered:

    What remains open here:

    So #880 should stay open as the wider umbrella, but the narrower user-visible blockers #981 and #1006 are now resolved by #1008.

  4. added and removed on Apr 1, 2026
  5. 61 remaining items

  6. lmeyerov commented on May 11, 2026

    @lmeyerov
    ContributorAuthor

    #1412 PR #9 CI follow-up

    Pushed a second commit to graphistry/pyg-bench#9:

    • 0f14382 — mechanical lint cleanup exposed by the first PR smoke run.

    Current PR status:

    The residual rerun gate remains unchanged: merge graphistry/pyg-bench#9, then rerun on an environment with the pinned upstream query checkout and SF1 dataset staged before closing #1412 / clearing #880.

  7. lmeyerov commented on May 11, 2026

    @lmeyerov
    ContributorAuthor

    Update for child #1413: PR #1422 merged on 2026-05-11 UTC:
    #1422

    Merge commit: 1520a728424fdc0c54fa507f912e3e24aa7953f7

    Scope covered by the merge:

    Status against this umbrella:

  8. lmeyerov commented on May 11, 2026

    @lmeyerov
    ContributorAuthor

    #1412 closeout lane update:

    • graphistry/pyg-bench#9 merged 2026-05-11 UTC at 518691b5220052cec0889a64deb3148598ee99ed.
    • Reply-author adapter workaround removal is now landed in pyg-bench, with a CHANGELOG.md entry.
    • DGX pinned-fixture sanity rerun passed: results/runs/dgx-spark-issue-1412-testdata-absolute-closeout, run_id=snb-interactive-0dd69802e9, status=ok, probes_total=4, probes_passed=4, probes_partial=0.
    • [POST-RERUN] #880 residual: reply-author row-shaping bucket #1412 remains open pending a full staged residual rerun because SF1 IC8 returned 137 before probes and the expected DGX sf0.1 dataset cache is currently missing.
  9. lmeyerov commented on May 11, 2026

    @lmeyerov
    ContributorAuthor

    #1412 is closed out:

    • Adapter workaround removal landed via graphistry/pyg-bench#9 at 518691b5220052cec0889a64deb3148598ee99ed.
    • Missing sf0.1 SNB cache was staged on dgx-spark.
    • DGX staged sf0.1 residual closeout passed: results/runs/dgx-spark-issue-1412-sf01-gfql-closeout, run_id=snb-interactive-c8dee7f018, status=ok, probes_total=2, probes_passed=2, probes_partial=0.
    • message-replies and recent-replies GFQL both returned status=ok with issue_refs=[].

    Tracker status shifted #1412 to completed/closed; remaining #880 children are separate lanes.

  10. lmeyerov commented on May 14, 2026

    @lmeyerov
    ContributorAuthor

    #1413 closeout update:

    Tracker body updated to mark #1413 pygraphistry-side complete. Final #880 closeout still needs remaining child lanes plus a fresh residual rerun proving no remaining #880-attributed gfql partial lanes.

  11. lmeyerov commented on May 14, 2026

    @lmeyerov
    ContributorAuthor

    Updated #1416 status after https://github.com/graphistry/pyg-bench/pull/10 merged: adapter workaround removed, DGX SF0.1 direct probe snb-interactive-44201b99ef passed cleanly with 0 partials and empty issue refs. #1416 remains open pending a full SF1/latest residual rerun, or accepted lower-memory equivalent, before #880 closeout.

  12. lmeyerov commented on May 14, 2026

    @lmeyerov
    ContributorAuthor

    #1411 / pyg-bench#11 benchmark-side closeout

    graphistry/pyg-bench#11 is closed via merged PR graphistry/pyg-bench#14:

    Receipt:

    Target lanes cleared:

    • IS1 seed-lookup
    • IC2 recent-friend-messages
    • IC5 new-groups
    • IC7 recent-likers
    • IC9 recent-network-messages
    • IC10 common-interest-score
    • IC12 expert-search

    Tracker implication: #1411 is complete on both sides. The #880 joined-row projection bucket can be treated as closed; remaining active #880 coordination should focus on #1415 / graphistry/pyg-bench#12, #1416 full residual closeout, and the final no-#880 residual rerun.

  13. lmeyerov commented on May 15, 2026

    @lmeyerov
    ContributorAuthor

    #1418 / D1 closeout receipt

    PR #1435 merged:
    #1435

    • Merge commit: 7659c2c3ed15f54484ce05adf7ce678292ce238e
    • Head commit: 3740d303a543b7f01ad116a85dc32d2cd03136f7
    • Scope: completed the remaining narrow pygraphistry D1 row-join fallback deletion after [codex] Remove connected-match row-join compat fallback #1431 by moving connected OPTIONAL MATCH to direct physical-plan dispatch and removing the stale connected-optional compat branch.
    • Validation: local focused/amplified tests green, ruff + git diff --check green, review skill converged with no findings, PR CI green at merge.
    • DGX: RAPIDS 25.02 import smoke and new direct-dispatch cutover test passed; broader cuDF optional tests were resource-blocked by shared dgx-spark CUDA/host memory pressure.

    Tracker implication:

  14. lmeyerov commented on May 15, 2026

    @lmeyerov
    ContributorAuthor

    #1416 recursive-ancestor residual closeout receipt:

    No source merge is needed from #1430.

  15. lmeyerov commented on May 15, 2026

    @lmeyerov
    ContributorAuthor

    One more lane cleared for #880.

    Benchmark-side closeout of #1415 (IC6 / tag-cooccurrence join+aggregation) lands in graphistry/pyg-bench#15: the lane is now classified native_rows_postprocess / status: ok with #880 removed from success_issue_refs. Routes through a native GFQL chain materializing friend × post × tag joined rows via rows() + select() (locked by #1396 + #1426; tied to #1415 by #1427); adapter postprocess only does SNB-shaped finishing (exclude self, known-tag co-occurrence filter, group-by tag, count(post), order, limit-10).

    dgx-spark SNB SF0.1 receipt: tag-cooccurrence / gfql / dataset-backed returns status: ok, issue_refs: [], latency 238 ms (results/runs/dgx-spark-ic6-issue-12-cpu-sf0.1/probe-results.json). pygraphistry IC6 RAPIDS 25.02 + 26.02 targeted tests pass (#1437 added the test-side numba_cuda segfault workaround for 25.02-cuda12.8).

    Remaining lanes citing #880 (per dgx-spark probe results): IC3 cross-country-messages, IC4 new-topics, IC11 job-referral. Out of scope for graphistry/pyg-bench#12; each will follow its own closeout pattern.

  16. lmeyerov commented on May 15, 2026

    @lmeyerov
    ContributorAuthor

    Coordinator sync after #1415 / graphistry/pyg-bench#12 closeout:

  17. lmeyerov commented on May 15, 2026

    @lmeyerov
    ContributorAuthor

    Final #880 benchmark-side closeout receipt after graphistry/pyg-bench#21:

    What closed:

    • graphistry/pyg-bench#19 is complete for the last known #880-attributed benchmark residual lanes:
      • IC3 / cross-country-messages
      • IC4 / new-topics
      • IC11 / job-referral
    • All three now report GFQL status=ok, issue_refs=[].
    • The stale runner/config partial + graphistry/pygraphistry#880 classification was removed.

    Fresh residual evidence:

    • DGX SF0.1 artifact: results/runs/dgx-spark-issue-19-sf01-closeout/
    • Target rows:
      • cross-country-messages gfql ok []
      • new-topics gfql ok []
      • job-referral gfql ok []
    • Scan of the same artifact found no remaining graphistry/pygraphistry#880-attributed GFQL partial lanes.
    • Remaining GFQL partials are unrelated and carry empty issue refs: named-shortest-friends, shortest-path, expand-order-limit.

    Validation:

    • ./bin/lint passed
    • ./bin/test passed: 116 passed
    • review skill converged after 5 waves, with waves 4 and 5 clean

    Notes:

    Tracker implication: graphistry/pyg-bench#19 can be marked complete, and #880 no longer has a benchmark-side gfql partial residual attributed to it in the fresh closeout artifact.

  18. lmeyerov commented on May 15, 2026

    @lmeyerov
    ContributorAuthor

    Non-blocking performance/resource follow-up from the closed #880 / #1415 IC6 lane is complete on the benchmark side.

    Merged:

    Scope:

    What changed:

    • IC6 / tag-cooccurrence SF1 GFQL now uses bounded friend batches instead of full friend x post x tag materialization.
    • Default batch size is friend_batch_size=512.
    • Batch results are validated against staged post_hasCreator expected (friendId, postId) pairs, with scalar fallback only for missing friends.
    • Result metadata records resource_strategy.materialization=bounded_friend_batches, friend_batch_size=512, and validation=post_has_creator_expected_pairs.
    • No pygraphistry source change was needed.

    Receipts:

    • DGX CPU: status=ok, latency_ms=156.505, peak_rss_mib=563.3
    • DGX RAPIDS 26.02: status=ok, latency_ms=500.86, peak_rss_mib=901.4
    • DGX RAPIDS 25.02: status=ok, latency_ms=584.58, peak_rss_mib=814.9
    • PR CI: GitHub Smoke passed before merge
    • Local: ./bin/lint passed; ./bin/test passed (126 passed)

    Tracker implication:

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions