SlideShare a Scribd company logo
EMF Compare 2
Scaling to Millions




Mikaël Barbero        26 March 2013
http://idealistpropaganda.blogspot.fr/2010/04/imaginary-foundations-make-difference.html
EMF Compare 2.0



 Released mid-se ptember 2012



     Sponsore d by Ericsson
  under Polarsys and Modeling Platform
        Workin g Group (MPWG)
http://www.flickr.com/photos/9781230@N06/2270505202
Goal: Performance




 Should re late to number of
 differenc     es, not to the size
          of the model




But also simpler API, better understanding of
         differences for end-users...
Brand New UI   Better integration with Team/Compare
http://www.flickr.com/photos/viggum/2417430161/




Demo
Because it worths a thousand words
How does it works?   in a Nutshell
Match
Two Strategies
Two Strategies




            Technical ID
  XMI:id, resource URI + URI fragment,
               your own...
Two Strategies




            Technical ID                    Content based
  XMI:id, resource URI + URI fragment,
                                         Heuristics, String distance
               your own...
http://www.flickr.com/photos/brianjmatis/3209203494/




Differencing
Rationalization
Longest Common Subsequence
http://www.youtube.com/watch?v=RUckZMzqUcw
Dependencies




               http://www.flickr.com/photos/qilin/2262821682/
Package 1
                     Addition of ‘Package 1’ within ‘something’


State machine 1                              requires the merge of


                   Addition of ‘State Machine 1’ within ‘Package 1’




     Requirements between differences
Equivalences




               http://www.bavarianfootballworks.com/2012/9/24/3384502/preview-fc-bayern-vs-vfl-wolfsburg
Class 1
                         Setting ‘Property 1’ to reference ‘Associtation 1’
     Property 1
                                                   the merge is equivalent to
 ends             ass.

   Association 1         Setting ‘Association 1’ to reference ‘Property 1’

‘ass.’ and ‘ends’ are
 opposite references


           Equivalence between differences
http://www.theology21.com/2010/07/27/are-you-talking-to-me-the-art-of-misunderstanding-and-theological-double-talk/




                                                                                                                      Conflicts
Match




                  Difference



Summary
                           Requirement




                                   Equivalence




                                                 Conflict
How to scale to Millions?




                            http://www.flickr.com/photos/somemixedstuff/2403249501/
A graph of EObjects
A «logical» EMF model
A



                                  C




                                      D

A graph of EObjects           B


                      G

In Resources
                          E




                          F
A



                                    C




                                        D

A graph of EObjects             B


                        G

Cross-resources links
                            E




                            F
A   B       C




A graph of Resources                   D
                               E
                       G




                               F
A           B       C


        Ancestor
                                                    D
                                            E
                            G


A   B            C

                         Left (local)       F



                     D
             E
G                           A           B       C




             F
                                                    D
                                            E
                            G




                                            F
                         Right (remote)
A           B       C


        Ancestor
                                                    D
                                            E
                            G


A   B            C

                         Left (local)       F



                     D
             E
G                           A           B       C




             F
                                                    D
                                            E
                            G




                                            F
                         Right (remote)
A           B       C


        Ancestor
                                                    D
                                            E
                            G


A   B            C

                         Left (local)       F



                     D
             E
G                           A           B       C




             F
                                                    D
                                            E
                            G




                                            F
                         Right (remote)
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded




                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded




                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded




                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded




                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded




                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
B     G
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded




                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
B     G
A   B       C
                                 To be Loaded


                                  A

G           E          D         To be Unloaded


                                  A

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
B     G
A   B       C
                                 To be Loaded


                                  A

G           E          D         To be Unloaded


                                  A

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G
A   B       C
                                 To be Loaded


                                  A

G           E          D         To be Unloaded


                                  A

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G
A   B       C
                                 To be Loaded


                                  A

G           E          D         To be Unloaded


                                  A

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G
A   B       C
                                 To be Loaded


                                  A

G           E          D         To be Unloaded


                                  A

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  A

