際際滷

際際滷Share a Scribd company logo
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
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
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
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
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
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
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
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
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
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
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
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
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
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 editor
 Navigation hints
 Rule validation
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
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
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
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
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
07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 24
PrefetchML Engine

More Related Content

Similar to PrefetchML: a Framework for Prefetching and Caching Models (20)

ODP
ckan 2.0 Introduction (20140618 updated)
Chengjen Lee
PDF
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
apidays
PDF
QConSP 2018 - Java Module System
Leonardo Zanivan
PPTX
Postgre sql best_practices
Emiliano Fusaglia
PPTX
Postgre sql best_practices
Jacques Kostic
PDF
Greenplum for Kubernetes - Greenplum Summit 2019
VMware Tanzu
ODP
Java concurrency
Srinivasan Raghvan
PDF
Rook: Storage for Containers in Containers 糸温岳温://糸庄壊姻顎沿岳艶糸速 2020
糸温岳温://糸庄壊姻顎沿岳艶糸速
PDF
Decoupled drupal DcRuhr
Ahmad Hassan
ODP
Java 9 Features
NexThoughts Technologies
PDF
Drupal 8: frontend development
sparkfabrik
PDF
際際滷s semantic web and Drupal 7 NYCCamp 2012
scorlosquet
PDF
Scaling PHP apps
Matteo Moretti
PDF
Django Rest Framework - tips & trick
Luca Zacchetti
PDF
Plain english guide to drupal 8 criticals
Angela Byron
PDF
Automating Drupal Development with Patterns: introducing 7.x-2.x
David Rozas
PDF
StorPool Presents at Cloud Field Day 9
StorPool Storage
PPTX
Becoming A Drupal Master Builder
Philip Norton
PDF
OpenCms Days 2016: Next generation content repository
Alkacon Software GmbH & Co. KG
PDF
Spark Summit EU 2015: Lessons from 300+ production users
Databricks
ckan 2.0 Introduction (20140618 updated)
Chengjen Lee
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
apidays
QConSP 2018 - Java Module System
Leonardo Zanivan
Postgre sql best_practices
Emiliano Fusaglia
Postgre sql best_practices
Jacques Kostic
Greenplum for Kubernetes - Greenplum Summit 2019
VMware Tanzu
Java concurrency
Srinivasan Raghvan
Rook: Storage for Containers in Containers 糸温岳温://糸庄壊姻顎沿岳艶糸速 2020
糸温岳温://糸庄壊姻顎沿岳艶糸速
Decoupled drupal DcRuhr
Ahmad Hassan
Java 9 Features
NexThoughts Technologies
Drupal 8: frontend development
sparkfabrik
際際滷s semantic web and Drupal 7 NYCCamp 2012
scorlosquet
Scaling PHP apps
Matteo Moretti
Django Rest Framework - tips & trick
Luca Zacchetti
Plain english guide to drupal 8 criticals
Angela Byron
Automating Drupal Development with Patterns: introducing 7.x-2.x
David Rozas
StorPool Presents at Cloud Field Day 9
StorPool Storage
Becoming A Drupal Master Builder
Philip Norton
OpenCms Days 2016: Next generation content repository
Alkacon Software GmbH & Co. KG
Spark Summit EU 2015: Lessons from 300+ production users
Databricks

Recently uploaded (20)

DOCX
Dissertation_Antony_Musyoka.docx.for presentation
antonykamile
PPTX
AI for Empowering Women in AI
Letizia Jaccheri
PPTX
Ludwig van Beethoven Life and Legacy.pptx
aryansnow1304
PPTX
Section 4 - Islamic Civilization & Culture.pptx
MianMuhammadUbaidUll
PDF
Amazon Wholesale Product Research Example
Joseph Juntilla
PDF
Rethinking PublicPrivate Partnerships: From Funding Gaps to Shared Goals
Francois Stepman
PPTX
Speech and which are the type of speechs
krajishmaa
PPTX
Soft Skills Training for Everybody.pp.pptx
Mayuri Srivastava
PPTX
Pastor Bob Stewart Acts 19 06 25 2025.pptx
FamilyWorshipCenterD
PDF
Materi Presentasi_Sales_Kit_IPA_Convex_2025.pdf
YudiAhmad6
PDF
Josaya - Abstract for the research of the youth development.pdf
Josaya Injesi
PPTX
From Hackathon to Real-World Impact: The Story of Sneh Vidhya Sahayog
shubhamsharma994585
PPTX
Bob Stewart Acts 18 06 18 2025.pptx
FamilyWorshipCenterD
PPTX
Joy In The Journey 06 22 2025.pptx
FamilyWorshipCenterD
PPTX
FL Studio Crack Full Version [Latest 2025]
Jackson lithms
PPTX
Heating_Effect_of_Solar_Corona_Presentation.pptx
Hanumamshukla
PPTX
organic farm Dr Shashi Jain 19.06.2018.pptx
Pratibha Chauhan
PPTX
AC_Manufacturer_Strategy_Commercial_Government.pptx
ajajsain
PPTX
Accessibility isn't just for users. Creating engaging technical presentations...
Elizabeth McCready
PPTX
Political Polarization And Government Accountability.pptx
EverlyseLumantas
Dissertation_Antony_Musyoka.docx.for presentation
antonykamile
AI for Empowering Women in AI
Letizia Jaccheri
Ludwig van Beethoven Life and Legacy.pptx
aryansnow1304
Section 4 - Islamic Civilization & Culture.pptx
MianMuhammadUbaidUll
Amazon Wholesale Product Research Example
Joseph Juntilla
Rethinking PublicPrivate Partnerships: From Funding Gaps to Shared Goals
Francois Stepman
Speech and which are the type of speechs
krajishmaa
Soft Skills Training for Everybody.pp.pptx
Mayuri Srivastava
Pastor Bob Stewart Acts 19 06 25 2025.pptx
FamilyWorshipCenterD
Materi Presentasi_Sales_Kit_IPA_Convex_2025.pdf
YudiAhmad6
Josaya - Abstract for the research of the youth development.pdf
Josaya Injesi
From Hackathon to Real-World Impact: The Story of Sneh Vidhya Sahayog
shubhamsharma994585
Bob Stewart Acts 18 06 18 2025.pptx
FamilyWorshipCenterD
Joy In The Journey 06 22 2025.pptx
FamilyWorshipCenterD
FL Studio Crack Full Version [Latest 2025]
Jackson lithms
Heating_Effect_of_Solar_Corona_Presentation.pptx
Hanumamshukla
organic farm Dr Shashi Jain 19.06.2018.pptx
Pratibha Chauhan
AC_Manufacturer_Strategy_Commercial_Government.pptx
ajajsain
Accessibility isn't just for users. Creating engaging technical presentations...
Elizabeth McCready
Political Polarization And Government Accountability.pptx
EverlyseLumantas
Ad

PrefetchML: a Framework for Prefetching and Caching Models

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 14 PrefetchML Engine
  • 15. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 15 PrefetchML Engine
  • 16. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 16 PrefetchML Engine
  • 17. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 17 PrefetchML Engine
  • 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. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 19 Tooling
  • 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. 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. 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. 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. 07/10/2016 PrefetchML: a Framework for Prefetching and Caching Models - G. Daniel 24 PrefetchML Engine