Post on 07-Jul-2015
description
transcript
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