G           E          D         To be Unloaded


                                  A

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  A     B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  A     B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
G     C
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
E     D
A   B       C
                                 To be Loaded


                                  B

G           E          D         To be Unloaded


                                  A     B

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
E     D
A   B       C
                                 To be Loaded


                                  B     C       G

G           E          D         To be Unloaded


                                  A     B       C   G

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
E     D
A   B       C
                                 To be Loaded


                                  B     C       G

G           E          D         To be Unloaded


                                  A     B       C   G

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
D
A   B       C
                                 To be Loaded


                                  G

G           E          D         To be Unloaded


                                  A     B       C   G

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
D
A   B       C
                                 To be Loaded


                                  G

G           E          D         To be Unloaded


                                  A     B       C   G

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
D
A   B       C
                                 To be Loaded


                                  G

G           E          D         To be Unloaded


                                  A     B       C   G

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
D
A   B       C
                                 To be Loaded


                                  G

G           E          D         To be Unloaded


                                  A     B       C   G

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
D     F
A   B       C
                                 To be Loaded


                                  G     E

G           E          D         To be Unloaded


                                  A     B       C   G    E

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
D     F
A   B       C
                                 To be Loaded


                                  G     E

G           E          D         To be Unloaded


                                  A     B       C   G    E

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
F
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G     E

                                 Already browsed
            F

                                       Loading Thread
                                       Unloading Thread



        Concurrent Resolve All   Multi-Threaded
F
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G     E

                                 Already browsed
            F

                                       Loading Thread
                                       Unloading Thread



        Concurrent Resolve All   Multi-Threaded
F
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G     E

                                 Already browsed
            F

                                       Loading Thread
                                       Unloading Thread



        Concurrent Resolve All   Multi-Threaded
F
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G     E

                                 Already browsed
            F

                                       Loading Thread
                                       Unloading Thread



        Concurrent Resolve All   Multi-Threaded
F
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G     E

                                 Already browsed
            F

                                       Loading Thread
                                       Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D   F

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D   F

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D   F

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded


                                   F

G           E          D         To be Unloaded


                                  A     B       C   G     E   D   F

                                 Already browsed
            F

                                       Loading Thread
                                       Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D   F

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
A   B       C
                                 To be Loaded




G           E          D         To be Unloaded


                                  A     B       C   G    E   D   F

                                 Already browsed
            F

                                      Loading Thread
                                      Unloading Thread



        Concurrent Resolve All   Multi-Threaded
Why concurrent loading?
The HDD is the bottleneck, right?
Scheduling is crucial
Between loading and unloading threads to
avoid high-memory consumption (our goal)
A           B       C


        Ancestor
                                                    D
                                            E
                            G


A   B            C

                         Left (local)       F



                     D
             E
G                           A           B       C




             F
                                                    D
                                            E
                            G




                                            F
                         Right (remote)
A           B       C


        Ancestor
                                                    D
                                            E
                            G


A   B            C

                         Left (local)       F



                     D
             E
G                           A           B       C




             F
                                                    D
                                            E
                            G




                                            F
                         Right (remote)
A           B       C


        Ancestor
                                                    D
                                            E
                            G


A   B            C

                         Left (local)       F



                     D
             E
G                           A           B       C




             F
                                                    D
                                            E
                            G




                                            F
                         Right (remote)
Summary
Summary



  Build the graph of
      resources
Summary



  Build the graph of
      resources




     Concurrent
     resolve all
Summary


                         Find which
  Build the graph of
                       resources has
      resources
                          changed




     Concurrent
     resolve all
Summary


                          Find which
  Build the graph of
                        resources has
      resources
                           changed




     Concurrent        Binary comparison
     resolve all          of resources
Summary


                          Find which
  Build the graph of                       Compare resource
                        resources has
      resources                             with differences
                           changed




     Concurrent        Binary comparison
     resolve all          of resources
Summary


                          Find which
  Build the graph of                       Compare resource
                        resources has
      resources                             with differences
                           changed




                                           Match, Diff, etc.
     Concurrent        Binary comparison
                                           without resolving
     resolve all          of resources
                                                proxies
