Transakce. 2014 Profinit. All rights reserved.

Podobné dokumenty
Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

Transakce a zamykání Jiří Tomeš

Dimenzionální modelování Profinit. All rights reserved.

Information and Data Management Profinit. All rights reserved.

Databáze 2011/2012 Transakce. RNDr.David Hoksza, Ph.D.

GLOBÁLNÍ ARCHITEKTURA ROB

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

16. Kategorizace SW chyb, kritéria korektnosti a použitelnosti, spolehlivost SW

Integrace dat Profinit. All rights reserved.

Teradata basic Profinit. All rights reserved.

Metadata Profinit. All rights reserved.

Vnitřní předpis města Náchoda pro zadávání veřejných zakázek malého rozsahu (mimo režim zákona č. 137/2006 Sb., o veřejných zakázkách)

DeepBurner Free 1.9. Testování uživatelského rozhraní s uživateli Deliverable B1 TUR Testování uživatelských rozhraní 2011 ČVUT FEL

SEGMENT SPOTŘEBITEL. (úvěry pro FOO)

Specifikace pro SW aplikaci Start-up business.

HTML šablona v MarushkaDesignu

Úplná pravidla soutěže v rámci komunikační kampaně Ria MÁNIE

Technická specifikace předmětu plnění. VR Organizace dotazníkového šetření mobility obyvatel města Bratislavy

Databáze II. 2. přednáška. Helena Palovská

Řízení kvality, kontroling, rizika. Branislav Lacko Martina Polčáková. Kateřina Hrazdilová Bočková - konzultantka

Databáze. Optimalizace, základní konstrukty T-SQL David Hoksza

Přeložit spolupráce s externím serverem Jazyk možnost nastavení jazykové kontroly a výběr jazyka

Databáze 2011/2012. Optimalizace, základní konstrukty T-SQL RNDr.David Hoksza, Ph.D.

Výzva k podání nabídek

Bohužel nejste jediní. Jak se v této džungli orientovat a jaké jsou možnosti při prodeji nemovitosti se dozvíte na následujících stránkách.

PEXESO UŽIVATELSKÝ MANUÁL

PRAVIDLA PRO ŽADATELE A PŘÍJEMCE PODPORY. v Operačním programu Životní prostředí pro období

9. Transakční zpracování

SMĚRNICE č. 5 ŠKOLENÍ ZAMĚSTNANCŮ, ŽÁKŮ A DALŠÍCH OSOB O BEZPEČNOSTI A OCHRANĚ ZDRAVÍ PŘI PRÁCI (BOZP)

Optimalizace Profinit. All rights reserved.

Přednášky Teorie řízení Tereza Sieberová, 2015 LS 2014/2015

Projektový manuál: SME Instrument Brno

Témata modulu a úkoly jsou využitelné ve výuce tematické oblasti RVP Člověk a svět práce ve středních školách.

Univerzita Karlova v Praze, KOLEJE A MENZY, Voršilská 1, Praha 1

EXTRAKT z mezinárodní normy

Příjem a hodnocení žádostí o podporu

Datová kvalita Profinit. All rights reserved.

Program prevence nehod a bezpečnosti letů

Maturitní prací student osvědčuje svou schopnost samostatně pracovat na projektech a aktivně využívat nabyté zkušenosti

MMR SLUŽBY MOBILNÍHO OPERÁTORA. nadlimitní veřejná zakázky otevřeného řízení. Česká republika, Ministerstvo pro místní rozvoj

RAILTRAC 1000 UNIKÁTNÍ, FLEXIBILNÍ A VÍCEÚČELOVÝ SYSTÉM PRO SVAŘOVÁNÍ A ŘEZÁNÍ

Databázové patterny Profinit. All rights reserved.

Architektura DBMS Profinit. All rights reserved.

KAPITOLA II ZÁKON NA OCHRANU OVZDUŠÍ ZÁKLADNÍ POVINNOSTI...13 KAPITOLA III PROVÁDĚCÍ PŘEDPISY K ZÁKONU O OVZDUŠÍ ZÁKLADNÍ POPIS...

Co dál po registraci Žádosti o dotaci z PRV???

CZ Regulaèní ventily Regulaèní ventily s omezovaèem prùtoku BEE line

Design databáze. MI-DSP 2013/14 RNDr. Ondřej Zýka,

