Skip to content

Conversation

knakatasf
Copy link

@knakatasf knakatasf commented Sep 1, 2025

Scope & Purpose

This PR adds memory monitoring mechanism to COLLECT method; hence AGGREGATE too. This PR assumes that supervised AqlValue will be implemented in the future. Currently, AqlValue created by CollectExecutors is NOT monitored.

  • COLLECT method calls SortedCollectExecutor, HashedCollectExecutor, CountCollectExecutor or DistinctCollectExecutor. ResourceMonitor& is injected into each Executor (except CountCollectExecutor) at CollectNode.cpp.
  • Once supervised AqlValue is implemented, usageScope will be no longer needed.
image
  • AGGREGATE class now holds ResourceMonitor& and ResourceUsageScope (object by value). The usageScope is instantiated upon instantiating Aggregator; hence each Aggregator holds their own local usageScope.
  • Even after supervised AqlValue is implemented, we still need local usageScope for Aggregator to monitor VPackSlice variables.
image
  • 💩 Bugfix
  • 🍕 New feature
  • 🔥 Performance improvement
  • 🔨 Refactoring/simplification

Checklist

  • Tests
    • Regression tests
    • C++ Unit tests
    • integration tests
    • resilience tests
  • 📖 CHANGELOG entry made
  • 📚 documentation written (release notes, API changes, ...)
  • Backports
    • Backport for 3.12.0: (Please link PR)
    • Backport for 3.11: (Please link PR)
    • Backport for 3.10: (Please link PR)

Related Information

(Please reference tickets / specification / other PRs etc)

  • Docs PR:
  • Enterprise PR:
  • GitHub issue / Jira ticket:
  • Design document:

@cla-bot cla-bot bot added the cla-signed label Sep 1, 2025
@knakatasf knakatasf force-pushed the feature/collect-memory-monitoring branch from 38c77f1 to 78a6068 Compare September 4, 2025 17:32
@cpjulia cpjulia mentioned this pull request Sep 5, 2025
19 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant