999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式數據庫聚合計算性能優化

2017-07-31 17:46:54肖子達朱立谷馮東煜
計算機應用 2017年5期
關鍵詞:數據庫實驗

肖子達,朱立谷,馮東煜,張 迪

(1.中國傳媒大學 計算機學院,北京 100024; 2. 安防大數據處理與應用北京市重點實驗室,北京 100024)

分布式數據庫聚合計算性能優化

肖子達1,2*,朱立谷1,2,馮東煜1,2,張 迪1,2

(1.中國傳媒大學 計算機學院,北京 100024; 2. 安防大數據處理與應用北京市重點實驗室,北京 100024)

(*通信作者電子郵箱shawzida@gmail.com)

針對分布式數據庫在分析應用方面的聚合計算性能較低的問題,以MongoDB數據庫為研究實例,提出了一種基于片鍵和索引的數據庫性能提升方法。首先,通過分析業務特征指導選擇的片鍵字段,該字段需要保證數據在分片節點上的均勻布局; 其次,通過研究分布式數據庫的索引效率, 利用刪除查詢字段索引的方法進一步提升計算性能,該方法能充分利用硬件資源提高聚合計算的性能。實驗結果表明,采用高基數粒度的分片片鍵能夠讓數據在集群上均勻地分布在各個數據節點上,而舍棄索引使用全表查詢能夠有效提高聚合計算的速度,聚合計算優化方法能夠有效提高聚合計算的性能。

NoSQL;MongoDB;MapReduce;聚合計算;性能優化

0 引言

在大數據應用方面,非關系型數據庫NoSQL(Not Only SQL)技術可以滿足存儲和分析大數據的需求。Moniruzzaman等[1]認為NoSQL的發展是適應超大規模的商業智能和社交網絡數據的。不同計算系統需要依據業務模型、事務需求和系統開銷來使用NoSQL[2-3]。

MongoDB是近年廣泛使用的一種NoSQL數據庫,其擁有動態的數據模式、自動分片和聚合計算等功能。相比傳統的關系型數據庫,MongoDB擁有更多的聚合方法來完成聯機分析處理(On-Line Analytical Processing, OLAP)的任務。

聚合方法在單機上無法滿足大規模數據的處理,NoSQL則提供了分布式集群架構,比如MongoDB支持水平擴展。除了水平擴展計算資源外,還能從片鍵選擇、索引創建等方面來提高有限資源系統的聚合計算性能。通過分析MongoDB的特性,本文提出一種依據應用場景來選擇分片片鍵的方法,并通過實驗分析結果來衡量不同片鍵分布特征導致的不同影響,表明聚合計算的性能達到了較高水平。

1 相關研究

1.1 MongoDB

MongoDB是一種文檔型的NoSQL數據庫,其數據以BSON(Binary Serialized Document Format)格式存儲。Chitra等[4]指出MongoDB特別合適存儲用戶信息、產品信息和各種網絡內容(博文、消息)。MongoDB的數據模式是動態的,數據結構十分靈活,在同一集合內的文檔格式可以不一致,并且單個文檔內部還可以嵌套文檔或者數組。這樣依據應用需求自由存放不同類型的數據的方式在關系型數據庫系統上是無法實現的。文獻[5-6]比較了MongoDB和關系型數據庫的讀寫性能, 表明MongoDB在數據量越大的情況下表現得越優異;文獻[7-9]則在具體應用上使用MongoDB提高系統的處理能力。這些研究分析都表明MongoDB性能是非常優異的。

NoSQL系統的一個關鍵特征就是分布式模型采用的是“share nothing”架構,在該架構下水平擴展時,不同服務器不會共享硬件資源[10]。MongoDB的水平擴展通過自動分片來實現,這種實現對應用程序是透明的,與單機環境下的MongoDB數據庫操作一樣。

MongoDB的分片集群成員如下:

1)mongod節點。mongod分片節點用來存儲分片集合數據。通常,分片節點接收來自路由節點的操作請求。