Návrh zákona o evidenci tržeb připomínkové řízení

USNESENÍ. Č. j.: ÚOHS-S339/2012/VZ-21769/2012/523/Krk Brno 20. prosince 2012

Simulátor krizových procesů na úrovni krizového štábu. Systémová dokumentace

uzavřená podle 1746 odst. 2 občanského zákoníku níže uvedeného dne, měsíce a roku mezi následujícími smluvními stranami

UNIVERZITA PALACKÉHO V OLOMOUCI

Stanovy SKODAMOTOR Veterán Klubu

CZ. Regulační ventily Regulační ventily s omezovačem průtoku BEE line -1-

STANOVY SDRUŽENÍ DOCTOR WHO FANCLUB ČR

Posuzování zdravotní způsobilosti k řízení motorových vozidel jako součásti výkonu práce

k elektronickému výběrovému řízení na úplatné postoupení pohledávek z titulu předčasně ukončených leasingových smluv

Co JE, K ČEMU JE A JAK SE PRACUJE S GISEM

INFORMACE SPOLEČNOSTI V SOUVISLOSTI S POSKYTOVÁNÍM INVESTIČNÍCH SLUŽEB

EVROPSKÁ UNIE EVROPSKÝ FOND PRO REGIONÁLNÍ ROZVOJ ŠANCE PRO VÁŠ ROZVOJ SMLOUVA O DÍLO

METODIKA ZPŮSOBILÝCH VÝDAJŮ OPERAČNÍHO PROGRAMU LIDSKÉ ZDROJE A ZAMĚSTNANOST

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE PŘÍKAZ

INFORMACE O NOVÉ VERZI POSKI REAL

NÁVODNÁ STRUKTURA MÍSTNÍHO AKČNÍHO PLÁNU VZDĚLÁVÁNÍ

Všeobecné smluvní podmínky provozu služby Outsourcing e- spis LITE

silná pevná konstrukce, bezúdržbový řetězový pohon, krátká základní délka pro ušetření místa velikost Ø mm

Elektrická deska udržující teplo

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

Veřejná zakázka SUSEN generální dodávka staveb v areálu Řež. Dodatečná informace č. 1 k zadávacím podmínkám

Upomínky a kontroly E S O 9 i n t e r n a t i o n a l a. s.

Sledování provedených změn v programu SAS

METODIKA ZPŮSOBILÝCH VÝDAJŮ OPERAČNÍHO PROGRAMU LIDSKÉ ZDROJE A ZAMĚSTNANOST

PŘEDSTAVENÍ PRODUKTU AUTOPOJIŠTĚNÍ PRO SPOLEČNOST VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA

Paralelní přístup k databázi

Kotlík na polévku Party

VŠB Technická univerzita, Fakulta ekonomická. Katedra regionální a environmentální ekonomiky REGIONÁLNÍ ANALÝZA A PROGRAMOVÁNÍ.

Želešice - vodovodní řád pro zónu k podnikání

GeoDTM. Uživatelská příručka. Výstup byl vytvořen s finanční podporou TA ČR v rámci projektu TA Verze 1.0

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Úplná pravidla soutěže Windows W8.1 Zóna komfortního nákupu

BEZPEČNOSTNÍ LIST podle nařízení Evropského parlamentu a Rady (ES) č. 1907/2006

Databáze I. 5. přednáška. Helena Palovská

ŠKOLICÍ PŘÍRUČKA POŽÁRNÍ OCHRANA

CZ Regulační ventily LDM COMAR line

CZ. Regulační ventily LDM COMAR line -1-

ONLINESKLAD.CZ. Vysvětlení pojmů: V tomto manuálu i v celém systému figurují 3 základní osoby: Popis administračního rozhraní

Provozní řád služby zálohování CIT

Vedení projektů, Odhadování, historie. Jiří Mach

Obsah cvic ení procvic ovane dovednosti

Oprava a modernizace panelového bytového domu Pod Špičákem č.p , Česká Lípa

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE

cobas 4800 systém Uživatelská příručka Verze softwaru 1.1 HPV testy

Stanovisko k dokumentu Řešení dalšího postupu územně ekologických limitů těžby hnědého uhlí v severních Čechách ze srpna 2015

Lymfodrenážní terapeutický systém Q-1000

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Vizualizace TIN (trojúhelníková nepravidelná síť) v Marushka Designu

