COMPUTERWORLD
pod kapotou
Paralelismus a databßze

V souvislosti s dneÜnφmi zm∞nami informaΦnφch systΘm∙ n∞kdy °φkßvßm cimrmanovsky - budoucnost pat°φ paralelismu. O jakΘ zm∞ny jde a proΦ paralelismus? Znßmφ protagonistΘ paralelnφch architektur Ö zsu a Valduriez uvßd∞li v r. 1994, ₧e mno₧stvφ poΦφtaΦov∞ zpracovßvan²ch informacφ v podniku roste roΦn∞ o 30% a mno₧stvφ transakcφ vzroste 10× v nßsledujφcφch p∞ti letech. M∞nφ se ovÜem i podoba transakcφ. Zatφmco v minulosti se vystaΦilo s jednoduch²mi transakcemi (b∞₧n² OLTP), systΘmy pro podporu rozhodovßnφ generujφ transakce podstatn∞ slo₧it∞jÜφ. Situaci lze popsat tak, ₧e databßzovΘ servery by m∞ly poskytnout vysokou pr∙chodnost systΘmu a dobrΘ Φasy odezvy pro r∙znΘ typy transakcφ na velmi velk²ch databßzφch.

Efektivnφ provoz DBS je zßvisl² na velikosti vnit°nφ pam∞ti a disk∙. Tyto parametry se stßle zlepÜujφ, nicmΘn∞ hlavnφ brzda - p°φstup na disk - se p°φliÜ zlepÜit neda°φ. Zatφmco poΦet MIPS∙ rostl o 40% za rok, pr∙chodnost se u magnetick²ch disk∙ zv∞tÜila za poslednφch 10 let pouze 2× . DφlΦφmi °eÜenφmi jsou nap°. diskovß pole, sdφlenφ disk∙ paralelnφch poΦφtaΦ∙ a °ada dalÜφch hardwarov²ch architektur, samoz°ejm∞ i (geografickΘ) rozmis¥ovßnφ dat (viz nap°. varianty distribuovan²ch databßzφ).

Nejv∞tÜφm p°φnosem pro provoz databßzovΘho systΘmu jsou dnes ovÜem paralelnφ architektury. Umo₧≥ujφ zlepÜit Φty°i zßkladnφ rysy sledovanΘ u ka₧dΘho S╪BD:

  • cena - architektura slo₧enß z levn∞jÜφch zßkladnφch element∙ je levn∞jÜφ ne₧ nap°. st°ediskov² poΦφtaΦov² systΘm.
  • provoz - pro dotazy v paralelnφm prost°edφ je charakteristickΘ zpracovßnφ typu inter-query - paralelnφ zpracovßnφ dotaz∙ (tj. n∞kolik dotaz∙ je vyhodnocovßno souΦasn∞) a intra-query - paralelnφ zpracovßnφ dotazu, tj. dotaz je dokomponovßn na Φßsti, kterΘ jsou zpracovßvßny souΦasn∞.
  • Ükßlovßnφ - ·m∞rn∞ s rozÜi°ovßnφm po₧adavk∙ lze p°idßvat dalÜφ elementy (procesory, pam∞ti) a zvyÜovat v²kon. Cφlem je zv²Üenφ celkovΘ rychlosti zpracovßnφ (speedup) a udr₧enφ v²konu p°i zv∞tÜenφ velikosti databßze (scaleup). Nap°. vytvo°enφ n∞jakΘ sestavy na databßzφ velikosti 1 GByte zabere Φas t. Zv∞tÜφ-li se databßze 10× a zv∞tÜφ-li se takΘ v²poΦetnφ zdroje 10× , m∞l by z∙stat zachovßn i Φas t.
  • dostupnost dat - je zajiÜt∞na vφcenßsobn²mi kopiemi dat.

Hlavnφm cφlem paralelismu je tedy zv²Üenφ v²konu:

  • paralelnφ systΘm by m∞l b²t rychlejÜφ ne₧ sekvenΦnφ,
  • paralelnφ systΘm by m∞l dßt skoro lineßrnφ Ükßlovßnφ (speedup nebo scaleup, nebo obojφ).

