SoziotechnischeSysteme Sommer2016 Soziotechnische Informationssysteme 8. SQL und NoSQL Die gute alte Zeit (c)PeterSturm,UniversitätTrier 1 SoziotechnischeSysteme Sommer2016 Relatio nale Datenbank (c)PeterSturm,UniversitätTrier 2 SoziotechnischeSysteme Sommer2016 RDBMs • 1970, IBM • Edgar Codd • Persistente Datenspeicherung • Formal fundierte Methode • Transaktionen • Retrievalsprache Kleinere Wehwehchen J • Impedance Mismatch – OO als Cure • Shared Database Integration – Wachsende Komplexität • Application Databases – Integration über Services – Service-Orientation (c)PeterSturm,UniversitätTrier 3 SoziotechnischeSysteme Sommer2016 Ein Server (RDBMS) Spieler Spiel Zug Stellung Komme ntar RDBMS Mehrere Server (Distribution) Spieler Spiel RDBMS Stellung Zug RDBMS Komme ntar RDBMS (c)PeterSturm,UniversitätTrier 4 SoziotechnischeSysteme Sommer2016 Mehrere Server (Partitioning) Spieler Spiel Stellung Zug Spiel RDBMS Zug Zug RDBMS Komme ntar Stellung RDBMS Replikation • Synchron – 2PC/3PC, Zeitaufwendig • Asynchron – Store and Forward • Periodisch • Aperiodisch (c)PeterSturm,UniversitätTrier • Snapshot Replication • Transactional Replication • Merge Replication • Statement-based Replication – SQL Statements 5 SoziotechnischeSysteme Sommer2016 Zäsur • Skalierbarkeit bei RDBMS hat Grenzen • Datenvolumen Ve rte ilung • Ausschöpfen der inhärenten Parallelität – Echtzeit-Internet • Zuverlässigkeit • Verfügbarkeit • Neue Denkmodelle Konze ntration (c)PeterSturm,UniversitätTrier 6 SoziotechnischeSysteme Sommer2016 NoSQL Datenbank Relatio nale Datenbank (c)PeterSturm,UniversitätTrier 7 SoziotechnischeSysteme Sommer2016 ? NoS Q L Dat enbank RDBM Warum? • Skalierbarkeit – Riesige Datenmengen • Performanz und Elastizität – Auslastung großer Cluster • Agile Modelle – „Erst schießen dann fragen“ (c)PeterSturm,UniversitätTrier 8 SoziotechnischeSysteme Sommer2016 Konkreter • Aus Spaß an Neuem • Hohes Datenwachstum • Hohe Latenzen • Online statt Offline (c)PeterSturm,UniversitätTrier 9 SoziotechnischeSysteme Sommer2016 Konsequenz • Viele Server (104 und mehr) – Netzwerkpartitionierungen werden häufiger • Mehr Freiheitsgrade – Datenkonsistenz – Latenz • Nicht alle Anwendungen mögen das (c)PeterSturm,UniversitätTrier 10 SoziotechnischeSysteme Sommer2016 Themengebiete • Schema-less statt Schema • BASE statt ACID • Horizontale statt vertikale Skalierung • CAP – Irgendwann konsistent, garantiert! Mit oder ohne Schema (c)PeterSturm,UniversitätTrier 11 SoziotechnischeSysteme Sommer2016 Schema • A priori erstelltes Datenmodell – Objekte – Objektbeziehungen inkl. Kardinalitäten • Erweitertes Entity-Relationship-Modell • Abbildung auf Relationen – Normalisierung – Vermeidung von Datenredundanzen – Werzeugunterstützt (c)PeterSturm,UniversitätTrier 12 SoziotechnischeSysteme Sommer2016 Schema Spieler 2 0..* Name 1 Spiel 1..* Erge bnis 1 Elo 1..* Zug 1 Notation Stellung 1 1 0..* 0..* 1 0..* Komme ntar Inhalt 0..* Spieler PKey Name Elo 1 Carlse n 2868 2 Aronian 2813 3 Kramnik 2811 4 Anand 2783 5 Sturm 42 Zug GKey Lfd PosKey Notatio n 11 1 1234 f3 11 2 1235 e5 11 3 1243 g4 11 4 4242 Qh4# 10 1 1542 e4 (c)PeterSturm,UniversitätTrier Relationen Spiel GKe y Weiss Schwar z Resultat 10 1 2 1:0 11 5 1 0:1 13 SoziotechnischeSysteme Sommer2016 Stellung 4242 (Fool‘s Mate) SQL • Structured Query Language – – – – Definition Manipulation Control Retrieval • 1979 entstanden, 1986 ANSI, 1987 ISO • 2011: SQL/XML (c)PeterSturm,UniversitätTrier 14 SoziotechnischeSysteme Sommer2016 Join • Tabellenverknüpfung – Primär- und Fremdschlüssel Spiel Spieler PKey Name Elo 1 Carlse n 2868 2 Aronian 2813 3 Kramnik 2811 4 Anand 2783 5 Sturm 42 GKe y Weiss Schwar z Resultat 10 1 2 1:0 11 5 1 0:1 Schemaless • Unbekanntes Terrain • „Moving Target“ • Unstrukturierte /Semi-strukturierte Daten • Manchmal Strukturiert -> Semistrukturiert • Höhere Performanz durch Datenaggregation (c)PeterSturm,UniversitätTrier 15 SoziotechnischeSysteme Sommer2016 Schema Spieler 2 0..* Name Spiel 1 1..* Erge bnis 1 Elo Zug 1..* 1 Notation Stellung 1 1 0..* 0..* Komme ntar Inhalt 1 0..* 0..* Aggregation Spieler Name 2 0..* Spiel Erge bnis 1 1..* 1 Elo Zug Notation 1..* 1 Stellung 1 1 0..* 0..* (c)PeterSturm,UniversitätTrier Komme ntar Inhalt 0..* 1 0..* 16 SoziotechnischeSysteme Sommer2016 Beispiel JSON Bemerkungen • Aggregate in sich abgeschlossen • Groß • Datenredundanzen • Vielfältige Aggregationsmöglichkeiten • Nicht wirklich Schemalos – Implizit im Programmcode (c)PeterSturm,UniversitätTrier 17 SoziotechnischeSysteme Sommer2016 NoSQL (Aggregates) Map-Reduce NoSQL NoSQL NoSQL Muskeln statt Hirn (c)PeterSturm,UniversitätTrier 18 SoziotechnischeSysteme Sommer2016 Sauer oder seifig? (c)PeterSturm,UniversitätTrier 19 SoziotechnischeSysteme Sommer2016 A C I D tomicity onsistency solation urability Transaktion • Mehrere Operationen als Einheit auffassen – BOT ... ... EOT • Datenkonsistenz (c)PeterSturm,UniversitätTrier 20 SoziotechnischeSysteme Sommer2016 Atomicity • Unteilbarkeit • „Alles oder Nichts“ • EOT: Abort • EOT: Commit Abort T Consistency • Anwendungsdefiniert – BOT ... EOT • Datenkonsistenz Commit (c)PeterSturm,UniversitätTrier 21 SoziotechnischeSysteme Sommer2016 Isolation • Serialisierbarkeit T1 T2 t T1 T2 T2 T1 XOR Durability (c)PeterSturm,UniversitätTrier 22 SoziotechnischeSysteme Sommer2016 B A S E asically available oft state eventual consistency (c)PeterSturm,UniversitätTrier 23 SoziotechnischeSysteme Sommer2016 BASE • Verfügbarkeit • Wiederherstellbarer Zustand – – – – Näherungen Teilsichten Latenztoleranz Schwächt D in ACID ab • Schwache Konsistenz – Kopien „letztendlich“ identisch Flach oder hoch? (c)PeterSturm,UniversitätTrier 24 SoziotechnischeSysteme Sommer2016 – Vertikale Skalierung • Traditionelle DBMS Betonung „Distributed“ • NoSQL-Systeme – Horizontale Skalierung Doch vertikal? (c)PeterSturm,UniversitätTrier 25 SoziotechnischeSysteme Sommer2016 In-Memory • 1 TB Hauptspeicher = 8300 Euro – 8 GB DIMM, DDR3, 1800 MHz • ManyCore CPUs • Teile der DB im Hauptspeicher cachen • Cache- und speicher-optimierte Algorithmen Microsoft Hekaton • Beispiel bwin: 15k TPS auf 250k TPS • Teil von SQL Server 2012 (xVelocity) • Maßgeschneiderte Daten- und Indexstrukturen – Cache-Optimierung (Bw-Tree) • Lock-free Algorithmen • Multi-version Concurrency Control (c)PeterSturm,UniversitätTrier 26 SoziotechnischeSysteme Sommer2016 128 GB DDR4 DIMM • Samsung, Ende 2015 – TSV Interconnects, 144 DRAM Chips – 2.4 GT/s * 8 Byte = 19.2 Gbyte/s/DIMM Viel Speicher J 128 DIMMs (c)PeterSturm,UniversitätTrier 27 SoziotechnischeSysteme Sommer2016 HMC • Hybrid Memory Cubes • 320 GB/s statt 11 GB/s (DDR3 DIMM) (c)PeterSturm,UniversitätTrier 28 SoziotechnischeSysteme Sommer2016 TSV, HBM und HMC • Through Silicon Via (TSV) – Aktuell 4 bald 8 Layer • High Bandwidth Memory (HBM) • Hybrid Memory Cube (HMC) • 20 – 40 Gbyte/s Durchsatz HBM Specs (c)PeterSturm,UniversitätTrier 29 SoziotechnischeSysteme Sommer2016 Nvidia Pascal GPU 16 GB HBM2 1 TB/s 17 Milliarden Transistoren Bandbreiten (c)PeterSturm,UniversitätTrier 30 SoziotechnischeSysteme Sommer2016 Storage-Class Memory CPU Main Memory Disk CPU Main Memory PCIe SSD Disk CPU Main Memory SCM Disk Andere Stimmen • Geoffrey W. Burr, IBM – “es fehlt nur noch eine Zehnerpotenz” ACM Queue, Nov/Dez 2015 • Nanavati: (c)PeterSturm,UniversitätTrier 31 SoziotechnischeSysteme Sommer2016 Oder doch horizontal? Skalierungsvarianten • Sharding (= Partitionierung) – Verteilen der Daten über alle Knoten • Replikation – Master (RW) / Slave (R) – Peer-2-Peer (RW) • Schnelles Finden – Distributed Hash Table (DHT) (c)PeterSturm,UniversitätTrier 32 SoziotechnischeSysteme Sommer2016 DHT Hash Konsistenter Hash Einfügen neuer Knoten kann nur bei benachbarten Datensätzen einen Ortswechsel zur Folge haben. Alle Operationen liefern letztendlich ein Ergebnis Availability A CAP Theorem Arbeitet das System auch im Fall einer Partitionierung weiter? Consistency C Falls es mehrere Kopien eines Datums gibt, dann sind diese gleich (c)PeterSturm,UniversitätTrier P Partition Tolerance Brewer, 2000 33 SoziotechnischeSysteme Sommer2016 There is no free lunch! A C P A C CA P • Vertikale Skalierung • Keine Antwort bei erkannter Partitionierung • Beispiele – Klassische Datenbanksysteme (c)PeterSturm,UniversitätTrier 34 SoziotechnischeSysteme Sommer2016 A AP P C • Hauptsache Verfügbar • Hochgradig replizierte Daten • Inkonsistenzen tolerieren (Eventually) • Beispiele – DNS, NoSQL, ... A C CP P • Hauptsache konsistent – Auf alle Knoten warten • Beispiele – Geldautomat, ... (c)PeterSturm,UniversitätTrier 35 SoziotechnischeSysteme Sommer2016 Historisches • Wachsende Datenfluten • Pioniere – Google BigTable (2004) – Amazon Dynamo (2007) • Forschungsergebnisse sinnvoll anwenden – Verteilte Systeme, P2P, ... Datenmodelle • Schema – Relationen – Objekt-relational (UML) • Schemaless – – – – Key-Value Document Column-Family Graph (c)PeterSturm,UniversitätTrier 36 SoziotechnischeSysteme Sommer2016 Key Key Key Key • Größte Gruppe • „Value opaque“ Key Key Value Value Value Value Value Value • Beispiele – Cassandra, Dynamo(DB), Voldemort, Redis (In-Memory), MongoDB, FoundationDB (ACID), InfinityDB, ... Key Document • Value zu einem gewissen Grad strukturiert • Beispiele – CouchDB (JSON), MongoDB (BSON), OrientDB, SimpleDB (c)PeterSturm,UniversitätTrier 37 SoziotechnischeSysteme Sommer2016 Column-Family • Beispiele – BigTable, Accumulo, HBase, ... Carlsen Sturm Anand Graph 0:1 1:0 f3 • Eher SQL als NoSQL! – Einige bieten ACID – Vertikale Skalierung e5 • Graph Query Languages g 4 • Beispiele – Neo4j, OrientDB, FlockDB (Scala) e4 Qh4 (c)PeterSturm,UniversitätTrier 38 SoziotechnischeSysteme Sommer2016 • Vertikale Skalierung Fazit – In-Memory-Technologien • Horizontale Skalierung • Vorteile verteilter Systeme – Parallelarbeit / Performanz – Verfügbarkeit • Nachteile – Latenzen – Partitionierungen und Ausfälle – Schwache Konsistenz Polyglot Persistence • Wechselseitige Synergieeffekte • Innovative Ansätze finden Einzug in RDBMS • ACID (in Teilen) und SQL für NewSQL • Nutzung mehrerer DBMS – Application DB – Service-Orientierung (c)PeterSturm,UniversitätTrier 39 SoziotechnischeSysteme Sommer2016 Neue Denkmodelle • Vielfach RDBMS weiterhin 1. Wahl • Mut zu alternativen Ansätzen – Auch bei „kleineren“ Datenmengen • Übung / Erfahrung • Beherrschungsstufe Relatio nale Datenbank (c)PeterSturm,UniversitätTrier NoSQL Datenbank 40 SoziotechnischeSysteme Sommer2016 NewSQL Datenbank NewSQL Datenbank NewSQL Datenbank NewSQL Datenbank NewSQL Datenbank Referenzen (c)PeterSturm,UniversitätTrier 41