-
Notifications
You must be signed in to change notification settings - Fork 29
Optimised DataBuilderMeta method calls #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: cpu_opt_v2
Are you sure you want to change the base?
Conversation
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Current
DataBuilderMeta
has two methods which are called extensively bySimpleDataFlowExecutor
getEffectiveConsumes()
- This returns list of dataset effectively consumed by the builder. Once builderMeta has been initialised, this set cannot change in runtime and hence output of this method (a set) can be cached instead of creating a new set every timegetAccessibleDataSet()
- Similar logic applies for this as wellTo achieve this, it became mandatory to make
DataBuilderMeta
immutable. Currently onlyrank
was set from outside afterdeepCopy()
.deepCopy()
has now been modified to acceptrank
as input effectively making DataBuilderMeta immutable throughout its lifecycleNow once this object became immutable, another performance optimisation can be unlocked. There is a frequent map lookup for DataBuilderMeta during execution in a map. Given the immutability,
hashCode()
forDataBuilderMeta
can now be cached and need not be computed on every invocation