Comments (2)
Digdag should have a background procedure that deletes old sessions periodically. it's not implemented but expected by design.
from digdag.
implementation idea 1:
- add
state_flags
andobsolete_name
toprojects
table. - make
projects.name
nullable. - when user deletes a project, digdag does following works in a single transaction:
- copies
name
toobsolete_name
. - set NULL to
name
. - set ProjectStateFlags.DELETED to
state_flags
. - delete all schedules associated to the project.
- copies
- adding a new revision should be rejected if
state_flags
is DELETED (at ProjectControl.insert* methods because having ProjectControl ensures that the record is locked with FOR UPDATE).
This architecture makes it easy to have UNIQUE INDEX on name column. Looking up a project by name doesn't return logically deleted projects but looking up by id returns one. This is a naturally expected behavior.
Future plan 1:
- add a background thread that does following work:
- delete old sessions and session_attempts older than timestamp T at most N records
- if number of deleted records is less than N, there're no sessions or session_attempts older than timestamp T. in this case, start deleting projects whose state_flags is DELETED and updated_at is older than T.
- deleting project consists of following work:
- delete task log files from storage
- delete revision archive files from storage
- delete workflow_configs using multiple transactions
- delete workflow_definitions using multiple transactions
- delete revisions using multiple transactions
- delete project
from digdag.
Related Issues (20)
- Digdag CLI to schedule workflow session for a future date/time HOT 1
- node-sass is deprecated HOT 6
- InvalidParameterException occurred only when executing sh operator on ECSCommandExecutor. HOT 9
- ECS Command Executor fails if task continues for 10 minutes or more. HOT 1
- How do I point to the parent path? HOT 1
- [feature-request] Oracle operator HOT 1
- Unable to kill node.js task HOT 3
- How to create a global config for multiple projects in the workspace? HOT 2
- Unable to exit as success status when using sys.exit(0) from py:> operator HOT 2
- broken dependency in digdag-client
- Please add route /workflows/{workflow_id}/edit
- [Regression] Commit breaks --enable-swagger HOT 3
- Concurrent update in table "QUEUED_TASK_LOCKS": another transaction has updated or deleted the same row [90131-192] HOT 5
- Please release v0.10.5 HOT 2
- Swagger is broken in v0.10.5 and v0.10.5.1 HOT 2
- Docker build environment fails to build HOT 1
- How to exit or continue while using if or for_each or range or loop in digdag?
- How to add two conditions in the if statement in digdag? HOT 2
- Workflow task is showing running status
- Error with http call HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from digdag.