Skip to content
This repository has been archived by the owner on Oct 9, 2023. It is now read-only.

Instrument ArrayNode #550

Merged
merged 68 commits into from
Jul 31, 2023
Merged

Instrument ArrayNode #550

merged 68 commits into from
Jul 31, 2023

Conversation

hamersaw
Copy link
Contributor

@hamersaw hamersaw commented Apr 6, 2023

TL;DR

Instrumenting support for ArrayNodes to provide a functionally complete map task experience.

Type

  • Bug Fix
  • Feature
  • Plugin

Are all requirements met?

  • Code completed
  • Smoke tested
  • Unit tests added
  • Code documentation added
  • Any pending items have an associated Issue

Complete description

^^^

Tracking Issue

flyteorg/flyte#1131

Follow-up issue

NA

Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
@hamersaw hamersaw marked this pull request as ready for review July 19, 2023 15:13
Copy link
Contributor

@kumare3 kumare3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest this is a crazy big code change and it looks pretty good. Boy though, when you look at some of the repeated verbosity in golang haha. But, mostly looks great to me, couple small comments.

Since this is behind a feature gate, i think this is safe to go

Signed-off-by: Daniel Rammer <daniel@union.ai>
Signed-off-by: Daniel Rammer <daniel@union.ai>
@hamersaw hamersaw merged commit 8446baf into master Jul 31, 2023
14 checks passed
@hamersaw hamersaw deleted the feature/array-node branch July 31, 2023 14:05
eapolinario pushed a commit to eapolinario/flytepropeller that referenced this pull request Aug 9, 2023
* updated flyteidl to local to get ArrayNode

Signed-off-by: Daniel Rammer <daniel@union.ai>

* added boilerplate to support ArrayNode

Signed-off-by: Daniel Rammer <daniel@union.ai>

* pushing forward

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactored node executor interfaces to fix dependency cycle

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactoring almost complete

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactor complete

Signed-off-by: Daniel Rammer <daniel@union.ai>

* supporting environment variables

Signed-off-by: Daniel Rammer <daniel@union.ai>

* minimum viable product

Signed-off-by: Daniel Rammer <daniel@union.ai>

* update print statements for debugging

Signed-off-by: Daniel Rammer <daniel@union.ai>

* massive refactor fixing NodeExecutionContext override for ArrayNode

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactoring TODOs

Signed-off-by: Daniel Rammer <daniel@union.ai>

* subnode retries working

Signed-off-by: Daniel Rammer <daniel@union.ai>

* parallelism working

Signed-off-by: Daniel Rammer <daniel@union.ai>

* cache and cache_serialize working - first new functionality in maptask

Signed-off-by: Daniel Rammer <daniel@union.ai>

* adding implementation notes

Signed-off-by: Daniel Rammer <daniel@union.ai>

* removed eventing from subtasks

Signed-off-by: Daniel Rammer <daniel@union.ai>

* adding correct requirements

Signed-off-by: Daniel Rammer <daniel@union.ai>

* working end-2-end with flytekit

Signed-off-by: Daniel Rammer <daniel@union.ai>

* reporting output directory on success

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed output directory append

Signed-off-by: Daniel Rammer <daniel@union.ai>

* mocking TaskTemplate interface to enable caching

Signed-off-by: Daniel Rammer <daniel@union.ai>

* capture failure reasons

Signed-off-by: Daniel Rammer <daniel@union.ai>

* wrapped up abort and finalize functionality

Signed-off-by: Daniel Rammer <daniel@union.ai>

* mocking initialization events

Signed-off-by: Daniel Rammer <daniel@union.ai>

* sending all events

Signed-off-by: Daniel Rammer <daniel@union.ai>

* minor refactoring of debug prints and formatting

Signed-off-by: Daniel Rammer <daniel@union.ai>

* intratask checkpointing working

Signed-off-by: Daniel Rammer <daniel@union.ai>

* support for  and

Signed-off-by: Daniel Rammer <daniel@union.ai>

* setting node log ids correctly

Signed-off-by: Daniel Rammer <daniel@union.ai>

* reporting cache status

Signed-off-by: Daniel Rammer <daniel@union.ai>

* correctly setting subnode abort phase

Signed-off-by: Daniel Rammer <daniel@union.ai>

* removing dead code

Signed-off-by: Daniel Rammer <daniel@union.ai>

* cleaned up most random TODO items

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactored into new files

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactoring for ArrayNode unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* refactored for unit testing to allow creation of NodeExecutor in array package

Signed-off-by: Daniel Rammer <daniel@union.ai>

* first unit test for handling ArrayNodePhaseNone

Signed-off-by: Daniel Rammer <daniel@union.ai>

* most of executing unit tests completed

Signed-off-by: Daniel Rammer <daniel@union.ai>

* finished executing unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* finished succeeding unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* wrote failing phase unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* moving towards complete unit_test success

Signed-off-by: Daniel Rammer <daniel@union.ai>

* unit tests passing

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed lint issues

Signed-off-by: Daniel Rammer <daniel@union.ai>

* updated flyteidl dep

Signed-off-by: Daniel Rammer <daniel@union.ai>

* added unit tests for Abort

Signed-off-by: Daniel Rammer <daniel@union.ai>

* adding unit test for Finalize

Signed-off-by: Daniel Rammer <daniel@union.ai>

* added utils unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* moved state structs to handler package

Signed-off-by: Daniel Rammer <daniel@union.ai>

* added docs

Signed-off-by: Daniel Rammer <daniel@union.ai>

* cleaned up abort event reporting

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed RecordNodeEvent unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* removed taskEventRecorder from nodes package

Signed-off-by: Daniel Rammer <daniel@union.ai>

* adding interface checking for arraynode

Signed-off-by: Daniel Rammer <daniel@union.ai>

* added transform unit test

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed input bindings issue

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* go generate

Signed-off-by: Daniel Rammer <daniel@union.ai>

* addressing random TODO

Signed-off-by: Daniel Rammer <daniel@union.ai>

* fixed unit tests

Signed-off-by: Daniel Rammer <daniel@union.ai>

* addressing pr comments

Signed-off-by: Daniel Rammer <daniel@union.ai>

---------

Signed-off-by: Daniel Rammer <daniel@union.ai>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
2 participants