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

基于Postgres-XL的數據管理優化技術研究

2018-03-20 09:10:15艾麗蓉
計算機技術與發展 2018年3期
關鍵詞:數據庫優化

艾麗蓉,李 凱

(西北工業大學 計算機學院,陜西 西安 710129)

0 引 言

面對日益增長的海量數據,傳統的單機集中式數據庫的弊端日益顯現[1-2]。為了解決單機數據庫下數據存不下、難于擴展、查詢延遲大等問題,需要在橫向或縱向上升級數據庫配置。在縱向升級配置提高數據庫的性能主要是采用大型機、大型機與PGStorm的方式。其中PGStorm可將CPU的密集型工作負載轉移到GPU處理,從而利用GPU強大的并行執行能力完成處理任務。Postgres-XL是在橫向上對PostgreSQL進行了擴展。雖然,Postgres-XL相對PostgreSQL提升了數據庫處理性能,但是,針對Postgres-XL本身的優化也是十分必要的。

1 Postgres-XL分析

Postgres-XL是基于PostgreSQL數據庫實現的真正意義上的分布式數據庫。目前大多數數據庫的水平拆分的方案都有很多限制,譬如不能跨機器Join、對SQL有各種限制。Postgres-XL實現得更加徹底,用戶訪問集群數據庫就跟單機數據庫一樣。

1.1 Postgres-XL簡介

Postgres-XL全稱為Postgres eXtensible Lattice,它使用了開源協議允許將開源代碼與閉源代碼混在一起使用。同時它還有自己很多獨特的特性,譬如真正完全支持集群級別的數據一致性(ACID)、支持OLAP應用、采用MPP(massively parallel processing,大規模并行處理系統)架構模式、讀寫可拓展、可用作分布式Key-Value存儲、支持分布式多版本控制(MVCC)等。

在性能方面,隨著數據節點數的增長,Postgres-XL擴展能力的增加呈線性增長趨勢。實際測試結果是,當有3個數據節點時可以達到PostgreSQL數據庫大約2倍的性能,5個節點為3倍,10個節點為6倍左右。

1.2 Postgres-XL分布式架構

Postgres-XL是一個基于PostgreSQL數據庫的橫向擴展開源數據庫集群,擁有足夠的靈活性來處理不同的工作負載。

Postgres-XL支持MPP,允許數據節點間通信,交換復雜跨節點關聯查詢相關數據信息。Postgres-XL的主要節點有:全局事務管理器(global transaction manager,GTM)、協調器(coordinator)、數據節點(datanode)。GTM主要負責處理多版本并發控制任務,包括數據庫事務的ID以及數據快照,同時它還管理集群中全局性數據,譬如時間戳等。coordinator負責處理客戶端的網絡連接,分析查詢語句,生成語句的執行計劃,然后將計劃發送到目的數據節點執行。數據節點主要存放具體的物理數據。除了上述節點之外,Postgres-XL為了減輕GTM負載,還可以部署GTM Proxy節點,GTM Proxy代理coordinator和datanode對GTM進行訪問。

2 優化技術

對Postgres-XL的優化主要體現為在有限的時間內提高系統吞吐量。數據庫系統吞吐量是指單位時間內處理的事務數。為了提高數據庫系統的吞吐量,一般需要提高緩存命中率、降低磁盤IO。

2.1 數據表優化

隨著數據庫中數據量的增加,數據庫表的查詢效率非常低下。為了解決上述問題,基于Postgres-XL分區表和表繼承特性實現了表的水平拆分以及垂直拆分。Postgres-XL數據庫表的水平拆分是按照某種規則將數據庫表進行劃分,然后將數據存儲到多個結構相同的表中。例如,對于重慶某區的執法系統案件表,可以按照案件處理的時間拆分,2015年和2016年的數據分別存放在結構相同的表中,這樣就可以根據不同的時間進行區分,提高訪問效率。數據庫表的垂直拆分很容易地解決了表跟表之間的IO競爭,但是沒有解決單個數據表數據量大的問題。而數據庫表的水平拆分,解決了大數據表數據量大的問題,但是沒有解決表之間的IO爭奪。因此大多方案是采取兩者結合的方式,如圖1所示。

圖1 組合拆分

在傳統數據庫中,對數據庫表進行水平或者垂直拆分的復雜度是非常高的,而且容易產生附屬問題,譬如事務、跨表Join操作等。目前Postgres-XL支持的分區有范圍分區和列表分區。范圍分區是表根據一個或者多個字段拆分成范圍,在不同范圍內存放沒有鍵值重復的數據;列表分區指在表中明確指出每個分區里應該出現哪些字段[3]。

2.2 基于Redis的優化

SQL/MED(management of external data)是SQL語言中管理外部數據的一個擴展標準,這個標準定義在SQL:2003中,它通過定義一個外部數據包裝器和數據連接類型來管理外部數據[4]。Postgres-XL提供了對SQL/MED標準的支持,通過SQL/MED連接到各種異構數據庫。

