next generation model query

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

Upload: bernd-kolb

Post on 07-Jul-2015

2.129 views

Category:

Technology


3 download

DESCRIPTION

In this talk we give a brief overview over the Eclipse Model Query project and outline what we plan in the Helios timeframe

TRANSCRIPT

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