2)config節點。config配置節點用來存儲分片集群信息。配置節點通常會返回路由節點需要的數據分布信息。

3)route節點。route路由節點用來接收客戶端的請求并將操作請求發給每個分片。通過詢問config節點來得知目標分片節點的信息。

MongoDB可以通過分片集群來提高系統的可用性,將聚合計算應用到分片集群上時無需應用程序進行附加的操作。分片是分割數據,將數據塊分別存儲在不同機器上的過程[11],但這種方法只是從資源分配角度提高系統的性能,不能不假思索地認為它就是解決“數據庫很慢”的最佳方案。

分片集群的片鍵是集合的一個鍵,MongoDB根據片鍵來拆分數據。對于不同的分片片鍵類型,聚合計算的效率還是有差別的。分片的片鍵選擇對于集群的讀寫操作有著重大影響,在實際使用時應該仔細斟酌。擁有良好的分布隨機性和局部性特性的片鍵具有均衡的讀寫操作性能,但又側重于不同應用場景:如果應用是“一次寫入多次查詢”的場景,則應該使用具有最優局部性特征的范圍片鍵;相反,如果是寫入操作比讀取更加頻繁的場景,則應該使用散列片鍵[12]。

MongoDB的MapReduce功能是MapReduce編程模式[13]的簡化實現。在MapReduce模型中, 數據被Map端處理后產生的中間數據要被分配到Reduce端[14]。這是一種非常強大的數據聚合工具。在分片集群的情況下,MongoDB還能進行MapReduce并行計算。圖1展示的MapReduce在分片集群下的并行計算。作為MongoDB的路由節點,mongos將客戶端發出的請求進行暫存,并詢問存儲各分片信息的config節點,以獲得相關數據的位置; mongos得到數據的分布后,將請求發給各個分片節點shard; 各shard節點進行mapper和reducer處理,并將處理數據返回給mongos; mongos將處理完的數據進行合并以及傳遞給最后的reducer。

圖1 MongoDB的MapReduce模型Fig. 1 MapReduce model of MongoDB

MongoDB提供的MapReduce聚合計算能夠幫助完成大量數據的聚合任務。定時執行聚合分析任務考驗數據庫集群的性能。文獻[15-16]將MapReduce運用到在線聚合上通過并行處理提高在線請求的相應速度。文獻[17]通過Hadoop的MapReduce計算能力來提高整個MongoDB集群的計算能力,但這樣做的副作用是數據的讀寫性能明顯降低。

綜上所述,使用MongoDB實現大數據的處理與應用是可行的,但在大規模運行聚合計算時還是存在優化調整的空間。

1.2 相關研究

許多研究人員從如下幾個方面提出提升分布式數據庫分片性能的方法: 吳潤秀等[18]提出了一種基于粒計算的數據分片模型; Liu等[19]通過數據操作頻率改進分片集群的均衡性能; Huang等[20]實現了復合自身應用的數據塊遷移方法,在其自己實現的自動分片控制器中移動最大頻率塊, 但是衡量基本數據處理性能時過多地依賴于經驗而很難進行預先確認; Wang等[21]通過代理節點實現動態熱擴散的負載均衡, 這種方法通過占用更多的資源監控系統負載來實現動態均衡。林基明等[22]提出一種基于分片分配選擇器的算法來優化查詢執行計劃。

在不同的具體應用中,有多種字段可以作為片鍵的候選字段。Kang等[23]使用MongoDB作為傳感器數據倉庫,選擇采用兩個字段作為復合片鍵:第1個字段設置為粒度適中的字段,第2個字段設置為更細粒度和高基數的字段,這樣,第1個字段能夠均勻分布在不同分片上,而同一分片上的數據塊也能通過第2個字段分割得更加細小。 Kookarinrat等[24]的分析得出,同時擁有隨機性和局部性特征的片鍵可以提供一個優異的讀寫性能。