P°ipome≥me, ₧e paralelnφ systΘmy je nutno odliÜovat od dalÜφho typu architektur - distribuovan²ch systΘm∙. Zatφmco v p°φpad∞ paralelnφch architektur jde o vφce CPU fyzicky spojen²ch do kompaktnφho celku, u distribuovan²ch architektur jsou CPU obvykle distribuovßny geograficky. Paralelnφ systΘmy p°edstavujφ pokus konstruovat rychlejÜφ a takΘ levn∞jÜφ centralizovan² poΦφtaΦ, distribuovanΘ systΘmy specißln∞ v databßzφch vychßzejφ z pot°eby nabφdnout lokßln∞ autonomnφ systΘmy s mo₧nostφ globßlnφho Φi integrovanΘho pohledu. V distribuovan²ch databßzφch se dotazy a dalÜφ po₧adavky na manipulaci s daty provßd∞jφ nezßvisle v r∙zn²ch mφstech a ΦßsteΦnΘ v²sledky na zßklad∞ komunikace mezi mφsty p°ispφvajφ k vytvo°enφ celkovΘho v²sledku.

Pou₧itφ paralelismu v databßzφch

Paralelnφ zpracovßnφ dotaz∙ a paralelnφ zpracovßnφ dotazu mφ°φ do dvou sfΘr aplikacφ, kterΘ existujφ v rßmci organizace bu∩ samostatn∞ nebo souΦasn∞. V prvnφm p°φpad∞ jde o velkΘ mno₧stvφ pom∞rn∞ jednoduch²ch transakcφ (OLTP), kterΘ je nutnΘ zpracovßvat souΦasn∞. Cφlem je tedy dosßhnout co nejv∞tÜφho mno₧stvφ transakcφ za sekundu (t/s). P°φkladem takovΘ transakce (dotazu) je "Najdi informace o zam∞stnanci Novßkovi". Druh² typ zpracovßnφ se t²kß spφÜe podpory rozhodovßnφ, kdy pot°ebujeme projφt velkΘ mno₧stvφ dat, provΘst agregace apod. Nap°. "SpoΦti, kolik je zßkaznφk∙" m∙₧e b²t takov²m dotazem. Je-li relace Z┴KAZN═K rozlo₧ena nap°. na 4 disky Φty° procesor∙, lze dotaz rozlo₧it, provßd∞t paraleln∞ a syntetizovat v²sledek. Jsou-li zßkaznφk∙ 4 miliony, zφskß se v²sledek 4× rychleji ne₧ v p°φpad∞ b∞₧nΘho zpracovßnφ s jednoprocesorov²m strojem.

D∙le₧itΘ je, ₧e ne ka₧dß z paralelnφch architektur Φi software pro n∞ vytvo°enΘho je vhodnß pro oba uvedenΘ typy ·loh.

Typy paralelnφch architektur

Paralelismus v souvislosti s databßzemi provßzφ ji₧ od poΦßtku tzv. velkß debata o tom, jakou podobu by m∞la paralelnφ architektura mφt. NejtypiΦt∞jÜφ dneÜnφ paralelnφ architektury zahrnujφ "sdφlenφ niΦeho" a "sdφlenφ vÜeho". V prvnφ p°φpad∞ (obr. 1) mß ka₧d² procesor svou p°φmo p°φstupnou pam∞¥ a p°φmo p°φstupnΘ disky. Procesory mezi sebou komunikujφ zasφlßnφm zprßv. Na opaΦnΘ stran∞ spektra stojφ architektura "sdφlenφ vÜeho" (obr. 3), naz²vanß takΘ ôsdφlenφ pam∞tiö, ve kterΘ vÜechny procesor majφ p°φm² p°φstup ke spoleΦnΘ pam∞ti a p°φm² p°φstup ke vÜem disk∙m. Alternativou mezi ob∞ma architekturami je "sdφlenφ disk∙" (obr. 2) dovolujφcφ pouze p°φstup ke vÜem disk∙m p°i zachovßnφ privßtnφ pam∞ti pro ka₧d² procesor.

 

disk disk ... disk

procesor procesor procesor

pam∞¥ pam∞¥ pam∞¥

S͍

 

Obr. 1: Architektura "sdφlenφ niΦeho"

 

procesor procesor procesor

pam∞¥ pam∞¥ pam∞¥

S͍

 

 

 

 

Obr. 2: Architektura "sdφlenφ disk∙"

 

 

 

procesor procesor procesor

S͍

Globßlnφ pam∞¥

 

 

 

 

