-
Notifications
You must be signed in to change notification settings - Fork 68
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
Create per-pipeline ETL locks #10
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… as no actions overlap.
smgallo
added
the
enhancement
Enhancement of the functionality of an existing feature
label
Jan 3, 2017
jsperhac
added a commit
to jsperhac/xdmod
that referenced
this pull request
Jan 4, 2017
…s type on HC chart update.
6 tasks
jsperhac
added a commit
to jsperhac/xdmod
that referenced
this pull request
Jan 6, 2017
…s type on HC chart update.
jsperhac
added a commit
to jsperhac/xdmod
that referenced
this pull request
Jan 16, 2017
…s type on HC chart update.
jsperhac
added a commit
to jsperhac/xdmod
that referenced
this pull request
Jan 17, 2017
…s type on HC chart update.
jsperhac
added a commit
to jsperhac/xdmod
that referenced
this pull request
Jan 17, 2017
…menu: - Enable changing of y axis min and max, and log scaling, at one time. Clicking OK accepts all changes, clicking Cancel rejects them. - Prevent Highcharts Error ubccr#10 by explicitly naming log/linear axis type on HC chart update. - Filter user inputs to axis minimum value when log is selected. - Add support for change stack: anything done in context menu should be treated atomically. - Destroy context menu after use to prevent memory leaks. - Incorporate feedback from eslint linter.
plessbd
approved these changes
Jan 20, 2017
plessbd
approved these changes
Jan 20, 2017
ryanrath
pushed a commit
to ryanrath/xdmod
that referenced
this pull request
Apr 27, 2017
…menu: - Enable changing of y axis min and max, and log scaling, at one time. Clicking OK accepts all changes, clicking Cancel rejects them. - Prevent Highcharts Error ubccr#10 by explicitly naming log/linear axis type on HC chart update. - Filter user inputs to axis minimum value when log is selected. - Add support for change stack: anything done in context menu should be treated atomically. - Destroy context menu after use to prevent memory leaks. - Incorporate feedback from eslint linter.
3 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Category:ETL
Extract Transform Load
enhancement
Enhancement of the functionality of an existing feature
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ETLv2 allows multiple ETL processes to be run concurrently but concurrent executions should not include the same action. To support this, lock files are not solely pid-based but also take into account the names of the actions that are being executed. This allows multiple ETL pipelines to be executed concurrently as long as the actions being performed do not overlap.
Description
A new
ETL\LockFile
class supports a lock file that contains a PID as well as a unique list of actions to be executed by that process. Prior to obtaining a lock, all ETLv2 lock files are checked to make sure that no running process is executing an action that overlaps the new process. Orphaned files are also cleaned up at this point. Note that a prefix (default ofetlv2_
) is required to identify ETLv2 lock files since multiple processes can run concurrently.The ETL overseer script now supports
--lock-dir
and--lock-file-prefix
options. In addition, a newetl
section in the portal_settings.ini allows any option available as a command-line argument to be set (command-line options override portal_settings.ini values). For example:Also implemented
ETL\Maintenance\TestAction
to facilitate testing. This action allows one of the following operations to be specified: sleep a number of seconds, throw an exception (helps test exception handling including the configurable behavior of continuing or stopping on an exception), echo a string. Additional test actions can be added as needed.Motivation and Context
Allow parallel ETLv2 pipelines but facilitate identification of possible conflicts, especially when automated.
Tests performed
Tested various configurations:
Types of changes
Checklist: