Princípy tvorby softvéru Perzistencia, databázy

Podobné dokumenty
Princípy tvorby softvéru Programovacie paradigmy

Princípy tvorby softvéru Modelovanie domény

BRKOS

Princípy tvorby softvéru GIT a iné užitocné veci

Zadání čtvrté série

Matematicko-fyzikálna fakulta Univerzity Karlovej v Prahe SPRÁVA O TUDENTSKOM FAKULTNOM GRANTE Marek Martaus Testování prototyp modul vnit ního detekt

PowerPoint Presentation

Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Podobnos slov (Diplomová práca) Martin Vl ák Vedúci: RN

Princípy tvorby softvéru Agile, Lean, Lean Startup

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VALUE-AT-RISK A CONDITIONAL VALUE-AT-RISK AKO NÁSTROJE NA MERANIE RIZIKA P

Slovenská technická univerzita Fakulta elektrotechniky a informatiky Mosquitto Telemetry Transport protokol pre IoT Tímové zadanie z predmetu Intelige

Vizualizace geometrických algoritmů

DediĊnosť

Integrácia Čo je SOA? Peter Rybár Daniel Buchta Jozef Sivek

Lorentzova sila a jej (zov²eobecnená") potenciálna energia Marián Fecko KTF&DF, FMFI UK, Bratislava Na predná²ke sme sa dozvedeli, ºe Lorentzova sila

Microsoft Word - ŠTATÚT RADY ŠKOLY

OBAL1-ZZ.vp

Microsoft Word - DEOV.doc

Žiadosť o prídavok na dieťa

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY MODELOVANIE PRÍJMOV A VÝDAVKOV NA ZDRAVOTNÚ STAROSTLIVOS Diplomová práca B

9. Elastické vlastnosti kry²tálov Cie om tejto predná²ky je zhrnú základné poznatky z mechaniky kontinua. Úlohou je ur i, ako sa deformuje daný kus lá

Základy automatického riadenia - Prednáška 2

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY STRIEBORNÁ EKONOMIKA Diplomová práca Bratislava 2012 Bc. Zuzana Benkovská

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Pouºitie teórie extrémnych hodnôt vo finan níctve DIPLOMOVÁ PRÁCA Bratisla

Podmienky prijímacieho konaniapre šk. rok

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UƒENIE INVARIANTNÝCH SENZO-MOTORICKÝCH REPREZENTÁCIÍ POHYBOV UCHOPOVANIA P

VYNALES_form

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY BEHAVIORÁLNE VPLYVY NA SIETE FINAN NÝCH SUBJEKTOV Diplomová práca 2013 Bc.

1

Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Katedra aplikovanej matematiky a ²tatistiky Hodnotenie výkonnosti portfóli

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁ SKÁ PRÁCE Estera Vörösová Stochastické modely pro posloupnosti nervových impuls Katedr

Základné pravdepodobnostné modely v teórii spoľahlivosti

U N I V E R Z I T A K O M E N S K É H O Fakulta matematiky, fyziky a informatiky Katedra informatiky Vybrané kapitoly z teoretickej informatiky-ii Rie

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY BAKALÁRSKA PRÁCA Bratislava 2011 Roman Kukumberg

Microsoft PowerPoint - SLIDES_02DTD.ppt

Komplexný informa ný a monitorovací systém Monitorovanie biotopov a druhov európskeho významu Používate ská dokumentácia KIMS modul Mobilná aplikácia

Czêœæ+informatyczna+po+korekcie.pdf

geografia.pdf

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

Experimenty s ekonomickAmi princApmi

MZ.pdf

Identity Lifecycle Management

DP.pdf

Microsoft Word Nextra_ADSLink.doc

Strana 2790 Zbierka zákonov č. 359/2003 Čiastka VYHLÁŠKA Ministerstva financií Slovenskej republiky z 12. augusta 2003, ktorou sa mení vyhlášk

Portál VŠ a CEP

Návod na obsluhu CompactIO 1

Snímka 1

Čiastka 7/2004 (017)

Microsoft Word - 11_Distribuované spracovanie dát nad MapReduce architektúrou _Hadoop a Hive_

Novinky v OpcDbGateway 5.0

000____OBAL1-ZZ s Eurom.vp

SAEAUT SNMP OPC Server

Slovenská technická univerzita v Bratislave

IP telefónia. Návrh AsÚ SAV

Technický manuál PRIMASET SNL Okenná sie SNL (profil valcovaný s lemom) s rôznymi typmi zvrtlíkov poskytuje široké možnosti použitia okennej siete. Pr

XXVI b 07 Navrh VZN granty spojene.pdf

Čo sú pojmové mapy 1 Charakterizácia pojmových máp pojmové mapy sú diagramy, ktoré vyjadrujú podstatné vzťahy medzi pojmami vo forme tvrdení. Tvrdenia

Snímka 1

Identity Lifecycle Management

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Optimálne navrhovanie experimentov DIPLOMOVÁ PRÁCA 2012 Bc. Samuel Zmeko

Biharmonická rovnica - ciže co spôsobí pridanie jedného laplasiánu

Microsoft Word - skripta3b.doc

C Valcové poistkové vložky PCF Poistkové odpínače pre valcové poistkové vložky EFD Poistkové odpínače pre valcové poistkové vložky Technické údaje 38

Strana 2914 Zbierka zákonov č. 308/2004 Čiastka NA RIA DE NIE VLÁ DY Slo ven skej re pub li ky z 28. apríla 2004, ktorým sa ustanovujú podrobn

Microsoft PowerPoint - OOP_prednaska_10.pptx

Efektívne spôsoby zníženia nákladov na energie a vplyvu na životné prostredie pri prevádzke zimných štadiónov.

Prístup a Nastavenie pre KOMPAKT HOSTING

UNIVERZITA KOMENSKÉHO V BRATISLAVE fakulta matematiky, fyziky a informatiky Aproximácia cien dlhopisov v dvojfaktorových modeloch úrokových mier Diplo

Univerzita Karlova v Prahe Matematicko - fyzikálna fakulta Bakalárska práca Veronika Betíková tatistické prístupy modelovania stratovosti pri zlyhaní

MASTERING MICROSOFT LICENSING Mastering Microsoft Licensing 1

SKPOS

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁ SKÁ PRÁCE Franti²ek Luká Studium vakancí v Fe-Al slitinách pomocí pozitronové anihila

Písomný test k predmetu Tvorba informačných systémov, pondelok, 16.januára 2012, čas: 120 minút. Odpovede píšte priamo k otázkam, ak potrebujete viac

PowerPoint Presentation

Čiastka 184/2007

Numerické riešenie všeobecnej (klasickej) DMPK rovnice.

12Prednaska

Akreditácia vzdelávacích programov – projekt MVP

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková

MZ.pdf

Kategória školenia Kurzy Project, Outlook obsahuje kurzy: Outlook základy Účastníci kurzu Outlook základy sa naučia využívať tento program na ov

Smlouva o výpůjčce

Microsoft Word - VI xfilcakt.docx

Zdravé sebavedomie odzrkadľuje spôsob, akým vidíme sami seba. Ak sa chceme stať sebavedomejšími ľuďmi, musíme zmeniť to, čo si myslíme sami o sebe, ak

Georeceive a Geoshopping

PM

bakalarska prezentacia.key

UVPOD3_1 Poznámky Úč POD 3-04 POZNÁMKY individuálnej účtovnej závierky zostavenej k Číselné údaje sa zarovnávajú vpravo, ostatné úda

Vietnam – Kambodža 2017

Čo bude ďalší krok pre rozvoj ekonomiky SR, alebo Premrhaný(?) potenciál štátneho IT

Prenosový kanál a jeho kapacita

5/1/2012 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza: capuje(krcma, Alkohol, Cena), lubi(pijan, Alkohol) navstivil(idn, P

VSDC Free Video Editor stručný návod na používanie Link na sťahovanie softvéru: K prog

Manažment v Tvorbe Softvéru 2018/2019

Slovenská technická univerzita v Bratislave FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Ilkovičova 3, Bratislava Tímový projekt Ponuka Grafi

Microsoft Word - Einkaufsbedingungen SK.Endfass ver.SK.doc

Čiastka 161/2004

FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO V BRATISLAVE Ekonomická a nan ná matematika Asymptotické metódy oce ovania ázijských ty

Prepis:

Princípy tvorby softvéru lukotka@dcs.fmph.uniba.sk www.dcs.fmph.uniba.sk/~lukotka M-255

Persistencia Desktop aplikácia, ukladanie Save buttonom. Napí²eme k triedam serializa né a deserializa né metódy (PS: Tieto metódy asi chceme implementova v podtriede, SRP) V²etko uloºíme. What could possibly go wrong?

Persistencia Desktop aplikácia, ukladanie Save buttonom. Napí²eme k triedam serializa né a deserializa né metódy (PS: Tieto metódy asi chceme implementova v podtriede, SRP) V²etko uloºíme. What could possibly go wrong? Potrebujeme: trvacnos, konzistencia.

Data exchange formats BTW, ako serializova objekty? ƒasto je dobré pouºi vhodný markup language: XML, JSON, YAML,... Problém je so vz ahmi, najmä asociáciou a kompozíciou. Ako na to? jasni vlastníci asociácií, jasný vlastníci objektov, hranice jednotiek pre serializáciu, id ka objektov.

Persistencia Predpokladajme, ºe chceme automaticky uklada zmeny Kedy uloºi zmeny? Asi nechceme ukáza chorý medzistav. Potrebujeme: atomickos

Persistencia ƒo ak môºe by v systéme viacere "rozbabraných vecí naraz"

Persistencia ƒo ak môºe by v systéme viacere "rozbabraných vecí naraz" Potrebujeme: tranzakcia, izolácia tranzakcií.

Problémy s perzistenciou V²etko je krásne a jednoduché...

Problémy s perzistenciou V²etko je krásne a jednoduché... kým k dátam pristupuje iba jeden proces. Duplikácia dát, pamä vs úloºisko, má vôbec zmysel si pamäta nie o v opera nej pamäti? V²etky problémy súvisiace s konkurentnos ou.

Problémy s perzistenciou V²etko je krásne a jednoduché... kým k dátam pristupuje iba jeden proces. Duplikácia dát, pamä vs úloºisko, má vôbec zmysel si pamäta nie o v opera nej pamäti? V²etky problémy súvisiace s konkurentnos ou.

ACID atomickos konzistentnos izolácia trvácnos

ACID atomickos konzistentnos izolácia trvácnos... toto predsa robia databázy.

OOP a persistencia ƒo to znamená pre OOP? Data a funkcionalita sú separované. Kód má charakter procedúr vykonávajúcich tranzakcie nad DB. jednoduché xy (DAO, Active record) na tejto skuto nosti ni nemenia, resp. su príli² neefektívne. Problémom sa nedá vyhnú, je nevyhnutné správne denova hranice tranzakcií. Je moºné postupova aj OOP (k tomu sa dostaneme), asto je ale procedurálny, resp. iný prístup praktickej²í.

ACID Databázy Perzistencia a konkurencia: ve a komplexity ƒasto najjednoduch²ie rie²enie je necha to na ACID databázu (najjednoduch²ie asto = správne). ACID - silné grancie umoº ujú jednoduché rozmý² anie.

ACID Databázy Silné garancie prichadzaju za cenu priepustnosti systému Cena narastá v pripade distribuovaných rie²ení. Garancie sú asto silnej²ie ako je potreba business rules. Anyways, tu je svet krasny a ak nemusite nechodte z tadialto pre. ƒo ak tranzakcia trvá prili² dlho?

Web app Browser, Server, Databáza Browsujúci vloºil objekt do ko²íka. Kde to uloºi?

Web app Browser, Server, Databáza Browsujúci vloºil objekt do ko²íka. Kde to uloºi? Browser, Load balancer, Server, Databáza

Web app Browser, Server, Databáza Browsujúci vloºil objekt do ko²íka. Kde to uloºi? Browser, Load balancer, Server, Databáza Ukladanie v datazábe umoº uje serverom aby boli zamenite né. V prípade fakt ve a zápisov/ ítaní je potrebné zvý²i priepustnos databázy / zvoli distribuované rie²enie.

Distribuované rie²enie Replication Fragmentation(horizontal, vertical) Pri distribuovaných DB je cena za ACID garancie vy²²ia.

< ako ACID - Atomickos, Konzistencia Atomickos : Atomickos môºe by napr. garantovaná iba v rámci men²iaho celku. Atomicky s inými zmenami nemoºno vytvára /maza elementy. Systém síce umoº uje robi atomicky hoci o, ale performance penalty je privysoká. Consistency: Zapí²eme na server a potom pre itame nie o z repliky - vadí nám ak to tam e²te nie je?

< ako ACID - Izolácia Problémy: Dirty reads - pre ítame necommitnuté data Non-repeatable reads - ten istý prvok pre ítame dvakrát s rôznymi výsledkami Phantom reads - po as vykonávania tranzakcie vznikli alebo zanikli riadky (najnáro nej²ie zabezpe i, kje potrebne zamkýna asti tabu ky) Lost update - zru²íme zmenu vykonanú inou tranzakciou Isolation levels: Serializable Repeatable reads Read committed Read uncommitted

< ako ACID - Durability E.g. Mongo db - write concern (existujú aj read concerns - to skôr patrí pod consistency) Unacknowledged Acknowledged Journaled FSYNCED Replica Acknowledged (po et replík / majority)

ACID vs BASE Basically Available, Soft state, Eventual consistency Vieme s týmto existova? Hlasovanie nodov o tom, ko ko stojí daná vec? Hlasovanie nodov o tom, i táto vec má by v ko²íku alebo nie? Hlasovanie nodov o tom, i má Fero na ú te 0 alebo 1000 Eur? Programátor môºe usmerni hlasovanie.

ACID vs BASE Basically Available, Soft state, Eventual consistency Vieme s týmto existova? Hlasovanie nodov o tom, ko ko stojí daná vec? Hlasovanie nodov o tom, i táto vec má by v ko²íku alebo nie? Hlasovanie nodov o tom, i má Fero na ú te 0 alebo 1000 Eur? Programátor môºe usmerni hlasovanie. Nejde len o efektivitu ide aj o dostupnos a rýchlos.

Partitioning Garancie sú asto silnej²ie ako je potreba business rules. Rezervácia izby, nie je v²ak moºné kontaktova server zodpovedný za daný hotel. Môºem si rezervova tuto izbu? Pozrel som sa pred hodinou, celý hotel bol vo ný. Nejde len o výpadok serveru spojenia / ide aj o latenciu.

Avialability vs consistency CAP theorem - je aj skuto ná veta, ale tento vyraz sa medzi developermi pouºíva aj na vyjadrenie tohoto triviálneho pozorovania: Ak sa nemôºem spoji s druhým serverom, musím si vybra medzi konzistenciou a dostupnos ou. Je to business decision!!! Kaºdopádne, pokia je systém dostato ne malý, vyberte si ACID, rozhodnutí bude menej (Stále musíte rie²i zálohy a pod.).

Typy databáz - forma ukladania dat key-value páry/ dokumenty rela né tabu ky graf a iné: object, culumn-oriented,... Buzzwords: NoSQL, NewSQL

Forma ukladania dat Rela né databázy: Dobre známe - programátori to vedia. tandardizovaný dotazovací jazyk - SQL. R&D po as > 40 rokov. Správna default vo ba.

Key-value páry / dokumenty Aplikácia typicky chce ²pecickú value/dokument. PS: typicky: v kóde vs runtime - rôzne veci Jednoduché query, zatia, o rela ná databáza môºe potrebova nejaké joiny (mimochodom v aka > 40 rokov R&D to zvládne dobre). Môze by ve mi neefektívne queryova nie o iné. Dokumenty sa ah²ie distrubuujú ako riadky tabuliek.

Grafové databázy Vhodné na zachyenie asociacií. Skúste v SQL naqueryova Otca brata ko a predchádzajúceho majite a dcéra, okrem toho, DB sa ujoinuje

ORM ƒo ke chceme robi OOP s rela nými databázami? ƒo by sme chceli? Ur i hranice tranzakcií musíme - z toho sa nevyvle ieme. Musíme na²e triedy namapova na tabu ky - (typicky nie super aºké) Musíme rozhodnú ktorá as DB sa v rámci tranzakcie na íta (Lazy Loading, Eager Loading) Vä ²inou si nemôºeme dovoli robi zmeny po jednej - príli² pomalé, treba toho urobi viac naraz (Unit of Work). Ke z nejakého dôvodu na ítame dvakrát, vznikne z toho iba jeden objekt (Identity map).

ORM Beºný problém - je na ve a, ve mi rôznych nástrojov: ORM - Object Relational Mapping (A povä ²ine touto skratkou ozna ujeme nástroj na ORM)

ORM ORMká sú ve mi rôzne. Niektoré vám v podstate iba nahrania SQL nie ím objektovej²ím. Niektoré sa vám postarajú aj o mená tabuliek (Trieda Person, tabu ka People). Niektoré majú ve mi lazy loading ak s ítate dve ísla z databázy, v skuto nosti sa ni nepre íta iba sa vytvorí objekt reprezentujúci sú et. Trieda + Mapper vs Trieda zviazaná s tabu kou....

Zhrnutie S perzistenciou je kopec problémov (najmä ak sa k perzistentným dátam pristupuje konkurentne), najjednoduch²ie je necha to na databázu. ACID garancie sú super, pokia nemusíte nevzdávajte sa ich. Na zvý²enie priepustnosti systému (najmä v prípade distribuovaných databáz) v²ak môºe by niekedy ºiadúce tieto garancie zúºi. V prípade distribuovaných systémov rozhodujú o pomere medzi konzistenciou a dostupnos ou/latenciou business rules. Existuje viacero dátových modelov, v typickom prípade vyhráva rela ný model pre svoju exibilitu a R&D. Na mapovanie tried z OOP na rela né tabu ky je vyvinutých mnoho nástrojov - ORMká.

al²ie zdroje ACID - Wikipédia Data exchange formats - Wikipedia Video: M. Fowler: Introduction to NoSQL NoSQL Introduction to SQLAlchemy Understanding Durability & Write Safety in MongoDB