Kill two pigs with one (angry) bird




                                      http://extremehdwallpapers.com/wp-content/uploads/2012/08/angry-birds-wallpaper-hd-.jpg
http://www.flickr.com/photos/roberts87/2646193801/




                                                    Lightweight   How light?
http://www.flickr.com/photos/themonnie/2495892146/




                                                    Fast   How fast?
Number of fragments (resources)              Number of EObjects                   Disk Usage (XMI files size)
10000                                     10000K                                1000M


1000                                      1000K
                                                                                 100M

 100                                       100K

                                                                                  10M
   10                                       10K



          Small    Medium      Large               Small   Medium   Large                 Small    Medium      Large




                                               Sample Models                The numbers (x2 in 2-ways, x3 in 3-ways)
The
                               promised millions
        Number of fragments (resources)              Number of EObjects                   Disk Usage (XMI files size)
10000                                     10000K                                1000M


1000                                      1000K
                                                                                 100M

 100                                       100K

                                                                                  10M
   10                                       10K



          Small    Medium      Large               Small   Medium   Large                 Small    Medium      Large




                                               Sample Models                The numbers (x2 in 2-ways, x3 in 3-ways)
Small        Medium         Large

                                          120




                                           90



CPU Usage




                             Time (sec)
                                           60

Some changes in 1 resource

                                           30




                                                1                  10                   100
                                                            number of changes
Small        Medium          Large

                                          120




                                           90



CPU Usage




                             Time (sec)
                                           60

1 change in some fragments

                                           30




                                                1           5              10            20
                                                       number of changed fragments
600




                                       450




                      Max Heap (MiB)
Memory Usage
                                       300

Max Heap (-Xmx512m)



                                       150




                                        0
                                             Small   Medium   Large
http://www.flickr.com/photos/exploratorium/4689347618/in/set-72157624060408411   http://www.flickr.com/photos/exploratorium/4680503314/in/set-72157624060408411   http://www.flickr.com/photos/exploratorium/4689346802/in/set-72157624060408411




                                                                                             What’s Next?
Model Resolving        Scope Narrowing    Matching
                    Differencing           Post-Process

                                                                   100 %




                                                                  75 %

Time distribution
                                                                 50 %




                                                                 25 %




                     Small                                      0 %
                                      Nominal
                                                      Large
Index Cross-Resources Links




                              http://www.flickr.com/photos/manchesterlibrary/5425247171/
Eclipse Papyrus support
                          http://www.flickr.com/photos/manchesterlibrary/5425247171/
Porting Eclipse Papyrus support
C
A     B           C
                                           To be Loaded



G                 E           D            To be Unloaded




                                           Already browsed
                  F

                                              Loading Thread
                                              Unloading Thread



    Protect the Integrity of the Model   When committing, updating...
http://nn.wikipedia.org/wiki/Fil:Postcards_and_magnifying_glass.jpg




                                       Generic Content Based Match Engine   Decently Fast
http://cdn.memegenerator.net/instances/400x/20451927.jpg




                                                           Merge Wizard   Help to Resolve Conflict
http://www.space.com/17376-sharing-the-light-of-two-suns.html




                                                                EMF Compare 2.1   With Kepler (Eclipse 4.3), June 2013
What you should remember


    New UI



       Blazing Fast and
         Lightweight



              More to come ;)
http://www.eclipse.org/emf/compare/
http://www.slideshare.net/mikaelbarbero/

More Related Content

What's hot

Y S S M Logos
Y S S M LogosY S S M Logos
SND covers pt2
SND covers pt2SND covers pt2
SND covers pt2
Society for News Design
 
La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...
La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...
La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...
Comisión Colombiana de Juristas
 
2011 willowbank nz a thon yr 0 2
2011 willowbank nz a thon yr 0 22011 willowbank nz a thon yr 0 2
2011 willowbank nz a thon yr 0 2
cherylmcleod
 
Presentation1
Presentation1Presentation1
Presentation1
Likhasiri
 
Tube balancing question
Tube balancing question Tube balancing question
Tube balancing question rothers14
 
