+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Efficient Re-computation of Big Data Analytics Processes in the Presence of Changes
1. Paolo Missier and Jacek Cala
Newcastle University, UK
Universidad La Rioja, Spain
Oct 29th, 2019
Efficient Re-computation of Big Data Analytics Processes
in the Presence of Changes
In collaboration with
• Institute of Genetic Medicine, Newcastle University
3. 3
What changes?
• Genomics
• Reference databases
• Algorithms and libraries
• Simulation
• Large parameter space
• Input conditions
• Machine Learning
• Evolving ground truth datasets
• Model re-training
4. 4
Genomics
Image credits: Broad Institute https://software.broadinstitute.org/gatk/
https://www.genomicsengland.co.uk/the-100000-genomes-project/
Spark GATK tools on Azure:
45 mins / GB
@ 13GB / exome: about 10 hours
5. 6
Genomics: WES / WGS, Variant calling Variant interpretation
SVI: a simple single-nucleotide Human Variant Interpretation tool for Clinical Use. Missier, P.; Wijaya, E.; Kirby, R.; and Keogh,
M. In Procs. 11th International conference on Data Integration in the Life Sciences, Los Angeles, CA, 2015. Springer
SVI: Simple Variant Interpretation
Variant classification : pathogenic, benign and unknown/uncertain
6. 7
Changes that affect variant interpretation
What changes:
- Improved sequencing / variant calling
- ClinVar, OMIM evolve rapidly
- New reference data sources
Evolution in number of variants that affect patients
(a) with a specific phenotype
(b) Across all phenotypes
7. 10
Blind reaction to change: a game of battleship
Sparsity issue:
• About 500 executions
• 33 patients
• total runtime about 60 hours
• Only 14 relevant output changes
detected
4.2 hours of computation per change
Should we care about updates?
Evolving knowledge about
gene variations
8. 11
ReComp
http://recomp.org.uk/
Outcome:
A framework for selective Re-computation
• Generic, Customisable
Scope:
expensive analysis +
frequent changes +
not all changes significant
Challenge:
Make re-computation efficient in response
to changes
Assumptions:
Processes are
• Observable
• Reproducible
Estimates are cheap
Insight: replace re-computation with change impact estimation
Using history of past executions
9. 12
Reproducibility
How
Selective:
- Across a cohort of past executions. which subset of individuals?
- Within a single re-execution which process fragments?
Change in
ClinVar
Change in
GeneMap
Why, when, to what extent
10. 13
The rest of the talk
• Approach,
• Exemplified on the SVI workflow
• Architecture
11. 14
The ReComp meta-process
History
DB
Detect and
quantify
changes
data diff(d,d’)
Record
execution history
Analytics
Process P
Log / provenance
Partially
Re-exec
P (D) P(D’)
Change
Events
Changes:
• Reference datasets
• Inputs
For each past
instances:
Estimate impact
of changes
Impact(dd’, o) impact estimation functions
Scope
Select relevant
sub-processes
Optimisation
12. 15
How much do we know about P?
Impact estimation
Re-execution
less more
Process structure
Execution trace
black box
I/O provenance
I/O only
All-or-nothing
monolithic process, legacy
a complex simulator
white box
step-by-step provenance
workflows, R / python code
genomics analyticsTypical process
Fine-grained Impact
Partial restart trees (*)
(*) Cala J, Missier P. Provenance Annotation and Analysis to Support Process Re-Computation. In: Procs.
IPAW 2018. London: Springer; 2018.
13. 16
Recomp meta-process flow
PaoloMissier2019
Identify the subset of executions that are
potentially affected by the changes
Determine whether changes may have
had any impact on outputs
Identify and re-execute the
minimal fragments of workflow
that have been affected
19. 22
Restart Tree
Re-computation front handles single executions well.
What if the process is more complex than that?
pipeline, workflow, complex hierarchical workflow… cf. the NGS pipeline.
22. 25
Restart Tree
The provenance trace includes
multiple interrelated executions.
During re-execution we have to
combine all of them within a single
context – the top-level execution.
28. 31
Changes, data diff, impact
1) Observed change events:
(inputs, dependencies, or both)
3) Impact of change C on output y:
2) Type-specific Diff functions:
Impact is process- and data-specific:
29. 32
Impact
Given P (fixed), a change in one of the inputs to P: C={xx’} affects a single output:
However a change in one of the dependencies: C= {dd’}
affects all outputs yt where version d of D was used
30. 33
SVI: data-diff and impact functions
- Data-specific
- Process-specificomim
clinvar
Overall
impact
impact on ‘p1 select genes’
impact on the SVI output
31. 34
Diff functions for SVI
ClinVar
1/2016
ClinVar
1/2017
diff
(unchanged)
Relational data simple set difference
32. 35
Binary SVI impact function
Returns True iff:
- Known variants have moved in/out of Red status
- New Red variants have appeared
- Known Red variants have been retracted
33. 36
Impact: “semantic “ example
Scope: which cases are affected?
- Individual variants have an associated phenotype.
- Patient cases also have a phenotype
“a change in variant v can only have impact on a case X if V and X share
the same phenotype”
Importance: “Any variant with status moving from/to Red causes High impact on
any X that is affected by the variant”
34. 37
Change impact analysis algorithm
PaoloMissier2019
Aim:
To identify the minimal subset of observed changes that have an actual effect on past outcomes
This is done by progressively eliminating changes for which impact has been estimated as null
Intuition:
- From the workflow, derive an impact graph
- This is a new type of dataflow where execution semantics is designed to
- Propagate input changes
- Compute diff functions
- Compute impact functions on diffs
- When impact is null, eliminate changes from the inputs
- Input: set of changes, eg
- Output: set of bindings that indicates which changes are relevant and have non-zero impact
on the process
35. 38
Role of provenance
PaoloMissier2019
Impact facts:
- During each execution ReComp records port-data bindings for all the data that flow
through annotated input and output ports
- Each impact function is able to use some of these bindings as its own inputs
- These are the impact facts that the function is evaluated on
- To find these bindings, traverse the dependencies of impact to diff functions
36. 39
ReComp decision matrix for SVI
Impact: yes / no / not assessed
delta functions: data diff detected?
38. 41
SVI implemented using workflow
Phenotype to genes
Variant selection
Variant classification
Patient
variants
GeneMap
ClinVar
Classified
variants
Phenotype
39. 42
History DB: Workflow Provenance
Each invocation of an eSC workflow generates a provenance trace
“plan”
“plan
execution”
WF
B1 B2
B1exec B2exec
Data
WFexec
partOf
partOf
usagegeneration
association association
association
db
usage
ProgramWorkflow
Execution
Entity
(ref data)
40. 43
Partial re-execution
1. Change detection: A provenance fact indicates that a new version Dnew of
database d is available wasDerivedFrom(“db”,Dnew)
:- execution(WFexec), wasPartOf(Xexec,WFexec), used(Xexec, “db”)
2.1 Find the entry point(s) into the workflow, where db was used
:- execution(WFexec), execution(B1exec), execution(B2exec),
wasPartOf(B1exec, WFexec), wasPartOf(B1exec, WFexec),
wasGeneratedBy(Data, B1exec), used(B2exec,Data)
2.2 Discover the rest of the sub-workflow graph (execute recursively)
2. Reacting to the change:
Provenance
pattern:
“plan”
“plan
execution”
Ex. db = “ClinVar v.x”
WF
B1 B2
B1exec B2exec
Data
WFexec
partOf
partOf
usagegeneration
association association
association
db
usage
41. 44
SVI – partial re-execution
Overhead:
caching
intermediate data
Time savings Partial re-exec (sec) Complete re-exec Time saving (%)
GeneMap 325 455 28.5
ClinVar 287 455 37
Change in
ClinVar
Change in
GeneMap
Cala J, Missier P. Provenance Annotation and Analysis to Support Process Re-Computation. In: Procs. IPAW 2018.
44. 47
Summary
<eventname>
Evaluation: case-by-case basis
- Cost savings
- Ease of customisation
Generic framework
Black box gray box
Fine-grained provenance + control max savings
Tested on two cases studies
- Genomics
- Flood Simulation (not in this talk)
Notas do Editor
We are going to ignore BDA in this talk
And also simulation although it’s a case study
We are going to use this smaller process as a testbed
Changes in the reference databases have an impact on the classification
returns updates in mappings to genes that have changed between the two versions (including possibly new mappings):
$\diffOM(\OM^t, \OM^{t'}) = \{\langle t, genes(\dt) \rangle | genes(\dt) \neq genes'(\dt) \} $\\
where $genes'(\dt)$ is the new mapping for $\dt$ in $\OM^{t'}$.
\begin{align*}
\diffCV&(\CV^t, \CV^{t'}) = \\
&\{ \langle v, \varst(v) | \varst(v) \neq \varst'(v) \} \\
& \cup \CV^{t'} \setminus \CV^t \cup \CV^t \setminus \CV^{t'}
\label{eq:diff-cv}
\end{align*}
where $\varst'(v)$ is the new class associate to $v$ in $\CV^{t'}$.
In four cases change in the caller version changes the classification
Threats: Will any of the changes invalidate prior findings?
Opportunities: Can the findings be improved over time?
Can we do better in a generic way?
We need to control re-computation on two dimensions
Across a population
Within a single process
Success criteria:
performance, but this is on a case-by-case basis
Ease of customization. The focus of this paper
The framework is a meta-process…
Changes can also occur to OS, libraries and other dependencies but these are out of scope
The black box case is illustrated here and is less interesting.
The more interesting SVI case is in the next slide
Simple change – wait until CF
Composite change
Only the changed artefacts
Change front CF3
Only the newest references – transitive closure of wDF on the set of all derivations of artefact D.v.
The open system – users can introduce execs with non-recent versions.
More changes
Change front CF5
Includes all change artefacts – keeps the system open.
Prioritisation within impact analysis may cause that not all past execs are recomputed.
Windowing, windowing policy
Explain that P may depend on many other components but C and CF include only the changed ones.
Also, mention that CF includes the references to only the newest version of the dependencies and includes all of them –> it is important because various executions may depend on earlier versions, not necessarily the immediate predecessor. Also, the user can introduce executions which depend on versions well before the last CF.
Mention that the windowing policy may vary widely, e.g. fixed window size or adaptive window based on some measure of change event significance.
Shows Essential ProvONE fragment used by ReComp
Grey arrows indicate the data flow: solid lines – the usage of data, dotted lines – the communication / generation-usage pattern
Black dashed arrows reflect the structure of the process.
Mention that for the sake of simplicity we are not showing the port-data usage, which is also needed.
\text{let } v \in \diff{Y}(Y^t, Y^{t'}): \\
\text{for any $X$: } \impact_{P}(C,X) = \texttt{High} \text{ if }\\
v.\texttt{status:}
\begin{cases}
* \rightarrow \texttt{red} \\
\texttt{red} \rightarrow *
\end{cases}
\delta_1, \delta_4
\phi_1, \phi_5
This shows the good case of “Gerry box” workflow and box-level provenance
SVI workflow with automated provenance recording
Cohort of about 100 exomes (neurological disorders)
Changes in ClinVar and OMIM GeneMap
How these two restart trees are discovered is explained in the two papers
IPAW
BDC
uses difference and impact services to analyse the impact of the changes on past executions and submits a subset of affected executions to rerun.
HDB will have been discussed earlier
Facts stored and queried using Prolog
store/retrieve REST API. Canned queries or ad hoc queries (advanced interface)
Impact functions realized as external services reachable through a REST API
reExec function takes restart tress and executes them – this may not always be possible in fact it’s a major limitation for current systems
ReComp loop produces recomp/no-recop decisions at the level of each restart tree
Data diff is an additional external service