海量數據存儲環(huán)境下提升i/o吞吐率的方法及系統的制作方法
【技術領域】
[0001]本發(fā)明涉及海量數據存儲領域,特別涉及一種海量數據存儲環(huán)境下提升I/O吞吐率的方法及系統。
【背景技術】
[0002]數據中心是一整套復雜的計算機基礎設施,它不僅僅包括計算機、軟硬件系統和其他與之配套的設備(例如通信、存儲系統、供電設備等),還包含冗余的數據通信連接、環(huán)境控制設備、監(jiān)控設備以及各種安全裝置。
[0003]數據中心在海量存儲設施方面通常提供了數種存儲服務,其中包括:基于關系數據模型的存儲服務、基于鍵/值對的存儲服務、基于文檔的存儲服務等。數據中心在提供存儲服務方面,通過采用高級、超強運算的硬件設施,保證了 I/O服務的高性能。而業(yè)務平臺在使用數據中心的存儲服務時,為了提升存儲I/o吞吐率,往往使用了多線程的設計。多線程的設計能夠很大地提高I/o吞吐率,但是它也受到一些限制,比如會受到業(yè)務平臺本身的帶寬或內存的限制,又或者是業(yè)務服務器自身同時部署了多個業(yè)務導致CPU占用過高而被延遲,以至于業(yè)務平臺在處理I/O時,I/O吞吐率提升到一定程度后就會達到瓶頸,無法繼續(xù)提升,進而導致數據中心的I/o服務無法得到更好的利用。
【發(fā)明內容】
[0004]【要解決的技術問題】
[0005]本發(fā)明的目的是提供一種海量數據存儲環(huán)境下提升I/O吞吐率的方法及系統,以解決數據中心的I/O服務無法得到更好利用的問題。
[0006]【技術方案】
[0007]本發(fā)明是通過以下技術方案實現的。
[0008]本發(fā)明首先涉及一種海量數據存儲環(huán)境下提升I/O吞吐率的方法,該方法包括步驟:
[0009]A、對數據中心的鍵/值對存儲服務端的操作進行分類得到不同的操作類型;
[0010]B、分別為各個操作類型構建消息隊列;
[0011]C、當業(yè)務服務器的多線程端向訪問代理服務端發(fā)送I/O操作請求時,訪問代理服務端接收業(yè)務服務器的多線程端發(fā)送的I/o操作請求并將I/O操作請求按照不同的操作類型分發(fā)到對應的消息隊列;
[0012]D、消息隊列接收訪問代理服務端發(fā)送的I/O操作請求,對進入各消息隊列的操作請求進行合并和/或組織成批量操作,再提交到數據中心的鍵/值對存儲服務端,并將I/O操作結果返回給訪問代理服務端;
[0013]E、訪問代理服務端接收消息隊列發(fā)送的I/O操作結果并將I/O操作結果返回給業(yè)務服務器的多線程端。
[0014]作為一種優(yōu)選的實施方式,所述步驟A中的操作類型包括:根據鍵名檢索鍵值、提供鍵名和鍵值保存鍵/值對、根據鍵名刪除鍵/值對、根據鍵名判斷鍵/值對是否存在、根據鍵名讓對應的鍵值依次遞增或遞減、根據鍵名檢索相應的鍵值并存儲新的鍵值、對列表數據結構的基本操作、對集合數據結構的基本操作。
[0015]作為另一種優(yōu)選的實施方式,所述對列表數據結構的基本操作包括數據進棧和數據出桟。
[0016]作為另一種優(yōu)選的實施方式,所述對集合數據結構的基本操作包括求數據交集、求數據并集和求數據差集。
[0017]本發(fā)明還涉及一種海量數據存儲環(huán)境下提升I/O吞吐率的系統,該系統包括:
[0018]數據中心,其包括鍵/值對存儲服務端;
[0019]業(yè)務服務器,其包括多線程端,所述業(yè)務服務器的多線程端被配置成:向訪問代理服務端發(fā)送I/O操作請求、接收訪問代理服務端返回的I/O操作結果;
[0020]訪問代理服務端,其被配置成:接收業(yè)務服務器的多線程端發(fā)送的I/O操作請求并將I/o操作請求按照不同的操作類型分發(fā)到對應的消息隊列、接收消息隊列發(fā)送的I/O操作結果并將I/O操作結果返回給業(yè)務服務器的多線程端;
[0021]分類模塊,其被配置成:對數據中心的鍵/值對存儲服務端的操作進行分類得到不同的操作類型;
[0022]消息隊列構建模塊,用于分別為各個操作類型構建消息隊列,所述消息隊列被配置成:接收訪問代理服務端發(fā)送的I/O操作請求,對進入各消息隊列的操作請求進行合并和/或組織成批量操作,再提交到數據中心的鍵/值對存儲服務端,并將I/O操作結果返回給訪問代理服務端。
[0023]作為一種優(yōu)選的實施方式,所述分類模塊分類的操作類型包括:根據鍵名檢索鍵值、提供鍵名和鍵值保存鍵/值對、根據鍵名刪除鍵/值對、根據鍵名判斷鍵/值對是否存在、根據鍵名讓對應的鍵值依次遞增或遞減、根據鍵名檢索相應的鍵值并存儲新的鍵值、對列表數據結構的基本操作、對集合數據結構的基本操作。
[0024]作為另一種優(yōu)選的實施方式,所述對列表數據結構的基本操作包括數據進棧和數據出桟。
[0025]作為另一種優(yōu)選的實施方式,所述對集合數據結構的基本操作包括求數據交集、求數據并集和求數據差集。
[0026]【有益效果】
[0027]本發(fā)明提出的技術方案具有以下有益效果:
[0028]本發(fā)明通過構建消息隊列并通過消息隊列將同類的操作進行合并以及組織成批量操作,大大減少了遠程通信的次數和頻度,從而顯著提高了 I/O吞吐率,解決了帶寬和業(yè)務平臺通信庫的讀寫損耗過高導致無法更好地利用數據中心I/O服務的問題。
【附圖說明】
[0029]圖1為本發(fā)明實施例一提供的海量數據存儲環(huán)境下提升I/O吞吐率的系統的框圖。
【具體實施方式】
[0030]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖,對本發(fā)明的【具體實施方式】進行清楚、完整的描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例,也不是對本發(fā)明的限制?;诒景l(fā)明的實施例,本領域普通技術人員在不付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護范圍。
[0031]實施例一
[0032]實施例一提供一種海量數據存儲環(huán)境下提升I/O吞吐率的系統,圖1為本發(fā)明實施例一提供的海量數據存儲環(huán)境下提升I/O吞吐率的系統的框圖。如圖1所示,該系統包括數據中心、業(yè)務服務器、訪問代理服務端2、分類模塊、消息隊列構建模塊。
[0033]數據中心包括鍵/值對存儲服務端4。鍵/值對存儲服務端4是數據中心存儲服務器集群的組成部分。
[0034]業(yè)務服務器包括多線程端1,多線程端I可以運行于單臺業(yè)務服務器,也可以運行于多臺業(yè)務服務器,業(yè)務服務器的多線程端I被配置成:向訪問代理服務端2發(fā)送I/O操作請求、接收訪問代理服務端2返回的I/O操作結果。
[0035]訪問代理服務端2負責匯總來自多線程端I的訪問請求,訪問代理服務端2被配置成:接收業(yè)務服務器的多線程端I發(fā)送的I/O操作請求并將I/O操作請求按照不同的操作類型分發(fā)到對應的消息隊列3、接收消息隊列3發(fā)送的I/O操作結果并將I/O操作結果返回給業(yè)務服務器的多線程端I。本實施例中,訪問代理服務端2設置在消息隊列3的前端。
[0036]分類模塊被配置成:對數據中心的鍵/值對存儲服務端4的操作進行分類得到不同的操作