Seating arrangement - for selecting the places (non biased way)
Seating arrangement - for selecting the places (non biased way)Seating arrangement - for selecting the places (non biased way)
Seating arrangement - for selecting the places (non biased way)
Yash Baldawa
 
IDentifEYE AR game markers
IDentifEYE AR game markersIDentifEYE AR game markers
IDentifEYE AR game markers
Onno Hansen-Staszyński
 
Not sure whatever
Not sure whateverNot sure whatever
Not sure whatever
Murthy Avn
 
Canon clic
Canon clicCanon clic
Canon clic
mcinformatica
 
Test
TestTest
Input output
Input outputInput output
Input output
lurdhu agnes
 
Bins, icons and colors
Bins, icons and colorsBins, icons and colors
Bins, icons and colors
Nicholas Frota
 
Doc2
Doc2Doc2

What's hot (14)

Y S S M Logos
Y S S M LogosY S S M Logos
Y S S M Logos
 
SND covers pt2
SND covers pt2SND covers pt2
SND covers pt2
 
La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...
La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...
La fiscalía y el gobierno están en mora de proteger a las víctimas en los cas...
 
2011 willowbank nz a thon yr 0 2
2011 willowbank nz a thon yr 0 22011 willowbank nz a thon yr 0 2
2011 willowbank nz a thon yr 0 2
 
Presentation1
Presentation1Presentation1
Presentation1
 
Tube balancing question
Tube balancing question Tube balancing question
Tube balancing question
 
Seating arrangement - for selecting the places (non biased way)
Seating arrangement - for selecting the places (non biased way)Seating arrangement - for selecting the places (non biased way)
Seating arrangement - for selecting the places (non biased way)
 
IDentifEYE AR game markers
IDentifEYE AR game markersIDentifEYE AR game markers
IDentifEYE AR game markers
 
Not sure whatever
Not sure whateverNot sure whatever
Not sure whatever
 
Canon clic
Canon clicCanon clic
Canon clic
 
Test
TestTest
Test
 
Input output
Input outputInput output
Input output
 
Bins, icons and colors
Bins, icons and colorsBins, icons and colors
Bins, icons and colors
 
Doc2
Doc2Doc2
Doc2
 

Viewers also liked

You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF Profiles
Philip Langer
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008
William Piers
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
Marco Brambilla
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
Ed Seidewitz
 
Textual Modeling Framework Xtext
Textual Modeling Framework XtextTextual Modeling Framework Xtext
Textual Modeling Framework Xtext
Sebastian Zarnekow
 
Acceleo Code Generation
Acceleo Code GenerationAcceleo Code Generation
Acceleo Code Generation
Stéphane Bégaudeau
 
The Unbearable Stupidity of Modeling
The Unbearable Stupidity of ModelingThe Unbearable Stupidity of Modeling
The Unbearable Stupidity of Modeling
Peter Friese
 
Eugenia
EugeniaEugenia
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
fmadiot
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Marco Brambilla
 
OCL tutorial
OCL tutorial OCL tutorial
OCL tutorial
Jordi Cabot
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
Marco Brambilla
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific Languages
Javier Canovas
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
Pedro J. Molina
 
Real world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same languageReal world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same language
Mario Fusco
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
Jordi Cabot
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
Single-Source approach to the design of HW/SW Embedded Systems
Single-Source approach to the design of HW/SW Embedded SystemsSingle-Source approach to the design of HW/SW Embedded Systems
Single-Source approach to the design of HW/SW Embedded Systems
Eugenio Villar
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
Khushboo Wadhwani
 
Model-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & OverviewModel-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & Overview
Eelco Visser
 

Viewers also liked (20)

You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF Profiles
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
 
Textual Modeling Framework Xtext
Textual Modeling Framework XtextTextual Modeling Framework Xtext
Textual Modeling Framework Xtext
 
Acceleo Code Generation
Acceleo Code GenerationAcceleo Code Generation
Acceleo Code Generation
 
The Unbearable Stupidity of Modeling
The Unbearable Stupidity of ModelingThe Unbearable Stupidity of Modeling
The Unbearable Stupidity of Modeling
 