以上工作都是從分片負載均衡的角度提高分片性能,而對具有數據分析需求的系統,不能只是簡單地在均勻分布集群上套用MapReduce方法,因為數據的均勻分布并不能保證聚合分析任務在各節點上同時完成。因此,對于聚合計算的應用場景,應該采用更有針對性的優化方法。

2 聚合計算優化方法

MongoDB的聚合操作是一種消耗內存資源和磁盤讀性能的計算過程。MongoDB的MapReduce是其中最靈活的計算接口。通過建立分片集群,可以有效提高MapReduce的運算能力。在已有硬件資源一定條件下,本文采取一種基于數據特征的優化方法(流程如圖2)來提升集群的聚合計算能力。

圖2 優化方法流程

Fig. 2 Flow of optimization method

在構建數據集合時,需要預估集群的工作負荷以選擇合適的片鍵。集群數據分布情況受到字段粒度的影響,聚合操作性能也受到查詢條件和讀寫I/O的影響。一個好的片鍵應該滿足寫操作擴展和查詢分離的目的。通過使用兩個字段作為復合片鍵能夠有效地分布數據文件[23],但是這種方法也會增加查詢數據的時延,因為均勻分布的數據失去了局部性特征。MapReduce的輸入通常為一定范圍內的數據,這種情況下,考慮查詢字段組成片鍵能改善時延增加的情況。

在確定字段后,需選擇合適的片鍵類型來確定數據在集群中的分布方式。片鍵的類型分為連續型、哈希型和標簽型三種。默認的片鍵都是連續型,而連續型片鍵會導致數據先插入到某個節點,然后再遷移到其他節點。為了解決這個問題,MongoDB引入了哈希片鍵。哈希片鍵會為片鍵字段創建哈希值,MongoDB集群依據該哈希值執行分塊和分片操作。集合的分布對于寫入和讀取都是隨機的,這會對讀取操作造成影響。在前期實驗中發現:由于其較慢的讀性能,這種片鍵方式不太適合MapReduce運行。第三種片鍵類型是標簽型。通過創建分片,可以將片鍵的指定范圍手動指向指定的分片節點上,這樣也能得到數據均勻分布的結果。默認連續型和標簽型都是比較適用于MapReduce的運行環境。

接下來需要消除相關的索引。因為在大范圍讀場景中,索引查詢將進行兩次查詢過程,原本能提高查詢速度的索引反而會增加數據庫的響應時間。關于到底在何時不該使用索引,Chodorow[25]認為當查詢需要返回集合中2%~60%的數據時就應該對索引查詢和全表查詢進行比較,而聚合操作是對集合內全體數據進行聚合計算,查詢的數據量遠超過普通的即席查詢數據量, 所以本文的建議是對于需要聚合操作的數據集合,不對作為片鍵的字段進行索引。創建片鍵后,MongoDB可以手動刪除該索引,使得在進行MapReduce時采用全表查詢的方式。通過上一步片鍵的選擇保證數據的均勻分布,以及這一步的聚合計算全表查詢使得聚合計算的性能在有限資源的條件下提高。在后一章的實驗分析將會進一步證明。

在實際應用中,集合數據中有如下幾個字段可以作為候選片鍵: _id字段是一種包含自增的時間戳和隨機數的ObjectId對象; date字段為MapReduce計算的查詢參數,對date字段的索引會影響查詢效率; name字段為Map函數分組的依據,數據分片的讀寫和執行MapReduce的效率會受該字段影響。依據本文方法可以判斷出date字段或者date和name的組合字段是合適的片鍵。

上述方法能在數據庫需要應用MapReduce時作為數據庫設計的參考方法,下面將通過實驗來驗證該方法的可行性和有效性。

3 實驗與分析

針對不同的應用場景,片鍵的均勻性、隨機性、局部性特征對插入與讀取操作的影響各不相同[24]。通過實驗來探索不同片鍵對于聚合計算的影響,并驗證本文方法選擇的環境是否對聚合計算最優。本文方法通過選擇業務的查詢字段作為片鍵字段,還充分利用刪除集合索引的步驟來減少聚合計算查詢時間。

