Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » EMF-IncQuery » Newbie questions - please help me understand
Newbie questions - please help me understand [message #1630141] Mon, 23 February 2015 03:23 Go to next message
Anton Hughes is currently offline Anton HughesFriend
Messages: 66
Registered: January 2013

I'm fairly new to EMF and even more new to IncQuery.

I have seen, and am exploring, various tools and frameworks to help EMF users use various persistence layers, for example Texo, EMF4Neo, Blueprints-EMF, and EMF-Mongo.

What persistence layer does IncQuery require? I assume it is not an ORM, that can map to various persistence layers.

Does the entire graph need to be loaded into memory?

Is it possible to make IncQuery work with alternative persistence stores?

Re: Newbie questions - please help me understand [message #1630580 is a reply to message #1630141] Mon, 23 February 2015 09:11 Go to previous messageGo to next message
Abel Hegedus is currently offline Abel HegedusFriend
Messages: 197
Registered: September 2015
Senior Member
Hi Anton,

EMF-IncQuery is independent of any persistence layer, as it can be initialized on any Notifier (EObject, Resource, ResourceSet). So in theory, it should work without problems using any of the mentioned examples and any other alternative as long as it works over the EMF Notifier interface.

However, as you asked, the incremental query engine of EMF-IncQuery will traverse the complete model to index it, which means that at some point everything has to be loaded into memory. Note that only those EClasses and features will be actually indexed which are needed for the defined queries (except when using wildcard mode).

Re: Newbie questions - please help me understand [message #1630587 is a reply to message #1630141] Mon, 23 February 2015 09:15 Go to previous messageGo to next message
Zoltan Ujhelyi is currently offline Zoltan UjhelyiFriend
Messages: 392
Registered: July 2015
Senior Member
Hi Anton,

thanks for your interest in EMF-IncQuery. About the applicability of alternative persistence layers, the answer is both yes and no.

In theory, the query engine of EMF-IncQuery can be executed over any EMF Resource/ResourceSet implementation, including DB-backed ones. However, the selected algorithms assume that the model is available in the memory, thus building an index from the contents of the resources is possible. This, for large, DB-backed models this might require a large amount of memory and/or might be expensive in runtime.

On the other hand, we are actively working on alternative approaches that supports such instances. One of these is a local search based query engine that does require less indexing (if any at all), thus is capable of handling larger models (of course with very different performance characteristics). An initial implementation is already available from EMF-IncQuery 0.9.0, and a more integrated version is planned to be included in a few days (and be generally available in EMF-IncQuery 1.0.0 planned for this June).

In EMF-IncQuery 0.9.0 we also made an effort to loosen the dependency on the IncQuery engine on EMF Resources and Resource sets by the introduction of different query scopes. Although this feature is originally planned to support different modeling implementations such as RDF or MPS, it also allows adding specialized indexing algorithms for dedicated DB-backed resource implementations. Such alternative implementations are under active development, but are not (yet) available from the EMF-IncQuery project.

Finally, we are working on another approach called IncQuery-D, that reuses the query engine(s) of EMF-IncQuery in a distributed environment, where the indexes are allocated over multiple computers, thus greatly extending the size of models that can be handled by the different algorithms. For this reason, see our Models 2014 paper "IncQuery-D: A Distributed Incremental Model Query Framework in the Cloud" (

I hope, I was clear enough; if not, or you have further questions, feel free to ask for clarification.

Re: Newbie questions - please help me understand [message #1630600 is a reply to message #1630141] Mon, 23 February 2015 09:26 Go to previous message
Gabor Bergmann is currently offline Gabor BergmannFriend
Messages: 36
Registered: July 2009
A minor addition:

Does the entire graph need to be loaded into memory?

Yes. Or at least the part of the model that is specified as the scope of the IncQuery engine. So if you have a ResourceSet, but set up IncQuery for a given Resource only, then query results will only reflect the contents of that Resource, and other linked Resources will not necessarily be loaded into memory.
Previous Topic:Performance differences Plugin/Java API
Next Topic:Migration to 0.9.0 documentation?
Goto Forum:

Current Time: Fri Dec 01 03:32:48 GMT 2023

Powered by FUDForum. Page generated in 0.02012 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top