Eugenia
EugeniaEugenia
Eugenia
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
 
OCL tutorial
OCL tutorial OCL tutorial
OCL tutorial
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific Languages
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
 
Real world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same languageReal world DSL - making technical and business people speaking the same language
Real world DSL - making technical and business people speaking the same language
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
 
Single-Source approach to the design of HW/SW Embedded Systems
Single-Source approach to the design of HW/SW Embedded SystemsSingle-Source approach to the design of HW/SW Embedded Systems
Single-Source approach to the design of HW/SW Embedded Systems
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Model-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & OverviewModel-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & Overview
 

Similar to EMF Compare 2.0: Scaling to Millions (updated)

Major+Scales
Major+ScalesMajor+Scales
Palm Pipes
Palm PipesPalm Pipes
Palm Pipes
Laura Chambless
 
Trees and Hierarchies in SQL
Trees and Hierarchies in SQLTrees and Hierarchies in SQL
Trees and Hierarchies in SQL
Eduard Hildebrandt
 
Solidmodelling
SolidmodellingSolidmodelling
Solidmodelling
Gopi Chand
 
NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
DataStax Academy
 
C*ollege Credit: What's New in Apache Cassandra 1.2
C*ollege Credit: What's New in Apache Cassandra 1.2C*ollege Credit: What's New in Apache Cassandra 1.2
C*ollege Credit: What's New in Apache Cassandra 1.2
DataStax
 
Generic Image Processing With Climb - Slides
Generic Image Processing With Climb - SlidesGeneric Image Processing With Climb - Slides
Generic Image Processing With Climb - Slides
Laurent Senta
 

Similar to EMF Compare 2.0: Scaling to Millions (updated) (7)

Major+Scales
Major+ScalesMajor+Scales
Major+Scales
 
Palm Pipes
Palm PipesPalm Pipes
Palm Pipes
 
Trees and Hierarchies in SQL
Trees and Hierarchies in SQLTrees and Hierarchies in SQL
Trees and Hierarchies in SQL
 
Solidmodelling
SolidmodellingSolidmodelling
Solidmodelling
 
NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
 
C*ollege Credit: What's New in Apache Cassandra 1.2
C*ollege Credit: What's New in Apache Cassandra 1.2C*ollege Credit: What's New in Apache Cassandra 1.2
C*ollege Credit: What's New in Apache Cassandra 1.2
 
Generic Image Processing With Climb - Slides
Generic Image Processing With Climb - SlidesGeneric Image Processing With Climb - Slides
Generic Image Processing With Climb - Slides
 

More from mikaelbarbero

Kubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating SystemKubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating System
mikaelbarbero
 
Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?
mikaelbarbero
 
What's new in Eclipse Oxygen (Devoxx France 2017)
What's new in Eclipse Oxygen (Devoxx France 2017)What's new in Eclipse Oxygen (Devoxx France 2017)
What's new in Eclipse Oxygen (Devoxx France 2017)
mikaelbarbero
 
The Eclipse IDE: What's new in the 2017 release?
The Eclipse IDE: What's new in the 2017 release?The Eclipse IDE: What's new in the 2017 release?
The Eclipse IDE: What's new in the 2017 release?
mikaelbarbero
 
What every Eclipse developer should know about progress reporting and job can...
What every Eclipse developer should know about progress reporting and job can...What every Eclipse developer should know about progress reporting and job can...
What every Eclipse developer should know about progress reporting and job can...
mikaelbarbero
 
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
mikaelbarbero
 
Sirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLs
mikaelbarbero
 
Modeling in a Team Environment with EMF Compare and EGit
Modeling in a Team Environment with EMF Compare and EGitModeling in a Team Environment with EMF Compare and EGit
Modeling in a Team Environment with EMF Compare and EGit
mikaelbarbero
 
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF CompareDiff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
mikaelbarbero
 
Eclipse simultaneous release in a nutshell
Eclipse simultaneous release in a nutshellEclipse simultaneous release in a nutshell
Eclipse simultaneous release in a nutshell
mikaelbarbero
 
