199IT數據中心微信賬戶:i199IT
數據庫評測基準在數據庫發展歷史中的作用不可替代,而大數據環境中傳統評測基準不敷應用。因此,從評測基準3要素,即數據、負載、度量體系入手,研究具有高仿真性、可適配性、可測量性的大數據管理系統評測基準,對大數據管理系統的研發和應用系統選型至關重要。基于此,在簡要分析評測基準的基本要素和大數據管理系統發展過程的基礎上,重點分析大數據管理系統的基準評測需求與挑戰,然后通過社交媒體分析型查詢評測基準BSMA,探討了面向應用的大數據管理系統基準評測的設計和實現問題。
關鍵詞:大數據管理系統;評測基準;數據生成;負載生成;性能度量體系
1 引言
數據庫管理系統(DBMS)廠商間的激烈競爭造就了一個數千億美元的市場。數據庫基準評測(databasebenchmarking)確保了競爭的公平有序,從而引導了行業的健康發展。數據庫評測基準是指一套用于評測、比較不同DBMS性能的規范,其所生成的性能指標值能夠客觀、全面地比較各個DBMS的性能差距[1]。
通常,新的數據庫理論或數據管理技術被提出之后,會迅速誕生一批原型或商用系統。但技術上的差異常導致它們的性能表現不盡相同,從而引發系統開發商之間的爭議。技術層面的爭論和競爭促進了行業的發展;而諸多非技術因素的介入,則會破壞良性競爭。1983年發布的“威斯康星基準”[2],消彌了自關系型數據庫管理系統(RDBMS)出現后紛爭的性能口水戰,促進了各DBMS廠商優化系統,并最終在常用負載(workload)下取得相近的性能。威斯康星基準的巨大成功以及以威斯康星大學DeWittD J教授和圖靈獎獲得者Gray J為代表的一批學者對數據庫基準評測的適時推動,有效地保障了20世紀80年代開始的30多年的數據庫行業的健康發展。
隨著“大數據”成為應用熱點,越來越多的應用環境中,數據、應用和系統體現出“3V”的特性[3],即量大(volume)、多樣(variety)、快速變化(velocity):數據同時具備“3V”的特性,即數據規模大、變化速度和增長速度快,且包含多源、異構和非結構化數據;應用中包含大量作用于大數據的多樣化的負載,且很多負載要求在快速變化的數據上獲得實時的結果;系統則需要同時適應數據與應用,在不同的接口層次上提供對大數據的多樣化的管理和處理功能。
針對新興的大數據應用環境,在以Hadoop為代表的海量數據處理技術日趨成熟的同時,一批新型大數據管理系統(bigdata management system,BDMS)積極涌現,以解決大數據管理與處理中的各種問題。
新型的數據、應用環境和系統決定了現有評測基準無法產生具有仿真能力的數據,不能反映應用需求,無法公平、有效地評測系統。在包括數據生成、負載生成、度量選取、評測基準架構與評測方法等在內的基準評測的多個方面,都需要研究、開發新的技術,以更真實地反映系統在典型應用環境中的表現。評測基準是對大數據應用環境中數據管理任務的規范化與定義,對大數據系統的研發具有指導意義。
基準制定是一個漫長的過程。RDBMS的基準評測經過30多年的發展,仍在不斷完善。而影響力較大的早期大數據評測基準CALDA提出至今不過4年[4]。目前的相關評測基準在應用抽象、評測內容與方法、應用程度上都仍在初級階段。可以預見,未來的5~10年評測基準將和BDMS的研發共同高速發展[5]。
另一方面,由于我國用戶分布、商業模式、政策法規的特點,應用環境具有一定的特殊性。這種特殊性體現在數據、負載特性上。國外數據庫廠商因對我國國情的不了解甚至是有意抵觸,很難在短時間內研發出適合我國需求的系統和應用。面向具有特色的應用,制定評測基準,有助于引領大數據技術和系統的研發,為解決我國所面臨的最急迫的大數據管理問題做出貢獻,同時促進國內大數據系統的研發,提振國內大數據行業的發展。
本文將在簡要分析評測基準的基本要素和大數據管理系統發展過程的基礎上,重點分析大數據管理系統的基準評測需求與挑戰,然后通過社交媒體分析型查詢評測基準(benchmarkof social media analysis,BSMA),探討面向應用的大數據管理系統基準評測的設計、實現問題。
2 評測基準的基本要素
從宏觀角度看,評測基準的3要素是數據、負載和度量體系,下面分別進行介紹。
數據:不同應用的數據具有不同的靜態和動態特征,體現在結構、規模、數據分布、變化速率等多個方面。傳統基準通常只采用固定數據結構和數據分布下的數據生成方法產生高仿真數據。而如何準確刻畫大數據靜態和動態特征,如何在特征已知或未知的情況下,高效地生成測試所需的海量數據是大數據管理系統基準評測所需要解決的問題。
負載:負載是作用于數據的訪問和查詢、更新、分析任務。大數據管理系統評測基準必須能夠產生反映應用需求的多樣化的負載(variety)。和數據一樣,評測基準的負載必須在靜態和動態特征上與應用具有相似性,即對于評價指標而言,模擬負載能夠反映應用的需求。具有良好適配性的負載生成理論和方法是大數據管理系統基準評測的第二個要素。
度量體系:度量體系指對于性能進行評價的指標集合。指標可以是單一的,也可以是多維的。BDMS應用環境不同于傳統DBMS。例如,新型硬件要求在評測時考慮非傳統的性能度量,如忙時數據更新量(面向集群化的大內存系統)、熱點數據更新頻率等;開放的運行環境要求評測能夠反映系統受干擾時的性能;分析型負載則將性能度量和結果的精確程度綁在一起。此外,性價比、能耗等因素進一步增加了BDMS度量體系制定的難度。
3 大數據管理系統及其評測基準需求
3.1 大數據管理系統的分類
大數據管理系統通常指那些基于集群環境,利用大容量內存、高速網絡,支撐海量數據存儲、索引、更新、查詢、檢索、分析和挖掘的數據管理系統。谷歌公司的GFS、MapReduce實現以及BigTable系統可以認為是最早出現的有代表性的大數據管理系統。而隨著開源系統Hadoop的出現和相關開源生態圈的發展以及BerkeleyData Analytics Stack系列工具的快速發展,一大批系統和工具都可被歸于BDMS的范疇,如圖1所示[6]。這些系統的功能、接口層次、架構、實現技術、面向應用和所依賴的底層硬件各不相同,如何客觀、公正地比較它們在不同應用場景下的性能,無論是對于系統開發者還是應用開發和系統選型人員來說,都是一個難題。這也是BDMS基準評測對于指導系統研發、系統選型,營造良好技術競爭環境的意義所在。
圖1 大數據管理系統及它們之間的關系
3.2 大數據管理系統基準評測需求
BDMS評測基準首先需要具備大數據建模與高仿真的數據生成的能力。具體而言,包括以下需求。
大數據靜態和動態特征的刻畫:對現實應用場景中的真實數據進行動態和靜態特性的刻畫,是形成數據生成理論的前提。數據的靜態特征包括數據結構、數據分布、精確性以及時序關系等。在成熟的應用領域,數據靜態特征往往已經有模型進行描述。但大數據的動態性(velocity)特征難以用單一模型進行刻畫。對數據的靜態和動態特性進行參數化的刻畫是高仿真數據生成的前提。
高仿真的數據生成方法:大數據應用的特點決定了需要采用應用相關的數據生成方法。同時,大數據的復雜性和動態性決定了對數據特征的刻畫無法由領域專家完成,而需要通過統計和機器學習自動進行。
動態數據高效持續生成:大數據不斷變化、持續更新。因此,評測基準需要具備采用并行數據生成、流式數據生成等技術,仿真真實的海量、快速變化的動態數據的能力。
其次,BDMS評測基準還需要具備能夠滿足多場景需求的綜合負載生成能力,具體介紹如下。
負載特性刻畫與建模:常見負載包括數據訪問、數據檢索與查詢、數據更新、批處理、迭代運算、聚集計算等,它們的處理代價各不相同。應用中的負載常常是復合的,且負載的分布隨時間而變化。同時,負載作用于不同的數據對象(負載參數(argument)),其處理代價也是不同的。而且負載參數的分布也是動態、多樣的。具備豐富、靈活的負載特性刻畫能力,是準確模擬應用負載的前提。
BDMS原語與操作模式的抽象:BDMS的訪問接口具有多樣性。在不同層次的BDMS服務上,分別定義兼容多種系統的負載描述,是實現BDMS基準評測的前提之一。這一需求也是BDMS評測基準與傳統數據庫管理系統評測基準的一項重要區別。
可適配的負載自動生成方法與系統框架:應用的負載各不相同。為每個應用定制負載生成器,成本高、效率低,不能滿足同一數據集上共生多種應用的BDMS基準評測需要。因此,給定負載特性刻畫,生成不同接口層面的代表性負載和相應負載參數,是另一項重要的BDMS基準評測需求。
第三,負載相關的度量體系與測量方法對于BDMS評測基準至關重要。
BDMS度量的基本特征與度量體系:BDMS系統的性能評價包括多項非傳統的度量,包括數據分析的實時性、系統的彈性能力,即環境變化時的自動管理能力、精度與性能的復合度量、能耗和能效比等。因此,需要制定可重復、可核實的新度量體系。這又是一項顯著不同于傳統數據庫管理系統評測基準的需求。
影響度量可測量性的不確定因素的量化與相關性分析能力:多種不確定因素會影響最終的評測結果。云計算、多租戶、虛擬機環境都可能放大這種影響,造成評測結果的不客觀、不可重復等問題。因此,需要對影響可測量性的因素進行量化和相關性分析,并進一步修正度量體系,以保證評測結果的客觀和全面。
新的測量方法學:基準評測要求其過程和結果具有可解釋性、可重復性、可審計性。測量方法要求對這些特定現象進行準確記錄和描述。另一方面,大數據應用的數據和負載常具有非穩態、爆發性特征,即在特定時刻數據或負載量劇增。BDMS基準評測方法必須具有可伸縮性,使得對爆發性的數據和負載,評測過程和結果仍有意義。此外,評測的結果還必須通過公開的方式報告評測環境、評測過程和評測結果。
3.3 大數據管理系統基準評測的挑戰
大數據管理系統的一個重要特點是“同類適用(onesize fits a bunch)”,即一個系統所針對的是具有相似特點的一類(bunch)應用,而不是所有應用。它不同于傳統數據庫管理系統的“一體適用(onesize fits all)”特點[7]。這也是不同BDMS之間的差異明顯大于傳統數據庫管理系統間差異的主要原因。系統間的顯著差異為基準評測制造了障礙。為了應對這一情況,BDMS評測基準也應具有“同類適用”的特點,如圖2所示。
圖2 BDMS評測基準的“同類適用”特點
具體而言,評測基準需要滿足高仿真性、可適配性以及可測量性。
高仿真性,即生成的數據和負載在對于性能度量有明確影響的特征上具有高仿真性。
可適配性,即通過參數定制,基準評測套件可適配于不同領域,以對應BDMS系統的“同類適用”特點。可定制、可適配的評測基準對于降低評測成本具有重要意義,這是BDMS評測所特有的問題,也是難點所在。
可測量性,即基準評測結果在開放、動態應用環境中仍有意義,開放、動態的大數據應用環境向評測結果的可解釋性、可重復性、可審計性、公平性提出了挑戰。這一問題需要通過對BDMS進行更細致的建模以及大量的實驗和實驗結果分析加以解決。
4 BSMA:面向社交媒體數據分析型查詢的基準評測
4.1 BSMA框架
BSMA是一個社交媒體數據分析型查詢評測基準[8,9],它包含了社交媒體數據的形式化描述規范和一個真實的社交媒體數據集,定義了24個測試查詢,提供了評測系統查詢性能的工具以及用于產生社交媒體時間軸(timeline)的數據生成器BSMA-Gen[10]。BSMA的系統結構如圖3所示[9],BSMA所針對的數據定義如圖4所示[9]。其自帶的真實數據集和數據生成器所產生的模擬數據都符合這一數據定義。
圖3 BSMA框架
圖4 BSMA數據定義
社交媒體數據分析具有典型的大數據應用的特征:
首先,社交媒體數據并非傳統的關系數據,具有時序數據、文本和多媒體數據、圖數據和結構化數據的多重特征;
其次,社交媒體數據量大、更新速度快;
第三,社交媒體數據分析通常分析任務復雜、具有較高的實時性要求。
BSMA的研究是BDMS評測基準研究的一項初期工作,從中可以體現研究問題和難點所在。
4.2 數據生成
為了完成模擬社交媒體時間線的生成任務,BSMA-Gen完成2個基本工作:模擬真實的社交媒體數據分布和高效產生時間線[10]。
BSMA-Gen產生時間軸,即消息數據流,每一條消息可表示為一個元組:m= 。其中t是信息發布的時間,c是內容,u是發布者,f是一個指向源消息的指針。當該消息是原始消息時,f為null;而當該消息為轉發消息時,f指向被轉發的消息(此消息也可能是轉發的)。現在的生成器版本產生的數據只包含結構信息t、u、f,并不包含內容信息c。
BSMA-Gen將每個用戶發布信息的過程模擬成非齊次泊松過程(nonhomogeneousPoisson process),從而可根據不同配置參數產生帶有相應分布的社交媒體時間軸數據。
社交媒體時間線中的元組間轉發相關性隨著時間間隔變大而衰減。BSMA-Gen采用衰退函數模擬這一關系,并通過維護歷史元組緩沖池和待產生元組緩沖池實現了元素的流式產生。同時,為了進一步加快時間線的產生速度,BSMA-Gen采用主從(master-slave)結構,由主節點進行發布者社交網絡劃分。每個從節點負責一個分區中所有發布者所發布的消息組成的部分時間線的生成。當一個從節點需要從其他分區獲取發布者和社交網絡信息以確定一個元素的f指針時,該元素的輸出會被推遲,以等待遠程從節點的信息到來。采用這種異步傳輸、延時生成的策略,每個元素的生成都不需要等待網絡通信。實驗表明,BSMA-Gen可以確保生成的時間線在轉發結構、時序分布、用戶消息數等方面符合預先給定的分布和參數,且吞吐率(即單位時間生成的元素數)與從節點個數呈線性增長關系。
4.3 負載
BSMA提供了24個典型社交媒體數據分析型查詢負載。每個負載反映了一種或多種社交媒體數據分析的特性。BSMA負載主要覆蓋了以下3類查詢特性。
社交網絡查詢(socialnetwork query,SNQ):社交網絡的查詢圍繞消息發布者的關系展開。它的目標是查詢社交網絡的某個特定模式或子圖。
時間線查詢(timelinequery,TQ):在社交媒體中,時間線(timeline)是指以時間逆序排列的消息序列,序列中消息的條數即時間線的長度。時間線廣義上可分全局時間線(globaltimeline)和局部時間線(local timeline)兩種,全局時間線中的消息來自社交媒體中的任意用戶,而局部時間線則限制了用戶范圍。時間線查詢的本質是對于時間序列的查詢。
熱點查詢(hotspotquery,HQ):熱點是指在某個特定的時間線內消息中滿足某些過濾條件且統計值最大的某類元素的集合。由于社交媒體中數據的統計值分布常符合冪律(power-law)分布,對熱點的查詢在進行數據連接(join)和聚集(aggregation)計算時往往需要遠超出查詢其他元素的存儲和計算開銷。
處理這些負載可能需要對兩個大的集合(關系)進行連接操作、對大集合進行多屬性查詢或對大集合進行聚集計算,而這些操作的處理通常是耗時、耗存儲資源的。因此,這些負載能夠測試數據管理系統在社交媒體數據分析這一特定應用中的性能表現。
4.4 評測指標與評測方法
BSMA使用以下3個性能評判指標。對于24個典型負載的組合,計算出這3個指標的值,以此來衡量查詢處理性能。當然,查詢執行的正確性是性能度量的基本前提。
吞吐率指標:吞吐率指單位時間內完成的查詢數。在這里,吞吐率指標度量的是在不同線程數設置下能達到的吞吐率最高值,這個值越高意味著性能越好。
延時指標:延時指一個查詢從發起請求到返回結果所需的時間。在這里,延時指標度量的是在不同線程數設置下所達到的次高吞吐率下(即系統未過載時)的查詢延時,這個值越低意味著性能越好。
擴展性指標:擴展性指隨著吞吐率的提高系統維持延時的能力。在這里,擴展性指標度量的是用最小二乘法擬合多個數據點的直線斜率。這些數據點對應不同線程數設置下的吞吐量(橫坐標)和延時(縱坐標),擬合直線越平滑意味著擴展性越好。
5 相關工作
數據庫評測基準研究在關系數據管理和非關系型數據管理方面均取得較大進展。針對大數據管理領域的基準評測工作則剛起步。圖5概要地展示了數據管理系統評測基準的發展過程[11]。
圖5 數據管理系統評測基準的發展
5.1 面向關系模型的數據庫系統評測基準
早期數據庫評測基準主要針對RDBMS,相關研究持續至今。事務處理委員會(TPC)是事實上的工業化標準組織,已經提出多個基準來評測RDBMS[12]。現有RDBMS評測基準可被劃分為3類:面向聯機事務處理(OLTP)、面向聯機分析處理(OLAP)以及同時支持OLAP和OLTP的評測基準。
面向OLTP的基準:面向OLTP的基準評測包括威斯康星基準[2]、DebitCredit[13]、AS3AP[14]、TPC-C和TPC-E等。其中,TPC-C和TPC-E目前仍在使用。它們分別仿真倉庫訂單管理應用和證券交易應用。
面向OLAP的基準:此類基準的負載包含大量聚集查詢,包括SetQuery[15]、SSB[16]、TPC-H和TPC-DS等。其中TPC-H和TPC-DS目前仍在使用,分別模擬商務采購應用和決策支持應用。
同時支持OLAP和OLTP的基準:部分新興數據管理技術支持同時具有OLAP和OLTP需求的應用。CH-Benchmark基準有效融合了TPC-C和TPC-H兩個基準,同時支持OLAP和OLTP評測。CBTR則提供了OLAP/OLTP復合負載[17]。
5.2 面向非關系型數據的基準設計
數據管理技術發展的過程是不斷地將非結構化數據結構化,納入DBMS,從而降低管理成本、提高利用效率的過程。針對各種非關系型數據,有不同的基準對相關技術和系統進行評測,見表1。
5.3 面向大數據管理技術的基準
不同的BDMS的功能和接口各不相同。當前的BDMS基準評測研究工作從以下3個方面展開。
評測MapReduce功能的基準:MapReduce是大數據處理中最常用的編程模式(paradigm)。此類基準主要評測MapReduce實現的性能。面向特定功能的此類基準包括:模擬TPC-H的MRBench[33]、評測HDFS文件系統的TestDFSIO[34]、Hadoop自帶的Sort[34]和用于測試Pig的PigMix[35]等。此外,一些基準可同時評測多種功能,如評測Hadoop整體性能的GridMix、混合功能基準IntelHiBench以及涵蓋了常用數據挖掘和數據倉庫操作的CloudRank-D[36]。
BDMS基準評測:CALDA基準可比較不同BDMS的性能[4]。YCSB[37]及其擴展YCSB++[38]可從性能和可擴展性兩個層面評測云服務系統。Floratou等人對面向文檔的NoSQL系統、面向決策支持的系統以及商用的DBMS進行了性能評測[39]。Rabl等人則比較了6種開源數據存儲系統在不同負載下的性能[40]。
面向應用的大數據基準評測:BigBench是一種面向商品零售業的基準,擴展了TPC-DS[41]。LinkBench是一個由Facebook提出,基于真實社交網絡應用的大規模圖數據評測基準[42]。而LDBC則是由歐盟資助的鏈接數據管理基準評測組織,并已發布多個評測基準[43]。
5.4 國內的相關工作
針對新型計算機系統的基準評測、新型DBMS的性能測試、新型數據庫基準評測等問題,國內學者也開展了廣泛而深入的研究。
在新型計算機系統的基準評測方面,中國科學院計算技術研究所提出了ICTBench,包含面向數據倉庫負載的DCBench[44,45]、面向BDMS的BigDataBench[46,47]和面向云計算系統的CloudRank[36]3個部分。中國人民大學孟小峰等人提出了CloudBM基準來評測云數據管理系統[48]。清華大學鄭緯民等人利用代表性的基準測試對NAS存儲系統進行了研究、比較和分析[49]。
大數據應用中廣泛使用了包括內存數據庫、NoSQL/NewSQL系統在內的大量新型DBMS。中國人民大學王珊等人利用TPC-H評測了多款內存數據庫的性能[50];杜小勇等人使用TPC-DS基準,在100個節點的集群上,對5種主流的開源BDMS進行了全面深入的測試與分析,并在2013年的中國大數據技術大會上報告。華東師范大學金澈清等人提出了MemTest,以評測內存DBMS的主要性能特性[51]。清華大學王建民團隊在NoSQL數據庫基礎上,實現了MOLAP引擎,并使用TPC-DC基準進行了測試[52]。此外,他們在OLAP系統的性能測試[53]、DBMS性能測試[54]等方面做了重要的基礎性工作。上海交通大學使用BigDataBench來評測數據中心上的資源共享策略[55];西安交通大學則使用這一基準來診斷大數據系統中的性能瓶頸[56]。
在BDMS的評測基準開發方面,BigDataBench包含了6個應用場景的數據集合和19類負載[46,47]。華東師范大學提出了一種面向社交媒體數據分析型查詢處理的評測基準BSMA[8,9];提出了一種并行社交媒體數據生成方法,以仿真微博等社交媒體數據[10]。周敏奇等人則設計了一種更為通用的可擴展的高仿真數據生成器框架[57]。而清華大學則針對工作流數據管理系統的負載生成開展了研究[58]。
6 結束語
在“大數據”熱潮下,大數據管理系統的研發和應用進展迅速,而相應的評測基準理論和方法研究則剛剛起步。針對大數據應用,特別是我國金融、電信、電子商務等具有鮮明應用特點的大數據應用的特點,遵循“同類適用”原則,從數據生成、負載生成、性能指標體系和測量方法這3個角度入手,解決應用環境適配和仿真、科學和公平評測、評測結果比較與分析等問題,是大數據管理系統評測基準研究的重要問題。現有的工作從應用和系統建模、數據仿真、數據和負載的高效生成、多維度性能指標設計等角度開展了研究。但對于設計和實現具有良好仿真能力、高適配能力的評測基準而言,非結構化數據仿真、超高負載環境模擬與評測方法、兼顧分析效果和性能的度量指標、開放環境下的性能評測和評測結果分析等問題仍是具有挑戰性的研究問題。
作者,錢衛寧、夏帆、周敏奇、金澈清、周傲英,華東師范大學數據科學與工程研究院