基于SQL/MED標準設計實現從Postgres-XL訪問Redis數據庫的中間件,將Redis中的數據映射到Postgres-XL中[5-6]。傳統的讀寫分離方案要在數據訪問端進行數據緩存控制,需要控制多個數據源,復雜度很高。通過基于SQL/MED中間件把Redis作為Postgres-XL偽組件進而統一數據源,同時提高了其處理速度。讀寫架構如圖2所示。

數據庫訪問服務發送數據請求,如果是寫操作則直接操作Postgres-XL同時更新Redis緩存數據。對于讀操作,則由Postgres-XL直接讀取Redis返回數據。根據Postgres-XL的規則特性,利用中間件對Redis進行更新。

2.3 基于SSD的優化

目前使用SSD對Postgres-XL優化的策略分為三種。第一種是把Postgres-XL所有節點全部安裝在SSD上,即把傳統機械磁盤全部換成SSD。這種方式簡單,但是SSD的擦寫次數有限,分布式集群機器眾多,因此成本非常高。第二種是將非關鍵數據放到SSD上,譬如日志、索引等。第三種是將SSD作為Postgres-XL的二級緩存來減緩訪問機械硬盤的頻率[7-8]。下面對第二、三種進行詳細的論述。

圖2 SQL/MED架構

2.3.1 非關鍵性數據存儲

在Postgres-XL中,將數據操作的日志、索引、臨時表放到SSD中以提高數據庫的整體執行效率,而具體數據存儲到機械硬盤上。臨時表和索引的特點是順序寫、隨機讀,而且這些數據屬于非關鍵性且可重新建立。因此,SSD的損壞不會影響數據庫的一致性。

此處利用Postgres-XL數據表空間特性將索引與數據庫表分開存儲,同時把臨時表存放在SSD上。在Postgres-XL中,數據表空間可以為表指定特定存儲目錄。創建表和索引可以指定表空間,這樣表、索引就可以存儲到特定的目錄中。在Postgres-XL中,創建數據表空間語法如下:

Create tablespace TABLESPACE_NAME[OWNER user_name]LOCATION ‘directory’;

其中directory指定是SSD掛載的路徑。創建好表空間就可以將索引存放在掛載SSD的目錄中,表存放在機械硬盤中。此時創建測試表ssd_test,將創建在此表上的索引存到指定表空間,命令如下:

Create index tablespace_index on ssd_test(id)

Tablespace space_test

2.3.2 緩存優化

Postgres-XL外存管理是由SMGR提供對外存操作的統一接口,結構如圖3所示。SMGR負責統管各種介質管理器,根據上層的請求選擇一個具體的介質管理器進行操作[9-11]。

圖3 外存管理系統結構

將SSD作為二級緩存的基本思想是在數據節點共享緩存滿時,共享緩存發生了頁置換。此時并不是將置換出的緩存塊刷新到機械硬盤,而是將數據轉移到SSD中以達到緩存的目的。當下次請求當前數據塊時,在SSD緩存中將數據返回而非磁盤。處理的基本流程如圖4所示。

圖4 擁有二級緩存的讀寫流程

因為成本的問題,混合存儲系統中的SSD的容量要小于機械硬盤,大約為整個儲存空間的5%~10%,這其中還包括SSD垃圾回收的空間[12-15]。

此處對緩存替換策略實現在原LRU算法中加入了midpoint位置。新讀取的緩沖塊,雖然是最新訪問的頁,但并不直接放到LRU列表首部,而是放入到LRU列表的midpoint位置。將midpoint位置之后的列表稱為old列表,之前的列表稱為new列表。這樣可以避免某些SQL操作將緩沖池中的塊全部刷新,譬如數據表掃描操作。對于old表中的數據,如果是熱點數據很快會再次被訪問到,然后進入到new列表。

3 實驗結果分析

利用Postgres-XL自帶的pgbench工具來完成實驗數據的模擬,然后完成數據庫并發訪問的模擬,檢測上述三種優化策略下的數據庫吞吐量。在實驗環境中Postgres-XL在并發量達到60時,數據庫性能達到了最高。因此,以下實驗并發均為60,測試時間為12小時。實驗結果如下:

(1)在表分區的實驗中數據量為10 G,對于insert操作,數據表分區前的插入性能強于數據表分區后。隨著并發量增大和數據量增大,插入性能相差無幾。究其原因,數據表分區時指定了數據的流向規則,耗費了一定的時間。對于select和update操作,數據表分區后的性能是分區之前的2.8倍左右。

(2)在基于Redis作為二級緩存方案中,對單數據表進行了測試,采取表緩存后的數據庫性能為未采取策略的6倍左右。

(3)在基于SSD緩存優化方案中,采取SSD緩存為硬盤容量的10%。在上述測試中采用純SSD作為存儲介質時,Postgres-XL的性能是采用純機械盤的8倍左右。采取將非數據節點、相關表的索引放到SSD的策略時,Postgres-XL的性能也在純機械盤的基礎上提升了2.6倍。將SSD作為二級緩存時,Postgres-XL的性能提升了大約5.6倍。

4 結束語

針對目前大數量單機數據庫性能低下產生大量的磁盤IO等問題,基于分布式數據庫Postgres-XL,提出了相應的解決手段。通過分區表、Redis、SSD對Postgres-XL進行優化,有效地提升了數據庫的處理效率,對于分布式數據庫Postgres-XL的應用以及數據管理的發展起到了很好的推動作用。

