Skip to main content
Log in

Advanced prefetching and caching of models with PrefetchML

  • Special Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Notes

  1. https://wiki.eclipse.org/CDO/Tweaking_Performance.

  2. http://www.eclipse.org/modeling/mdt/?project=ocl.

  3. https://github.com/FTSRG/trainbenchmark.

  4. Details of the queries can be found at https://github.com/atlanmod/Prefetching_Caching_DSL.

  5. Note that this previous experiment embedded a primitive version of the Adaptative Monitoring component that was able to disable a rule if it did not generate any hit.

  6. Time-based monitoring is not considered in this evaluation.

  7. https://www.eclipse.org/emf/compare/.

References

  1. Azhar, S.: Building information modeling (BIM): trends, benefits, risks, and challenges for the AEC industry. Leadership and Management in Engineering, pp. 241–252 (2011)

  2. Barmpis, K., Kolovos, D.: Hawk: towards a scalable model indexing architecture. In: Proceedings of the BigMDE’13, pp. 6–9. ACM (2013)

  3. Benelallam, A., Gómez, A., Sunyé, G., Tisi, M., Launay, D.: Neo4EMF, a scalable persistence layer for EMF models. In: Proceedings of the 10th ECMFA, pp. 230–241. Springer (2014)

  4. Bergmann, G., Horváth, Á., Ráth, I., Varró, D., Balogh, A., Balogh, Z., Ökrös, A.: Incremental evaluation of model queries over EMF models. In: Proceedings of the 13th MoDELS Conference, pp. 76–90. Springer (2010)

  5. Bruneliere, H., Cabot, J., Dupé, G., Madiot, F.: MoDisco: a model driven reverse engineering framework. IST, pp. 1012–1032 (2014)

  6. Cao, P., Felten, E.W., Karlin, A.R., Li, K.: A study of integrated prefetching and caching strategies. ACM SIGMETRICS Perform. Eval. Rev. 21(1), 188–197 (1995)

    Article  Google Scholar 

  7. Chou, H.-T., DeWitt, D.J.: An evaluation of buffer management strategies for relational database systems. Algorithmica 1, 311–336 (1986)

    Article  MathSciNet  Google Scholar 

  8. Curewitz, K.M., Krishnan, P., Vitter, J.S.: Practical prefetching via data compression. In: ACM SIGMOD Record, pp. 257–266. ACM (1993)

  9. Daniel, G., Sunyé, G., Benelallam, A., Tisi, M.: Improving memory efficiency for processing large-scale models. In: Proceedings of BigMDE’14, CEUR Workshop Proceedings, pp. 31–39 (2014)

  10. Daniel, G., Sunyé, G., Cabot, J.: Mogwaï: a framework to handle complex queries on large models. In: Proceedings of the 10th RCIS Conference, pp. 1–12. IEEE (2016)

  11. Daniel, G., Sunyé, G., Cabot, J.: PrefetchML: a framework for prefetching and caching models. In: Proceedings of the 19th MoDELS Conference, pp. 318–328. ACM/IEEE (2016)

  12. Dimitrov, M., Kumar, K., Lu, P., Viswanathan, V., Willhalm, T.: Memory system characterization of big data workloads. In: Proceedings of the 1st Big Data Conference, pp. 15–22. IEEE (2013)

  13. Eclipse Foundation: The CDO Model Repository (CDO) (2016). http://www.eclipse.org/cdo/

  14. Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: Proceedings of OOPSLA’10, pp. 307–309, New York, NY, USA. ACM (2010)

  15. Gómez, A., Sunyé, G., Tisi, M., Cabot, J.: Map-based transparent persistence for very large models. In: Proceedings of the 18th FASE Conference. Springer (2015)

  16. Hartmann, T., Moawad, A., Fouquet, F., Nain, G., Klein, J., Le Traon, Y.: Stream my models: reactive peer-to-peer distributed models @ run. time. In: Proceedings of the 18th MoDELS Conference, pp. 80–89. IEEE (2015)

  17. Hutchinson, J., Rouncefield, M., Whittle, J.: Model-driven engineering practices in industry. In: Proceedings of the 33rd ICSE, pp. 633–642. IEEE (2011)

  18. Klaiber, A.C., Levy, H.M.: An architecture for software-controlled data prefetching. In: ACM SIGARCH Computer Architecture News, pp. 43–53. ACM (1991)

  19. Koegel, M., Helming, J.: EMFStore: a model repository for EMF models. In: Proceedings of the 32nd ICSE, pp. 307–308. ACM (2010)

  20. Kolovos, D.S., Paige, R.F., Polack, F.A.: The epsilon object language (EOL). In: Proceedings of the 2nd ECMDA-FA, pp. 128–142. Springer (2006)

  21. Kolovos, D.S., Rose, L.M., Matragkas, N., Paige, R.F., Guerra, E., Cuadrado, J.S., De Lara, J., Ráth, I., Varró, D., Tisi, M. et al: A research roadmap towards achieving scalability in model driven engineering. In: Proceedings of BigMDE’13, pp. 1–10. ACM (2013)

  22. Lucrédio, D., Fortes, R.P.d.M., Whittle, J.: Moogle: A model search engine. In: Proceedings of the 11th MoDELS Conference, pp. 296–310. Springer (2008)

  23. Mohagheghi, P., Fernandez, M.A., Martell, J.A., Fritzsche, M., Gilani, W.: MDE adoption in industry: challenges and success criteria. In: Proceedings of Workshops at MoDELS 2008, pp. 54–59. Springer (2009)

  24. Pagán, J.E., Cuadrado, J.S., Molina, J.G.: Morsa: a scalable approach for persisting and accessing large models. In: Proceedings of the 14th MoDELS Conference, pp. 77–92. Springer (2011)

  25. Patterson, R.H., Gibson, G.A., Ginting, E., Stodolsky, D., Zelenka, J.: Informed prefetching and caching. ACM (1995)

  26. Pohjonen, R., Tolvanen, J.-P.: Automated production of family members: Lessons learned. In: Proceedings of PLEES’02, pp. 49–57. IESE (2002)

  27. Ruiz, D.S., Morales, S.F., Molina, J.G.: Inferring versioned schemas from NoSQL databases and its applications. In: Proceedings of the 34th ER Conference, pp. 467–480. Springer (2015)

  28. Smith, A.J.: Sequentiality and prefetching in database systems. TODS, pp. 223–247 (1978)

  29. Szárnyas, G., Izsó, B., Ráth, I., Varró, D.: The train benchmark: cross-technology performance evaluation of continuous model queries. Software & Systems Modeling, pp. 1–29 (2017)

  30. Tinkerpop. Blueprints API, (2016). http://blueprints.tinkerpop.com

  31. Tinkerpop. The Gremlin Language, (2016). http://gremlin.tinkerpop.com

  32. Warmer, J., Kleppe, A.: Building a flexible software factory using partial domain specific models. In: Proceedings of the 6th DSM Workshop, pp. 15–22. University of Jyvaskyla (2006)

  33. Zhang, K., Wang, K., Yuan, Y., Guo, L., Lee, R., Zhang, X.: Mega-kv: A case for gpus to maximize the throughput of in-memory key-value stores. In: Proceedings of the VLDB Endowment 8(11), 1226–1237 (2015)

  34. Zhu, P., Sun, G., Wang, P., Chen, M.: Improving memory access performance of in-memory key-value store using data prefetching techniques. In: Proceedings of the 11th APPT Workshop, pp. 1–17. Springer (2015)

Download references

Acknowledgements

This work has been partially funded by the Electronic Component Systems for European Leadership Joint Undertaking under Grant Agreement No. 737494 (MegaM@Rt2 project) and the Spanish government (TIN2016-75944-R project).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gwendal Daniel.

Additional information

Communicated by Dr. Jörg Kienzle and Alexander Pretschner.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Daniel, G., Sunyé, G. & Cabot, J. Advanced prefetching and caching of models with PrefetchML. Softw Syst Model 18, 1773–1794 (2019). https://doi.org/10.1007/s10270-018-0671-8

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-018-0671-8

Keywords

Navigation