33
Bernd Kolb Christian Mohr Martin Strenge Boris Gruschko Next Generation Model Query First Impressions of the Eclipse Summit Europe 2009

Next Generation Model Query

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

Page 1: Next Generation Model Query

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/

Page 2: Next Generation Model Query

Who needs queries?What's out there?

Short Demo?

Architecture Overview

Index Utilization

Dirty State -

What we Willtalk about

Page 3: Next Generation Model Query

Who needs Model Queries?SAP‘s Galaxy as a real life example…

Page 4: Next Generation Model Query

Tree based viewsvisualize models

Page 5: Next Generation Model Query

The Business ProcessDiagram Editor

Page 6: Next Generation Model Query

Refactoring operationsaffect referring

elements

Page 7: Next Generation Model Query

Lists aggregateavailable values

Page 8: Next Generation Model Query

Type safety

Scoping

Response time

The 4 things thatreally matter

Dirty state

Page 9: Next Generation Model Query

What‘sout there?

Page 10: Next Generation Model Query

EMF Query?A perfect match?

Page 11: Next Generation Model Query

The origin of theNext Generation Query

is a MOF infrastructure

Page 12: Next Generation Model Query

So let‘s have a lookat the new stuff!

Page 13: Next Generation Model Query

The LibraryEcore Model

Page 14: Next Generation Model Query

335 filescontaining...

1 publisher

303 libraries

592 manuscripts

3645 persons

151540 books

Page 15: Next Generation Model Query

DEMO

Page 16: Next Generation Model Query

Behind theScenes

Page 17: Next Generation Model Query

ArchitecturalOverview

Scheduler

Interpreter

Processor

Page 18: Next Generation Model Query

Processing queries inmultiple backends

In-MemoryProcessor

Interpreter

DatabaseProcessor

Index-basedProcessor

EMF Index DB

Page 19: Next Generation Model Query

What about theIndex?

Page 20: Next Generation Model Query

Why an index isnot enough

Page 21: Next Generation Model Query

Dirty statematters!

Page 22: Next Generation Model Query

PersistedResource

1

PersistedResource

2

DirtyResource

1DirtyState

PersistentState

Resource 1 Resource 2

Page 23: Next Generation Model Query

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

Page 24: Next Generation Model Query

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

Page 25: Next Generation Model Query

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

Page 26: Next Generation Model Query

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

Page 27: Next Generation Model Query

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

Page 28: Next Generation Model Query

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

Page 29: Next Generation Model Query

Hierarchicalbackends

In-memory

Filesystem

Database

Page 30: Next Generation Model Query

TheFuture

Page 31: Next Generation Model Query

What‘s next?

HeliosInternal clean-up

Optimize execution

Finalize initial release

And beyondExecute against several backends

<< YOUR IDEA GOES HERE>>

Page 32: Next Generation Model Query

give it a tryfeedback

us

Please

Page 33: Next Generation Model Query

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