+ All Categories
Home > Technology > Incremental pattern matching in the VIATRA2 model transformation system

Incremental pattern matching in the VIATRA2 model transformation system

Date post: 25-May-2015
Category:
Upload: istvan-rath
View: 775 times
Download: 0 times
Share this document with a friend
Description:
Conference presentation at the GRaMoT 2008 workshop, co-located with ICSE 2008.
Popular Tags:
26
Incremental pattern matching in the VIATRA d lt f ti t VIATRA modeltransf ormation sys t em Gábor Bergmann András Ökrös István Ráth ([email protected]) Dániel Varró Department of Measurement and Dániel Varró Gergely Varró Department of Measurement and Information Systems Budapest University of Technology and Budapest University of Technology and Economics
Transcript
Page 1: Incremental pattern matching in the VIATRA2 model transformation system

Incremental pattern matching in the VIATRA d l t f ti tVIATRA model transformation systemGábor BergmannAndrás ÖkrösIstván Ráth ([email protected])Dániel Varró Department of Measurement andDániel VarróGergely Varró

Department of Measurement and Information SystemsBudapest University of Technology andBudapest University of Technology and Economics

Page 2: Incremental pattern matching in the VIATRA2 model transformation system

OverviewOverview

• IntroductionIntroduction

• Concepts• Concepts

P f l i• Performance analysis

• Future work

• Summary

Page 3: Incremental pattern matching in the VIATRA2 model transformation system

IntroductionIntroduction

Page 4: Incremental pattern matching in the VIATRA2 model transformation system

Incremental model transformationsIncremental model transformations• Key usage scenarios for MT:

▫ Mapping between languages▫ Intra‐domain model manipulation

Model executionValidity checking (constraint evaluation)Validity checking (constraint evaluation)

• They work with evolvingmodels.▫ Users are constantly changing/modifying them.▫ Users usually work with largemodels.Users usually work with largemodels.

• Problem: transformations are slow▫ To execute… (large models)▫ and to re‐execute again and again (always starting from scratch).

• Solution: incrementality▫ Take the source model, and its mapped counterpart;▫ Use the information about how the source model was changed;

M d l h h (b ONLY h h ) h d l▫ Map and apply the changes (but ONLY the changes) to the target model.

Page 5: Incremental pattern matching in the VIATRA2 model transformation system

Towards incrementalityTowards incrementality

• How to achieve incrementality?How to achieve incrementality?▫ Incremental updates: avoid re‐generation.

Don’t recreate what is already thereDon t recreate what is already there.Use reference (correspondence) models.

▫ Incremental execution: avoid re‐computation.Incremental execution: avoid re computation.Don’t recalculate what was already computed.How?

Page 6: Incremental pattern matching in the VIATRA2 model transformation system

Incremental graph pattern matchingIncremental graph pattern matching• Graph transformations require pattern matchingp q p g• Goal: retrieve the matching set quickly• How?▫ Store (cache) matchings▫ Update them as the model changes

U d t i l (i t lit )Update precisely (incrementality)• Expected results: good, if…▫ There is enough memory (*)There is enough memory ( )▫ Queries are dominant▫ Model changes are relatively sparse (**)▫ e.g. synchronization, constraint evaluation, …

Page 7: Incremental pattern matching in the VIATRA2 model transformation system

Operational overviewOperational overview

XForm interpreter model manipulationpattern 

matching

Incremental

matching

VIATRA Model space

Incrementalpatternmatcher

event notification

updates

Page 8: Incremental pattern matching in the VIATRA2 model transformation system

Architecture

LS tt

Architecture

XML XForm

LS patternmatcher

V

Modelparser

XFormparser

serializer

Native importer &l d i t f

interpreter

VIATRA

Incrementalpatternmatcherloader interface

A2 Fra

matcher

Core interfaces

mew

o

VIATRA Model space

ork Program model store

Page 9: Incremental pattern matching in the VIATRA2 model transformation system

ConceptsConcepts

Page 10: Incremental pattern matching in the VIATRA2 model transformation system

Core idea: use RETE nets

INPUT• RETE network▫ node: (partial) matches of a t3 Model space▫ node: (partial) matches of a 

(sub)pattern▫ edge: update propagation

• Demonstrating the principle

k2k1t3

t3

t3t3 t3

p1p2p3 t2t1

d

Model space

• Demonstrating the principle▫ input: Petri net▫ pattern: fireable transition

: Place : Transition: Tokenk2k1p1 p2 t2t1 t3p3

Input nodes▫ Model change: new transition 

(t3)

t1p2, k2p1, k1

t3

Intermediate p1

3

t1

p2, k2, t3p1, k1, t1nodes

p2p3t2

p1, k1, t1, p3 p2, k2, t2, p3

p2, k2, t3

Production nodet3

Production node

Page 11: Incremental pattern matching in the VIATRA2 model transformation system

RETE network constructionRETE network construction• Key: pattern decompositiony p p▫ Pattern = set of constraints (defined over pattern variables)▫ Types of constraints: type, topology (source/target), h h ( ) b lhierarchy (containment), attribute value, generics (instanceOf/supertypeOf), injectivity, [negative] pattern calls, …calls, …

• Construction algorithm (roughly)▫ 1. Decompose the pattern into elementary constraints (*)▫ 2. Process the elementary constraints and connect them with appropriate intermediate nodes (JOIN, MINUS‐JOIN, UNION )UNION, …)

▫ 3. Create terminator production node

Page 12: Incremental pattern matching in the VIATRA2 model transformation system

Key RETE componentsKey RETE components

• JOIN node INPUTINPUT

INPUT

JOIN node▫ ~relational algebra: natural joinnatural join

JOIN

• MINUS‐JOINNegative existence JOIN▫ Negative existence JOIN

PRODUCTIONsourcePlace

Page 13: Incremental pattern matching in the VIATRA2 model transformation system

Other VIATRA featuresOther VIATRA features• Pattern calls▫ Simply connect the production nodes▫ Pattern recursion is fully supported• OR patterns• OR‐patterns▫ UNION intermediate nodes• Check conditions▫ check (value(X) % 5 == 3)▫ check (length(name(X)) < 4)▫ check (myFunction(name(X))!=‘myException’)▫ check (myFunction(name(X))!= myException )▫ Filter and term evaluator nodes• Result: full VIATRA transformation language support; any pattern can be matched incrementally.

Page 14: Incremental pattern matching in the VIATRA2 model transformation system

UpdatesUpdates

• Needed when the model space changesNeeded when the model space changes• VIATRA notification mechanism (EMF is also possible)▫ Transparent: user modification, model imports, results of aTransparent: user modification, model imports, results of a transformation, external modification, …  RETE is always updated!

• Input nodes receive elementary modifications and release an update token▫ Represents a change in the partial matching (+/‐)• Nodes process updates and propagate them if needed▫ PRECISE update mechanism

Page 15: Incremental pattern matching in the VIATRA2 model transformation system

Performance analysisPerformance analysis

Page 16: Incremental pattern matching in the VIATRA2 model transformation system

PerformancePerformance• In theory…▫ Building phase is slow (“warm‐up”)

How slow?▫ Once the network is built, pattern matching is an , p g“instantaneous” operation.

Excluding the linear cost of reading the result set.▫ But… there is a performance penalty on model manipulation.p p y p

How much?• Dependencies?▫ Pattern sizePattern size▫ Matching set size▫ Model size▫ ?▫ …?

Page 17: Incremental pattern matching in the VIATRA2 model transformation system

BenchmarkingBenchmarking• Example transformation: Petri net simulation▫ One complex pattern for the enabledness condition▫ Two graph transformation rules for firing▫ As‐long‐as‐possible (ALAP) style execution (“fire at will”)▫ Model graphs:

