Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
Upcoming SlideShare
Loading in …5
×

PrefetchML: a Framework for Prefetching and Caching Models

297 views

Published on

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/

  • Be the first to comment

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

×