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

Post on 30-Jun-2015

67 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

TWEAKING

LIFT FRAMEWORK !

AND !

ORACLE DATABASE

Me• Programmer since 1992

• Java programmer since 2004

• Scala consultant since 2007

Project• Price Aggregator

• Completely stateless

• From “on demand” to “prefetch” strategy

• 3 Orders of magnitude more data

• Testing is for wimps

Project• Scala 2.9.2

• Lift 2.4, Mapper ORM

• ExtJS 4

• Akka 2.1

• Squeryl 0.9.5

• Oracle RAC 10

Partner SystemsAkka Remote

Application Architecture

ExtJS

TomcatLift War

Oracle RAC

Akka

Problems

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

Caching JDBC Driver

Target DB

Application

Driver

In-Memory DB

Statements• select from table(s)

• delete from table

• update table

• insert into table

DDL & Co.• DDL

• Triggers

• Sequences

• Configuration

• Statistics

Distributed Setup• Eventually consistent

• Akka-Cluster based

• Only changed data

• No additional queries

Application

Eventually Consistent

Target DB

Application

Driver

In-Memory DB

Driver

In-Memory DB

Read-Only ReplicaApplication

Target DB

Application

DriverDriver

In-Memory DB

TODOs• Transaction support

• Query optimisation in distributed configuration

• Testing

• Backup Databases

• ORM frameworks

• Database functions / procedures

Where is it?• Sorry, not on Github yet

• Patent pending

• Premium features for subscribers

Thank you@slavaschmidt

slava.schmidt@dancingcode.com

top related