Hello Apache AGE community,

I would like to request reviews for two Cypher write-executor performance 
improvements.

Both changes address costs that become significant in large writable
workloads, particularly per-row memory growth and redundant entity lookup. I
believe they are important for AGE write performance and scalability, and I
would greatly appreciate it if a maintainer could spare some time to review
them when convenient.

If review time is limited, I suggest starting with PR #2517: Bound per-row 
memory 
in writable clauses
https://github.com/apache/age/pull/2517

This is the smaller change: five files with 230 additions and 8 deletions,
localized to the memory lifetime of per-row write-executor slots and scratch
data. At 100,000 input rows, it reduces SET/REMOVE elapsed time by
approximately 84-95%, while also preventing private memory from growing with
every processed row.

The second pull request is broader and will likely require more review time:
PR #2486: Optimize writable entity lookup and preserve same-row alias updates
https://github.com/apache/age/pull/2486

It carries a validated CTID hint from MATCH to writable clauses and fixes the
same-row alias consistency issue. Because it touches parser propagation,
executor lookup, and SET/REMOVE/DELETE integration, I understand that it will
take longer to review.

Both pull requests are based on commit:
801417404978823bd8732452c3f7959017584785

Related issues for PR #2486:
- #2484: https://github.com/apache/age/issues/2484
- #2485: https://github.com/apache/age/issues/2485

I would also appreciate guidance on this separate semantics question, which
is not addressed by PR #2486:

ISSUE#2487: Clarify SET semantics when one entity appears in multiple result 
rows
https://github.com/apache/age/issues/2487

Thank you for your time and review.

Best regards,

Duan

Reply via email to