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
