Upload
bernd-kolb
View
2.137
Download
3
Embed Size (px)
DESCRIPTION
In this talk we give a brief overview over the Eclipse Model Query project and outline what we plan in the Helios timeframe
Citation preview
Bernd Kolb
Christian Mohr
Martin Strenge
Boris Gruschko
Next Generation Model QueryFirst Impressions of the
Eclipse Summit Europe 2009
© SAP AG 2009 - licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany Licensehttp://creativecommons.org/licenses/by-nc-nd/3.0/de/
Who needs queries?What's out there?
Short Demo?
Architecture Overview
Index Utilization
Dirty State -
What we Willtalk about
Who needs Model Queries?SAP‘s Galaxy as a real life example…
Tree based viewsvisualize models
The Business ProcessDiagram Editor
Refactoring operationsaffect referring
elements
Lists aggregateavailable values
Type safety
Scoping
Response time
The 4 things thatreally matter
Dirty state
What‘sout there?
EMF Query?A perfect match?
The origin of theNext Generation Query
is a MOF infrastructure
So let‘s have a lookat the new stuff!
The LibraryEcore Model
335 filescontaining...
1 publisher
303 libraries
592 manuscripts
3645 persons
151540 books
DEMO
Behind theScenes
ArchitecturalOverview
Scheduler
Interpreter
Processor
Processing queries inmultiple backends
In-MemoryProcessor
Interpreter
DatabaseProcessor
Index-basedProcessor
EMF Index DB
What about theIndex?
Why an index isnot enough
Dirty statematters!
PersistedResource
1
PersistedResource
2
DirtyResource
1DirtyState
PersistentState
Resource 1 Resource 2
DirtyState
PersistentState
select b, p from Book as b, Person as pwhere b.borrowedBy = p
Person A
Book A
Person B
Resource 1 Resource 2
Book B Index Processor
DirtyState
PersistentState
select b, p from Book as b, Person as pwhere b.borrowedBy = p
Resource 1 Resource 2
Book A
Person A
Book B Person B
Book A
Person A
Book B
Person C
Person B
In-memoryProcessor
Book B
DirtyState
PersistentState
select b, p from Book as b, Person as pwhere b.borrowedBy = p
Person A
Book A
Person B
Book B
Person A
Book A
Person B
Person X
Person C
Book C
Resource 1 Resource 2 Resource 3
In-memoryProcessor
IndexProcessor
DirtyState
PersistentState
select b, p from Book as b, Person as pwhere b.borrowedBy = p
Resource 1 Resource 2 Resource 3
Book B
Person BBook A Person A
Person A
In-memoryProcessor
In-memoryProcessor
IndexProcessor
IndexProcessor
DirtyState
PersistentState
select b from Book as b, Person as p whereb.borrowedBy = p and p.name = „Abc“ and b.pages > 250
Resource 1 Resource 2 Resource 3
Person B
Book C
Person A
Book D
Book A
Book B
Person C
Person D
Book D
select b from Book as b, Person as p whereb.borrowedBy = p and p.name = „ABC“ and b.pages > 250
Union(Select[PERSISTENT] b from Book in {NDS} as b, Person as p
in {NDS} whereb.borrowedBy = p and p.name = „ABC“ and b.pages > 250,
Select[MEMORY] b from Book in {DS} as b, Person as p in {DS}where b.borrowedBy = p and p.name = „ABC“ and b.pages > 250,
Select q1.b fromSelect[MEMORY] b from Book in {DS} as b, Person as p in {NDS}
where b.borrowedBy = p and b.pages > 250as q1,Select[PERSISTENT] Person as p in {NDS}
where p.name = „ABC“ as q2where q1.p = q2.p,Select q1.b from
Select[PERSISTENT] b from Book in {NDS} as b, Person as pin {DS} where b.borrowedBy = p and b.pages > 250as q1,
Select[MEMORY] Person as p in {DS}where p.name = „ABC“ as q2
where q1.p = q2.p)
Links inpersistent state
Links indirty state
Links from dirtyinto persistentstate
Links frompersistent intodirty state
Hierarchicalbackends
In-memory
Filesystem
Database
TheFuture
What‘s next?
HeliosInternal clean-up
Optimize execution
Finalize initial release
And beyondExecute against several backends
<< YOUR IDEA GOES HERE>>
give it a tryfeedback
us
Please
www.eclipse.org/modeling/emf/
news://news.eclipse.org/eclipse.tools.emf
download
questionS
bernd.kolb / c.mohr /martin.strenge / boris.gruschkO
AT SAP DOT COM