Skip to content
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

[Feature] Support serializing Scheduled Executions #420

Open
1 of 13 tasks
EngHabu opened this issue Jul 20, 2020 · 13 comments · Fixed by flyteorg/flytepropeller#326
Open
1 of 13 tasks

[Feature] Support serializing Scheduled Executions #420

EngHabu opened this issue Jul 20, 2020 · 13 comments · Fixed by flyteorg/flytepropeller#326
Labels
enhancement New feature or request

Comments

@EngHabu
Copy link
Contributor

EngHabu commented Jul 20, 2020

Motivation: Why do you think this is important?
With a scheduled executions, users might expect no more than one execution will be running at the same time (assuming an older run takes a long time to finish).

Goal: What should the final outcome look like, ideally?
Users can signify exactly once flag when creating a schedule for a launch plan.

Flyte component

  • Overall
  • Flyte Setup and Installation scripts
  • Flyte Documentation
  • Flyte communication (slack/email etc)
  • FlytePropeller
  • FlyteIDL (Flyte specification language)
  • Flytekit (Python SDK)
  • FlyteAdmin (Control Plane service)
  • FlytePlugins
  • DataCatalog
  • FlyteStdlib (common libraries)
  • FlyteConsole (UI)
  • Other
@EngHabu EngHabu added enhancement New feature or request untriaged This issues has not yet been looked at by the Maintainers labels Jul 20, 2020
@kumare3
Copy link
Contributor

kumare3 commented Jul 21, 2020

Exactly once means that something will be done exactly once, not twice and not zero times. @EngHabu Do you rather mean that only one scheduled execution runs at a time effectively serial iz Ing the schedules?

@EngHabu EngHabu changed the title [Feature] Support Exactly-Once (almost) semantics for Scheduled Executions [Feature] Support serializing Scheduled Executions Jul 22, 2020
@EngHabu
Copy link
Contributor Author

EngHabu commented Jul 22, 2020

Yes exactly that

@kumare3 kumare3 removed the untriaged This issues has not yet been looked at by the Maintainers label Jun 7, 2021
@kumare3 kumare3 added this to the 0.17.0 milestone Jun 7, 2021
@EngHabu EngHabu removed this from the 0.17.0 milestone Aug 31, 2021
@hamersaw hamersaw self-assigned this Oct 20, 2021
@kumare3
Copy link
Contributor

kumare3 commented Oct 27, 2021

this should dedupe - #267

@kumare3
Copy link
Contributor

kumare3 commented Dec 2, 2021

Cc @EngHabu this should not be closed

eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
* removed the secrets package to flyteplugins and updated dependencies

Signed-off-by: Daniel Rammer <[email protected]>

* fixed lint issue

Signed-off-by: Daniel Rammer <[email protected]>

* updated flyteplugins version

Signed-off-by: Daniel Rammer <[email protected]>

* Update deps

Signed-off-by: Haytham Abuelfutuh <[email protected]>

Co-authored-by: Haytham Abuelfutuh <[email protected]>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
* Add s3 bucket

Signed-off-by: Felix Wang <[email protected]>

* Switch from minio to s3 client

Signed-off-by: Felix Wang <[email protected]>

* Small fixes

Signed-off-by: Felix Wang <[email protected]>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 9, 2023
* removed the secrets package to flyteplugins and updated dependencies

Signed-off-by: Daniel Rammer <[email protected]>

* fixed lint issue

Signed-off-by: Daniel Rammer <[email protected]>

* updated flyteplugins version

Signed-off-by: Daniel Rammer <[email protected]>

* Update deps

Signed-off-by: Haytham Abuelfutuh <[email protected]>

Co-authored-by: Haytham Abuelfutuh <[email protected]>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 21, 2023
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 21, 2023
@github-actions
Copy link

Hello 👋, This issue has been inactive for over 9 months. To help maintain a clean and focused backlog, we'll be marking this issue as stale and will close the issue if we detect no activity in the next 7 days. Thank you for your contribution and understanding! 🙏

@github-actions github-actions bot added the stale label Aug 26, 2023
@github-actions
Copy link

github-actions bot commented Sep 2, 2023

Hello 👋, This issue has been inactive for over 9 months and hasn't received any updates since it was marked as stale. We'll be closing this issue for now, but if you believe this issue is still relevant, please feel free to reopen it. Thank you for your contribution and understanding! 🙏

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 2, 2023
@eapolinario eapolinario reopened this Nov 2, 2023
@github-actions github-actions bot removed the stale label Nov 3, 2023
@hamersaw hamersaw removed their assignment Nov 9, 2023
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Apr 30, 2024
---------

Signed-off-by: Future Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Co-authored-by: Future Outlier <[email protected]>
Co-authored-by: Kevin Su <[email protected]>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Apr 30, 2024
---------

Signed-off-by: Future Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Co-authored-by: Future Outlier <[email protected]>
Co-authored-by: Kevin Su <[email protected]>
austin362667 pushed a commit to austin362667/flyte that referenced this issue May 7, 2024
---------

Signed-off-by: Future Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Co-authored-by: Future Outlier <[email protected]>
Co-authored-by: Kevin Su <[email protected]>
robert-ulbrich-mercedes-benz pushed a commit to robert-ulbrich-mercedes-benz/flyte that referenced this issue Jul 2, 2024
---------

Signed-off-by: Future Outlier <[email protected]>
Signed-off-by: Future-Outlier <[email protected]>
Co-authored-by: Future Outlier <[email protected]>
Co-authored-by: Kevin Su <[email protected]>
@kdhingra307
Copy link

@kumare3 any possibility of making this happen?

@kumare3
Copy link
Contributor

kumare3 commented Aug 5, 2024

This is on the roadmap, cannot be prioritized right now as short staffed. Please contribute!

@kumare3
Copy link
Contributor

kumare3 commented Aug 5, 2024

Cc @EngHabu @eapolinario fyi

@kumare3
Copy link
Contributor

kumare3 commented Aug 5, 2024

@kdhingra307 please share a motivating example / usecase

@kdhingra307
Copy link

@kumare3 One use-case could involve processing a batch of data from a stream. For example, if we are at index 10 and want to process the next 500 samples, we increase the counter once the workflow is complete. However, if the workflow takes longer to finish than the frequency at which new workflows are launched, another workflow might start and process the same data.

Also, i can try working on this

@kdhingra307
Copy link

@kumare3 i feel the logic to implement skip feature would be relatively easier. We can add a check in PrepareFlyteWorkflow function and check if a copy of same workflow is running or not. I did a small poc locally and it seems to be working fine.

otpt, _ := w.adminServiceClient.ListExecutions(context.Background(), &admin.ResourceListRequest{
	Id:      &admin.NamedEntityIdentifier{Project: "flytesnacks", Domain: "development"},
	Filters: "eq(launch_plan.name,my_cron_scheduled_lp)+value_in(phase,RUNNING)",
				Limit:   1,
})
if otpt.Token == "" {
	return nil
} else {
	logger.Errorf(ctx, "it already exists so skipping")
	return nil
}

Making the workflow wait for the previous one is bit tricky, like i feel it can be done by adding a condition in handleReadyWorkflow to keep in Ready phase until the previous workflow is finished but i could not find a way to update the status in flyteconsole like it was stuck on Unknown state. One way to handle this would be by creating a new Phase altogether?? Also i feel with this change, we can add fix this issue too but i will need some guidance as i am super new to flyte codebase.

@eapolinario
Copy link
Contributor

@kdhingra307 , take a look at #5659 where we discussing this idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants