欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種混合使用固態(tài)硬盤和傳統(tǒng)硬盤的postgresql數(shù)據(jù)庫集群系統(tǒng)及其優(yōu)化方法

文檔序號:6442790閱讀:221來源:國知局
專利名稱:一種混合使用固態(tài)硬盤和傳統(tǒng)硬盤的postgresql數(shù)據(jù)庫集群系統(tǒng)及其優(yōu)化方法
技術領域
本發(fā)明涉及一般的由普通服務器組成的數(shù)據(jù)庫集群系統(tǒng),特別是涉及一種在數(shù)據(jù)庫集群系統(tǒng)中使用固態(tài)硬盤并對整個系統(tǒng)進行優(yōu)化的方法。
背景技術
數(shù)據(jù)庫集群系統(tǒng)把集群技術與數(shù)據(jù)庫系統(tǒng)相結合,由一組完整的、自治的計算處理單元(節(jié)點),每個節(jié)點均有獨自的CPU、內存以及磁盤等硬件資源,運行獨立的操作系統(tǒng)和自治的數(shù)據(jù)庫系統(tǒng),通過高速專用網(wǎng)絡或者商業(yè)通用網(wǎng)絡互連,彼此協(xié)同計算,作為統(tǒng)一的數(shù)據(jù)庫系統(tǒng)提供并行事務處理服務。數(shù)據(jù)庫集群系統(tǒng)強調集群系統(tǒng)的協(xié)作與并行處理,其核心思想是通過多機并行處理來隱藏對數(shù)據(jù)庫性能影響較大的延遲以獲得高并行處理性能,突破傳統(tǒng)的單機上的數(shù)據(jù)庫系統(tǒng)所固有的性能瓶頸限制。數(shù)據(jù)庫集群系統(tǒng)以高性能、高可用性和高可擴展性為目標,充分利用多處理器平臺的工作能力,主要在OLTP的典型應用環(huán)境中提供更快的響應時間與更大的事務吞吐量。在大型的應用中,以甲骨文公司的oracle rac數(shù)據(jù)庫集群系統(tǒng)和IBM公司的 purescale數(shù)據(jù)庫集群系統(tǒng)比較普遍,但是要使用這兩個集群系統(tǒng)無論從硬件上或者軟件上都需要極大的投入,成本極高。所以,有很多企業(yè)和組織也傾向于使用低成本的開源數(shù)據(jù)庫集群系統(tǒng),只需要一些普通的服務器和免費的開源軟件就可以搭建出性能不錯的數(shù)據(jù)集群系統(tǒng)。比較常見的開源集群系統(tǒng)是使用開源查詢分發(fā)集群軟件和數(shù)據(jù)復制集群軟件以及開源數(shù)據(jù)庫postgresql構建的數(shù)據(jù)庫集群系統(tǒng)。數(shù)據(jù)分發(fā)集群軟件主要負責客戶端查詢的預處理和分發(fā),數(shù)據(jù)復制集群軟件負責集群節(jié)點間的數(shù)據(jù)復制和同步。由于是非共享磁盤架構,需要在節(jié)點間通過復制的方式傳遞數(shù)據(jù),所以這種數(shù)據(jù)庫集群對磁盤的性能要求較高,而目前固態(tài)硬盤在科研和商業(yè)領域都比較受青睞,大有替代傳統(tǒng)硬盤的趨勢,因此在這種數(shù)據(jù)庫集群中引入固態(tài)硬盤可以大幅度地提高數(shù)據(jù)庫集群的性能。固態(tài)硬盤是一種新型的電介質硬盤,與傳統(tǒng)硬盤相比,它由磁介質存儲改為電介質存儲而且不需要機械裝置,所以固態(tài)硬盤沒有傳統(tǒng)硬盤的尋道時間和延遲時間,可以提供非常高的隨機讀取能力,是公認的下一代主流存儲設備。但是固態(tài)硬盤也存在一些缺陷, 相比于較強的隨機讀,連續(xù)讀,連續(xù)寫能力,固態(tài)硬盤的隨機寫能力就顯得很弱,跟傳統(tǒng)硬盤差不多,因為固態(tài)硬盤的隨機寫會帶來大量的擦除操作,而連續(xù)寫可以將擦除操作帶來的影響降到最低,所以使用固態(tài)硬盤的應用系統(tǒng)應該針對固態(tài)硬盤的特點做一些特殊的配置,來發(fā)揮固態(tài)硬盤的優(yōu)勢以提高應用系統(tǒng)的性能,不能沿用之前的使用傳統(tǒng)硬盤的方式來使用固態(tài)硬盤。其次,固態(tài)硬盤的存儲成本較高,同等存儲容量的固態(tài)硬盤要比傳統(tǒng)硬盤貴很多,因此在大型應用系統(tǒng)中完全使用固態(tài)硬盤來代替?zhèn)鹘y(tǒng)硬盤也不太現(xiàn)實,只能在一些關鍵存儲節(jié)點上使用固態(tài)硬盤,從而以最小的代價來提高系統(tǒng)的性能。在這種技術背景下,在廉價的開源數(shù)據(jù)庫集群中引入固態(tài)硬盤,應該可以大幅度地提高系統(tǒng)的性能,所以如何改進數(shù)據(jù)庫集群系統(tǒng),如何使用好固態(tài)硬盤,利用其讀取速度上的優(yōu)勢,避免其缺陷,更好地提高數(shù)據(jù)庫集群系統(tǒng)的性能是一個具有重要意義值得深入研究的技術問題,是構建出低成本,高性能的數(shù)據(jù)庫集群系統(tǒng)的關鍵。

發(fā)明內容
本發(fā)明目的在于提供一種混合使用固態(tài)硬盤和傳統(tǒng)硬盤的postgresql數(shù)據(jù)庫集群系統(tǒng),以及在這個框架之上對一些開源集群軟件的改進方法,通過這些改進方法可以充分發(fā)揮固態(tài)硬盤的優(yōu)勢,充分利用固態(tài)硬盤的高速隨機讀能力,同時避免固態(tài)硬盤低速隨機寫的劣勢,大幅度地提高數(shù)據(jù)庫集群系統(tǒng)的性能,提高數(shù)據(jù)庫集群系統(tǒng)的性價比,從而構建出低成本,高性能的數(shù)據(jù)庫集群系統(tǒng)。為達到上述目標,本發(fā)明采用的具體技術方案如下一、一種混合使用固態(tài)硬盤和傳統(tǒng)硬盤的postgresql數(shù)據(jù)庫集群系統(tǒng)的構建框
^K O在本框架下的數(shù)據(jù)庫集群系統(tǒng)中,包含一臺查詢分發(fā)服務器和若干臺postgresql 數(shù)據(jù)庫服務器,這些服務器處同處于一個局域網(wǎng)中,通過較高帶寬的網(wǎng)絡相互連接,在這些 postgresql數(shù)據(jù)庫服務器中,有一臺作為主服務器節(jié)點,其他的作為從服務器節(jié)點,主服務器節(jié)點使用傳統(tǒng)硬盤,從服務器節(jié)點使用固態(tài)硬盤。在整個系統(tǒng)中,查詢分發(fā)服務器負責接受和預處理用戶的查詢,并把這些查詢分發(fā)到數(shù)據(jù)庫集群中的具體的單個節(jié)點上。數(shù)據(jù)庫主服務器節(jié)點上保存著最新的數(shù)據(jù),從服務器節(jié)點使用數(shù)據(jù)復制集群軟件實時地從主服務器節(jié)點上復制數(shù)據(jù)。在從服務器節(jié)點上引入固態(tài)硬盤以后,查詢分發(fā)服務器就可以把寫操作分發(fā)到主服務器節(jié)點上,把讀操作分發(fā)到從服務器節(jié)點上,從而利用固態(tài)硬盤的高速隨機讀取能力, 達到較大的查詢性能提升,同時把讀寫操作分布到不同的數(shù)據(jù)庫服務器上也實現(xiàn)了數(shù)據(jù)庫集群的負載均衡,更好地提升了數(shù)據(jù)庫集群的性能。從服務器節(jié)點需要實時地從主服務器節(jié)點復制數(shù)據(jù),在從服務器節(jié)點引入固態(tài)硬盤以后,需要對數(shù)據(jù)復制集群軟件的復制策略進行調整,通過把復制時的隨機寫操作轉化成連續(xù)寫操作從而避免固態(tài)硬盤隨機寫速度較差的劣勢,更好地利用了固態(tài)硬盤,使數(shù)據(jù)庫集群的性能得到更大地提升。二、基于上述數(shù)據(jù)庫集群框架的系統(tǒng)的開源集群軟件改進方法在這個數(shù)據(jù)庫集群系統(tǒng)中,查詢預處理和分發(fā)服務器使用查詢分發(fā)集群軟件來完成任務,原有的開源的查詢分發(fā)集群軟件并沒有針對有固體硬盤架構的系統(tǒng)做優(yōu)化,本發(fā)明對這個集群軟件進行一些改進,提出新的查詢預處理和分配的方法,從而更好地利用現(xiàn)有的集群架構,提高數(shù)據(jù)庫集群的性能。同時本發(fā)明也對數(shù)據(jù)復制集群軟件的復制策略進行改進,提出一種新的有利于利用固態(tài)硬盤優(yōu)勢的復制策略。本方法對用戶的查詢進行分類,根據(jù)查詢是否有磁盤寫入操作,把用戶查詢分為寫操作查詢和讀操作查詢。在查詢分發(fā)時,把寫操作查詢發(fā)送給主服務器節(jié)點,把讀操作查詢發(fā)給從服務器節(jié)點,由于從服務器節(jié)點上裝有固體硬盤,能夠提供高速的隨機讀性能,通過這種分配方式能夠有效地利用固體硬盤的這個特性,提高數(shù)據(jù)庫集群系統(tǒng)的響應速度。 同時,通過把寫操作和讀操作分離之后,能夠更好地實現(xiàn)數(shù)據(jù)庫集群系統(tǒng)的負載均衡,從而提高整個數(shù)據(jù)庫集群系統(tǒng)的吞吐能力。除了對查詢進行分類分發(fā)以外,本方法還對查詢進行聚集操作,把查詢盡可能地按用戶進行聚集,使得同一用戶的查詢盡量集中在一起,并盡量地發(fā)送給同一個數(shù)據(jù)庫服務器節(jié)點,這樣就能利用數(shù)據(jù)的局部性,更好地提高單個用戶的響應速度。除了提出了新的查詢分配方法之外,本方法也對數(shù)據(jù)復制集群軟件提出改進措施,提出一種新的數(shù)據(jù)復制策略。數(shù)據(jù)復制集群軟件復制從主服務器節(jié)點向從服務器節(jié)點復制數(shù)據(jù),以保持集群中各節(jié)點間的數(shù)據(jù)同步。在加入固態(tài)硬盤以后,復制數(shù)據(jù)時要避免固態(tài)硬盤的隨機寫的劣勢,本方法通過對隨機寫進行排序,把它轉化成連續(xù)寫,從而避免固態(tài)硬盤的劣勢,提高數(shù)據(jù)庫集群系統(tǒng)的性能。


圖1是數(shù)據(jù)庫集群系統(tǒng)整體框架圖。圖2是查詢預處理和分發(fā)優(yōu)化的工作流程圖。圖3是數(shù)據(jù)復制優(yōu)化的工作流程圖。
具體實施例方式下面結合附圖及具體實施方式
對本發(fā)明作進一步的描述如圖1所示,給出了整個數(shù)據(jù)庫集群系統(tǒng)的整體框架圖。在這個數(shù)據(jù)庫集群中包含一臺查詢分發(fā)服務器和若干臺裝有postgresql數(shù)據(jù)庫的數(shù)據(jù)庫服務器,這些服務器處于同一個局域網(wǎng)中,彼此通過較高帶寬的網(wǎng)絡相互連接,在這些postgresql數(shù)據(jù)庫服務器中,有一臺作為主服務器節(jié)點,其他的若干臺作為從服務器節(jié)點,主服務器節(jié)點使用傳統(tǒng)硬盤,從服務器節(jié)點使用固態(tài)硬盤。在整個數(shù)據(jù)庫集群系統(tǒng)中,查詢分發(fā)服務器負責接受和預處理用戶的查詢,并把這些查詢分發(fā)到數(shù)據(jù)庫集群中的具體的單個節(jié)點上。數(shù)據(jù)庫主服務器節(jié)點上保存著最新的數(shù)據(jù),從服務器節(jié)點使用數(shù)據(jù)復制集群軟件實時地從主服務器節(jié)點上復制數(shù)據(jù)。本發(fā)明對這個數(shù)據(jù)庫集群系統(tǒng)中的查詢分發(fā)集群軟件和數(shù)據(jù)復制集群軟件進行優(yōu)化,充分利用固態(tài)硬盤的優(yōu)勢,來提高數(shù)據(jù)庫集群的性能。具體的來說,本發(fā)明對查詢分發(fā)集群軟件進行一些優(yōu)化,提出新的查詢預處理和分配的方法,從而更好地利用現(xiàn)有的集群架構,提高數(shù)據(jù)庫集群的性能。同時本發(fā)明也對數(shù)據(jù)復制集群軟件的復制策略進行優(yōu)化, 提出一種新的有利于利用固態(tài)硬盤優(yōu)勢的復制策略。如圖2所示,給出了經(jīng)過優(yōu)化以后的查詢預處理和分發(fā)的工作流程,其詳細描述如下201當有用戶查詢進來時,對這個查詢進行一些預處理,然后根據(jù)預先定義好的規(guī)則對這個查詢進行分類,分為包含寫操作的查詢或者只有只讀操作的查詢。202判斷用戶的查詢是寫操作還是讀操作。根據(jù)查詢類型的不同,查詢將被發(fā)往不同的服務器節(jié)點上進行處理。203如果用戶的查詢是寫操作,則將這個查詢發(fā)往主服務器節(jié)點,因為主服務節(jié)點負責保存最新的數(shù)據(jù),所有的更新操作都要保證發(fā)生在主服務器節(jié)點上。204如果用戶的查詢是讀操作,則將這個查詢發(fā)往從服務器節(jié)點,因為從服務器節(jié)點上裝有固態(tài)硬盤,隨機讀性能很高,同時這樣也可以實現(xiàn)負載均衡,在發(fā)往具體的從服務器節(jié)點之前要進行用戶聚集判斷,盡量把同一用戶的查詢發(fā)往同一個從服務器節(jié)點。205如果這個查詢屬于一個新的用戶,則將這個查詢發(fā)往當前最空閑的從服務器節(jié)點,這樣可以均衡服務器節(jié)點的負載。206如果這個查詢屬于之前的某個用戶,則將這個查詢發(fā)往那個用戶曾經(jīng)連接過的那個從服務器節(jié)點,這樣就把同一個用戶的查詢聚集到了同一個服務器節(jié)點上,很好地利用了數(shù)據(jù)的局部性,提高了查詢的響應速度,從而提高了整個數(shù)據(jù)庫集群的性能。如圖3所示,給出了服務器節(jié)點間的數(shù)據(jù)復制操作優(yōu)化后的流程圖,其詳細描述如下301在主服務節(jié)點上有一個后臺線程循環(huán)地判斷一定周期內主服務器上的數(shù)據(jù)是否有更新,這個周期是一個配置參數(shù),可以根據(jù)系統(tǒng)要求的不同進行不同的設定,如果在這個周期內數(shù)據(jù)有更新,則需要把這些更新的數(shù)據(jù)復制到所有的從服務器節(jié)點上,如果周期內沒有數(shù)據(jù)更新,則不作任何處理,循環(huán)進入下一個判斷周期。302如果在一個周期內存在數(shù)據(jù)更新,在將這些數(shù)據(jù)復制到從服務器節(jié)點之前, 要對這個數(shù)據(jù)復制操作進行優(yōu)化。首先對復制所要產生的隨機寫IO操作進行排序,把它們轉化成一串連續(xù)寫操作,然后再把這個連續(xù)寫操作實際地寫入從節(jié)點服務器,通過把隨機寫操作轉化為連續(xù)寫操作,有效地避免了固態(tài)硬盤的慢速隨機寫缺陷,從而提高了整個數(shù)據(jù)庫集群系統(tǒng)的性能。303隨機寫排序轉化成連續(xù)寫之后,把這些連續(xù)寫操作發(fā)往每個從服務器節(jié)點, 進行具體的數(shù)據(jù)同步。本發(fā)明解決了如何充分利用隨固態(tài)硬盤的優(yōu)劣勢來優(yōu)化數(shù)據(jù)庫集群系統(tǒng)性能的問題,具有的有益效果是1)通過對數(shù)據(jù)庫集群中查詢分發(fā)策略的調整,更好地實現(xiàn)了數(shù)據(jù)庫集群系統(tǒng)的負載均衡,提高了數(shù)據(jù)庫集群系統(tǒng)的性能。2)通過把讀操作分配給裝有固態(tài)硬盤的從服務器節(jié)點,充分利用了固態(tài)硬盤的快速隨機讀優(yōu)勢,提高了數(shù)據(jù)庫集群系統(tǒng)的響應速度。3)對用戶的查詢進行聚集分類,使同一用戶的查詢盡可能分發(fā)給同一個服務器節(jié)點,充分利用數(shù)據(jù)的局部性,從而提高數(shù)據(jù)庫集群系統(tǒng)對單個用戶的響應速度。4)對服務器節(jié)點間的數(shù)據(jù)復制操作進行優(yōu)化,把數(shù)據(jù)復制操作所產生的隨機寫轉化成連續(xù)寫,避免固態(tài)硬盤的慢速隨機寫劣勢,從而提高數(shù)據(jù)庫集群系統(tǒng)的性能。5)本發(fā)明雖然針對的是postgresql數(shù)據(jù)庫集群系統(tǒng),但是其中的系統(tǒng)框架和優(yōu)化方法適用于由一般數(shù)據(jù)庫組成的集群系統(tǒng),具有充分的可移植性。雖然附圖和前述說明給出了本發(fā)明的實施例。但可以理解的是,本領域技術人員將理解可以將這種組件中的一個或多個組件很好地組合成單個功能組件。在替換方案中, 特定的組件可以分成多個功能組件,或反之。同時,本發(fā)明的范圍并不受這些特定實例的限制。多種變化都是可能的,例如結構等上的差異,而無論其是否在說明書中被清晰地給出。 本發(fā)明的范圍至少與所附權利要求給出的范圍一樣寬。
權利要求
1.一種混合使用固態(tài)硬盤和傳統(tǒng)硬盤的postgresql數(shù)據(jù)庫集群系統(tǒng),所述數(shù)據(jù)庫集群系統(tǒng),包含一臺查詢分發(fā)服務器;和多臺postgresql數(shù)據(jù)庫服務器,其中,上述這些服務器處同處于一個局域網(wǎng)中并通過較高帶寬的網(wǎng)絡相互連接,其特征在于,在所述postgresql數(shù)據(jù)庫服務器中,有一臺作為主服務器節(jié)點,其他的作為從服務器節(jié)點,且所述主服務器節(jié)點使用傳統(tǒng)硬盤,而從服務器節(jié)點使用固態(tài)硬盤,此外,所述查詢分發(fā)服務器負責接受和預處理用戶的查詢,并把這些查詢分發(fā)到所述數(shù)據(jù)庫集群系統(tǒng)中的具體的單個節(jié)點上。
2.根據(jù)權利要求1所述的數(shù)據(jù)庫集群系統(tǒng),其特征在于所述查詢服務器上的查詢分發(fā)集群軟件把寫操作分發(fā)到所述主服務器節(jié)點上,把讀操作發(fā)布到所述從服務器節(jié)點上,從而利用固態(tài)硬盤的高速隨機讀取能力,達到較大的查詢性能提升,同時把讀寫操作分布到不同的數(shù)據(jù)庫服務器上以實現(xiàn)了數(shù)據(jù)庫集群的負載均
3.根據(jù)權利要求1所述的數(shù)據(jù)庫集群系統(tǒng),其特征在于在所述數(shù)據(jù)庫集群系統(tǒng)中對數(shù)據(jù)復制集群軟件的復制策略進行調整,通過把復制時的隨機寫操作轉化成連續(xù)寫操作從而避免固態(tài)硬盤隨機寫速度較差的劣勢。
4.一種應用于根據(jù)權利1-3中任意一個中所述的數(shù)據(jù)庫集群系統(tǒng)上的查詢分發(fā)優(yōu)化方法,所述方法包括對用戶的查詢進行分類,根據(jù)查詢是否有磁盤寫入操作,把用戶查詢分為寫操作查詢和讀操作查詢;在查詢分發(fā)時,把寫操作查詢發(fā)送給主服務器節(jié)點,把讀操作查詢發(fā)給從服務器節(jié)點, 由于從服務器節(jié)點上裝有固體硬盤,能夠提供高速的隨機讀性能;通過把寫操作和讀操作分離之后,能夠更好地實現(xiàn)數(shù)據(jù)庫集群系統(tǒng)的負載均衡,從而提高整個數(shù)據(jù)庫集群系統(tǒng)的吞吐能力。
5.根據(jù)權利要求4的查詢分發(fā)優(yōu)化方法,其還包括步驟對查詢進行聚集操作,把查詢盡可能地按用戶進行聚集,使得同一用戶的查詢盡量集中在一起,并盡量地發(fā)送給同一個數(shù)據(jù)庫服務器節(jié)點,這樣就能利用數(shù)據(jù)的局部性,更好地提高單個用戶的響應速度。
6.一種應用于根據(jù)權利1-3中任意一個中所述的數(shù)據(jù)庫集群系統(tǒng)上的數(shù)據(jù)復制優(yōu)化方法,所述方法包括數(shù)據(jù)復制集群軟件從主服務器節(jié)點向從服務器節(jié)點復制數(shù)據(jù),以保持集群中各節(jié)點間的數(shù)據(jù)同步;在加入固態(tài)硬盤以后,通過對隨機寫進行排序,把它轉化成連續(xù)寫,從而避免固態(tài)硬盤的劣勢,提高數(shù)據(jù)庫集群系統(tǒng)的性能。
全文摘要
本發(fā)明公開一種混合使用固態(tài)硬盤和傳統(tǒng)硬盤的postgresql數(shù)據(jù)庫集群系統(tǒng)的構建框架和基于該系統(tǒng)的優(yōu)化方法。所述集群系統(tǒng)中包含一臺裝有用于查詢分發(fā)的集群軟件的查詢分發(fā)服務器和若干臺裝有postgresql數(shù)據(jù)庫的數(shù)據(jù)庫服務器,這些服務器處同處于一個局域網(wǎng)中,通過較高帶寬的網(wǎng)絡相互連接,在這些postgresql數(shù)據(jù)庫服務器中,有一臺作為主服務器節(jié)點,其他的作為從服務器節(jié)點,主服務器節(jié)點使用傳統(tǒng)硬盤,從服務器節(jié)點使用固態(tài)硬盤,其中查詢分發(fā)服務器負責接受和預處理用戶的查詢,并把這些查詢分發(fā)到數(shù)據(jù)庫集群中的具體的單個節(jié)點上。本優(yōu)化方法對查詢分發(fā)集群軟件進行一些改進,提出新的查詢預處理和分配的方法,從而更好地利用現(xiàn)有的集群架構,提高數(shù)據(jù)庫集群的性能。同時本優(yōu)化方法也對數(shù)據(jù)復制集群軟件的復制策略進行改進,提出一種新的有利于利用固態(tài)硬盤優(yōu)勢的復制策略。
文檔編號G06F17/30GK102521389SQ20111043667
公開日2012年6月27日 申請日期2011年12月23日 優(yōu)先權日2011年12月23日
發(fā)明者何清法, 馮柯, 徐昶, 毛云青, 王嘉春, 蔣志勇, 顧云蘇, 饒路 申請人:天津神舟通用數(shù)據(jù)技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河池市| 大连市| 佛坪县| 兴山县| 临夏市| 阿拉尔市| 利津县| 昌邑市| 阳新县| 离岛区| 老河口市| 固镇县| 牡丹江市| 千阳县| 高淳县| 鄯善县| 霍州市| 屯留县| 应用必备| 静海县| 济源市| 平谷区| 江川县| 岳阳县| 正阳县| 昌黎县| 鄂托克前旗| 华宁县| 尖扎县| 辛集市| 道真| 通渭县| 德格县| 库尔勒市| 漯河市| 东至县| 宜阳县| 丽江市| 澳门| 灵璧县| 门源|