SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie PrefetchML: a Framework for Prefetching and Caching Models

ckan 2.0 Introduction (20140618 updated)
ckan 2.0 Introduction (20140618 updated)ckan 2.0 Introduction (20140618 updated)
ckan 2.0 Introduction (20140618 updated)Chengjen Lee
 
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...apidays
 
QConSP 2018 - Java Module System
QConSP 2018 - Java Module SystemQConSP 2018 - Java Module System
QConSP 2018 - Java Module SystemLeonardo Zanivan
 
Postgre sql best_practices
Postgre sql best_practicesPostgre sql best_practices
Postgre sql best_practicesJacques Kostic
 
Greenplum for Kubernetes - Greenplum Summit 2019
Greenplum for Kubernetes - Greenplum Summit 2019Greenplum for Kubernetes - Greenplum Summit 2019
Greenplum for Kubernetes - Greenplum Summit 2019VMware Tanzu
 
Rook: Storage for Containers in Containers – data://disrupted® 2020
Rook: Storage for Containers in Containers  – data://disrupted® 2020Rook: Storage for Containers in Containers  – data://disrupted® 2020
Rook: Storage for Containers in Containers – data://disrupted® 2020data://disrupted®
 
Decoupled drupal DcRuhr
Decoupled drupal DcRuhrDecoupled drupal DcRuhr
Decoupled drupal DcRuhrAhmad Hassan
 
Drupal 8: frontend development
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend developmentsparkfabrik
 
Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012scorlosquet
 
Django Rest Framework - tips & trick
Django Rest Framework - tips & trick Django Rest Framework - tips & trick
Django Rest Framework - tips & trick Luca Zacchetti
 
Plain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticalsPlain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticalsAngela Byron
 
Automating Drupal Development with Patterns: introducing 7.x-2.x
Automating Drupal Development with Patterns: introducing 7.x-2.xAutomating Drupal Development with Patterns: introducing 7.x-2.x
Automating Drupal Development with Patterns: introducing 7.x-2.xDavid Rozas
 
StorPool Presents at Cloud Field Day 9
StorPool Presents at Cloud Field Day 9StorPool Presents at Cloud Field Day 9
StorPool Presents at Cloud Field Day 9StorPool Storage
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 
OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository Alkacon Software GmbH & Co. KG
 
Spark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production usersSpark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production usersDatabricks
 

Ähnlich wie PrefetchML: a Framework for Prefetching and Caching Models (20)

ckan 2.0 Introduction (20140618 updated)
ckan 2.0 Introduction (20140618 updated)ckan 2.0 Introduction (20140618 updated)
ckan 2.0 Introduction (20140618 updated)
 
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
apidays Paris 2022 - Of graphQL, DX friction, and surgical monolithectomy, Fr...
 
QConSP 2018 - Java Module System
QConSP 2018 - Java Module SystemQConSP 2018 - Java Module System
QConSP 2018 - Java Module System
 
Postgre sql best_practices
Postgre sql best_practicesPostgre sql best_practices
Postgre sql best_practices
 
Postgre sql best_practices
Postgre sql best_practicesPostgre sql best_practices
Postgre sql best_practices
 
Greenplum for Kubernetes - Greenplum Summit 2019
Greenplum for Kubernetes - Greenplum Summit 2019Greenplum for Kubernetes - Greenplum Summit 2019
Greenplum for Kubernetes - Greenplum Summit 2019
 
Java concurrency
Java concurrencyJava concurrency
Java concurrency
 
Rook: Storage for Containers in Containers – data://disrupted® 2020
Rook: Storage for Containers in Containers  – data://disrupted® 2020Rook: Storage for Containers in Containers  – data://disrupted® 2020
Rook: Storage for Containers in Containers – data://disrupted® 2020
 
Decoupled drupal DcRuhr
Decoupled drupal DcRuhrDecoupled drupal DcRuhr
Decoupled drupal DcRuhr
 
Java 9 Features
Java 9 FeaturesJava 9 Features
Java 9 Features
 
Drupal 8: frontend development
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend development
 
Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
 
Django Rest Framework - tips & trick
Django Rest Framework - tips & trick Django Rest Framework - tips & trick
Django Rest Framework - tips & trick
 
Plain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticalsPlain english guide to drupal 8 criticals
Plain english guide to drupal 8 criticals
 
Automating Drupal Development with Patterns: introducing 7.x-2.x
Automating Drupal Development with Patterns: introducing 7.x-2.xAutomating Drupal Development with Patterns: introducing 7.x-2.x
Automating Drupal Development with Patterns: introducing 7.x-2.x
 
StorPool Presents at Cloud Field Day 9
StorPool Presents at Cloud Field Day 9StorPool Presents at Cloud Field Day 9
StorPool Presents at Cloud Field Day 9
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository
 
Spark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production usersSpark Summit EU 2015: Lessons from 300+ production users
Spark Summit EU 2015: Lessons from 300+ production users
 

Kürzlich hochgeladen

Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaKayode Fayemi
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxNikitaBankoti2
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfSenaatti-kiinteistöt
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardsticksaastr
 

Kürzlich hochgeladen (20)

Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
 

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