Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
PrefetchML: a Framework for
Prefetching and Caching Models
Jordi Cabot
ICREA-UOC
jordi.cabot@icrea.cat
Gwendal Daniel
Inri...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 2
Introduction
● Prefetching
– Bring obj...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 3
Introduction
● Database prefetchers & ...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 4
Introduction
● We need to prefetch and...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 5
Introduction
● We need to prefetch and...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 6
PrefetchML
● A prefetching and caching...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 7
PrefetchML DSL
● Define prefetching an...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 8
PrefetchML DSL
import ''http://www.exa...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 9
PrefetchML DSL
import ''http://www.exa...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 10
PrefetchML DSL
import ''http://www.ex...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 11
PrefetchML DSL
import ''http://www.ex...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 12
PrefetchML DSL
import ''http://www.ex...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 13
PrefetchML Engine
● Rule execution en...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 14
PrefetchML Engine
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 15
PrefetchML Engine
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 16
PrefetchML Engine
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 17
PrefetchML Engine
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 18
Tooling
● PrefetchML Editor
– XText e...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 19
Tooling
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 20
Evaluation
Q1 Q2 Q3
0
2
4
6
8
10
12
1...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 21
Conclusion
● Model-level prefetching ...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 22
Conclusion
● Future work
– Automatic ...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 23
Questions?
Websites / Repositories
Pr...
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 24
PrefetchML Engine
Nächste SlideShare
Wird geladen in …5
×

PrefetchML: a Framework for Prefetching and Caching Models

496 Aufrufe

Veröffentlicht am

PrefetchML Presentation at MoDELS'16. Related article available online at https://hal.archives-ouvertes.fr/hal-01362149/document

Related post on modeling-languages.com: http://modeling-languages.com/prefetchml-dsl-prefetching-caching-emf-models/

Veröffentlicht in: Präsentationen & Vorträge
  • Login to see the comments

PrefetchML: a Framework for Prefetching and Caching Models

  1. 1. PrefetchML: a Framework for Prefetching and Caching Models Jordi Cabot ICREA-UOC jordi.cabot@icrea.cat Gwendal Daniel Inria - Mines Nantes & Lina gwendal.daniel@inria.fr Gerson Sunyé Inria - Mines Nantes & Lina gerson.sunye@inria.fr
  2. 2. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 2 Introduction ● Prefetching – Bring objects into memory before they are requested ● Caching – Retain objects in memory to speed-up their access ● Integrated in databases and file systems – Speeds-up I/O intensive applications
  3. 3. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 3 Introduction ● Database prefetchers & caches – Lack of fine-grained configuration ● Elements to load ● Usage scenario – Tightly coupled to data representation ● Low level of abstraction ● Not reusable – Not a common in NoSQL stores
  4. 4. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 4 Introduction ● We need to prefetch and cache models – Scalable Persistence Frameworks ● Databases to store large models (relational, NoSQL, ...) ● Latencies to bring elements from the database ● I/O intensive
  5. 5. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 5 Introduction ● We need to prefetch and cache models – Metamodel informations ● High-level prefetching rules ● Decoupled from data representation
  6. 6. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 6 PrefetchML ● A prefetching and caching framework at the model level PrefetchML DSL PrefetchML Engine – Metamodel and model level – Use case dependent – Readable – Datastore-independent – Transparent for the persistence solution rule definition rule execution
  7. 7. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 7 PrefetchML DSL ● Define prefetching and caching rules grouped in plans ● Event-based language – Model loading – Element access, update, deletion – OCL guards ● OCL loading instructions ● Cache management – Define cache policy – Remove cached elements
  8. 8. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 8 PrefetchML DSL import ''http://www.example.com/Java'' plan samplePlan { rule r1: on starting fetch Package.allInstances() } Package + name : String ClassDeclaration + name : String BodyDeclaration + name : String Modifier + kind : VisibilityKind * 1 ownedElements * bodyDeclarations modifier
  9. 9. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 9 PrefetchML DSL import ''http://www.example.com/Java'' plan samplePlan { rule r1: on starting fetch Package.allInstances() rule r2: on access type ClassDeclaration fetch self.bodyDeclarations.modifier } Package + name : String ClassDeclaration + name : String BodyDeclaration + name : String Modifier + kind : VisibilityKind * 1 ownedElements * bodyDeclarations modifier
  10. 10. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 10 PrefetchML DSL import ''http://www.example.com/Java'' plan samplePlan { use cache LRU[size=100, chunk=10] rule r1: on starting fetch Package.allInstances() rule r2: on access type ClassDeclaration fetch self.bodyDeclarations.modifier } Package + name : String ClassDeclaration + name : String BodyDeclaration + name : String Modifier + kind : VisibilityKind * 1 ownedElements * bodyDeclarations modifier
  11. 11. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 11 PrefetchML DSL import ''http://www.example.com/Java'' plan samplePlan { use cache LRU[size=100, chunk=10] rule r1: on starting fetch Package.allInstances() rule r2: on access type ClassDeclaration (self.name = 'MyClass') fetch self.bodyDeclarations.modifier } Package + name : String ClassDeclaration + name : String BodyDeclaration + name : String Modifier + kind : VisibilityKind * 1 ownedElements * bodyDeclarations modifier
  12. 12. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 12 PrefetchML DSL import ''http://www.example.com/Java'' plan samplePlan { use cache LRU[size=100, chunk=10] rule r1: on starting fetch Package.allInstances() rule r2: on access type ClassDeclaration (self.name = 'MyClass') fetch self.bodyDeclarations.modifier remove type Package } Package + name : String ClassDeclaration + name : String BodyDeclaration + name : String Modifier + kind : VisibilityKind * 1 ownedElements * bodyDeclarations modifier
  13. 13. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 13 PrefetchML Engine ● Rule execution engine ● Executes loading instructions ● Captures events ● Transparent to the modeling framework ● Database independent – Specialized connectors
  14. 14. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 14 PrefetchML Engine
  15. 15. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 15 PrefetchML Engine
  16. 16. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 16 PrefetchML Engine
  17. 17. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 17 PrefetchML Engine
  18. 18. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 18 Tooling ● PrefetchML Editor – XText editor – Navigation hints – Rule validation
  19. 19. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 19 Tooling
  20. 20. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 20 Evaluation Q1 Q2 Q3 0 2 4 6 8 10 12 14 16 18 No Pref. EMF Pref. NeoEMF Pref. ExecutionTime(s) Q1 Q2 Q3 0 1 2 3 4 5 6 7 8 9 ExecutionTime(s) ● Model containing 2 million elements ● MDT OCL over NeoEMF/Graph Cold Execution (empty cache) Warmed Execution
  21. 21. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 21 Conclusion ● Model-level prefetching & caching framework ● PrefetchML DSL: defines prefetching and caching rules at a high level of abstraction ● PrefetchML Engine: captures events, trigger rules, cache model elements
  22. 22. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 22 Conclusion ● Future work – Automatic generation of PrefetchML plans ● ATL transformations ● Code analysis – Dynamic discovery of frequent access patterns ● Log mining ● Switch on/off plans when needed ● Add/remove rules at runtime
  23. 23. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 23 Questions? Websites / Repositories PrefetchML: https://github.com/atlanmod/Prefetching_Caching_DSL NeoEMF: neoemf.com https://github.com/atlanmod Thank you for your attention! https://github.com/SOM-Research
  24. 24. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 24 PrefetchML Engine

×