FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz> 13. 2. 2008 http://www.nic.cz/ http://fred.nic.cz



Podobné dokumenty
O Apache Derby detailněji. Hynek Mlnařík

Použití databází na Webu

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Novinky v.cz registru a mojeid. Zdeněk Brůna

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS pavel@blahovec.cz

Migrace CIDUG. Ing. Pavel Krutina

Nové jazykové brány do Caché. Daniel Kutáč

CSPUG 2011-květen. GridSQL a pg-pool II. Vratislav Beneš benes@optisolutions.cz

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Programování a implementace Microsoft SQL Server 2014 databází

Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

MBI - technologická realizace modelu

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Příprava k certifikaci , TS: Windows 7, Configuring

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

Projekt JetConf REST API pro vzdálenou správu

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

1. Webový server, instalace PHP a MySQL 13

Instalace a konfigurace

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

8.2 Používání a tvorba databází

Odbor informatiky a provozu informačních technologií

RELAČNÍ DATABÁZE. Cíl:

Použití PostgreSQL v. P2D Martin Swiech

Návrh a prototypová implementace databáze pro

Popis logování v aplikačním serveru

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Diagnostika webových aplikací v Azure

Compatibility List. GORDIC spol. s r. o. Verze

1 Webový server, instalace PHP a MySQL 13

Automatická správa KeySetu

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

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Transakce a zamykání Jiří Tomeš

DNS server (nameserver, jmenný server) Server, který obsahuje všechny veřejné IP adresy a jejich přiřazené doménové jména a překládá je mezi sebou. Po

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

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

FIREBIRD relační databázový systém. Tomáš Svoboda

Ukládání a vyhledávání XML dat

Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

Databázové systémy Cvičení 5.2

Odpov di na dotazy k ve ejné zakázce. 30/ SSZ Registr IKP

Případová studie: Adresářové řešení pro webhosting pomocí ApacheDS. Lukáš Jelínek

Vladimír

Automatická správa keysetu. Jaromír Talíř

Novinky v registru domén a mojeid. Jaromír Talíř jaromir.talir@nic.cz

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

Softwarově definované úložiště pod taktovkou EMC Lukáš Bělovský, konzultant Gapp System

Vývoj Internetových Aplikací

Systém elektronického rádce v životních situacích portálu

Maturitní témata Školní rok: 2015/2016

Pravidla technické komunikace

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Analýza výkonu HELIOS Green

Databázové systémy a SQL

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Oracle XML DB. Tomáš Nykodým

Ukázka knihy z internetového knihkupectví

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

verze GORDIC spol. s r. o.

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Informace ke stavu celoměstsk xxx

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ

Projekt 7006/2014 SDAT - Sběr dat pro potřeby ČNB. Návrh realizace řešení

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Softwarové aktualizace a novinky v portfoliu SWA Pavel Prouza

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Administrace a Enterprise vlastnosti. RNDr. Ondřej Zýka

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

manažerského řízení HW a SW požadavky pro sw ATTIS

Zkušební test. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Semináˇr Java X J2EE Semináˇr Java X p.1/23

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

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

přes webový prohlížeč pomocí Ing. Tomáš Petránek

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Digitální technická mapa Plzeňského kraje

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Státní ICT jak to zvládáme na NKÚ. Jan Mareš

Úvod 17 ČÁST 1. Kapitola 1: Principy návrhu doménové struktury služby Active Directory 21

Stěhování aplikací. Michal Tomek, Sales Manager

Databázové systémy úvod

Webový knihovní systém. Ing. Jiří Šilha, LANius s.r.o.

Formy komunikace s knihovnami

IS RŽP. informační systém pro vedení živnostenského rejstříku a jeho propojení na registry veřejné správy. Ministerstvo průmyslu a obchodu

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Chybová hlášení METODIKA MET-01/2014. SZR-56-1/OPICT-2013 počet stran 28 přílohy 0. Nahrazuje:

Pražská energetika, a.s.

Michal Kolařík ISZR - Brána k základním registrům

Transkript:

FRED & PostgreSQL CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz> 13. 2. 2008 http://www.nic.cz/ http://fred.nic.cz 1

Obsah FRED co to je? Architektura systému, datový model, transakční model Komunikace s databází - PL/pgSQL, Python, C++ Migrace z Informixu do PostgreSQL Použité doplňkové nástroje (Slony, PgPool, PgFouine) Běhové statistky HW konfigurace 2

FRED co to je? Free Registry for ENUM and Domains Evidence domén, kontaktů a skupin DNS serverů (nsset) Generování zónového souboru Mailové upozorňování držitelů Stahování banky, práce s kreditem, fakturace registrátorům Technické kontroly evidovaných DNS serverů 3