3.1 實驗背景

實驗目的是滿足郵政局寄遞信息離線數據分析需求,其數據庫根據寄件日期按月份劃分集合存儲,每一條運單記錄作為一條文檔存儲在集合中,且每條運單文檔包括運單 ID、寄件日期、收件日期以及寄件人和收件人信息。

3.2 實驗環境

實驗的硬件設備包括6臺3.3 GHz CPU、16 GB內存的服務器,硬盤容量2 TB。實驗數據采用固定時間范圍內的數據以滿足MapReduce分析歷史數據的場景,數據總量超過2億條,占用硬盤104.3 GB的空間。

實驗的分片集群如圖3。MongoDB采用8節點分片集群,其成員配置如下: 4個分片節點(shard1~shard4)、3個配置節點(config)、1個路由節點(mongos)。

圖3 分片集群實驗環境Fig. 3 Fragment cluster experimental environment

依據片鍵和索引構成情況的不同將實驗內容分為10組,每組實驗數據均達到2 000萬條。實驗數據設計如表1所示。實驗01、03、05、07、09組數據集合針對5種片鍵情況以全表查詢的方式實驗。01組數據采用時間戳自增的ObjectId類型_id作為片鍵; 03組數據以_id為片鍵并創建時間字段標簽感知分片(tag-aware)機制,標簽分片采用固定時間范圍劃分數據,時間粒度保證每個分片執行MapReduce的任務量是均等的。01組和03組主要探究標簽感知分片功能對MapReduce計算的影響; 05組數據以時間字段作為片鍵; 07組以字符字段和時間字段組成復合片鍵; 09組以時間字段和字符字段組成復合片鍵。這3種分片方式用來與本文提出的優化方法中關于片鍵的候選片鍵進行比較。實驗02、04、06、08、10組通過索引的方式查詢數據,與前一組實驗互為對照,以驗證本文方法中關于索引問題的論述。

表1 各測試集合的模式Tab. 1 Patterns of each test set

3.3 實驗步驟

基于應用的目的,使用MapReduce對數據集合進行聚合統計,聚合計算進行“name”字段分組并統計數量的任務。首先,在進行計算之前,查詢“date”時間范圍的目標數據。在mapper中,將字符串字段“name”作為分組依據,在reducer中將收到的分組數據進行累加。這個任務能夠驗證本文方法對聚合計算性能的影響。

此外,為了衡量索引對查詢性能的影響,實驗將添加對name字段的單值查詢,對date字段的范圍查詢。

每個環境都進行上述兩個測試單元,針對每個分片環境的實驗步驟如下:

1)導入數據,設置索引、片鍵以及相關分片配置信息(針對標簽分片的操作步驟)。

2)運行MapReduce腳本,依此累加等距時間范圍內的數據進行聚合分析,并運行查詢腳本,隨機查詢姓名字符串和時間范圍的相關數據。

3)刪除數據以及配置信息,重復步驟1)~2)直到完成所有分片情況。

重復進行實驗能排除偶然因素對數據產生的影響,在統計性能指標時不會將離群值納入結果中。

3.4 實驗結果與分析

3.4.1 MapReduce的實驗結果

片鍵對于MapReducde并行計算有著很大的影響。如圖4、5所示,在相同的索引環境下,使用查詢字段(date字段)作為片鍵的處理速度是最快的,而使用復合索引的運行性能比使用單片鍵date的性能差。作為復合片鍵的比較,查詢條件匹配越低({date:1, name: 1})的效率要比匹配越低({ name: 1, date:1 })執行速度慢。實驗數據中,date字段相比name字段重復值較小。

圖4 無索引聚合計算性能指標Fig. 4 Metric of aggreagation without index

圖5 有索引聚合計算性能指標Fig. 5 Metric of aggreagation with index

當數據寫入完畢,MongoDB分布式環境下運行Balancer進程,該進程會完成各個節點的數據遷移以達到數據均勻的情況。數據分布的最終結果如表2。

表2 各集合分片分布 %Tab. 2 Distribution of shards of each cluster %

