GitHub
03/08/2023, 7:20 PM<https://github.com/flyteorg/flytepropeller/tree/master|master>
by pingsutw
<https://github.com/flyteorg/flytepropeller/commit/48c37ded438ea18aaca60b74e748760057b3a48a|48c37ded>
- Structured Dataset with generic format should be castable to Flyte Schema (#536)
flyteorg/flytepropellerGitHub
03/08/2023, 8:10 PMGitHub
03/08/2023, 9:57 PM<https://github.com/flyteorg/flytesnacks/tree/master|master>
by cosmicBboy
<https://github.com/flyteorg/flytesnacks/commit/3148c6c6aaf056020c523ca802439c092d472557|3148c6c6>
- Add mlflow example (#960)
flyteorg/flytesnacksGitHub
03/08/2023, 9:57 PMGitHub
03/08/2023, 10:18 PMGitHub
03/08/2023, 10:22 PMGitHub
03/08/2023, 10:42 PM<https://github.com/flyteorg/flytesnacks/tree/master|master>
by pmahindrakar-oss
<https://github.com/flyteorg/flytesnacks/commit/343072b412e808e552a57f7d30bf404025b22464|343072b4>
- Upgrading aws sdk to use WebIdentityTokenCredentialsProvider (#967)
flyteorg/flytesnacksGitHub
03/08/2023, 11:28 PMGitHub
03/08/2023, 11:29 PMGitHub
03/08/2023, 11:46 PMGitHub
03/09/2023, 12:07 AM<https://github.com/flyteorg/flyteadmin/tree/master|master>
by katrogan
<https://github.com/flyteorg/flyteadmin/commit/188b982aa6d64cf29683fe91a343d85e1c27564a|188b982a>
- Don't truncate error messages when listing task executions (#536)
flyteorg/flyteadminGitHub
03/09/2023, 12:53 AMGitHub
03/09/2023, 1:12 AMGitHub
03/09/2023, 1:51 AMimage▾
GitHub
03/09/2023, 4:14 AM@task
def t1() -> Annotated[List[Any], 100]
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
Originally, in ListTransformer.to_literal
, Items are converted one by one. It is time-consuming, especially for large lists.
flytekit/flytekit/core/type_engine.py
Line 977 in </flyteorg/flytekit/commit/8ccb5dde044f9dce3e216a8cea58dd464fb3ab6b|8ccb5dd>
This PR checks if python_type is list[flytePickle]. If so, batch the list of items and call FlytePickleTransformer.to_literal
.
Measure the performance
Test file:
from typing import List, Dict, Any
from flytekit import task, Resources, workflow
@task(
limits=Resources(mem="4Gi",cpu="1"),
disable_deck=True,
)
def test() -> List[Any]:
return [{"a": {0: "foo"}}] * 10000
@workflow
def wf():
test()
if __name__ == "__main__":
wf()
# yichenglu/flytekit:mytest5 contains this PR
# pyflyte run --image yichenglu/flytekit:mytest5 --remote ./test.py wf
# <http://cr.flyte.org/flyteorg/flytekit:py3.10-1.4.0b1|cr.flyte.org/flyteorg/flytekit:py3.10-1.4.0b1> is the default image
# pyflyte run --image <http://cr.flyte.org/flyteorg/flytekit:py3.10-1.4.0b1|cr.flyte.org/flyteorg/flytekit:py3.10-1.4.0b1> --remote ./test.py wf
In an 4VCPU, 16G RAM EC2 instance, measuring the performance in flyte cluster using the above test file and the commands:
• Prior to these changes, , converting a list with type List[Any]
with 10000 items needs 157 seconds.
• After this PR, convertinga list with type List[Dict[str, Any]]
with 10000 items only needs 7 seconds.
image▾
image▾
from typing import List, Dict, Any, Annotated
from flytekit import task, Resources, workflow
@task(
limits=Resources(mem="4Gi",cpu="1"),
disable_deck=True,
container_image="{{.image.oldImage}}",
cache=True, cache_version="1.0"
)
def task0() -> List[List[Any]]:
return [ ["foo","foo","foo"] ] * 2
@task(
limits=Resources(mem="4Gi",cpu="1"),
disable_deck=True,
container_image="{{.image.prImage}}",
)
def task1(data: List[List[Any]]) -> List[List[Any]]:
print(data)
return data
@workflow
def wf():
data = task0()
task1(data=data)
# pyflyte run --image prImage="yichenglu/flytekit:mytest4" --image oldImage="<http://cr.flyte.org/flyteorg/flytekit:py3.10-1.4.1|cr.flyte.org/flyteorg/flytekit:py3.10-1.4.1>" --remote ./test.py wf
image▾
from typing import List, Dict, Any, Annotated
from flytekit import task, Resources, workflow
@task(
limits=Resources(mem="4Gi",cpu="1"),
disable_deck=True,
container_image="{{.image.prImage}}",
)
def task0() -> List[List[Any]]:
return [ ["foo","foo","foo"] ] * 2
@task(
limits=Resources(mem="4Gi",cpu="1"),
disable_deck=True,
container_image="{{.image.oldImage}}"
)
def task1(data: List[List[Any]]) -> List[List[Any]]:
print(data)
return data
@workflow
def wf():
data = task0()
task1(data=data)
# pyflyte run --image prImage="yichenglu/flytekit:mytest4" --image oldImage="<http://cr.flyte.org/flyteorg/flytekit:py3.10-1.4.1|cr.flyte.org/flyteorg/flytekit:py3.10-1.4.1>" --remote ./test.py wf
image▾
[[['foo', 'foo', 'foo']], [['foo', 'foo', 'foo']]]
will be printed if see the pod's log
This occurs because in Task0, the outputs are batched, while in Task 1, which does not include this PR, the results are not expanded.
While slightly impacting backward compatibility, it is justifiable to ask users to update their images for two primary reasons:
• Before the implementation of this PR, users faced lengthy wait times for tasks involving pickling to be completed.
• Only tasks with the type list[any] will be affected. In most scenarios, users can still utilize the old images or cached outputs.
Tracking Issue
flyteorg/flyte#3207
Follow-up issue
NA
flyteorg/flytekit
✅ All checks have passed
30/30 successful checksGitHub
03/09/2023, 5:49 AMrefreshTime
based on the cached token expiry when instantiating customTokenSource
. Otherwise refreshTime
defaults to 0, effectively nullifying the cache we just added since it's always viewed as refresh window exceeded on first use.
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
This change
• Chooses a new refreshTime
if a cached token is available, otherwise default to empty time
• Moves token source provider tests to dedicated file
• Adds new test TestCustomTokenSource_GetTokenSource
• Removes overly verbose logging
Tracking Issue
NA
Follow-up issue
NA
flyteorg/flyteidl
GitHub Actions: Generate Swagger Code
✅ 11 other checks have passed
11/12 successful checksGitHub
03/09/2023, 9:32 AMAnnotated[FlyteFile, HashMethod(...)]
, so that they can be cached based on file contents, e.g.
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
In FlyteFilePathTransformer.to_literal()
, Annotated
type aliases are now
handled by unwrapping the first type argument to the alias, before checking if
they are a subclass of FlyteFile
.
Tracking Issue
flyteorg/flyte#3424
Follow-up issue
NA
flyteorg/flytekit
✅ All checks have passed
30/30 successful checksGitHub
03/09/2023, 12:17 PMGitHub
03/09/2023, 3:59 PM<https://github.com/flyteorg/flyteconsole/tree/master|master>
by ursucarina
<https://github.com/flyteorg/flyteconsole/commit/0a6ad81411f744ee682e58e3a9d51baca9e64e00|0a6ad814>
- FE: Update flyteconsole to Node 18 (#717)
flyteorg/flyteconsoleGitHub
03/09/2023, 4:54 PMimage▾
GitHub
03/09/2023, 6:20 PMGitHub
03/09/2023, 6:22 PM<https://github.com/flyteorg/flyteconsole/tree/master|master>
by ursucarina
<https://github.com/flyteorg/flyteconsole/commit/172664a79ca49055acb1dbdd376c01b777604f27|172664a7>
- chore: allow complex workflow names (#715)
flyteorg/flyteconsoleGitHub
03/09/2023, 7:27 PMGitHub
03/09/2023, 7:28 PMGitHub
03/09/2023, 7:31 PMGitHub
03/09/2023, 7:31 PMsucceeded
). This ticket will track root causing and fixing the issue.
flyteorg/flyteconsoleGitHub
03/09/2023, 7:32 PMGitHub
03/09/2023, 7:54 PM<https://github.com/flyteorg/flyteconsole/tree/master|master>
by ursucarina
<https://github.com/flyteorg/flyteconsole/commit/a299398e9e2a7180a845d116f27cbdb7db46bae2|a299398e>
- chore: show correct app version in info (#716)
flyteorg/flyteconsoleGitHub
03/09/2023, 8:07 PM<https://github.com/flyteorg/flyteconsole/tree/master|master>
by ursucarina
<https://github.com/flyteorg/flyteconsole/commit/ffb161cb2266094f86ff416bc52ec57c56ef7a80|ffb161cb>
- fix: left nav doesn't accurately update on workflow version page (#718)
flyteorg/flyteconsoleGitHub
03/09/2023, 8:22 PM