-
Notifications
You must be signed in to change notification settings - Fork 22
Cache Serailize API #47
Cache Serailize API #47
Conversation
Thank you for opening this pull request! 🙌 |
Codecov Report
@@ Coverage Diff @@
## master #47 +/- ##
==========================================
+ Coverage 67.21% 69.69% +2.48%
==========================================
Files 28 31 +3
Lines 1031 1231 +200
==========================================
+ Hits 693 858 +165
- Misses 279 304 +25
- Partials 59 69 +10
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
8e3778c
to
1627131
Compare
72e0494
to
e1d6847
Compare
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Ketan Umare <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Samhita Alla <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Yuvraj <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
…rtifacts. Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Haytham Abuelfutuh <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
This reverts commit 2ba0775. Signed-off-by: Daniel Rammer <[email protected]>
* Fix gorm wrong error type cast Signed-off-by: Haytham Abuelfutuh <[email protected]> * Fix unit tests Signed-off-by: Haytham Abuelfutuh <[email protected]> * Support unwrapping errors to detect connection problems Signed-off-by: Haytham Abuelfutuh <[email protected]> * cleanup Signed-off-by: Haytham Abuelfutuh <[email protected]> Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
e1d6847
to
5b46ec6
Compare
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
…e overwrites Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
… of defining on seconds Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
…ity acquired it) then gracefully fail Signed-off-by: Daniel Rammer <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏽
Signed-off-by: Daniel Rammer <[email protected]>
Signed-off-by: Daniel Rammer <[email protected]>
Congrats on merging your first pull request! 🎉 |
* WIP: add reservation apis Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add missing files Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * added create DAO Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * Add get dao Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * wip Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * fix tests Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * wired reservation manager Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add todos Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add more tests Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add more tests Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add more logging Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add logging and stats Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * fix lint Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add more comments Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * First -> Take Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * WIP: add createOrupdate API Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * Added boilerplate automation (#41) Signed-off-by: Ketan Umare <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * update boilerplate code (#40) Signed-off-by: Samhita Alla <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * Upgrade gorm to v1.21.9 (#42) Signed-off-by: Daniel Rammer <[email protected]> * Added boilerplate automation (#43) Signed-off-by: Yuvraj <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add more instructinos Use upsert Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add more comments Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * refactor a bit Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add timer Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * fix lint / tests Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add comments & tests Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * fix lint Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * add docs Signed-off-by: Chao-Han Tsai <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * Fix connection error handling (#45) Signed-off-by: Daniel Rammer <[email protected]> * Update code of conduct (#46) Signed-off-by: Ketan Umare <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * separated ReservationManager CreateOrUpdate function into individual Create and Update functions Signed-off-by: Daniel Rammer <[email protected]> * fixed race condition on Reservation repository Create function Signed-off-by: Daniel Rammer <[email protected]> * changed reservation expiration to use heartbeatInterval and heartbeatGracePeriodMultiplier Signed-off-by: Daniel Rammer <[email protected]> * fixed lint and unit test errors Signed-off-by: Daniel Rammer <[email protected]> * added unit tests for extending reservation and update failure Signed-off-by: Daniel Rammer <[email protected]> * removed ExtendReservation API mocks Signed-off-by: Daniel Rammer <[email protected]> * added ExpiresAt and HeartbeatInterval fiedls to ReservationStatus return based on new API Signed-off-by: Daniel Rammer <[email protected]> * implemented ReleaseReservation Signed-off-by: Daniel Rammer <[email protected]> * added unit tests for reservation transformer Signed-off-by: Daniel Rammer <[email protected]> * fixed lint errors Signed-off-by: Daniel Rammer <[email protected]> * implemented unit tests for ReleaseReservation API call Signed-off-by: Daniel Rammer <[email protected]> * updated reservation API to only work with reservations - not actual artifacts. Signed-off-by: Daniel Rammer <[email protected]> * Fix error type check to detect uniqueConstraintViolation Signed-off-by: Haytham Abuelfutuh <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * Revert "Fix error type check to detect uniqueConstraintViolation" This reverts commit 22c2d03. Signed-off-by: Daniel Rammer <[email protected]> * Fix gorm wrong error type cast (#48) * Fix gorm wrong error type cast Signed-off-by: Haytham Abuelfutuh <[email protected]> * Fix unit tests Signed-off-by: Haytham Abuelfutuh <[email protected]> * Support unwrapping errors to detect connection problems Signed-off-by: Haytham Abuelfutuh <[email protected]> * cleanup Signed-off-by: Haytham Abuelfutuh <[email protected]> Signed-off-by: Daniel Rammer <[email protected]> * added support for heartbeat_interval definition in reservation manager Signed-off-by: Daniel Rammer <[email protected]> * updated test and fixed lint errors Signed-off-by: Daniel Rammer <[email protected]> * removed unnecessary dependencies from go.mod Signed-off-by: Daniel Rammer <[email protected]> * updated flyteidl version - change before merging Signed-off-by: Daniel Rammer <[email protected]> * adding reservation model to migration Signed-off-by: Daniel Rammer <[email protected]> * udpated dockerfile go template to reflect current master fixing rebase overwrites Signed-off-by: Daniel Rammer <[email protected]> * and again .. with a space Signed-off-by: Daniel Rammer <[email protected]> * add docs on exports Signed-off-by: Daniel Rammer <[email protected]> * changed configuration to use config.Duration from flytestdlib instead of defining on seconds Signed-off-by: Daniel Rammer <[email protected]> * added owner id to reservation gorm impl delete function Signed-off-by: Daniel Rammer <[email protected]> * if reservation is missing on release reservation (meaning another entity acquired it) then gracefully fail Signed-off-by: Daniel Rammer <[email protected]> * updated flyteidl version Signed-off-by: Daniel Rammer <[email protected]> * remove flyteidl replace in go.mod and updating to latest version Signed-off-by: Daniel Rammer <[email protected]> Co-authored-by: Chao-Han Tsai <[email protected]> Co-authored-by: Yuvraj <[email protected]> Co-authored-by: Samhita Alla <[email protected]> Co-authored-by: Haytham Abuelfutuh <[email protected]>
TL;DR
Adding artifact reservation API. This construct will be used to restrict concurrent execution of multiple instances of a cached task with the same inputs, mitigating the overhead of identical workloads.
Type
Are all requirements met?
Complete description
Implementing GetOrReserveArtifact and RelaseReservation API calls to manage artifact reservations. The GetOrReserveArtifact call returns the cached artifact if it exists, if not it performs a conditional upsert to claim the artifact reservation. If a task currently holds an artifact reservation, this call is meant to be repeated to update the reservation expiration until completion. Once completed, the task creates artifact using CreateArtifact and releases the reservation with ReleaseReservation.
Waiting on flyteorg/flyteidl#215 to remove ExtendReservation API call and include expiration time and recommended heartbeat interval in GetOrReserveArtifact response.
Tracking Issue
flyteorg/flyte#267
flyteorg/flyte#420
flyteorg/flyte#872
Follow-up issue
NA