Optimize dynamic workflow by pruning node inputs (#6888)#6908
Open
VishnuVV27 wants to merge 1 commit intoflyteorg:masterfrom
Open
Optimize dynamic workflow by pruning node inputs (#6888)#6908VishnuVV27 wants to merge 1 commit intoflyteorg:masterfrom
VishnuVV27 wants to merge 1 commit intoflyteorg:masterfrom
Conversation
Signed-off-by: vishnuvv27 <vardhanvishnu520@gmail.com>
60404f5 to
5da02b4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tracking issue
Closes #6888
Why are the changes needed?
Dynamic workflows in Flyte can fail or suffer from performance issues when the dynamic closure becomes too large, exceeding gRPC message limits (the "message too large" error). Even if execution succeeds, the Flyte UI becomes sluggish because it has to download and parse these massive blobs. This is primarily caused by the inclusion of all node inputs in the dynamic closure, which is redundant since this data is already persisted in metadata storage.
What changes were proposed in this pull request?
ArrayNode(Map Tasks) to ensure nested node inputs are also pruned, which are often the largest contributors to payload bloat.This effectively reduces the "blueprint" size of the dynamic workflow without affecting execution, as nodes continue to read their actual inputs from the defined storage locations.
How was this patch tested?
Added a new test suite TestClearNodeInputs_WithCoreBindings in flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go.
nil.ArrayNodetargets are also nullified.go test -v ./pkg/controller/nodes/dynamic/... -run TestClearNodeInputs_WithCoreBindings