Advanced prefetching and caching of models with PrefetchML

Caching and prefetching techniques have been used for decades in database engines and file systems to improve the performance of I/O-intensive application. A prefetching algorithm typically benefits from the system’s latencies by loading into main memory elements that will be needed in the future, speeding up data access. While these solutions can bring a significant improvement in terms of execution time, prefetching rules are often defined at the data level, making them hard to understand, maintain, and optimize. In addition, low-level prefetching and caching components are difficult to align with scalable model persistence frameworks because they are unaware of potential optimizations relying on the analysis of metamodel-level information and are less present in NoSQL databases, a common solution to store large models. To overcome this situation, we propose PrefetchML, a framework that executes prefetching and caching strategies over models. Our solution embeds a DSL to configure precisely the prefetching rules to follow and a monitoring component providing insights on how the prefetching execution is working to help designers optimize his performance plans. Our experiments show that PrefetchML is a suitable solution to improve query execution time on top of scalable model persistence frameworks. Tool support is fully available online as an open-source Eclipse plug-in.

[1]  P. Krishnan,et al.  Practical prefetching via data compression , 1993 .

[2]  Renata Pontin de Mattos Fortes,et al.  MOOGLE: A Model Search Engine , 2008, MoDELS.

[3]  Richard F. Paige,et al.  The Epsilon Object Language (EOL) , 2006, ECMDA-FA.

[4]  Alan Jay Smith,et al.  Sequentiality and prefetching in database systems , 1978, TODS.

[5]  Heiko Behrens,et al.  Xtext: implement your language faster than the quick and dirty way , 2010, SPLASH/OOPSLA Companion.

[6]  Mark Rouncefield,et al.  Model-driven engineering practices in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[7]  Guangyu Sun,et al.  Improving Memory Access Performance of In-Memory Key-Value Store Using Data Prefetching Techniques , 2015, APPT.

[8]  Thomas Willhalm,et al.  Memory system characterization of big data workloads , 2013, 2013 IEEE International Conference on Big Data.

[9]  Jordi Cabot,et al.  PrefetchML: a framework for prefetching and caching models , 2016, MoDELS.

[10]  Jesús García Molina,et al.  Inferring Versioned Schemas from NoSQL Databases and Its Applications , 2015, ER.

[11]  Jordi Cabot,et al.  Map-Based Transparent Persistence for Very Large Models , 2015, FASE.

[12]  Salman Azhar,et al.  Building Information Modeling (BIM): Trends, Benefits, Risks, and Challenges for the AEC Industry , 2011 .

[13]  Gwendal Daniel,et al.  Improving Memory Efficiency for Processing Large-Scale Models , 2014, BigMDE@STAF.

[14]  Anna R. Karlin,et al.  A study of integrated prefetching and caching strategies , 1995, SIGMETRICS '95/PERFORMANCE '95.

[15]  H. Levy,et al.  An architecture for software-controlled data prefetching , 1991, [1991] Proceedings. The 18th Annual International Symposium on Computer Architecture.

[16]  A. G. Kleppe,et al.  Building a Flexible Software Factory Using Partial Domain Specific Models , 2006, OOPSLA 2006.

[17]  Jacques Klein,et al.  Stream my models: Reactive peer-to-peer distributed models@run.time , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[18]  Gerson Sunyé,et al.  Neo4EMF, A Scalable Persistence Layer for EMF Models , 2014, ECMFA.

[19]  Dániel Varró,et al.  A research roadmap towards achieving scalability in model driven engineering , 2013, BigMDE '13.

[20]  Jordi Cabot,et al.  Mogwaï: A framework to handle complex queries on large models , 2016, 2016 IEEE Tenth International Conference on Research Challenges in Information Science (RCIS).

[21]  Jesús Sánchez Cuadrado,et al.  Morsa: a scalable approach for persisting and accessing large models , 2011, MODELS'11.

[22]  Jonas Helming,et al.  EMFStore: a model repository for EMF models , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[23]  Dimitrios S. Kolovos,et al.  Hawk: towards a scalable model indexing architecture , 2013, BigMDE '13.

[24]  Dániel Varró,et al.  The Train Benchmark: cross-technology performance evaluation of continuous model queries , 2017, Software & Systems Modeling.

[25]  Jim Zelenka,et al.  Informed prefetching and caching , 1995, SOSP.

[26]  Juha-Pekka Tolvanen,et al.  AUTOMATED PRODUCTION OF FAMILY MEMBERS : LESSONS LEARNED , 2022 .

[27]  Ákos Horváth,et al.  Incremental evaluation of model queries over EMF models , 2010, MODELS'10.

[28]  Yuan Yuan,et al.  Mega-KV: A Case for GPUs to Maximize the Throughput of In-Memory Key-Value Stores , 2015, Proc. VLDB Endow..

[29]  Miguel A. Fernández,et al.  MDE Adoption in Industry: Challenges and Success Criteria , 2009, MoDELS.

[30]  David J. DeWitt,et al.  An evaluation of buffer management strategies for relational database systems , 1986, Algorithmica.

[31]  Jordi Cabot,et al.  MoDisco: A model driven reverse engineering framework , 2014, Inf. Softw. Technol..