SlideShare a Scribd company logo
1 of 15
Download to read offline
Ú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
Ú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)
Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
MedSavant
Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
MedSavant
Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
MedSavant
Ú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
Ú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
Ú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
Ú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...
Ú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)
Ú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)
Ú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
Ú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+%
Ú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
Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky
ˇDakujem.
Otázky?

More Related Content

More from Miro Cupak

More from Miro Cupak (20)

Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Writing clean code with modern Java
Writing clean code with modern JavaWriting clean code with modern Java
Writing clean code with modern Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
Writing clean code with modern Java
Writing clean code with modern JavaWriting clean code with modern Java
Writing clean code with modern Java
 
Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11 (and 12)Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11 (and 12)
 
Exploring what's new in Java 10 and 11
Exploring what's new in Java 10 and 11Exploring what's new in Java 10 and 11
Exploring what's new in Java 10 and 11
 
Exploring what's new in Java in 2018
Exploring what's new in Java in 2018Exploring what's new in Java in 2018
Exploring what's new in Java in 2018
 
Reactive programming in Java
Reactive programming in JavaReactive programming in Java
Reactive programming in Java
 
Master class in Java in 2018
Master class in Java in 2018Master class in Java in 2018
Master class in Java in 2018
 
Exploring reactive programming with Java
Exploring reactive programming with JavaExploring reactive programming with Java
Exploring reactive programming with Java
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
Writing clean code with Java in 2018
Writing clean code with Java in 2018Writing clean code with Java in 2018
Writing clean code with Java in 2018
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
Pushing boundaries of types with modern Java
Pushing boundaries of types with modern JavaPushing boundaries of types with modern Java
Pushing boundaries of types with modern Java
 
How we've made a global search engine for genetic data
How we've made a global search engine for genetic dataHow we've made a global search engine for genetic data
How we've made a global search engine for genetic data
 

Beacon Network: A System for Global Genomic Data Sharing

  • 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)
  • 3. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky MedSavant
  • 4. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky MedSavant
  • 5. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky MedSavant
  • 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
  • 15. Úvod MedSavant Paralelizácia: Sharding Návrh a implementácia Vyhodnotenie Záver Otázky ˇDakujem. Otázky?