從表2中可以看出來,高基數(high cordinality)的字段(date字段)作為片鍵的首位字段反而不能夠有效地將數據均勻分布,證明了將基數粒度較小的字段放置在復合片鍵首部的情況性能會更好[23]。

通過實驗還可以得出,具有過高基數的字段作為片鍵在查詢分離上也會有著明顯的性能缺陷。通過表2的分片數據可以看出,_id類型作為片鍵能將數據均勻分布到分片上,但是這種均勻分布并不能提高分片上并行計算的速度。數據依據時間分布則可以保證時間連續的數據在存儲空間上的連續性,這能提高MapReduce的查詢效率,但是這種提高遠遠沒有使用其他字段作為片鍵的性能好。

索引可以提高單次查詢的效率,對于MapReduce定位目標數據有著很大的影響。這是MongoDB默認將索引存放在內存中以提高查詢速度,但如圖6~10的各個片鍵條件下的MapReduce性能指數表明,沒有索引的集合的處理速度最快。這是因為在有索引的情況下,MapReduce需要進行兩次查詢:一次是在索引條目中查找,一次是根據索引指針去查找相關文檔數據。

圖6 _id片鍵集合MapReduce性能指標Fig. 6 Metric of MapReduce with _id shard

圖7 帶標簽的_id片鍵集合MapRedcude性能指標Fig. 7 Metric of MapReduce with tagged _id shard

圖8 date片鍵集合MapReduce性能指標Fig. 8 Metric of MapReduce with date shard

從聚合計算的應用場景來說,其目標數據是集合中一部分文檔,聚合計算的查詢時間復雜度是O(n2);而優化方法針對聚合計算的查詢條件,直接進行全表查詢來使得查詢時間與數據量趨于線性關系。從存儲代價方面分析,實驗環境下2 000萬條數據產生的索引占用內存空間達到 2 GB以上,而將數據量增加到2億條數據時,內存索引達到了21 GB以上,MongoDB的進程頻繁地在內存和磁盤中交換索引,進而降低聚合處理速度。全表查詢的MapReduce比索引查詢的MapReduce快4倍。通過分析這樣的性能指標,可以明顯看到本文提出的優化方法對于聚合操作的性能是有明顯提升的, 并且數據量越大優勢越明顯。

圖9 name&date片鍵集合MapReduce性能指標Fig. 9 Metric of MapReduce with combined name&date shard

圖10 date&name片鍵集合MapReduce性能指標Fig. 10 Metric of MapReduce with combined date&name shard

3.4.2 查詢操作的實驗結果。

單值查詢和范圍查詢是數據庫的基本應用場景,數據庫可以通過索引提高查詢速度,以下將通過實驗來驗證沒有索引的集群對于查詢的響應速度。

通過表3可以看出,刪除索引顯然降低了單值查詢的性能。有無索引是對查詢條件的字段是否建立索引。

表3 查詢響應時間指標 sTab. 3 Response time of search function s

4 結語

分布式數據庫的聚合功能使得MongoDB能夠滿足數據分析的任務,在滿足基本統計分析的要求下,應用開發者和數據庫管理員還可以從聚合計算框架的特性上進一步調優數據庫系統。本文方法以實際的項目出發,分別從片鍵和索引兩個方面來探究MongoDB聚合操作的優化方法,而這種方法能夠應用到同類分布式架構的數據庫系統。采用高基數粒度的分片片鍵能夠讓數據在集群上較均勻地分布在各個節點,而當聚合計算的查詢字段是低基粒度的字段時,可以與高基粒度組合成復合片鍵來滿足數據計算和均勻存儲的需求。而另一種片鍵選擇的方法適用于部分業務場景,這種片鍵在較高粒度的字段中選擇最能提高聚合計算速度的字段,而不應滿足數據的均勻分布。對于聚合計算任務更頻繁的情形,舍棄索引查詢使用全表查詢能夠有效提高計算速度。這種索引優化的方法將以降低普通查詢響應性能為代價來提高整個分布式系統的計算能力。

綜上所述,在一個資源有限的集群中,通過本文方法可以有效提高聚合計算的性能。這種方法從具體的應用場景出發,分析出滿足系統聚合計算性能要求的片鍵并能推廣至同類型數據庫。

在接下來的工作,還將繼續探索MongoDB的最佳設計方法,以幫助數據庫管理員合理地配置數據庫集群;最終目標是建立一個基于分布式系統的聚合計算模型來完成多種場景管理和分析數據的功能。

References)

[1] MONIRUZZAMAN A B M, HOSSAIN S A. NoSQL database: new era of databases for big data analytics-classification, characteristics and comparison[EB/OL]. [2016-04-20]. https://arxiv.org/ftp/arxiv/papers/1307/1307.0191.pdf.

[2] HAN J, HAIHONG E, LE G, et al. Survey on NoSQL database[C]// Proceedings of the 2011 6th International Conference on Pervasive computing and applications. Piscataway, NJ: IEEE, 2011: 363-366.

[3] HAN J, SONG M, SONG J. A novel solution of distributed memory NoSQL database for cloud computing[C]// Proceedings of the 2011 IEEE/ACIS 10th International Conference on Computer and Information Science. Piscataway, NJ: IEEE, 2011: 351-355.

[4] CHITRA K, JEEVARANI B. Study on basically available, scalable and eventually consistent NoSQL databases[J]. International Journal of Advanced Research in Computer Science and Software Engineering, 2013, 3(7): 1356-1360.

[5] NYATI S S, PAWAR S, INGLE R. Performance evaluation of unstructured NoSQL data over distributed framework[C]// Proceedings of the 2013 International Conference on Advances in Computing, Communications and Informatics. Piscataway, NJ: IEEE, 2013: 1623-1627.

[6] PARKER Z, POE S, VRBSKY S V. Comparing NoSQL MongoDB to an SQL DB[C]// Proceedings of the 51st ACM Southeast Conference. New York: ACM, 2013: Article No. 5.

[7] ABRAMOVA V, BERNARDINO J. NoSQL databases: MongoDB vs cassandra[C]// Proceedings of the International C*Conference on Computer Science and Software Engineering. New York: ACM, 2013: 14-22.

[8] AMERI P, GRABOWSKI U, MEYER J, et al. On the application and performance of MongoDB for climate satellite data[C]// Proceedings of the 2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications. Piscataway, NJ: IEEE, 2014: 652-659.

[9] KANADE A, GOPAL A, KANADE S. A study of normalization and embedding in MongoDB[C]// Proceedings of the 2014 IEEE International Advance Computing Conference. Piscataway, NJ: IEEE, 2014: 416-421.

[10] CATTELL R. Scalable SQL and NoSQL data stores[J]. ACM SIGMOD Record, 2011, 39(4): 12-27.

[11] 鄭靜靜, 葉焱, 劉太君, 等. 基于 Flex, Red5 和 MongoDB 的視頻直播, 錄制及存儲系統設計[J]. 計算機應用, 2014, 34(2): 589-592.(ZHENG J J, YE Y, LIU T J, et al. Design of live video streaming, recording and storage system based on Flex, Red5 and MongoDB[J]. Journal of Computer Applications, 2014, 34(2): 589-592.)

[12] KAUR H, SINGH J. Improvement in load balancing technique for MongoDB clusters[J]. International Journal of Applied Information Systems, 2015, 8(4):31-35.

[13] DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters[J]. Communications of the ACM, 2008, 51(1): 107-113.

[14] 楊俊杰, 廖卓凡, 馮超超. 大數據存儲架構和算法研究綜述[J]. 計算機應用, 2016, 36(9): 2465-2471.(YANG J J, LIAO Z F, FENG C C. Survey on big data storage framework and algorithm[J]. Journal of Computer Applications, 2016, 36(9): 2465-2471.)

