MPP(Massively Parallel Processing)是指多個處理器(或獨立的計算機)并行處理一組協同計算。為了保證各節點的獨立計算能力,MPP數據庫通常采用ShareNothing架構,最為典型的產品是Teradata(簡稱TD),后來也出現Greenplum(簡稱GPDB)、Vertica、Netezza等競爭者。
單在多年的實際應用中,我們發現MPP從批處理和聯機訪問兩個方面都顯現了一些不足。
落后節點:
MPP架構下,工作負載節點是完全對稱的,數據均勻的存儲在這些節點,處理過程中每個節點使用本地的CPU、內存和磁盤等資源完成本地的數據加工。這個架構雖然提供了較好的擴展性,但隱藏了極大的問題——Straggler,即當某個節點出現問題導致速度比其他節點慢時,該節點會成為Straggler。
此時,無論集群規模多大,批處理的整體執行速度都由Straggler決定,其他節點上的任務執行完畢后則進入空閑狀態等待Straggler,而無法分擔其工作。導致節點處理速度降低的原因多數是磁盤等硬件損壞,考慮到磁盤本身的一定故障率(根據統計前三個月內2%損壞率,第二年時達到8%)當集群規模達到一定程度時,故障會頻繁出現使straggler成為一個常規問題。
并發性能:
由于MPP的“完全對稱性”,即當查詢開始執行時,每個節點都在并行的執行完全相同的任務,這意味著MPP支持的并發數和集群的節點數完全無關。根據該文中的測試數據,4個節點的集群和400個節點的集群支持的并發查詢數是相同的,隨著并發數增加,這二者幾乎在相同的時點出現性能驟降。
傳統MPP的聯機查詢主要面向企業管理層的少數用戶,對并發能力的要求較低。而在大數據時代,數據的使用者從戰略管理層轉向戰術執行層乃至一線人員,從孤立的分析場景轉向與業務交易場景的融合。對于聯機查詢的并發能力已經遠超MPP時代,成為OLAP場景分布式數據庫要考慮的一個重要問題。
從整體架構來看,分布式更加看重大數據量批量處理的吞吐能力。同時,分布式具備MPP所缺失的批量任務調整能力,數據的多副本存儲使其具有更多“本地化”數據加工的備選節點,而且數據加工處理與
數據存儲并不綁定,可以根據節點的運行效率動態調整任務分布,從而在大規模部署的情況下具有整體上更穩定的效率。相比之下,MPP在相對較小的數據量下具有更好的執行效率。
分布式數據庫與并行數據庫有什么區別
(1)應用目標不同。并行數據庫系統的目標是充分發揮并行計算機的優勢,利用系統中的各個處理機結點并行完成數據庫任務,提高數據庫系統的整體性能。分布式數據庫系統主要目的在于實現場地自治和數據的全局透明共享,而不要求利用網絡中的各個結點來提高系統處理性能。
(2)實現方式不同。在具體實現方法上,并行數據庫系統與分布式數據庫系統也有著較大的不同。在并行數據庫系統中,為了充分利用各個結點的處理能力,各結點間可以采用高速網絡連接。結點鍵的數據傳輸代價相對較低,當某些結點處于空閑狀態時,可以將工作負載過大的結點上的部分任務通過高速網傳送給空閑結點處理,從而實現系統的負載平衡。
但是在分布式數據庫系統中,為了適應應用的需要,滿足部門分布特點的需要,各結點間一般采用局域網或廣域網相連,網絡帶寬較低,顛倒點的通信開銷較大。因此,在查詢處理時一般應盡量減少結點間的數據傳輸量。
(3)各結點的地位不同。在并行數據庫系統中,各結點是完全非獨立的,不存在全局應用和局部應用的概念,在數據處理中只能發揮協同作用,而不能有局部應用。在分布式數據庫系統中,各結點除了能通過網絡協同完成全局事務外,各結點具有場地自治性,每個場地使獨立的數據庫系統。每個場地有自己的數據庫、客戶、CPU等資源,運行自己的DBMS,執行局部應用,具有高度的自治性。
PetaBase的架構優勢PetaBase基于Hadoop框架打造了高可用、高吞吐的實時/離線接入系統,將數據統一落入HDFS,形成原始層;基于Hive的小時級任務,分別負責計算生成明細層與匯總層;應用層使用PetaBase 內部的MPP計算引擎完成各種
報表分析、KPI、決策支持的快速響應。

面對實時數倉的訴求,PetaBase擴展出的流式計算框架能很好地應對各種流式處理的需求。從上文可以看到,結構化數據的流式處理與半結構化數據的流處理基本相似,只是把采集端的 OGG 替換為 Flume,分發層和計算層都是完全一樣的。從總體流程來看,基本模型是不變的。采用這種統一的、分層次的架構,有如下幾個優勢:
1)基于分層的設計,可以靈活地擴展或替換流處理框架中的上下游;
2)統一的后端處理,最大限度的保證系統的穩定性并減少混合架構的復雜度;
3)批流統一,同樣的 SQL,既可以跑離線也可以跑實時;
4)低延遲,高吞吐,端到端的 Exactly-once;
5)同時支持結構化與非結構化數據的實時處理,支持多種異構數據源的采集;
6)離線實時數倉的一體化。
作為一款國產分布式大數據平臺,PetaBase已經在諸多領域證明了自身的價值。尤其是在面向
數據倉庫的應用中,更是展示了其出色的性能和堅如磐石的可靠性。不管你是聯機交易,網站訪問,還是物聯網、車聯網(傳感器)的應用場景,如果你需要一個能支撐T+0到T+n的數據平臺,PetaBase是你最好的選擇之一。
(部分內容來源網絡,如有侵權請聯系刪除)