Architektura systému (1/3) 4

Architektura systému (2/3) C++ a Python aplikační backend nad databází Funkcionalita exportovaná přes technologii CORBA Frontendy jako CORBA klienti EPP rozhraní pro registrátory Unixový a webový WHOIS pro veřejnost Webové administrační rozhraní pro helpdesk Generátor zónového souboru Vysoká distribuovanost komponent Další řádkové nástroje linkované s knihovnami backendu 5

Architektura systému (3/3) Přistup k databázi pouze zprostředkovaně (až na vyjímky) Generování offline statistik registru SQL skripty kontrolující integritu dat Replikace Já :-) Fyzicky se jedná o dvě duplicitní lokality Databáze a aplikační server na jednom stroji EPP XML parser a generátor na samostatném stroji Veřejné služby WHOIS na samostatném stroji 6

Datový model (1/2) 94 tabulek, 155 indexů, 47 sekvencí, 6 pohledů 16 uložených procedur (6 triggerů) Normalizovaný model založený na dědičnosti Např. doména ve třech tabulkách Hodně tabulek v SELECT dotazech Plná historie změn Při změně se do historie odrolují kompletní data objektu Časové údaje jako timestamp bez TZ v UTC column::timestamptz AT TIME ZONE 'CET' 7

Datový model (2/2) Dokumenty registru (PDF faktury, výpisy z bank atd...) uloženy na filesystému, v databázi pouze evidence Mailová komunikace s držiteli uložena v databázi XML komunikace s registrátory uložená v databázi Aktuálně generuje největší objem dat XML jsou příliš malá na TOAST 8

Transakční model a zámky Transakční model READ COMMITED pro všechny transakce Zamykání pouze ROW LEVEL pomocí SELECT FOR UPDATE Možnost použití jako synchronizačního primitiva Optimistické vkládání dat Duplicitní záznam je chráněn přes constraint (např unique) Není nutné zamykat na TABLE LEVEL Problém jak se vyhnout ROLLBACKu odchycení vyjímky 9

Programování v SQL a PL/pgSQL Pomocné funkce např. atomická registrace nového objektu Triggery na aktualizaci stavů objektů Generování offline statistik provozu registru Migrace starého datového modelu do nového 10

Python SQL komunikace Dobrá podpora, implementace DB-API rozhraní PygreSQL, Psycopg2 Django framework na weby s ORM mappingem 11

C++ SQL komunikace (1/2) Vlastní C++ API nad libpq knihovnou Jednoduchost, objektovost, mapování typů SQL konstruktor ORM mapping (dynamické generování SQL pro různá funkční volání) DomainFilter f; f.addexpirationdatefilter(dateinterval(di_last_month); f.addregistrarfilter().addhandlefilter( REG-TEST ); f.addselect( name ); Result r = connection.execute(f.makequery()); for(r.begin(),r.hasnext(),r.setnext()) cout << r.getvalue(); 12

C++ SQL komunikace (2/2) Výběry a výsledky propojené přes TEMPORARY tabulky Způsob jak načíst seznam strukturovaných objektů Komplikovaný SELECT vytvoří dočasnou tabulku obsahující pouze ID odpovídajících objektů Několik dalšich SELECT volání incializuje seznam objektů Třídění mimo databázi Absolvovat celý SELECT proces kvůli změně uspořádání je neefektivní 13

Problémy? Náměty? Distribuované transakce? Exception handling na úrovni SQL? Prioritizace spojení? Monitoring? 14

Migrace Originální data z Informixu v podobě SQL dumpu Sed magic - transformace typů v DDL scriptu Vytvoření struktury a potom import dat přes COPY SQL a PL/pgSQL skripty pro transformaci datového modelu Duální transformace do SQLite + kontrola přes EPP Domigrování BLOBů pomocí python skriptů 15

Nástroje (1/2) Replikaci zajišťuje Slony Master-slave asynchronní replikace Triggery zachytávají změny a ty se pak propagují na duální (r/o) databázi Nutnost vypnout aplikační triggery na duální databázi Při každé změně schématu nutnost upravit proces replikace Problémy s velkými tabulkami Testování synchronní replikace pomocí WAL 16

Nástroje (2/2) PgPool Nástroj na connection pooling Zpočátku velmi slibně vypadající zrychlení Problémy v případě chybných spojení Nakonec odstraněn PgFouine Analyzátor logů Detailní statistiky četnosti a délky dotazů Náročné na místo na disku 17

Hardwarová konfigurace HP PowerEdge CPU: Intel(R) Xeon(R) CPU 5140 @ 2.33GHz HDD: 5x FUJITSU MAX3147RC 140 GB, PERC 5/i RAID 1+0 18

Dotazy? Děkuji za pozornost... 19