Architektura DBMS RNDr. Ondřej Zýka ndrej.zyka@prfinit.eu 2014 Prfinit. All rights reserved.
Histrie Relační mdel Edgar Frank Cdd 1969 - Derivability, Redundancy, and Cnsistency f Relatins Stred in Large Data Banks Relační mdel matematický mdel pr ukládání a správu dat Tří hdntvá lgika SQL True, False, Unknwn 1970 - Dnald Chamberlin, Raymnd F. Byce SEQUEL (Structured English Query Language) IBM - První návrh 1979 první kmerční implementace Oracle V2 (Relatin sftware) 2014 Prfinit. All rights reserved. 2
Histrie 1969 Cdd - Relační mdel 1970 Chamberlin, Byce SQL 1979 Oracle 2, basic SQL, n transactin 2014 Prfinit. All rights reserved. Zalžení Teradata 1980 HW - První gigabajtvý disk, váha 250 kg, cena $40,000 1981 HW - 640Kb RAM je dst pr každéh (??Gates) 2GB efektivně Windws 32 bit 1983 Oracle 3 - transactin 1984 Oracle 4 read-cnsistency 1984 Sybase funded by Mark Hffman and Bb Epstein in Berkeley 1985 Oracle 5 netwrking, client-server 1986 HW - Standartizace SCSI 1988 Oracle 6 PL/SQL, rw level lcking, ht backup 1987 Sybase - frmally released the SYBASE, Client-server, Transact SQL, 3
Histrie 1988 Sybase/Micrsft - sdílení kódu s firmu Micrsft (d rku 86) Teradata ve splupráci NCR uvádí databázvý pčítač 1991 HW 2.5" 100MB disk 1992 Oracle 7 referencial integrity, triggers 1993 Micrsft Win NT 4.21 1993 Sybase/Micrsft uknčení smluvy 1995 Micrsft SQL Server 6.0 1998 Sybase 11.9.2 rw-lewel lcking 1998 Micrsft SQL Server 7.0 1999 Oracle 8i java Teradata- největší zákaznická prdukční databáze 130 TB 1999 HW IBM 170MB a 340MB disky 2000 Micrsft SQL Server 2000 2001 Oracle 9i XML, RAC 2014 Prfinit. All rights reserved. 4
Histrie 2001 Sybase 12.5 XML, EJB 2003 Oracle 10 grid cmputing, flash back 2003 Windws Server 2003-64-bit system - překrčení 2GB RAM 2005 Sybase 15 new query-ptimalizatr, Cluster editin 2005 Micrsft SQL Server 2005 2005 HW 500GB disk (Hitachi GST) 2007 Oracle 11 Exadata 2007 HW 1TB disk (Hitachi GST) 2008 SQL Server 2008 2009 HW SSD nyní 64 GB 300MB/sec (3000MB/sec.) 2010 Micrsft SQL Server 2008R2 Oracle kupuje SUN SAP kupuje Sybase EMC kupuje Greenplum 2014 Prfinit. All rights reserved. IBM kupuje Netezza 5
Cíle a úkly DBMS DBMS Data Base Management Systém Ulžit datvé struktury Zabezpečit data Perzistence ulžení Autrizace přístupů Realizvat pžadavky uživatelů Změna datvých struktur Změna dat Dtazy nad daty Mnitring Spuštět kód Uživatelský interface 2014 Prfinit. All rights reserved. 6
Zdrje DBMS Datvé prstry Disky Diskvá ple SAN - Strage area netwrk NAS - Netwrk-attached strage SDD disky Paměť RAM Virtual memry SDD disky Prcesry Univerzální prcesry Specializvané prcesry (Nettezza FPGA) 2014 Prfinit. All rights reserved. 7
Zdrje DBMS Sběrnice Kmunikace mezi disky a pamětí Kmunikace mezi prcesry Síťvé prpjení Kmunikace s klientem Kmunikace mezi kmpnentami například mdy clusteru Operační systém správa a přidělvání zdrjů správa prcesů a threadů 2014 Prfinit. All rights reserved. 8
Důležitá čísla Tick f 3GHz prcesr L1 cache reference Branch mispredict L2 cache reference Mutex lck/unlck Main memry reference Cmpress 1K butes with Zippy Send 2K bytes ver 1 Gbps netwrk Read 1MB sequentially frm memry Rund trip within same datacenter Disk seek Read 1MB sequentially frm netwrk Read 1MB sequentially frm disk Send packet CA -> Netherland-> CA 0,3 ns 0,5 ns 5 ns 7 ns 100 ns 100 ns 10 000 ns 20 000 ns 250 000 ns 500 000 ns 10 000 000 ns 10 000 000 ns 30 000 000 ns 150 000 000 ns 2014 Prfinit. All rights reserved. Zdrj: Linux Magazine 9
BARCLAYS Crss Market Trading Slutin DELAYS Crss Market Trading x Strategie Jedn DC, (dbré) Best place DC, (lepší) Multiple DC & Klize, (nejlepší, nejdražší) Trans Atlantic Eurpe Nrth America 38.140ms Intra-Japan Trans Pacific Asia Pacific Latin America EMEA t Asia Pacific 78.642ms 13.870 ms 10.805ms 111.757ms 95.940ms 137.644ms 142.032ms 2014 Prfinit. All rights reserved. 10
Kmprmisy DBMS knzistence knkurence prstr čas select update 2014 Prfinit. All rights reserved.
Cíle DBMS Zvládnutí velkéh mnžství dat Jedntky MB pr jednduché systémy Desítky PB pr enterprise systémy Zvládnutí velkéh mnžství uživatelů Desítky až stvky Internetvý prvz Zvládnutí velkéh mnžství dtazů OLTP aplikace (Online transactin prcessing) Desítky za vteřinu Zvládnutí dtazů vyžadujících velké mnžství dat DDS apliakce (Decisin supprt systems) Stabilita Imunita vůči chybám Uživatelů, Aplikací, Operačníh systému, Hardware 2014 Prfinit. All rights reserved. 12
Disky Dnes kapacita i více než 1TB Stále jenm cca 200 phybů hlavičky za sekundu Čím více malých disků, tím lépe Diskvá ple Veliké keše Slžitý perační systém Mirrring Striping Přensvá rychlst Disk - 100MB sec Diskvé ple - SATA tereticky 6GB/sec 2014 Prfinit. All rights reserved. 13
Diskvé kapacity (Wikipedia) 2014 Prfinit. All rights reserved. 14
Banchmark Micrsft SQL server 2008 R2 2 skety 12 jader 3 8Gbps dual-prt HBA cards, 12 4-disk RAID1+0 primary data LUN Více viz Micrsft. Fast Track Data Warehuse 3.0 Reference Guide Published: 4 February 2011 2014 Prfinit. All rights reserved. 15
SSD disky Přístupvá dba (randm access) SSD disk Disk 0,1 ms 5-10 ms Přensvá rychlst 100-500 MB/s 100 MB/s Cena (2011) 1-2 $/GB 0.05-0.1 $/GB Kapacita (2011) 256GB (2TB) 4TB Ulžení dat Datvé keše 2014 Prfinit. All rights reserved. 16
Data write stack Datvý server dá příkaz zápisu na disk Datvý server > perační systém Operační systém > subrvý systém Subrvý systém > vlume manager Vlume manager > device driver Device driver > Hst-Bus-Adapter Hst-Bus-Adapter > Strage cntrler Strage cntrler > Disk Disk OS > medium Ulžení dat na NAS pr zjedndušení pmineme 2014 Prfinit. All rights reserved. 17
Paměť Systémvé struktury Nastavení Buffery pr třídění dat Buffery pr kód (java) Datvé buffery Čtení z paměti je mnhnásbně rychlejší Pžadvaná data se dají předpvědět na základě struktury ulžení dat neb dtazu Asynchrnní načítání dat Načítání celých datvých blků D bufferů se ukládají Čast pužívaná data Napsledy pužitá data Změněná data LRU algritmus Buffer výsledků Glbální buffery Lkální buffery 2014 Prfinit. All rights reserved. 18
LRU algritmus Hledání stránek hash table Žádné kpírvání stránek Odstranění dirty page vysce nárčné Wash maker Unikátní přístup na stránku Spinlck 2014 Prfinit. All rights reserved. 19
Prcesy Prcesy vyknávající pžadavky klientů Pdpůrné prcesy Listener Správa diskvých prstrů Checkint prcess Sběr statistik Mnitring Backup prcesy 2014 Prfinit. All rights reserved. 20
Implementace prcesů Prcesy peračníh systému Řízené peračním systémem Přepínání kntextu na úrvni peračníh systému Každý prces vlastní adresní prstr Thready peračníh systému Jedntný adresní prstr Řízen peračním systémem Vlastní řešení prcesů Jeden prces, jedntlivé prcesy jsu v něm implementvány interně Jedntný adresní prstr Kntrla nad správu prcesů bez nutnsti zásahu OS nezávislst nad OS 2014 Prfinit. All rights reserved. 21
Implementace prcesů Prcesy neb thready v peračním systému mají větší nárčnst při změně kntextu (prvádí perační systém) Větší závislst na verzi peračním systému ladění parametrů na úrvni peračníh systému Při pužití vlastníh řízení každá synchrnní IO perace neb vlání jádra blkuje i statní prcesy Každá chyba v sftware vlivní i další prcesy 2014 Prfinit. All rights reserved. 22
Implementace transakčníh lgu Write-ahead lg mdel Lg transakce musí být zapsán na disk v kamžiku cmmit transakce Zajištění schpnsti ztavit se při pádu serveru Transakční lg na úrvni databáze Záznamy transakčníh lgu Začátek a knec transakce U každé změny stav před a p změně Jakékliv změny struktury databáze Alkace a dealkace datvých stránek Histrická data 2014 Prfinit. All rights reserved. 23
Implementace transakčníh lgu Datvé stránky se nezapisují kamžitě Checkpint Uvlnění z datvé keše Další důvdy Recvery Prjde se transakční lg d psledníh checkpintu Kmitvané transakce se praví na cílvý stav Zrušené transakce se praví na stav před transakcí 2014 Prfinit. All rights reserved. 24
Implementace transakčníh lgu Page 105 Page 106 Page 107 Page 108 Page109 Page 110 Min Lg sequence Number Oldest pen transactin End f Lg Start f Lg Last checkpint Truncated pages 2014 Prfinit. All rights reserved.
Kritická místa architektury Operační paměť a IO perace Pkud je jí mál, je vhdné pužít malé IO perace Pkud rstu data, je velké mnžství malých perací limitující Operační paměť a pčet klientů Pkud je klientů mál, je vhdné maximum infrmací držet ve vlastním prstru klienta Pkud je klientů hdně, je nutné maximum infrmací držet v glbálním prstru serveru 2014 Prfinit. All rights reserved. 26
Kritická místa architektury Operační paměť a rychlst prcesru 4.77 MHz (1981) 3.60 GHz (2009), více úrvní keší Pmalý prcesr 1I/O perace dpvídá zpracvání 20 stránek v paměti Rychlý prcesr přístup na disk 1000-krát dražší Vyplatí se udržvat data v paměti In-memry database 2014 Prfinit. All rights reserved. 27
Kritická místa architektury Diskvé perace a ulžení dat Pkud mají být data zpracvány, musí prjít prcesrem Kmprimace dat rychlejší přens dat z disku d paměti, je nárčnější na výkn prcesru Přenesení rzhdvání datech z prcesru na úrveň řadiče disků Pžadavek na maximální paralelizaci diskvéh subsystému 2014 Prfinit. All rights reserved. 28
Paralelní architektury Shared memry Shared disk P P M M M P P P M P P M P 2014 Prfinit. All rights reserved.
Paralelní architektury Shared nthing M P M P M P 2014 Prfinit. All rights reserved.
Shared memry Prcesry a disk mají přístup d splečné paměti Vysce efektivní kmunikace mezi prcesry data v paměti jsu přístupná všem prcesrům Nejčastější HW bsahuje 2 neb 4 prcesry Prcesry mhu bsahvat více jader Prces (cre) bsluhuje jeden pžadavek Parallel query rzdělení zpracvání jednh pžadavku na více prcesrů Maximálně 32 až 64 prcesrů Úzké míst je kmunikace s pamětí Oracle, Micrsft, Sybase, MySQL 2014 Prfinit. All rights reserved. 31
Shared disk Všechny prcesry kmunikují s disky, data si ukládají ve vlastní paměti Vyská míra dstupnsti výpadek prcesru může nahradit jiný prcesr Úzké míst je kmunikace s disky IBM Sysplex, DEC clusters s databází Rdb 2014 Prfinit. All rights reserved. 32
Shared nthing Každý prcesr má vlastní paměť i data Data jsu zpracvávána puze příslušným prcesrem nepředávají se mezi ndy Ndy splu kmunikují přes síť, předávají si pžadavky a výsledky Architektura umžňuje rzšíření na tisíce ndů Teradata, Tandem, Oracle-n CUBE 2014 Prfinit. All rights reserved. 33
Klient server Jeden server nabízí služby pr mnh klientů Všichni klienti vidí jeden braz dat Klienti si neudržují data Klienti předávají puze příkazy a dstávají výsledky Opakem jsu jednuživatelské databáze Micrsft Acces dbase 2014 Prfinit. All rights reserved.
Klient server Centralizace Mdelu Dat Byznys lgiky funkcinality Integrity - věřvání dat Ověření dat na klientvi Duplikace věření Bezpečnstních pravidel Autentizace na úrvni server - aplikace Autrizace na úrvni aplikace Rle na úrvni serveru Nasazení změn Nutnst pdprvat více verzí klientů 2014 Prfinit. All rights reserved. 35
Živtní cyklus uživatelskéh pžadavku Navázání spjení s klientem Przumění pžadavku Optimalizace a vytvření výpčtu Vlastní výpčet Předání výsledků 2014 Prfinit. All rights reserved. 36
Navázání spjení s klientem Klientský sftware Infrmace uživateli identifikace, časvé pásm, kódvá stránka Vytvření klientskéh prcesu Adresářvé služby pr nalezení serveru Síťvý listener Navázání spjení Vytvření prcesu spravující klientské připjení Alkace struktur pr správu klientskéh připjení Síťvá kmunikace Prstr pr výsledky Lkální prstr pr výpčty Prstr pr uživatelská data 2014 Prfinit. All rights reserved. 37
Przumění pžadavku Parser syntaktická analýza Mapvání na bjekty v databázi Shrmáždění infrmací pužitých bjektech Ověření práv Infrmace struktuře Struktura tabulek Indexy Partitining Umístění tabulek na discích Statistiky 2014 Prfinit. All rights reserved. 38
Vytvření algritmu výpčtu Sémantická analýza Identifikace pžadvaných knstruktů Vytvření algritmu výpčtu Úpravy na základě schpnstí výpčetníh engine In klauzule OR strategie Optimalizace na základě sémantiky Transakční uzávěr Datvé knstanty Blean lgic ptimalizatin Vnřený select - jin 2014 Prfinit. All rights reserved. 39
Optimalizace Optimalizátr Rule based ptimalizatin Oracle d verze 10g OPTIMIZER_MODE=RULE Cst base ptimalizatin Oracle 11 Micrsft Sybase Úprava dtazu Jin ptimalizatin Special ptimalizatin Parallel prcesisng Přístupvé metdy k datům 2014 Prfinit. All rights reserved. 40
Vlastní výpčet Executin tree Executin engine Asynchrnní čtení dat Pužití datvých keší Temprary space Query recmpilatin 2014 Prfinit. All rights reserved. 41
Předání výsledků Datasety Definice Data Cursry Chyby Zprávy 2014 Prfinit. All rights reserved. 42
Příklady 2014 Prfinit. All rights reserved.
Oracle histry 1972 - Oracle 2, basic SQL, n transactin 1983 Versin 3 - transactin 1984 Versin 4 read- cnsistency 1985 Versin 5 netwrking, client-server 1988 Versin 6 PL/SQL, rw level lcking, ht backup 1992 Versin 7 referencial integrity, triggers 1999 Versin 8i java 2001 Versin 9i XML, RAC 2003 Versin 10 grid cmputing, flash back 2007 Versin 11 - Exadata 2014 Prfinit. All rights reserved. 44
2014 Prfinit. All rights reserved. 45
Oracle Oddělený listener Prcesy peračníh systému Prcess Mnitr Prcess (PMON) System Mnitr Prcess (SMON) Database Writer Prcess (DBWn) Lg Writer Prcess (LGWR) Checkpint Prcess (CKPT) Manageability Mnitr Prcesses (MMON and MMNL) Recverer Prcess (RECO) Diskvé prstry Dataspaces User Systém Temp On-line redlg Archive redlg Flashback lg 2014 Prfinit. All rights reserved. 46
Oracle SGA Systém Glbal Area Database Buffer Cache Red Lg Buffer Shared Pl Large Pl Java Pl Streams Pl Fixed SGA PGA Prgram Glbal Area SQL Wrk area Srt, Hash, Bitmap merge Private SQL Area Sessin memry, Persitent area, Runtime Area 2014 Prfinit. All rights reserved. 47
Sybase Engine Prces na prcesru User prcesses Queue Shared memry Stránky Datvé, lgu Keše Datvé Kódu Servervé struktury Diskvé prstry Data Transakční lgy 2014 Prfinit. All rights reserved. 48
2014 Prfinit. All rights reserved. 49
Limity databází SQL Server Database Engine bject Bytes per shrt string clumn 8,000 Bytes per GROUP BY, ORDER BY 8,060 Bytes per index, freign, primary key 900 Bytes per rw 8 8,060 Bytes per varchar(max), varbinary(max), xml, text, r image clumn Clumns in GROUP BY, ORDER BY Clumns per index, freign, primary key 16 Maximum sizes/numbers SQL Server (32-bit) 2^31-1 Clumns per nnwide/wide table 1,024/30000 Clumns per SELECT/INSERT statement 4096 Limited nly by number f bytes Database size 524,272 terabytes Databases per instance f SQL Server 32,767 Freign key table references per table 4 253 Identifier length (in characters) 128 Lcks per instance f SQL Server 5 Up t 2,147,483,647 2014 Prfinit. All rights reserved.
Limity databází SQL Server Database Engine bject Nested stred prcedure levels 6 32 Nested subqueries 32 Nested trigger levels 32 Nnclustered indexes per table 999 Parameters per stred prcedure 2,100 Parameters per user-defined functin 2,100 REFERENCES per table 253 Rws per table Tables per database 3 Partitins per partitined table r index 1,000 Tables per SELECT statement Triggers per table 3 Clumns per UPDATE statement (Wide Tables) 4096 User cnnectins 32,767 Maximum sizes/numbers SQL Server (32-bit) Limited by available strage Limited by number f bjects in a database Limited nly by available resurces Limited by number f bjects in a database 2014 Prfinit. All rights reserved.
11:27 Limity databází 2014 2014 Prfinit. All rights reserved.
C si zapamatvat Které zdrje HW a OS využívají databázvé systémy Jak pracuje datvá keš typu LRU C t je write-ahead lg mdel a k čemu služí Rzdíly mezi shared memry a shared nthing architekturu Které všechny služby centralizuje architektura Klient-server Jaké jsu základní krky živtníh cyklu dtazu Jak prbíhá navázání spjení mezi serverem a klientem 2014 Prfinit. All rights reserved. 53
2014 Prfinit. All rights reserved. Diskuse