[15] MOHAN B, GOVARDHAN A. Online aggregation using MapReduce in MongoDB[J]. International Journal of Advanced Research in Computer Science and Software Engineering, 2013, 3(9): 1157-1165.

[16] RAO B R M, GOVARDHAN A. Sharded parallel MapReduce in MongoDB for online aggregation[J]. International Journal of Engineering and Innovative Technology, 2013, 3(4): 119-127.

[17] DEDE E, GOVINDARAJU M, GUNTER D, et al. Performance evaluation of a MongoDB and Hadoop platform for scientific data analysis[C]// Proceedings of the 4th ACM workshop on Scientific Cloud Computing. New York: ACM, 2013: 13-20.

[18] 吳潤秀, 吳水秀, 劉清. 基于粒計算的數據分片算法[J]. 計算機應用, 2007, 27(6): 1388-1391.(WU R X, WU S X, LIU Q. Data fragment algorithm based on granular computing[J]. Journal of Computer Applications, 2007, 27(6): 1388-1391.)

[19] LIU Y, WANG Y, JIN Y. Research on the improvement of MongoDB auto-sharding in cloud environment[C]// Proceedings of the 2012 7th International Conference on Computer Science & Education. Piscataway, NJ: IEEE, 2012: 851-854.

[20] HUANG C W, HU W H, SHIH C C, et al. The improvement of auto-scaling mechanism for distributed database — a case study for MongoDB[C]// Proceedings of the 2013 15th Asia-Pacific Network Operations and Management Symposium. Piscataway, NJ: IEEE, 2013: 1853-1857.

[21] WANG X, CHEN H, WANG Z. Research on improvement of dynamic load balancing in MongoDB[C]// Proceedings of the 2013 IEEE 11th International Conference on Dependable, Autonomic and Secure Computing. Piscataway, NJ: IEEE, 2013: 124-130.

[22] 林基明, 班文嬌, 王俊義, 等. 基于并行遺傳最大最小蟻群算法的分布式數據庫查詢優化[J]. 計算機應用, 2016, 36(3): 675-680.(LIN J M, BAN W J, WANG J Y, et al. Query optimization for distributed database based on parallel genetic algorithm and max-min ant system[J]. Journal of Computer Applications, 2016, 36(3): 675-680.)

[23] KANG Y S, PARK I H, RHEE J, et al. MongoDB-based repository design for IoT-generated RFID/sensor big data[J]. IEEE Sensors Journal, 2016, 16(2): 485-497.

[24] KOOKARINRAT P, TEMTANAPAT Y. Analysis of range-based key properties for sharded cluster of MongoDB[C]// Proceedings of the 2015 2nd International Conference on Information Science and Security. Piscataway, NJ: IEEE, 2015:1-4.

[25] CHODOROW K. MongoDB: the Definitive Guide[M]. Sebastopol: O’Reilly Media, 2013: 103.

This work is partially supported by the National Natural Science Foundation of China (61730063).

XIAO Zida, born in 1992, M. S. candidate. Her research interests include distributed system, data visualization.

ZHU Ligu, born in 1965, Ph. D., professor. His research interests include computer system structure, mass storage.

FENG Dongyu, born in 1989, Ph. D. candidate. Her research interests include big data system architecture, distributed system.

ZHANG Di, born in 1987, Ph. D. His research interests include data visualization, cloud storage.

Performance optimization of distributed database aggregation computing

XIAO Zida1,2*, ZHU Ligu1,2, FENG Dongyu1,2, ZHANG Di1,2

(1.SchoolofComputerScience,CommunicationUniversityofChina,Beijing100024,China;2.BeijngKeyLaboratoryofBigDatainSecurity&ProtectionIndustry,Beijing100024,China)

Aiming at the problem of low computational performance of distributed database in analysis applications, taking MongoDB database as an example, a method was put forward to improve the performance of database based on chip and index. Firstly, the characteristics of the business was analyzed to guide the choice of shard key field, and the selected key field needed to ensure that the data is evenly distributed on the cluster nodes. Secondly, by studying the index efficiency of the distributed database, the method of deleting the query field index was used to further improve the computing performance, which could make full use of hardware resources to improve the performance of aggregation computing. The analysis and experimental results show that the shard key field with high cordinality can distribute data evenly on each data node in the cluster, and the use of full table query can effectively improve the convergence speed, thus the optimization method can effectively improve the performance of aggregation computing.