OSGi: Don't let me be Misunderstood
OSGi: Don't let me be MisunderstoodOSGi: Don't let me be Misunderstood
OSGi: Don't let me be Misunderstood
mikaelbarbero
 
EMF.Edit the Force Unleashed!
EMF.Edit the Force Unleashed!EMF.Edit the Force Unleashed!
EMF.Edit the Force Unleashed!
mikaelbarbero
 
3mf infinity-and-beyond
3mf infinity-and-beyond3mf infinity-and-beyond
3mf infinity-and-beyond
mikaelbarbero
 
Eclipseconeurope 2011 - EMFCompare Improvements
Eclipseconeurope 2011 - EMFCompare ImprovementsEclipseconeurope 2011 - EMFCompare Improvements
Eclipseconeurope 2011 - EMFCompare Improvements
mikaelbarbero
 
Google Guava & EMF @ GTUG Nantes
Google Guava & EMF @ GTUG NantesGoogle Guava & EMF @ GTUG Nantes
Google Guava & EMF @ GTUG Nantes
mikaelbarbero
 
5M lines of code migration
5M lines of code migration5M lines of code migration
5M lines of code migration
mikaelbarbero
 
EMFPath
EMFPathEMFPath
EMFPath
mikaelbarbero
 
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
mikaelbarbero
 

More from mikaelbarbero (18)

Kubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating SystemKubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating System
 
Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?
 
What's new in Eclipse Oxygen (Devoxx France 2017)
What's new in Eclipse Oxygen (Devoxx France 2017)What's new in Eclipse Oxygen (Devoxx France 2017)
What's new in Eclipse Oxygen (Devoxx France 2017)
 
The Eclipse IDE: What's new in the 2017 release?
The Eclipse IDE: What's new in the 2017 release?The Eclipse IDE: What's new in the 2017 release?
The Eclipse IDE: What's new in the 2017 release?
 
What every Eclipse developer should know about progress reporting and job can...
What every Eclipse developer should know about progress reporting and job can...What every Eclipse developer should know about progress reporting and job can...
What every Eclipse developer should know about progress reporting and job can...
 
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
 
Sirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLs
 
Modeling in a Team Environment with EMF Compare and EGit
Modeling in a Team Environment with EMF Compare and EGitModeling in a Team Environment with EMF Compare and EGit
Modeling in a Team Environment with EMF Compare and EGit
 
Diff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF CompareDiff and Merge with Ease: EMF Compare
Diff and Merge with Ease: EMF Compare
 
Eclipse simultaneous release in a nutshell
Eclipse simultaneous release in a nutshellEclipse simultaneous release in a nutshell
Eclipse simultaneous release in a nutshell
 
OSGi: Don't let me be Misunderstood
OSGi: Don't let me be MisunderstoodOSGi: Don't let me be Misunderstood
OSGi: Don't let me be Misunderstood
 
EMF.Edit the Force Unleashed!
EMF.Edit the Force Unleashed!EMF.Edit the Force Unleashed!
EMF.Edit the Force Unleashed!
 
3mf infinity-and-beyond
3mf infinity-and-beyond3mf infinity-and-beyond
3mf infinity-and-beyond
 
Eclipseconeurope 2011 - EMFCompare Improvements
Eclipseconeurope 2011 - EMFCompare ImprovementsEclipseconeurope 2011 - EMFCompare Improvements
Eclipseconeurope 2011 - EMFCompare Improvements
 
Google Guava & EMF @ GTUG Nantes
Google Guava & EMF @ GTUG NantesGoogle Guava & EMF @ GTUG Nantes
Google Guava & EMF @ GTUG Nantes
 
5M lines of code migration
5M lines of code migration5M lines of code migration
5M lines of code migration
 
EMFPath
EMFPathEMFPath
EMFPath
 
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
 

Recently uploaded

UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 

Recently uploaded (20)

UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 

