![Page 1: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/1.jpg)
Elefant unter Stromvon OldSql über NoSQL zu NewSQL?
![Page 2: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/2.jpg)
Moores Law is Brokenprocessing can't scale-up rather out
Data is Growing
MotivationMotivation
![Page 3: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/3.jpg)
Relationale Datenbanken sind groß, alt, schwer und langsam wie ein Elefant.
Richtig gut können die eigentlich gar nichts.
Michael Stonebreaker
![Page 4: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/4.jpg)
Relationale Datenbanken
FeaturesACID
SQL
Scale-up
Fixed Schema
![Page 5: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/5.jpg)
Relationale Datenbanken
PerformanceUseful Work
Concurrency Control
Recovery
Input Output
![Page 6: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/6.jpg)
NoSQL to the rescue?
![Page 7: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/7.jpg)
NoSQL Datenbanken
FeaturesBASE
low-level Query Language
Scale-out
Flexible Schema
![Page 8: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/8.jpg)
BasicallyAvailable
Soft state
Eventually consistent
BA
S
E
![Page 9: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/9.jpg)
Why ACID?
It's better to have programmers deal with performance problems of transactions, than coding around the lack of transactions.
Google Spanner
![Page 10: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/10.jpg)
Why SQL?
no SQL no Standard
high-level Language
![Page 11: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/11.jpg)
NoSQL over OldSQL ?
![Page 12: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/12.jpg)
Database World Stonebreaker
Datawarehouse OLTP
others
![Page 13: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/13.jpg)
Introducing NewSQL
SQL
ACID
Scale-out
Fixed Schema
![Page 14: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/14.jpg)
NewSQL = new Architecture
Single Thread, MVCCMain MemoryRedundance
LockingDiskRecovery
over
![Page 15: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/15.jpg)
NewSql Players
![Page 16: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/16.jpg)
Introducing VoltDB
![Page 17: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/17.jpg)
VoltDB Architecture
Main Memory
Shared Nothing
ACID
HA and Recovery
![Page 18: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/18.jpg)
Getting Started
Create Database$ voltdb create d deployment.xml
Load Database Definition$ sqlcmd1> load classes procedures.jar;2> file schema.sql
SQL and Stored Procedures
![Page 19: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/19.jpg)
Schema Changes
Unique Index orr Remove Column
Live Schema Update
Save and Restore
DDL Statements
![Page 20: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/20.jpg)
SQL Stored Procedure
CREATE PROCEDURE lastX ASSELECT TOP ? * FROM ACTIVITYORDER BY end ASC
![Page 21: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/21.jpg)
Java Stored Procedure
LastXActivities extends VoltProcedure {
VoltTable[] run(int x) { voltQueueSQL( "SELECT TOP ? * FROM ACTIVITY
ORDER BY act_end ASC", x );
return voltExecuteSQL(); }
}
![Page 22: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/22.jpg)
Async Stored Procedure
client.callProcedure( new Callback() { … }, "AddActivity", "Franz", "Ferkel", "uuid3")
![Page 23: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/23.jpg)
Transaktionen
ein SQL Statement
eine Stored Procedure
![Page 24: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/24.jpg)
Partitionen
replicated vs. partitioned TablesPARTITION TABLE activity ON COLUMN project_id
partitioned Stored ProceduresPARTITION PROCEDURE lastX
ON TABLE activity COLUMN project_id
![Page 25: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/25.jpg)
Durability and Recovery
Snapshots
K-Safety
Replication
Command Logging
![Page 26: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/26.jpg)
VoltDB Demo
![Page 27: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/27.jpg)
![Page 28: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/28.jpg)
Row 1 Row 2 Row 3 Row 40
2
4
6
8
10
12
Column 1
Column 2
Column 3
![Page 29: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/29.jpg)
![Page 30: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/30.jpg)
![Page 31: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/31.jpg)
Wrap Up
NewSQL als dritter Weg
ACID and SQL can be fast
Choose your DB carefully
![Page 32: Jugs HH: Elefant unter Strom - von OldSQL über NoSQL zu NewSQL?](https://reader030.vdokument.com/reader030/viewer/2022032513/55d32332bb61ebc26b8b468c/html5/thumbnails/32.jpg)
Jan Stamergithub.com/[email protected]