Not Only SQL (NoSQL);MongoDB;MapReduce;aggregation computing;performance optimization

2016-07-01;

2016-11-17。 基金項目:國家自然科學基金資助項目(61730063)。

肖子達(1992—),男,湖南長沙人,碩士研究生,主要研究方向:分布式系統、數據可視化; 朱立谷(1965—),男,北京人,教授,博士生導師,博士,主要研究方向:計算機系統結構、海量存儲; 馮東煜(1989—),男,遼寧錦州人,博士研究生,主要研究方向:大數據系統架構、分布式系統; 張迪(1987—),男,甘肅蘭州人,博士,主要研究方向:數據可視化、云存儲。

1001-9081(2017)05-1251-06

10.11772/j.issn.1001-9081.2017.05.1251

TP316

A

猜你喜歡
數據庫實驗
記一次有趣的實驗
微型實驗里看“燃燒”
做個怪怪長實驗
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 日韩在线中文| 国产美女主播一级成人毛片| 亚洲天堂在线免费| 国产精品无码影视久久久久久久 | 老熟妇喷水一区二区三区| 亚州AV秘 一区二区三区| 亚洲综合在线网| 91成人在线免费视频| 国产91透明丝袜美腿在线| 99久久亚洲精品影院| 午夜啪啪网| AV片亚洲国产男人的天堂| 91精品小视频| 日本爱爱精品一区二区| lhav亚洲精品| 国产91无码福利在线| 国产呦精品一区二区三区下载| 在线精品亚洲一区二区古装| 国禁国产you女视频网站| AV无码一区二区三区四区| 国内老司机精品视频在线播出| 国产欧美日韩视频怡春院| 国产精品香蕉在线观看不卡| 国产精品99久久久久久董美香| 亚洲精品在线观看91| 91久久夜色精品国产网站| 99视频只有精品| 亚洲第一黄色网址| 性欧美在线| 狠狠亚洲婷婷综合色香| 国产精品亚洲va在线观看| 在线观看免费黄色网址| 99久久精品免费看国产电影| 国产精品99在线观看| 国产丝袜精品| 2020最新国产精品视频| 国产乱肥老妇精品视频| 精品一区二区三区自慰喷水| 国产网站在线看| 欧美a级完整在线观看| 亚洲人成在线精品| AV网站中文| 四虎永久在线视频| 日本黄色a视频| 熟女视频91| 久久亚洲AⅤ无码精品午夜麻豆| 国产乱子精品一区二区在线观看| 激情综合网激情综合| 婷婷色婷婷| 三上悠亚一区二区| 国产办公室秘书无码精品| 在线网站18禁| 精品伊人久久久香线蕉| 国产一区二区人大臿蕉香蕉| 第一区免费在线观看| 日韩最新中文字幕| 久久久久无码国产精品不卡| 热久久这里是精品6免费观看| 亚洲视频免费在线看| 综合社区亚洲熟妇p| 国内老司机精品视频在线播出| 一区二区欧美日韩高清免费| 日本高清免费不卡视频| 国产视频只有无码精品| 天天躁狠狠躁| 国产精品伦视频观看免费| 日韩精品专区免费无码aⅴ| 国模粉嫩小泬视频在线观看| 国产屁屁影院| 国产美女主播一级成人毛片| 综合五月天网| 中文字幕中文字字幕码一二区| 欧美一区二区三区香蕉视| 精品自拍视频在线观看| 四虎精品黑人视频| 二级毛片免费观看全程| 国产91小视频在线观看| 亚洲男人的天堂在线观看| 国产福利一区视频| 人妻出轨无码中文一区二区| www成人国产在线观看网站| 久久影院一区二区h|