EMF Compare 2.0: Scaling to Millions (updated)

  • 1. EMF Compare 2 Scaling to Millions Mikaël Barbero 26 March 2013
  • 2. http://idealistpropaganda.blogspot.fr/2010/04/imaginary-foundations-make-difference.html EMF Compare 2.0 Released mid-se ptember 2012 Sponsore d by Ericsson under Polarsys and Modeling Platform Workin g Group (MPWG)
  • 3. http://www.flickr.com/photos/9781230@N06/2270505202 Goal: Performance Should re late to number of differenc es, not to the size of the model But also simpler API, better understanding of differences for end-users...
  • 4. Brand New UI Better integration with Team/Compare
  • 6. How does it works? in a Nutshell
  • 9. Two Strategies Technical ID XMI:id, resource URI + URI fragment, your own...
  • 10. Two Strategies Technical ID Content based XMI:id, resource URI + URI fragment, Heuristics, String distance your own...
  • 13. Dependencies http://www.flickr.com/photos/qilin/2262821682/
  • 14. Package 1 Addition of ‘Package 1’ within ‘something’ State machine 1 requires the merge of Addition of ‘State Machine 1’ within ‘Package 1’ Requirements between differences
  • 15. Equivalences http://www.bavarianfootballworks.com/2012/9/24/3384502/preview-fc-bayern-vs-vfl-wolfsburg
  • 16. Class 1 Setting ‘Property 1’ to reference ‘Associtation 1’ Property 1 the merge is equivalent to ends ass. Association 1 Setting ‘Association 1’ to reference ‘Property 1’ ‘ass.’ and ‘ends’ are opposite references Equivalence between differences
  • 18. Match Difference Summary Requirement Equivalence Conflict
  • 19. How to scale to Millions? http://www.flickr.com/photos/somemixedstuff/2403249501/
  • 20. A graph of EObjects A «logical» EMF model
  • 21. A C D A graph of EObjects B G In Resources E F
  • 22. A C D A graph of EObjects B G Cross-resources links E F
  • 23. A B C A graph of Resources D E G F
  • 24. A B C Ancestor D E G A B C Left (local) F D E G A B C F D E G F Right (remote)
  • 25. A B C Ancestor D E G A B C Left (local) F D E G A B C F D E G F Right (remote)
  • 26. A B C Ancestor D E G A B C Left (local) F D E G A B C F D E G F Right (remote)
  • 27. A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 28. A A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 29. A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 30. A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 31. A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 32. B G A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 33. B G A B C To be Loaded A G E D To be Unloaded A Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 34. B G A B C To be Loaded A G E D To be Unloaded A Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 35. G A B C To be Loaded A G E D To be Unloaded A Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 36. G A B C To be Loaded A G E D To be Unloaded A Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 37. G A B C To be Loaded A G E D To be Unloaded A Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 38. G C A B C To be Loaded A G E D To be Unloaded A Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 39. G C A B C To be Loaded A B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 40. G C A B C To be Loaded A B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 41. G C A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 42. G C A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 43. G C A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 44. G C A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 45. A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 46. A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 47. A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 48. E D A B C To be Loaded B G E D To be Unloaded A B Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 49. E D A B C To be Loaded B C G G E D To be Unloaded A B C G Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 50. E D A B C To be Loaded B C G G E D To be Unloaded A B C G Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 51. D A B C To be Loaded G G E D To be Unloaded A B C G Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 52. D A B C To be Loaded G G E D To be Unloaded A B C G Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 53. D A B C To be Loaded G G E D To be Unloaded A B C G Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 54. D A B C To be Loaded G G E D To be Unloaded A B C G Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 55. D F A B C To be Loaded G E G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 56. D F A B C To be Loaded G E G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 57. F A B C To be Loaded G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 58. F A B C To be Loaded G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 59. F A B C To be Loaded G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 60. F A B C To be Loaded G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 61. F A B C To be Loaded G E D To be Unloaded A B C G E Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 62. A B C To be Loaded G E D To be Unloaded A B C G E D Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 63. A B C To be Loaded G E D To be Unloaded A B C G E D Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 64. A B C To be Loaded G E D To be Unloaded A B C G E D F Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 65. A B C To be Loaded G E D To be Unloaded A B C G E D F Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 66. A B C To be Loaded G E D To be Unloaded A B C G E D F Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 67. A B C To be Loaded F G E D To be Unloaded A B C G E D F Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 68. A B C To be Loaded G E D To be Unloaded A B C G E D F Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 69. A B C To be Loaded G E D To be Unloaded A B C G E D F Already browsed F Loading Thread Unloading Thread Concurrent Resolve All Multi-Threaded
  • 70. Why concurrent loading? The HDD is the bottleneck, right?
  • 71. Scheduling is crucial Between loading and unloading threads to avoid high-memory consumption (our goal)
  • 72. A B C Ancestor D E G A B C Left (local) F D E G A B C F D E G F Right (remote)
  • 73. A B C Ancestor D E G A B C Left (local) F D E G A B C F D E G F Right (remote)
  • 74. A B C Ancestor D E G A B C Left (local) F D E G A B C F D E G F Right (remote)
  • 76. Summary Build the graph of resources
  • 77. Summary Build the graph of resources Concurrent resolve all
  • 78. Summary Find which Build the graph of resources has resources changed Concurrent resolve all
  • 79. Summary Find which Build the graph of resources has resources changed Concurrent Binary comparison resolve all of resources
  • 80. Summary Find which Build the graph of Compare resource resources has resources with differences changed Concurrent Binary comparison resolve all of resources
  • 81. Summary Find which Build the graph of Compare resource resources has resources with differences changed Match, Diff, etc. Concurrent Binary comparison without resolving resolve all of resources proxies
  • 82. Kill two pigs with one (angry) bird http://extremehdwallpapers.com/wp-content/uploads/2012/08/angry-birds-wallpaper-hd-.jpg
  • 85. Number of fragments (resources) Number of EObjects Disk Usage (XMI files size) 10000 10000K 1000M 1000 1000K 100M 100 100K 10M 10 10K Small Medium Large Small Medium Large Small Medium Large Sample Models The numbers (x2 in 2-ways, x3 in 3-ways)
  • 86. The promised millions Number of fragments (resources) Number of EObjects Disk Usage (XMI files size) 10000 10000K 1000M 1000 1000K 100M 100 100K 10M 10 10K Small Medium Large Small Medium Large Small Medium Large Sample Models The numbers (x2 in 2-ways, x3 in 3-ways)
  • 87. Small Medium Large 120 90 CPU Usage Time (sec) 60 Some changes in 1 resource 30 1 10 100 number of changes
  • 88. Small Medium Large 120 90 CPU Usage Time (sec) 60 1 change in some fragments 30 1 5 10 20 number of changed fragments
  • 89. 600 450 Max Heap (MiB) Memory Usage 300 Max Heap (-Xmx512m) 150 0 Small Medium Large
  • 90. http://www.flickr.com/photos/exploratorium/4689347618/in/set-72157624060408411 http://www.flickr.com/photos/exploratorium/4680503314/in/set-72157624060408411 http://www.flickr.com/photos/exploratorium/4689346802/in/set-72157624060408411 What’s Next?
  • 91. Model Resolving Scope Narrowing Matching Differencing Post-Process 100 % 75 % Time distribution 50 % 25 % Small 0 % Nominal Large
  • 92. Index Cross-Resources Links http://www.flickr.com/photos/manchesterlibrary/5425247171/
  • 93. Eclipse Papyrus support http://www.flickr.com/photos/manchesterlibrary/5425247171/
  • 95. C A B C To be Loaded G E D To be Unloaded Already browsed F Loading Thread Unloading Thread Protect the Integrity of the Model When committing, updating...
  • 96. http://nn.wikipedia.org/wiki/Fil:Postcards_and_magnifying_glass.jpg Generic Content Based Match Engine Decently Fast
  • 97. http://cdn.memegenerator.net/instances/400x/20451927.jpg Merge Wizard Help to Resolve Conflict
  • 98. http://www.space.com/17376-sharing-the-light-of-two-suns.html EMF Compare 2.1 With Kepler (Eclipse 4.3), June 2013
  • 99. What you should remember New UI Blazing Fast and Lightweight More to come ;)