Upload
judith-foster
View
227
Download
2
Embed Size (px)
Citation preview
The Old Way The New WayThe Old Way The New Way
storage Disk Main memory
Caching Anti-caching
ACID Record level locking
MVCC, TS ordering, …
Data logging Command logging
Replication Active-passive Active-active
Products
Old WayOracle, DB2, SQLServer, Postgres, MySQL …
New WayHekaton, Hana, MemSQL, VoltDB, SQLFire,…
Main Memory Storage
1 Tbyte costs (maybe) $25K and declining
rapidlyIf your data doesn’t fit then wait a couple of
yearsNVRAM will push this way out later this decade
Anti-Caching (VLDB ‘14)
Main memory format for dataWhen memory fills, gather cold tuples and write
to an archive (in main memory format)When a transaction has a “miss”, abort it but
continue with “fake processing” to find all the
absent dataGet and “pin” the needed dataReschedule transaction when all needed data in
main memoryNumbers from H-Store implementation
Some Data From Nirmesh Malvaiya
Implemented Aries in VoltDBCompared against the VoltDB scheme
Asynchronous checkpoints
Command logging
Some Data From Nirmesh Malvaiya
1.5 X run-time performance gain1.5 X penalty at recovery time
Almost all OLTP applications demand HAOnly run recovery for cluster-wide failures
E.g. power outage
9
Concurrency Control
MVCC popular (Hana, Hekaton) Time stamp order popular (H-Store/VoltDB) Lightweight combinations of time stamp order
and dynamic locking (Calvin, Dora) I don’t know anybody who is doing normal
dynamic locking It’s too slow!!!!
How to Implement HA
Active-Passive
As in the traditional wisdom
Active-Active
Send update transactions to all copies
Each executes transaction logic
Requires deterministic scheduling!!!