Neo4EMF : When big models are no longer an issue!

Neo4EMF : big models made easier! @ EclipseCon France 2014 - Ignite Talks Session from Hugo Bruneliere

Handling effectively big EMF models has often been one of the main barriers that can retain from adopting modeling technologies in very large-scale complex systems. In this talk we present Neo4EMF, a Neo4j-based persistence framework allowing on-demand loading, storage, unloading and actual use of very large EMF models. Neo4EMF provides a No-SQL database persistence framework based on Neo4j, which is a transactional property-graph database that has proved having a remarkable running speed for connected data operations compared to relational databases.

In terms of performance, Neo4EMF eases data access and storage not only in a manner to reduce time and memory usage but also to allow big EMF models to fit into a reduced amount of memory. This is made possible through a lightweight and on-demand loading mechanism. Moreover, Neo4EMF comes with a dirty saving mechanism allowing to store huge chunks of data even with limited memory resources.

During this talk, we will first briefly introduce the main principles of Neo4EMF: how we have extended the EMF framework to customize the Java model code generation in order to target Neo4J and allow data fields on-demand access. Then we will spend most of the talk concretely demonstrating how easily you can set up, configure and use Neo4EMF resources (i.e. EMF models). We will put ourselves in a critical context with very limited resources and perform some load/save queries over a set of large-scale EMF models in order to reveal how these models behave (e.g. in terms of memory or CPU usage). The considered models have been automatically generated by reverse engineering from various large Java projects using the Eclipse MoDisco framework. Thus, we will also show a concrete integration example of Neo4EMF with an already existing EMF-based technology.