Příloha č. 9. Podmínky Výběru hotovosti a Bezhotovostního převodu. 1. Podmínky Výběru hotovosti prostřednictvím Bankomatu

ZNALECKÝ POSUDEK. č

Transkript:

Transakce RNDr. Ondřej Zýka ndrej.zyka@prfinit.eu 2014 Prfinit. All rights reserved.

Obsah Definice Savepint, autnmní transakce Transakční módy Izlační úrvně Implementace pmcí zámků Implementace pmcí snapshtů Oracle, Micrsft SQL server Deadlck 2014 Prfinit. All rights reserved. 2

Transakce Mnžina perací s daty, které splňují pdmínku ACID Atmicity Cnsistency Islatin Durability 2014 Prfinit. All rights reserved. 3

Transakce Atmicity Změna musí být prvedena celá (neb vůbec) I v případě chyby hardware, chyby sftware, chyby aplikace, chyby peračníh systému. Uživatel musí být infrmván, zda se transakce uskutečnila a je uknčena. Cnsistency p knci transakce musí být všechny pžadavky na knzistenci databáze splněny null values freign key unique cnstraint deferred 2014 Prfinit. All rights reserved. 4

Transakce Islatin - Neuknčené změny nejsu viditelné pr statní uživatele. Uživatel prvádějící změnu vidí i vlastní nekmitvané změny. Durability Cmmitvaná data jsu trvale ulžena v databázi. Cmmitvaná znamená, že uživatel dstal infrmaci uknčení cmmitu. (Příkaz cmmit byl uknčen a server předal řízení uživateli). Transakace přežije jakukliv systémvu chybu. 2014 Prfinit. All rights reserved. 5

Transakce v jiných významech Aplikační transakce Vytvření bjednávky (desítky databázvých transakcí), Přepčet hdncení skladu (desítky minut). Transakce na pdnikvé úrvni Schválení půjčky něklik aplikačních transakcí, wrkflw zasahující něklik ddělení. Lng-running transactin transakční mdel pdprující persistenci transakcí při restartu systémů, interakci s uživateli, pravné blky kódu spuštěné při neúspěchu perací. 2014 Prfinit. All rights reserved. 6

Savepint Každé napjení d databáze maximálně jedna transakce. Savepint, rllback t savepint V transakci se dají zrušit pslední prvedené změny Nejdu zrušit puze změny ze začátku transakce Begin tran Rllback t savepint S1 cmmit X:=1 Y:=2 Z:= 3 Savepint S1 2014 Prfinit. All rights reserved. 7

Autnmní transakce Změna v datech mim transakci Například zápis d lgu Oracle Na úrvní prcedury Begin tran rllback X:=1 L:= 1 Z:=1 Autnmní transakce Knec autnmní transakce 2014 Prfinit. All rights reserved. 8

Knzistentní stav databáze Dva lgické přístupy Pkud A dělá změnu, data jsu neknzistentní a B musí pčkat na knzistentní stav. Implementace pmcí zamykání. I když A dělá změnu, existuje knzistentní stav - pslední knzistentní stav před změnu A. Multiversin cncurency cntrl (snapshts) 2014 Prfinit. All rights reserved. 9

Transakční mód Chained Začátek transakce První příkaz (ne každý) Insert, update, delete, select fr update/hldlck, Knec transakce Cmmit, rllback Unchained Každý příkaz autnmní transakce Začátek transakce Explicitně begin tran Knec transakce Cmmit, rllback 2014 Prfinit. All rights reserved. 10

Transakční mód Oracle Chained mde MS SQL server, Sybase Unchained i chained mód Simulace (v klientských nástrjích) Chained módu Cmmit begin tran, rllback begin tran Není ekvivalentní chained módu Unchained módu Cmmit za každým příkazem 2014 Prfinit. All rights reserved. 11

Prušení izlace transakcí Dirty write Tranakce T1 změní data, která jsu měněna v prbíhající transakci T2. Dirty read Transakce T1 načte data změněná transakcí T2 ještě před tím, než transakce T2 prvedla cmmit. Fuzzy read (Nn-repeatable read) Během transakce T1 se dvakrát načte řádek a pkaždé se vrátí jiná hdnta (transakce T2 mdifikvala řádek mezi dvěma čteními). Phantm Během transakce T1 se prvede dvakrát stejný dtaz a pkaždé vrátí jiný výsledek (transakce T2 přidala neb ubrala řádek pužitý v dtazu transakce T1). 2014 Prfinit. All rights reserved. 12

ANSI islatin level Read uncmmited Read cmmited Repeatable read Serializable Dirty write Dirty read Fuzzy read Phantm Nt pssible Nt pssible Nt pssible Nt pssible Pssible Pssible Pssible Nt pssible Pssible Pssible Nt pssible Nt pssible Pssible Nt pssible Nt pssible Nt pssible 2014 Prfinit. All rights reserved. 13

Implementace pmcí zámků Typy zámků Shared transkce čte bjekt, zámek knčí p načtení bjeku neb trvá d knce transakce Exclusive transakce mění bjekt, zámek trvá d knce transakce Update bjekt zřejmě bude změněn (cursr) Zámek na data, zámek na indexy Dba uvlnění zámků Rzsah zámků Řádek Stránka Tabulka Databáze Intend zámek Intend table shared na tabulce existuje shared zámek na nějakém řádků neb stránce 2014 Prfinit. All rights reserved. 14

Kmbinace zámků Micrsft SQL Server 2012 Pžadvané zámky Existující zámky 2014 Prfinit. All rights reserved. 15

Implementace pmcí zámků Prblematické vlastnsti Pkud transakce dluh a čast exklusivně zamykají řádek, nedá se řádek číst. Pkud mnh transakcí dluhdbě zamyká řádek pr čtení, nedá se upravit. Uzamknutí stránky neb tabulky mezí přístup i na data, která transakce nepužívá. Režie s mnžstvím zámků Zámky vyžadují zdrje datvéh serveru Eskalace zamykání Abslutní nutnst pužívat krátké transakce 2014 Prfinit. All rights reserved. 16

Speciální knstrukce Nečekat na uvlnění zámku neb čekat maximálně určenu dbu select * frm authr fr update nwait; select * frm authr fr update wait 10; Číst jenm z neuzamčených blastí select * frm authr readpast; Manuálně uzamknut tabulku lck table table_name in {share exclusive } mde [ wait [ numsecs ] nwait ] 2014 Prfinit. All rights reserved. 17

Optimistické schéma zamykání Ke knfliktům dchází zřídka Načtení hdnt Zpracvání hdnt Při zápisu kntrla, že pužité hdnty jsu správné Pkud ne, prveď pravu Znvu načti data a prveď pakuj výpčet Infrmuj uživatele 2014 Prfinit. All rights reserved. 18

Optimistické schéma zamykání select @ld_clumn=clumn frm table where cnditin (cnditin vybere jeden řádek) Pužití: @ld_clumn Natavení: @new_clumn update table set clumn = @new_clumn where clumn = @ld_clumn and cnditin Update jednh řádku hdnta se nezměnila -> cmmit Update žádnéh řádku hdnta se změnila -> prava 2014 Prfinit. All rights reserved. 19

Pesimistické schéma zamykání Ke knfliktům dchází čast Načtení hdnt a jejich uzamčení Mžné čekání na mžnst uzamčení neb chybvý stav Zpracvání hdnt Cmmit Ostatní čekají neb bdrží chybvu hlášku 2014 Prfinit. All rights reserved. 20

Pesimistické schéma zamykání select @ld_clumn=clumn frm table where cnditin with hldlck (řádek je uzamčen) Pužití: @ld_clumn Natavení: @new_clumn update table set clumn = @new_clumn where cnditin cmmit 2014 Prfinit. All rights reserved. 21

MVCC (PsgreSQL) Každá transakce má rstucí timestamp - XID Verze na úrvni řádků (becně něklik verzí) xmin timestamp vytvření timestamp transakce, která řádek vytvřila xmax timestamp uknčení timestamp transakce, která řádek zrušila update zruší starý a vytvří nvý řádek Transakce s timestampem x vidí řádky Svje změny xmin < x, xmax neexistuje a transakce s xmin je kmitvaná xmin < x, xmax < x a transakce s xmax je nekmitvaná Pdmínky pr změny (pdle izlačních úrvní) viz dkumentace. 2014 Prfinit. All rights reserved. 22

MVCC 2014 Prfinit. All rights reserved. 23