Obr. 3: Architektura "sdφlenφ vÜeho"

 

  • Sdφlenφ pam∞ti vφce procesory p°es spoleΦnou sb∞rnici (symetrickΘ multiprocesory, SMP) je °eÜenφ zdßnliv∞ jednoduchΘ. Dosa₧enφ vysokΘho v²konu je ale drahΘ a technologicky nßroΦnΘ, p°esto₧e je dost jednoduÜe programovatelnΘ. V²sledn² systΘm nelze dynamicky rozÜi°ovat. Typick²m p°edstavitelem architektury "sdφlenφ vÜeho" je multiprocesorov² systΘm Sequent Symmetry (°ada S2000 nebo °ada S5000) nebo RM1000 firmy Pyramid Techn. P°es prvotnφ omezenφ (8-16 procesor∙) jsou dnes dosa₧itelnΘ konfigurace i s n∞kolika desφtkami procesor∙.
  • P°i sdφlenφ niΦeho (masivn∞ paralelnφ procesory, MPP) existuje ke ka₧dΘmu procesoru Φßst databßze na disku a vÜechny operace pracujφcφ s daty na tom disku je nutnΘ vykonßvat na tomto procesoru. Tato architektura je nßroΦnß na projekci databßze, tj. na °eÜenφ otßzky, jakß data ulo₧it ke kterΘm procesoru. Programovßnφ v takovΘ architektu°e je obtφ₧nΘ. D∙le₧itΘ takΘ je, ₧e ka₧d² dotaz je paralelizovßn. Nenφ tedy mo₧nΘ p°evΘst centralizovan² S╪BD p°φmo do tΘto architektury. V²hodou oproti sdφlenφ disk∙ je, ₧e zprßvy vym∞≥ovanΘ mezi procesory obsahujφ pouze u₧iteΦnß data. Z MPP hardware jmenujme SP2 Scalable Powerparallel SystΘm firmy IBM.
  • Sdφlenφ disk∙ je nßroΦnΘ na zajiÜt∞nφ konsistence dat (strßnky s t²mi₧ daty jsou nap°. aktualizovßny souΦasn∞ na r∙zn²ch procesorech). Ka₧d² v²poΦetnφ systΘm mß jednu kopii S╪BD. Mezi uzly jsou vym∞≥ovßny strßnky (nejen u₧iteΦnß data), co₧ vede k v∞tÜφm nßrok∙m na komunikaci, tj. k existenci r∙zn²ch synchronizaΦnφch protokol∙. Sdφlenφ disk∙ pou₧φvß nap°. Oracle na poΦφtaΦi nCUBE firmy nCUBE. S 64 uzly sdφlejφcφmi 128 disk∙ bylo dosa₧eno velmi rychlΘho transakΦnφho systΘmu (1000 t/s podle test∙ TPC-B).

V p°φpad∞ v²padku procesoru v architektu°e "sdφlenφ disk∙" se zpracovßnφ p°esune na dalÜφ procesory. U architektury "sdφlenφ niΦeho" se ztrßcφ p°φstup k Φßsti databßze.

Mezi paralelnφ architektury se dnes jeÜt∞ °adφ tzv. klastry. Jde o hardwarovou architekturu, ve kterΘ jsou uzly zalo₧enΘ na SMP spojenΘ do sφt∞. Uzly komunikujφ pomocφ zprßv. Tφmto zp∙sobem lze docφlit rozÜi°itelnosti, kterß schßzφ samotn²m stroj∙m SMP. Nap°. pomocφ dvanßcti Alpha server∙ firmy Digital zalo₧en²mi na True Cluster se 4 procesory lze slo₧it fyzickou sestavu se 16× 4 procesory.

P°es malou rozÜi°itelnost, mß ovÜem architektura SMP dv∞ zßsadnφ v²hody nad architekturou MPP:

  • Dφky sdφlenΘ pam∞ti neexistuje ₧ßdnß prodleva p°i v²m∞n∞ zprßv v komunikaci, synchronizace je levnß, vy₧aduje mechanismy nφzkΘ ·rovn∞, vyvß₧enφ zßt∞₧e je jednoduÜÜφ, proto₧e operaΦnφ systΘm m∙₧e pro ka₧d² p°ipraven² proces alokovat libovoln² voln² procesor.
  • Paralelnφ zpracovßnφ v MPP klade d∙raz na rovnom∞rnΘ zatφ₧enφ z·Φastn∞n²ch poΦφtaΦ∙. Jde o obtφ₧nΘ otßzky dosud ne p°φliÜ vy°eÜenΘ ani na teoretickΘ ·rovni. Paralelismus takΘ klade novΘ nßroky na optimalizßtor dotaz∙.

Paralelnφ databßzovΘ servery

Na zßklad∞ obecn²ch idejφ paralelismu se teprve vytvß°ejφ paralelnφ S╪BD, Φi paralelnφ databßzovΘ servery. Znßm²m paralelnφm databßzov²m produktem je NonStopSQL firmy Tandem. V systΘmu NonStopSQL verzi z r. 1986 Ülo o prvnφ distribuovan² SQL s vysok²m v²konem - 200 t/s. V paralelnφch verzφch z r. 1989 a 1994 je vyu₧ita technologie "sdφlenφ niΦeho" pro paralelnφ zpracovßnφ dotazu zp∙sobem, ₧e se stoupajφcφm poΦtem procesor∙ klesß lineßrn∞ rychlost vyhodnocenφ dotazu. Relace jsou p°i tom horizontßln∞ distribuovßny mezi disky k jednotliv²m procesor∙m. V OLTP dosahuje konfigurace se 110 uzly a 800 GByte databßzφ 21 000 t/min. (podle test∙ TPC-C) .

Lineßrnφ zv²Üenφ v²konu s poΦtem p°idßvan²ch procesor∙ dosahuje takΘ architektura Computing Surface firmy Meiko. JednotlivΘ moduly jsou procesory SPARC s operaΦnφm systΘmem Solaris propojenΘ pomocφ paralelnφ vnit°nφ sφt∞ CSN (Computing Surface Network). Ta umo₧≥uje nezßvislou komunikaci ka₧dΘho modulu s ka₧d²m. ┌sp∞Ün² projekt z hlediska databßzφ v tΘto architektu°e a souΦasn∞ absolutnφ sv∞tovΘ prvenstvφ p°edstavuje paralelnφ server Oracle (Oracle RDBMS V 6.2) z r. 1991. P°idßvßnφm procesor∙ lze dosßhnout pr∙chodnosti od 30 do 1000 a vφce t/s.

Je jist∞ zajφmavΘ sledovat ôsvatou vßlkuö o to, kterß architektura je lepÜφ. SpφÜe je t°eba °φci, na co se jednotlivΘ varianty hodφ. Obecn∞ vzato SMP se je vhodn∞jÜφ pro OLTP aplikace se stabilnφm provozem Φi pomal²m nßr∙stem provozu s daty od 10 do 100 GByte. MPP systΘmy se hodφ pro slo₧itΘ analytickΘ aplikace, kde r∙st provozu je nepredikovateln², s daty i p°es 200 GByte.

A jak se k paralelismu stavφ 4 u nßs nejznßm∞jÜφ databßzovΘ firmy? Po n∞kolik let existujφ databßzovΘ servery Oracle pro vÜechny typy paralelnφch architektur.

Server b²vß Φasto implementovßn jako multi-threaded (vφcevlßknov²), tj. operaΦnφ systΘm rozd∞lφ program server na Φßsti (threads), kterΘ poÜle na jednotlivΘ procesory. Pou₧itφ tΘto technologie je typickΘ pro Sybase SQL Server nebo pro Informix - OnLine Dynamic Server verze 7.1. Informix vyu₧φvß DSA (Dynamic Scalable Architecture) a buduje paralelismus na klastrech. Informix v r. 1995 rozÜφ°il DSA architekturu na MPP platfomu a nabφdnul OnLine Extended Parallel Server (XPS) verze 8.0

Sybase je zalo₧en na dvou·rov≥ovΘ architektu°e software. Tzv. navigßtor (Navigation server z r. 1994) °φdφ pole nezßvisl²ch SQL stroj∙. Jeho dalÜφ verze se naz²vß Sybase MPP. Co se t²Φe optimalizace zpracovßnφ dotaz∙ v paralelnφm prost°edφ, pat°φ dnes Sybase SQL server z°ejm∞ ke ÜpiΦce v tΘto oblasti. Data rozd∞lenß na jednotlivΘ servery v paralelnφ architektu°e mohou vykazovat i nerovnom∞rnΘ rozlo₧enφ. Pak mohou mφt jednotlivΘ servery pro jeden po₧adavek r∙znΘ plßny vyhodnocenφ.

KoneΦn∞ p°φstup IBM k MPP je reprezentovßn verzφ DB2/6000 Parallel Edition.

Paralelismus je charakterizovßn pom∞rn∞ jednoduch²m vybudovßnφm prost°edφ pro paralelnφ provßd∞nφ v²poΦtu. Na druhΘ stran∞ je pro n∞j velmi t∞₧kΘ napsat obecn² optimalizßtor dotaz∙ tak, aby by byl automaticky generovßn optimßlnφ plßn. Dokonce se zdß, ₧e se ji₧ objevujφ slo₧itostnφ hranice mo₧nostφ optimalizace. P°ipome≥me vÜak, ₧e tyto problΘmy provßzejφ optimalizaci i v sekvenΦnφm p°φpad∞.



<seznam dφl∙ serißlu>   <COMPUTERWORLD>