[1] 齊 磊.大數據分析場景下分布式數據庫技術的應用[J].移動通信,2015(12):58-62.

[2] 肖 凌,劉繼紅,姚建初.分布式數據庫系統的研究與應用[J].計算機工程,2001,27(1):33-35.

[3] 彭智勇,彭煜瑋.PostgreSQL數據庫內核分析[M].北京:機械工業出版社,2012.

[4] 林河水,程 偉,孫玉芳.PostgreSQL存儲管理機制研究[J].計算機科學,2004,31(12):76-80.

[5] 鄭小裕.SQL與NoSQL數據庫的統一查詢模型的研究與實現[D].長沙:湖南大學,2014.

[6] 白 鑫.基于Redis的信息存儲優化技術研究與應用[D].北京:北方工業大學,2014.

[7] YANG Q,REN J.I-CASH:intelligently coupled array of SSD and HDD[C]//Proceedings of the 2011 IEEE 17th international symposium on high performance computer architecture.Washington,DC,USA:IEEE Computer Society,2011:278-289.

[8] 閆 林.基于SSD的HDD緩存系統研究[D].西安:西安電子科技大學,2014.

[9] LEE R,ZHOU M.Extending PostgreSQL to support distributed/heterogeneous query processing[C]//Proceedings of the 12th international conference on database systems for advanced applications.Berlin:Springer-Verlag,2007:1086-1097.

[10] NOGUCHI Y,UMENO H.The design and implementation of multiple buffer cache in PostgreSQL[C]//International conference on control, automation and systems.[s.l.]:IEEE,2008:2654-2657.

[11] LIU S, UMENO H. Implementation and improvement of TPM for PostgreSQL in Linux[C]//International conference on control,automation and systems.[s.l.]:IEEE,2008:2658-2661.

[12] 宋 磊,王靜文.PostgreSQL數據庫性能優化[J].電腦編程技巧與維護,2009(16):63-66.

[13] 魯 笛,向 陽,劉增寶.PostgreSQL數據庫緩沖管理的分析與研究[J].計算機技術與發展,2011,21(12):41-44.

[14] 劉圣卓,姜進磊,楊廣文.一種面向SSD-HDD混合存儲的熱區跟蹤替換算法[J].小型微型計算機系統,2012,33(10):2255-2258.

[15] 盧朝霞,習 捷,王 劍.基于數據庫分區的海量數據存儲技術的研究[C]//2006中國控制與決策學術年會.出版地不詳:出版者不詳,2006.

猜你喜歡
數據庫優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 国产无码精品在线| 高清国产va日韩亚洲免费午夜电影| 天堂成人在线视频| 中文字幕在线日韩91| 亚洲视频免费在线看| 毛片免费在线| 国产成人亚洲精品蜜芽影院| 国产裸舞福利在线视频合集| 亚洲高清国产拍精品26u| 2020极品精品国产| 国产精品手机视频| 91成人免费观看在线观看| 国产一级毛片在线| 免费视频在线2021入口| 青草精品视频| 亚洲成人黄色在线| 国产高清在线丝袜精品一区| igao国产精品| 香蕉国产精品视频| 黄色网站不卡无码| 免费在线a视频| 国产性爱网站| 国产精品亚洲天堂| 欧美成一级| 欧美色综合网站| 最新国语自产精品视频在| av在线人妻熟妇| 在线视频97| 久久夜色撩人精品国产| 亚洲伦理一区二区| 嫩草在线视频| 色婷婷亚洲十月十月色天| 国产99视频免费精品是看6| 国产亚洲视频免费播放| 伊人色在线视频| 国产一级视频久久| 99久久国产精品无码| 久久精品午夜视频| 99热这里都是国产精品| 亚洲伊人电影| 国产91在线|日本| 四虎永久免费在线| 日韩毛片视频| 狠狠色综合网| 国产精品嫩草影院视频| 58av国产精品| 国产视频大全| 国产av一码二码三码无码| 呦视频在线一区二区三区| 一本无码在线观看| 亚洲欧美精品在线| 国产电话自拍伊人| 国产人碰人摸人爱免费视频| 国产最爽的乱婬视频国语对白| 午夜毛片免费看| 福利在线不卡| 国产波多野结衣中文在线播放| 午夜天堂视频| 国产9191精品免费观看| 国产麻豆aⅴ精品无码| 超碰精品无码一区二区| 国产91九色在线播放| 欧美在线天堂| 欧美精品在线看| 高清免费毛片| 精品亚洲欧美中文字幕在线看 | 青青青国产免费线在| 国产乱子伦视频三区| 国产玖玖玖精品视频| 国产在线一区二区视频| 免费aa毛片| 最新国产精品第1页| 亚洲狼网站狼狼鲁亚洲下载| 久久久久国产精品熟女影院| 国产91精品久久| 97超碰精品成人国产| 亚洲成人黄色在线| 国产一级小视频| 国产成人毛片| 国产黄在线免费观看| 在线精品视频成人网| 在线看片中文字幕|