iT邦幫忙

DAY 4
1

分散式資料處理,以Stream Computing為例系列 第 4

Day 4: 為什麼有有些時候不要把query灑到所有機器上平行處理?

昨天講到partition,事實上partition比較常用在write需求高的應用(平行寫),這是為什麼呢?

以前同事問過一個問題:既然有多台機器,那當然是把query分散到多台機器上啊。為什麼我們不想把query灑到所有機器上呢?

這問題的答案是:如果query很耗時,那分散的確會比較好;但如果query很快(比方有用到DB的index lookup),那分散會增加效能降低的風險。

Hadoop的Map Reduce就是透過分散提昇效率,因為有很多資料要掃,所以分散是值得的。在這種狀況下,效能的增加蓋過效能降低的風險。

所謂效能降低的風險是指:因為要所有機器都回傳資料後才能完成運算,所以運算時間是 Max(各台機器的處理時間)。當機器越多的時候,發生異常的機會越高,導致運算延遲。

一個現實的例子像是在橋開會時間,當與會人員越多時,就越有可能要花更久時間來協調,因為要等最慢回覆的那個人。

所以,在分散式資料系統中,如過查詢費時,可以盡量分散;但如果查詢很快,請盡量集中在少數機器處理。

不好意思,今天的文章有點水^^,請多包含~


上一篇
Day 3: Partition
下一篇
Day 5: 資料切割的metadata管理
系列文
分散式資料處理,以Stream Computing為例30

1 則留言

0
yoyoman123
iT邦新手 5 級 ‧ 2014-10-02 16:06:02

正想說挺實用的,就結束了
有一點點點點水...XDDDD

希望能看到更詳細的說明,拜託了! (拜)

我要留言

立即登入留言