How we've made a global search engine for genetic data
Parallelization of Query Processing in MedSavant
1. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Paralelizácia databázových dotazov
v aplikácii MedSavant
Miroslav Cupák
Diplomová práca
10. 2. 2014
2. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Problém
aplikácia: vyhl’adávaˇc nad genetickými variáciami
(MedSavant)
problém: jednovláknové spracovanie dotazov v databáze
(Infobright Community Edition)
riešenie: paralelizácia spracovania databázových dotazov
na úrovni aplikácie (sharding)
ciel’: vyšší výkon a škálovatel’nost’
spolupráca: Centre for Computational Medicine (SickKids
Research Institute) a Computational Biology Lab
(University of Toronto)
6. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Sharding
z angl. rozlomenie, rozbitie
SHAReD-nothING architektúra
horizontálne rozdelenie množiny dát na nezávislé servery
distribúcia dotazov a agregácia výsledkov
sharding stratégia
7. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Požiadavky
vyšší výkon pri spracovaní pomalých dotazov
lepšia škálovatel’nost’
plná podpora ICE
využitie viacerých výpoˇcetných jednotiek zariadenia
podpora dát rozložených na distribuované servery
integrácia so serverom
objektovo orientovaný prístup
jednoduchá migrácia
dobre meratel’ný a reprodukovatel’ný výkon
8. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Modul
medsavant-server medsavant-client
distribution
medsavant-shared
<<use>><<use>>
<<use>><<use>>
medsavant-shard
medsavant-server medsavant-client
distribution
medsavant-shared
<<use>>
<<use>>
<<use>>
<<use>><<use>>
2 ˇcasti
všeobecný sharding rámec
sharding logika špecifická pre MedSavant
9. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Spracovanie dotazov
ˇcítanie/zápis
rovnaký dotaz na všetky uzly/dotaz pre konkrétny uzol
1 logická databáza/prístup ku konkrétnym uzlom
fázy spracovania dotazu
vygenerovanie pôvodného dotazu v SQL
transformácia dotazu do distribuovaného prostredia
zaslanie dotazu na databázové servery
prijatie ˇciastkových výsledkov a ich agregácia
úprava výsledkov pre potreby aplikácie
2 sharding stratégie založené na pozícii v chromozóme
d’alšie úlohy
správa spojení, konfigurácia, udržovanie mapovania...
10. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Merania
2 aspekty
zlepšenie výkonu
úspech sharding stratégie
2 databázy
DB1: 134 958 340 variácií
DB2: 1 378 423 987 variácií
2 konfigurácie
C1: žiadna paralelizácia (1 databáza, pôvodná
implementácia)
C2: paralelizácia v rámci 1 stroja (1 server, 8 shards)
C3: paralelizácia v distribuovanom prostredí (8 serverov, 8
shards)
14 základných dotazov (Q1-Q14)
11. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
ˇCas spracovania (DB2)
Time(s)
200
400
600
800
1,000
Query ID
1 2 3 4 5 6 7 8 9 10 11 12 13 14
original setup
sharded setup (single machine)
sharded setup (multiple machines)
12. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Zrýchlenie (DB2)
Speedup
0
1
2
3
4
5
6
7
8
9
10
11
12
Query ID
1 2 3 4 5 6 7 8 9 10 11 12 13 14
single machine
multiple machines
linear
13. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Distribúcia dát (DB2)
Numberofrecordsinashard
0
2×108
4×108
6×108
8×108
109
Number of shards
2 4 8 16
basic strategy
enhanced strategy
optimal strategy
relatívna smerodajná odchýlka 65.44+%, resp. 4.71+%
14. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
Zhrnutie
vytvorenie sharding rámca, návrh sharding stratégie pre
genetické dáta, plná integrácia s MedSavant
riešenie sp´lˇna všetky požiadavky, predovšetkým:
vyšší výkon pri spracovaní pomalých dotazov (75+%)
dobrá škálovatel’nost’ (lineárna až superlineárna)
od odovzdania práce:
spätná väzba od CCM
demo tento týždeˇn
plány na zaradenie funkcionality do produktu
vedecký ˇclánok
súvisiaci projekt: sharding in the cloud