Architektura DBMS
MI-DSP – 2013/14 RNDr. Ondřej Zýka,
[email protected]
Obsah o o o o o o o
Cíle a úkoly DBMS Zdroje DBMS Limity DBMS Paralelní architektury Životní cyklus uživatelského požadavku Disky, paměť, procesy Příklady architektury
Cíle a úkoly DBMS o DBMS – Data Base Management Systém
o Uložit datové struktury o Zabezpečit data – Perzistence uložení – Autorizace přístupů
o Realizovat požadavky uživatelů – – – – –
Změna datových struktur Změna dat Dotazy nad daty Monitoring Spouštět kód
o Uživatelský interface
Zdroje DBMS o Datové prostory – – – – –
Disky Disková pole SAN - Storage area network NAS - Network-attached storage SDD disky
o Paměť – RAM – Virtual memory – SDD disky
o Procesory – Univerzální procesory – Specializované procesory (Nettezza FPGA)
Zdroje DBMS o Sběrnice – Komunikace mezi disky a pamětí – Komunikace mezi procesory
o Síťové propojení – Komunikace s klientem – Komunikace mezi komponentami – například mody clusteru
o Operační systém – správa a přidělování zdrojů – správa procesů a threadů
Kompromisy DBMS
Limity DBMS o Zvládnutí velkého množství dat – Jednotky MB pro jednoduché systémy – Desítky PB pro enterprise systémy
o Zvládnutí velkého množství uživatelů – Desítky až stovky – Internetový provoz
o Zvládnutí velkého množství dotazů – OLTP aplikace (Online transaction processing) – Desítky za vteřinu
o Zvládnutí dotazů vyžadujících velké množství dat – DDS apliakce (Decision support systems)
Limity DBMS o Stabilita – Imunita vůči chybám • Uživatelů • Aplikací • Operačního systému • Hardware
Disky o Dnes kapacita i více než 1TB – Stále jenom cca 200 pohybů hlavičky za sekundu – Čím více malých disků, tím lépe
o Disková pole – – – –
Veliké keše Složitý operační systém Mirroring Striping
o Přenosová rychlost – Disk - 100MB sec – Diskové pole - SATA teoreticky 6GB/sec
Banchmark – Microsoft SQL server 2008 R2 o 2 sokety o 12 jader o 3 8Gbps dual-port HBA cards, o 12 4-disk RAID1+0 primary data LUN
o
Více viz Microsoft. Fast Track Data Warehouse 3.0 Reference Guide Published: 4 February 2011
SSD disky SSD disk
Disk
Přístupová doba (random access)
0,1 ms
5-10 ms
Přenosová rychlost
100-500 MB/s
100 MB/s
Cena (2011)
1-2 $/GB
0.05-0.1 $/GB
Kapacita (2011)
256GB (2TB)
4TB
o Uložení dat o Datové keše
Data write stack o Datový server dá příkaz zápisu na disk – – – – – – – –
Datový server –> operační systém Operační systém –> souborový systém Souborový systém –> volume manager Volume manager –> device driver Device driver –> Host-Bus-Adapter Host-Bus-Adapter –> Storage controler Storage controler –> Disk Disk OS –> medium
o Uložení dat na NAS pro zjednodušení pomineme
Konzistence dat o Microsoft DBCC příkazy – kontroly konzistence databáze – Kontrola interních struktur, indexů – SQL Server 2005 – checksum protection
o Oracle HARD iniciative – vypočet checksum pro zapsané bloky
Paměť o Systémové struktury – Nastavení – Buffery pro třídění dat – Buffery pro kód (java)
o Datové buffery – Čtení z paměti je mnohonásobně rychlejší – Požadovaná data se dají předpovědět na základě struktury uložení dat nebo dotazu • Asynchronní načítání dat • Načítání celých datových bloků – Do bufferů se ukládají • Často používaná data • Naposledy použitá data • Změněná data – LRU algoritmus
o Buffer výsledků o Globální buffery o Lokální buffery
LRU algoritmus
o Hledání stránek – hash table o Žádné kopírování stránek o Odstranění dirty page – vysoce náročné – Wash maker
o Unikátní přístup na stránku – Spinlock
Procesy o Procesy vykonávající požadavky klientů
o Podpůrné procesy – – – – – –
Listener Správa diskových prostorů Checkoint process Sběr statistik Monitoring Backup procesy
Implementace procesů o Procesy operačního systému – Řízené operačním systémem – Přepínání kontextu na úrovni operačního systému – Každý proces vlastní adresní prostor
o Thready operačního systému – Jednotný adresní prostor – Řízeno operačním systémem
o Vlastní řešení procesů – Jeden proces, jednotlivé procesy jsou v něm implementovány interně – Jednotný adresní prostor – Kontrola nad správou procesů bez nutnosti zásahu OS – nezávislost nad OS
Implementace procesů o Procesy nebo thready v operačním systému mají větší náročnost při změně kontextu (provádí operační systém) o Větší závislost na verzi operačním systému – ladění parametrů na úrovni operačního systému o Při použití vlastního řízení každá synchronní IO operace nebo volání jádra blokuje i ostatní procesy o Každá chyba v software ovlivní i další procesy
Implementace transakčního logu o Write-ahead log model – Log transakce musí být zapsán na disk v okamžiku commit transakce – Zajištění schopnosti zotavit se při pádu serveru
o Transakční log na úrovni databáze o Záznamy transakčního logu – – – – –
Začátek a konec transakce U každé změny stav před a po změně Jakékoliv změny struktury databáze Alokace a dealokace datových stránek Historická data
Implementace transakčního logu o Datové stránky se nezapisují okamžitě – Checkpoint – Uvolnění z datové keše – Další důvody
o Recovery – Projde se transakční log od posledního checkpointu – Komitované transakce se opraví na cílový stav – Zrušené transakce se opraví na stav před transakcí
Implementace transakčního logu
Page 105
Page 106
Page 107
Page 108
Page109
End of Log
Min Log sequence Number Oldest open transaction Start of Log Last checkpoint Truncated pages
Page 110
Kritická místa architektury o Operační paměť a IO operace – Pokud je jí málo, je vhodné použít malé IO operace – Pokud rostou data, je velké množství malých operací limitující
o Operační paměť a počet klientů – Pokud je klientů málo, je vhodné maximum informací držet ve vlastním prostoru klienta – Pokud je klientů hodně, je nutné maximum informací držet v globálním prostoru serveru
Kritická místa architektury o Operační paměť a rychlost procesoru – 4.77 MHz (1981) – 3.60 GHz (2009), více úrovní keší – Pomalý procesor • 1I/O operace odpovídá zpracování 20 stránek v paměti – Rychlý procesor přístup na disk 1000-krát „dražší“ • Vyplatí se udržovat data v paměti • In-memory database
Kritická místa architektury o Diskové operace a uložení dat – Pokud mají být data zpracovány, musí projít procesorem – Komprimace dat rychlejší přenos dat z disku do paměti, je náročnější na výkon procesoru – Přenesení rozhodování o datech z procesoru na úroveň řadiče disků – Požadavek na maximální paralelizaci diskového subsystému
Paralelní architektury o Shared memory
o Shared disk
P
M
P
P
M
P
P
M
P
P
M
P
M
Paralelní architektury o Shared nothing
M
P
M
P
M
P
Shared memory o Procesory a disk mají přístup do společné paměti o Vysoce efektivní komunikace mezi procesory – data v paměti jsou přístupná všem procesorům o Nejčastější HW obsahuje 2 nebo 4 procesory o Procesory mohou obsahovat více jader o Proces (core) obsluhuje jeden požadavek o Parallel query – rozdělení zpracování jednoho požadavku na více procesorů o Maximálně 32 až 64 procesorů o Úzké místo je komunikace s pamětí o Oracle, Microsoft, Sybase, MySQL
Shared disk o Všechny procesory komunikují s disky, data si ukládají ve vlastní paměti o Vysoká míra dostupnosti – výpadek procesoru může nahradit jiný procesor o Úzké místo je komunikace s disky o IBM Sysplex, DEC clusters s databází Rdb
Shared nothing o Každý procesor má vlastní paměť i data o Data jsou zpracovávána pouze příslušným procesorem – nepředávají se mezi nody o Nody spolu komunikují přes síť, předávají si požadavky a výsledky o Architektura umožňuje rozšíření na tisíce nodů o Teradata, Tandem, Oracle-n CUBE
Klient server o Jeden server nabízí služby pro mnoho klientů o Všichni klienti vidí jeden obraz dat o Klienti si neudržují data o Klienti předávají pouze příkazy a dostávají výsledky o Opakem jsou jednouživatelské databáze – Microsoft Acces – dBase
Klient server o Centralizace – – – –
Modelu Dat Byznys logiky – funkcionality Integrity - ověřování dat Ověření dat na klientovi Duplikace ověření – Bezpečnostních pravidel Autentizace na úrovni server - aplikace Autorizace na úrovni aplikace • Role na úrovni serveru
– Nasazení změn Nutnost podporovat více verzí klientů
Distribuce logiky o o o o
Tlustý klient Tenký klient Klient-server Třívrstvá architektura
o MVC – Model View Controler
http://en.wikipedia.org/wiki/File:MVC-Process.png
Distribuované transakce o Požadavky klienta vyřizuje více serverů o Požadavky (transakce) jsou koordinovány jedním transakčním koordinátorem o Database link, proxy table o !! Výkon je dán nejslabším místem
Životní cyklus uživatelského požadavku o o o o o
Navázání spojení s klientem Porozumění požadavku Optimalizace a vytvoření výpočtu Vlastní výpočet Předání výsledků
Navázání spojení s klientem o o o o o o o o
Klientský software Informace o uživateli – identifikace, časové pásmo, kódová stránka Vytvoření klientského procesu Adresářové služby pro nalezení serveru Síťový listener Navázání spojení Vytvoření procesu spravující klientské připojení Alokace struktur pro správu klientského připojení – – – –
Síťová komunikace Prostor pro výsledky Lokální prostor pro výpočty Prostor pro uživatelská data
Porozumění požadavku o Parser – syntaktická analýza o Mapování na objekty v databázi o Shromáždění informací o použitých objektech – Ověření práv – Informace o struktuře • Struktura tabulek • Indexy • Partitioning • Umístění tabulek na discích • Statistiky
Vytvoření algoritmu výpočtu o Sémantická analýza o Identifikace požadovaných konstruktů o Vytvoření algoritmu výpočtu o Úpravy na základě schopností výpočetního engine – In klauzule – OR strategie
o Optimalizace na základě sémantiky – – – –
Transakční uzávěr Datové konstanty Boolean logic optimalization Vnořený select - join
Optimalizace o Optimalizátor – Rule based optimalization • Oracle do verze 10g • OPTIMIZER_MODE=RULE – Cost base optimalization • Oracle 11 • Microsoft • Sybase
o Úprava dotazu o o o o
Join optimalization Special optimalization Parallel procesisng Přístupové metody k datům
Vlastní výpočet o o o o o o
Execution tree Execution engine Asynchronní čtení dat Použití datových keší Temporary space Query recompilation
Předání výsledků o Datasety – Definice – Data
o Cursory o Chyby o Zprávy
Příklady
o Oracle
o Sybase
Oracle history o o o o o o o o o o
1972 - Oracle 2, basic SQL, no transaction 1983 – Version 3 - transaction 1984 – Version 4 – read- consistency 1985 – Version 5 – networking, client-server 1988 – Version 6 – PL/SQL, row level locking, hot backup 1992 – Version 7 – referencial integrity, triggers 1999 – Version 8i – java 2001 – Version 9i – XML, RAC 2003 – Version 10 – grid computing, flash back 2007 – Version 11 - Exadata
Oracle o Oddělený listener o Procesy operačního systému – – – – – – –
Process Monitor Process (PMON) System Monitor Process (SMON) Database Writer Process (DBWn) Log Writer Process (LGWR) Checkpoint Process (CKPT) Manageability Monitor Processes (MMON and MMNL) Recoverer Process (RECO)
o Diskové prostory –
Dataspaces • • •
– – –
User Systém Temp
On-line redolog Archive redolog Flashback log
Oracle o SGA – Systém Global Area – – – – – – –
Database Buffer Cache Redo Log Buffer Shared Pool Large Pool Java Pool Streams Pool Fixed SGA
o PGA – Program Global Area – SQL Work area – Sort, Hash, Bitmap merge – Private SQL Area – Session memory, Persitent area, Runtime Area
Sybase o Engine – Proces na procesoru
o User processes – Queue
o Shared memory – Stránky Datové, logu – Keše Datové Kódu
o Serverové struktury o Diskové prostory – Data – Transakční logy
Limity databází
Bytes per short string column
Maximum sizes/numbers SQL Server (32bit) 8,000
Bytes per GROUP BY, ORDER BY
8,060
Bytes per index, foreign, primary key
900
Bytes per row8
8,060
SQL Server Database Engine object
Bytes per varchar(max), varbinary(max), xml, text, or image column 2^31-1 Columns in GROUP BY, ORDER BY
Limited only by number of bytes
Columns per index, foreign, primary key
16
Columns per nonwide/wide table
1,024/30000
Columns per SELECT/INSERT statement
4096
Database size
524,272 terabytes
Databases per instance of SQL Server
32,767
Foreign key table references per table4
253
Identifier length (in characters)
128
Locks per instance of SQL Server5
Up to 2,147,483,647
Limity databází
Nested stored procedure levels6
Maximum sizes/numbers SQL Server (32bit) 32
Nested subqueries
32
Nested trigger levels
32
Nonclustered indexes per table
999
Parameters per stored procedure
2,100
Parameters per user-defined function
2,100
REFERENCES per table
253
Rows per table
Limited by available storage Limited by number of objects in a database 1,000
SQL Server Database Engine object
Tables per database3 Partitions per partitioned table or index Tables per SELECT statement
Columns per UPDATE statement (Wide Tables)
Limited only by available resources Limited by number of objects in a database 4096
User connections
32,767
Triggers per table3
Další vývoj o o o o o o o o
Specializovaný hardware (operační systém) Appliance In-memory database (HANA) Specializované databáze Distribuované řešení – claud databáze Ústup od ACID principů (noSQL) Uživatelská přívětivost - GUI Snadnost administrace
Co si zapamatovat o o o o o o o
Které zdroje HW a OS využívají databázové systémy Jak pracuje datová keš typu LRU Co to je write-ahead log model a k čemu slouží Rozdíly mezi shared memory a shared nothing architekturou Které všechny služby centralizuje architektura Klient-server Jaké jsou základní kroky životního cyklu dotazu Jak probíhá navázání spojení mezi serverem a klientem
www.profinit.eu
Diskuse