Izlační úrvně Micrsft SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED READ COMMITTED REPEATABLE READ SNAPSHOT SERIALIZABLE } [ ; ] 2014 Prfinit. All rights reserved. 24

Izlační úrvně Oracle Read Cmmitted (Default) knzistence na úrvni příkazu Serializable Transactins knzistence na úrvni transakce Read-nly SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION ISOLATION LEVEL READ ONLY; Oracle Zámky puze pr měněná data Zámky na úrvni řádků neexistuje/není ptřeba eskalace Transakce libvlně dluhé cmmit zatěžuje server Dluhá Serializable transakce nevidí změny v datech, chyba v serializable módu se bjeví až při příkazu cmmit. 2014 Prfinit. All rights reserved. 25

Deadlck Dvě transakce si navzájem blkují zdrje a čekají na jejich uvlnění. Situace může nastat v kterémkliv systému, kde se více uživatelů dělí zdrje. Řešení musí prvést nějaká vnější autrita datvý server 2014 Prfinit. All rights reserved. 26

Deadlck Server dkáže deadlck identifikvat Server zruší jednu z transakcí Begin tran Y=? X:=10 X=? Y:=50 Begin tran 2014 Prfinit. All rights reserved. 27

Deadlck update publisher set name = 'Aldata Infsystems' where pub_id = '1389'; update publisher set name = 'New Age Bks' where pub_id = '0736'; update publisher set name = 'New Age Bks' where pub_id = '0736'; update publisher set name = 'Aldata Infsystems' where pub_id = '1389'; ORA-00060 2014 Prfinit. All rights reserved. 28

Cffmanvy pdmínky Dvě transakce si navzájem blkují zdrje a čekají na jejich uvlnění. Situace může nastat v kterémkliv systému, kde se více prcesů dělí prstředky. Přesněji: Může nastat v každém systému, kde mhu být splněny tzv. Cffmanvy pdmínky: Mutual Exclusin Prstředek může v jednm kamžiku vlastnit puze jeden prces. Hld and wait Prces může žádat další prstředky, i když má nějaké přiděleny. N preemtin Pkud prces prstředek vlastní, nelze mu h bezpečně dejmut (musí h vrátit sám). Circual wait Je mžné uzavřít cyklus prcesů vzájemně čekajících na zdrje svéh předchůdce. 2014 Prfinit. All rights reserved. 29

Předcházení deadlckům Oslabením některé z Cffmanvých pdmínek Nastavením všech zámků na začátku transakce Zamykání tabulek ve stejném přadí Pužití krátkých transakcí Řešení prvede externí autrita datvý server Zruší zablkvaný prces Přinutí prces aby nějaké zdrje uvlnil 2014 Prfinit. All rights reserved. 30

Nn serializable set transactin islatin level serializable; update publisher set name = 'Aldata Infsystems' where pub_id = '1389'; update publisher set name = 'XXX' where pub_id = '0736'; cmmit; update publisher set name = name '!' where pub_id = '0736'; cmmit; 2014 Prfinit. All rights reserved. 31

Nn serializable update publisher set name = 'Aldata Infsystems' where pub_id = '1389'; update publisher set name = 'XXX' where pub_id = '0736'; cmmit; update publisher set name = name '!' where pub_id = '0736'; cmmit; ORA-08177 2014 Prfinit. All rights reserved. 32

Závěry Slžitst prblematiky se prjeví při zvýšení pčtu uživatelů (paralelních transakcí) nikliv při vývji. Nárůst prblémů je expnenciální s pčtem paralelních transakcí. Nutn pčítat s tím, že transakce bude z nějakéh důvdu zrušena. Je nutné znát přesné mžnsti a chvání knkrétníh serveru (verze) 2014 Prfinit. All rights reserved. 33

C si zapamatvat C t je transakce K čemu služí savepint C t je autnmní transakce Jaké existují transakční módy a v čem se liší Definice islační úrvně pdle ANSI nrmy Jak se implementují islační úrvně pmcí mechanismu zámků Jak se implementují islační úrvně pmcí snapshtů C t je ptimistické a pesimistické schéma zamykání C t je deadlck, jak se dá deadlckům předcházet 2014 Prfinit. All rights reserved. 34

2014 Prfinit. All rights reserved. Diskuse