A “large” Petri net actually used in a research project (~60 places, ~70 transitions, ~300 arcs)S li t ti ti i li ( t 100000Scaling up: automatic generation preserving liveness (up to 100000 places, 100000 transitions, 500000 arcs)

• Analysis▫ Measure execution time (average multiple runs)▫ Measure execution time (average multiple runs)▫ Take “warm‐up” runs into consideration

• Profiling▫ Measure overhead network construction time▫ Measure overhead, network construction time▫ “Normalize” results

Page 18: Incremental pattern matching in the VIATRA2 model transformation system

Profiling resultsProfiling results• Model manipulation overhead: ~15% (of overall CPU p (time)▫ Depends largely on the transformation!• Memory overhead• Memory overhead▫ Petri nets (with RETE networks) up to ~100000 fit into 1‐1.5GB RAM (VIATRA model space limitations)

( )▫ Grows linearly with model size (as expected)▫ Nature of growth is pattern‐dependent• Network construction overheadNetwork construction overhead▫ Similar to memory; pattern‐dependent.▫ PN: In the same order as VIATRA’s LS heuristics initializationinitialization.

Page 19: Incremental pattern matching in the VIATRA2 model transformation system

Execution timesExecution timesSparse Petri net benchmark

Matches/outperforms GrGEN.NET for large 

d l d hi h1000000

Viatra/RETE ( 1k)

Three orders of 

models and high iteration counts.

10000

100000

ms)

(x1k)Viatra/LS (x1k)

G G NET ( 1k)

magnitude and growing…

1000

on time (m GrGenNET (x1k)

Viatra/RETE ( 1M)

10

100

Executio (x1M)

GrGen.NET (x1M)

100 1000 10000 100000Petri net size

Page 20: Incremental pattern matching in the VIATRA2 model transformation system

Benchmarking summaryBenchmarking summary

• Predictable near‐linear growthPredictable near linear growth▫ As long as there is enough memory▫ Certain problem classes: constant execution time☺▫ Certain problem classes: constant execution time ☺▫ A ga

Page 21: Incremental pattern matching in the VIATRA2 model transformation system

Improving performanceImproving performance

• StrategiesStrategies▫ Improve the construction algorithm

Memory efficiency (node sharing)Memory efficiency (node sharing)Heuristics‐driven constraint enumeration (based on pattern [and model space] content)p [ p ] )

▫ ParallelismUpdate the RETE network in parallel with the transformationParallel network construction

▫ ?

Page 22: Incremental pattern matching in the VIATRA2 model transformation system

Future workFuture work

Page 23: Incremental pattern matching in the VIATRA2 model transformation system

More benchmarkingMore benchmarking…

• Ongoing researchOngoing research▫ Extending the Varro benchmark

Mutex STS/LTSMutex STS/LTSORM

▫ Extended benchmarking use casesExtended benchmarking use casesSimulation (model execution)SynchronizationyConstraint evaluation

▫ Parallel transformations

Page 24: Incremental pattern matching in the VIATRA2 model transformation system

Event‐driven live transformationsEvent‐driven live transformations• Problem: MT is mostly batch‐likey▫ But models are constantly evolving  Frequent re‐transformations are needed formappingmappingsynchronizationconstraint checking…

• An incremental PM can solve the performance problem, but a formalism is needed▫ to specify when to (re)act▫ and how.• Ideally the formalism should be MT‐like• Ideally, the formalism should be MT like.

Page 25: Incremental pattern matching in the VIATRA2 model transformation system

Event‐driven live transformations (cont’d)Event‐driven live transformations (cont d)

• An idea: represent events as model elements.p• Our take: represent events as changes in the matching set of a pattern.▫ ~generalization• Live transformations

i t i th t t ( i bl l l b l i bl )▫ maintain the context (variable values, global variables, …);▫ run as a “daemon”, react whenever necessary;▫ as the models change the system can react instantly sinceas the models change, the system can react instantly, since everything needed is there in the RETE network: no re‐computation is necessary.

• Paper accepted at ICMT2008.

Page 26: Incremental pattern matching in the VIATRA2 model transformation system

SummarySummary

• Incremental pattern matching support integratedIncremental pattern matching support integrated into VIATRA2 R3▫ Based on the RETE algorithmBased on the RETE algorithm▫ Provides full support for the pattern language▫ High performance in certain problem classes▫ High performance in certain problem classes• Future▫ Performance will be further improved▫ Performance will be further improved▫ New applications in live transformations


Recommended