webcamp: developer day: Оптимизация lift framework для работы с...

16
TWEAKING LIFT FRAMEWORK AND ORACLE DATABASE

Upload: geekslab

Post on 30-Jun-2015

67 views

Category:

Technology


0 download

DESCRIPTION

Оптимизация Lift Framework для работы с большими потоками данных Slava Schmidt История оптимизации одного Lift проекта для работы с базой данных Oracle для сохранения больших объемов данных. Информация о тонкостях интеграции с Akka и Squeryl, возможностях ускорения работы с базой данных и разработанном кэширующем jdbc драйвере.

TRANSCRIPT

Page 1: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

TWEAKING

LIFT FRAMEWORK !

AND !

ORACLE DATABASE

Page 2: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Me• Programmer since 1992

• Java programmer since 2004

• Scala consultant since 2007

Page 3: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Project• Price Aggregator

• Completely stateless

• From “on demand” to “prefetch” strategy

• 3 Orders of magnitude more data

• Testing is for wimps

Page 4: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Project• Scala 2.9.2

• Lift 2.4, Mapper ORM

• ExtJS 4

• Akka 2.1

• Squeryl 0.9.5

• Oracle RAC 10

Page 5: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Partner SystemsAkka Remote

Application Architecture

ExtJS

TomcatLift War

Oracle RAC

Akka

Page 6: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Problems

Page 7: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Database• 1% Space, 90% Tables – Lookup Tables

• 99% Space, 10% Tables – Aggregated Data

DATA

A

B

C

D

E

F

G

G

I

J

K

l

m

N

O

P

Page 8: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Caching JDBC Driver

Target DB

Application

Driver

In-Memory DB

Page 9: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Statements• select from table(s)

• delete from table

• update table

• insert into table

Page 10: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

DDL & Co.• DDL

• Triggers

• Sequences

• Configuration

• Statistics

Page 11: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Distributed Setup• Eventually consistent

• Akka-Cluster based

• Only changed data

• No additional queries

Page 12: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Application

Eventually Consistent

Target DB

Application

Driver

In-Memory DB

Driver

In-Memory DB

Page 13: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Read-Only ReplicaApplication

Target DB

Application

DriverDriver

In-Memory DB

Page 14: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

TODOs• Transaction support

• Query optimisation in distributed configuration

• Testing

• Backup Databases

• ORM frameworks

• Database functions / procedures

Page 15: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Where is it?• Sorry, not on Github yet

• Patent pending

• Premium features for subscribers

Page 16: WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими потоками данных - Slava Schmidt

Thank you@slavaschmidt

[email protected]