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