Big Models Made Possible


Efficient multi-database storage, on-demand loading, and powerful querying of your large scale EMF models

Find Out More

Make your EMF applications handle very large models for free!


NeoEMF is a model persistence solution designed to store models in several kind of NoSQL datastores. It is fully compatible with EMF, making it easy to integrate into your modeling applications.

NeoEMF is based on a lazy-loading mechanism that transparently brings into memory model elements only when they are accessed and remove them when they are no longer needed. With this feature, NeoEMF is able to handle models containing millions of elements even in highly-constrained memory environments.

Graphs, Maps, or Columns!

NeoEMF provides three backend which are able to store your models:

  • NeoEMF/Graph: use the power of graph query language to compute model queries efficiently! Models are represented using vertices, edges, and properties, and can be efficiently queried using the Mogwaï!
  • NeoEMF/Map: serialize your model into in-memory/on-disk maps to speed-up model access and update using the standard EMF API!
  • NeoEMF/Column: you want to execute model transformations on very large models? Use NeoEMF/Column to store your model into a distributed wide column database and transform it using ATL-MR!

Features


Lazy-Loading

NeoEMF loads model elements only when they are accessed, limiting memory consumption and improving loading execution time.

Multiple Backends

NeoEMF supports many storage solutions. Current version provides implementations for MapDB, Blueprints, Neo4j, and HBase!

EMF-API Compliant

We put a special attention to ensure that calling a NeoEMF method produces the same behavior as standard EMF API calls.

Auto-Commit

Each database implementation provides an autocommit feature that regularly saves changes in order to free the memory.

Caching

NeoEMF embeds a set of caches that can be turned on/off. Want to cache features, size results, isSet results? We have what you need!

Direct Import

Importing models from XMI can be painful and costly. That's why we have developped an efficient and scalable XMI parser for you!

Related Publications

We have made several research publications to present our approach and address specific problems (both conceptual and technical) we faced during the development. You can find here the list of NeoEMF-related publications and the presented slides when they are available.

Neo4EMF, a Scalable Persistence Layer for EMF Models

A. Benelallam, A. Gómez Llana, G. Sunyé, M. Tisi, and D. Launay. In ECMFA 2014, York, United Kingdom, 2014 (article)

Improving Memory Efficiency for Processing Large-Scale Models

G. Daniel, G. Sunyé, A. Benelallam, and M. Tisi. In BigMDE 2014, York, United Kingdom, 2014 (article)

Map-Based Transparent Persistence for Very Large Models

A. Gómez Llana, M. Tisi, G. Sunyé, and J. Cabot. In FASE 2015, London, United Kingdom, 2015 (article, slides)

Mogwaï: a Framework to Handle Complex Queries on Large Models

G. Daniel, G. Sunyé, and J. Cabot. In RCIS 2016, Grenoble, France, 2016 (article, slides, blog post)

PrefetchML: a Framework for Prefetching and Caching Models

G. Daniel, G. Sunyé, and J. Cabot. In MoDELS 2016, Saint-Malo, France (article, slides, blog post)

NeoEMF: a Multi-Database Model Persistence Framework for Very Large Models

G. Daniel, G. Sunyé, A. Benelallam, M. Tisi, Y. Vernageau, A. Gómez Llana, and J. Cabot. In MoDELS 2016 (Tool Demo Track), Saint-Malo, France, 2016 (article, slides, blog posts)

Credits


NeoEMF is a project maintained by AtlanMod Team and SOM-Research Lab.


Performance problems and memory leaks are diagnosed with Java Profiler

Let's Get In Touch!


Want to discuss about NeoEMF? Submit an issue? Report your experience using our tools? Please contact us!