專利名稱:數(shù)據(jù)緩存裝置、數(shù)據(jù)存儲(chǔ)系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)緩存裝置、數(shù)據(jù)存儲(chǔ)系統(tǒng)及方法。
背景技術(shù):
數(shù)據(jù)處理設(shè)備如服務(wù)器等設(shè)備的CPU (Central Processing Unit,中央處理器)在不斷的發(fā)展,由原來的單核發(fā)展到現(xiàn)在的多核多線程技術(shù),但是硬盤存儲(chǔ)設(shè)備由于技術(shù)原因發(fā)展緩慢,現(xiàn)有的對(duì)機(jī)械硬盤的讀和寫數(shù)據(jù)的性能跟不上CPU性能,CPU在向硬盤讀或?qū)憯?shù)據(jù)時(shí),都要消耗時(shí)間等待,導(dǎo)致數(shù)據(jù)業(yè)務(wù)處理效率低下,數(shù)據(jù)的讀寫性能無法隨著CPU性能的提聞而提升。 目前采用的高速緩存Cache技術(shù)可在一定程度上解決上述問題,現(xiàn)有的Cache技術(shù)中,在服務(wù)器和機(jī)械硬盤等存儲(chǔ)設(shè)備之間增加了數(shù)據(jù)讀寫Cache軟件和PCIE(Peripheral Component Interconnect Express,部件快速互連局部總線)接口的SSD (Solid State Disk,固態(tài)硬盤)存儲(chǔ)卡,所述SSD存儲(chǔ)卡是使用FLASH芯片作為存儲(chǔ)介質(zhì),使得對(duì)SSD存儲(chǔ)卡讀寫的性能比機(jī)械硬盤要快。服務(wù)器通過Cache軟件可以將機(jī)械硬盤中的熱點(diǎn)數(shù)據(jù)寫入到所述SSD存儲(chǔ)卡中,在查詢數(shù)據(jù)時(shí),先到SSD存儲(chǔ)卡中查詢數(shù)據(jù),命中數(shù)據(jù)時(shí),則讀取查詢到的數(shù)據(jù),而在查詢沒有命中數(shù)據(jù)時(shí),再到機(jī)械硬盤中查詢數(shù)據(jù),從而可以在一定程度上加快數(shù)據(jù)查詢的數(shù)據(jù),保證讀取數(shù)據(jù)的性能。但是,目前的SSD存儲(chǔ)卡的使用壽命相對(duì)較短,為了避免寫入到SSD存儲(chǔ)卡的數(shù)據(jù)出錯(cuò),需要經(jīng)常更換SSD存儲(chǔ)卡,提高了緩存的成本。同時(shí),Cache軟件必須經(jīng)常對(duì)SSD存儲(chǔ)卡中的熱點(diǎn)數(shù)據(jù)進(jìn)行管理和更新,使得Cache軟件的運(yùn)行浪費(fèi)了服務(wù)器的如CPU資源等系統(tǒng)資源。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)緩存裝置、數(shù)據(jù)存儲(chǔ)系統(tǒng)及方法,在保證數(shù)據(jù)讀取性能的基礎(chǔ)上還可有效節(jié)約緩存成本,并且可以避免系統(tǒng)資源的浪費(fèi)。一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)緩存裝置,其特征在于,所述數(shù)據(jù)緩存裝置通過數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,所述數(shù)據(jù)緩存裝置包括控制器,與所述控制器相連的內(nèi)存;所述內(nèi)存用于緩存與本數(shù)據(jù)緩存裝置相連的硬盤中的熱點(diǎn)數(shù)據(jù),所述控制器用于根據(jù)所述數(shù)據(jù)處理設(shè)備的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存讀寫數(shù)據(jù)。另一方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,包括數(shù)據(jù)處理設(shè)備,數(shù)據(jù)緩存裝置以及硬盤,所述數(shù)據(jù)緩存裝置通過數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,所述硬盤與所述數(shù)據(jù)處理設(shè)備和所述數(shù)據(jù)緩存裝置相連,所述數(shù)據(jù)處理設(shè)備用于向所述數(shù)據(jù)緩存裝置和/或所述硬盤中讀寫數(shù)據(jù),所述數(shù)據(jù)緩存裝置中緩存有所述硬盤中的熱點(diǎn)數(shù)據(jù),其中,所述數(shù)據(jù)緩存裝置包括控制器,和與所述控制器相連的內(nèi)存;所述內(nèi)存用于緩存所述硬盤中的熱點(diǎn)數(shù)據(jù),所述控制器用于根據(jù)所述數(shù)據(jù)處理設(shè)備的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存讀寫數(shù)據(jù)。相應(yīng)地,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,包括在接收到數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到內(nèi)存中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備,所述內(nèi)存中緩存有熱點(diǎn)數(shù)據(jù);接收到數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)出的數(shù)據(jù)寫入到內(nèi)存中,并在已寫入到所述內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到硬盤中。實(shí)施本發(fā)明實(shí)施例,具有如下有益效果本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中采用控制器與內(nèi)存結(jié)合實(shí)現(xiàn)高速數(shù)據(jù)緩存,不需要經(jīng)常更換內(nèi)存,降低了緩存的成本,并且保證了數(shù)據(jù)讀寫性能,明顯提升IOPS即每秒進(jìn) 行讀寫(I/o)操作的次數(shù),并且可以避免系統(tǒng)資源的浪費(fèi)。
圖I是本發(fā)明實(shí)施例的數(shù)據(jù)緩存裝置的第一實(shí)施例結(jié)構(gòu)組成示意圖;圖2是本發(fā)明實(shí)施例的數(shù)據(jù)緩存裝置的第二實(shí)施例結(jié)構(gòu)組成示意圖;圖3是本發(fā)明實(shí)施例的數(shù)據(jù)緩存裝置的其中一種具體結(jié)構(gòu)組成示意圖;圖4是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖;圖5是圖4中的數(shù)據(jù)存儲(chǔ)系統(tǒng)中數(shù)據(jù)緩存裝置的控制器的具體結(jié)構(gòu)組成示意圖;圖6是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的結(jié)構(gòu)組成示意圖;圖7是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的其中一種數(shù)據(jù)讀方法的流程示意圖;圖8是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的其中一種數(shù)據(jù)寫方法的流程示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。請(qǐng)參見圖1,是本發(fā)明實(shí)施例的數(shù)據(jù)緩存裝置的第一實(shí)施例結(jié)構(gòu)組成示意圖,本實(shí)施例中所述數(shù)據(jù)緩存裝置通過如PCIE接口等數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,以與數(shù)據(jù)處理設(shè)備進(jìn)行數(shù)據(jù)通信,所述數(shù)據(jù)緩存裝置中包括控制器11和內(nèi)存12,所述控制器11與所述內(nèi)存12相連,所述內(nèi)存12用于緩存與本數(shù)據(jù)緩存裝置相連的硬盤中的熱點(diǎn)數(shù)據(jù),所述控制器11用于根據(jù)所述數(shù)據(jù)處理設(shè)備的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存12讀寫數(shù)據(jù),其中,所述熱點(diǎn)數(shù)據(jù)可通過Cache算法對(duì)硬盤中的數(shù)據(jù)進(jìn)行計(jì)算得到。所述內(nèi)存12中的數(shù)據(jù)由所述控制器11直接管理,數(shù)據(jù)處理設(shè)備并不需要對(duì)所述數(shù)據(jù)緩存裝置中所述內(nèi)存12中的數(shù)據(jù)進(jìn)行管理,這就使得數(shù)據(jù)處理設(shè)備并不需要耗費(fèi)如CPU等系統(tǒng)資源去管理所述內(nèi)存12中緩存的數(shù)據(jù),節(jié)約了數(shù)據(jù)處理設(shè)備的系統(tǒng)資源。所述內(nèi)存12 可以為RAM (Random Access Memory,隨機(jī)存儲(chǔ)器)、DRAM (DynamicRandom Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)、RDIMM(Registered Dual In-line MemoryModule,帶寄存器的雙線內(nèi)存模塊)、LRDIMM(Load-Reduced DIMM,低負(fù)載雙線內(nèi)存模塊)坐寸O所述數(shù)據(jù)處理設(shè)備在需要讀取或者寫入數(shù)據(jù)時(shí),通過所述PCIE接口將相應(yīng)的請(qǐng)求或者數(shù)據(jù)發(fā)送給所述數(shù)據(jù)緩存裝置,所述數(shù)據(jù)緩存裝置中的控制器11根據(jù)所述數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求,到所述內(nèi)存1 2中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備;或者根據(jù)所述數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫入到所述內(nèi)存12中,并在已寫入到所述內(nèi)存12中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到與本數(shù)據(jù)緩存裝置相連的硬盤中。其中,所述的已寫入到內(nèi)存12中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件具體包括已寫入到所述內(nèi)存12中數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)的數(shù)據(jù)量閾值時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如寫入的數(shù)據(jù)達(dá)到IG時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件?;蛘邽橄蛩鰞?nèi)存12中寫入數(shù)據(jù)的時(shí)長達(dá)到預(yù)設(shè)的時(shí)長閾值時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如,向所述內(nèi)存12中寫入數(shù)據(jù)的時(shí)長達(dá)到60秒時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件。所述內(nèi)存12中存儲(chǔ)的熱點(diǎn)數(shù)據(jù)是通過所述控制器11根據(jù)預(yù)置的Cache算法從與本數(shù)據(jù)緩存裝置相連的硬盤中獲取的。具體的,所述控制器11可根據(jù)被所述數(shù)據(jù)處理設(shè)備獲取的數(shù)據(jù)在所述硬盤中的硬盤存儲(chǔ)地址,采用預(yù)置的Cache算法進(jìn)行計(jì)算,得到硬盤中的熱點(diǎn)數(shù)據(jù),并緩存到所述內(nèi)存12中。其中,所述數(shù)據(jù)處理設(shè)備從所述硬盤中讀取數(shù)據(jù)后,將讀取到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址發(fā)送給所述控制器11,由所述控制器11采用所述預(yù)置的Cache算法進(jìn)行計(jì)算,得到硬盤中的熱點(diǎn)數(shù)據(jù)并緩存到所述內(nèi)存12中。所述數(shù)據(jù)處理設(shè)備可以為用于數(shù)據(jù)庫查詢的應(yīng)用服務(wù)器,ERP(EnterpriseResource Planning,企業(yè)資源計(jì)劃)系統(tǒng)中用于對(duì)企業(yè)資源數(shù)據(jù)進(jìn)行記錄、查詢等管理的服務(wù)器等。本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中設(shè)置控制器與內(nèi)存,由所述控制器完成對(duì)內(nèi)存的數(shù)據(jù)讀或者寫控制,采用沒有讀寫次數(shù)限制的內(nèi)存來緩存相應(yīng)的數(shù)據(jù),不僅保證了數(shù)據(jù)的讀寫性能,節(jié)約了緩存成本。數(shù)據(jù)處理設(shè)備有數(shù)據(jù)讀寫需求時(shí),只需向數(shù)據(jù)緩存裝置發(fā)送相應(yīng)的讀請(qǐng)求或者寫請(qǐng)求即可,也節(jié)省了數(shù)據(jù)處理設(shè)備的系統(tǒng)資源。再請(qǐng)參見圖2,是本發(fā)明實(shí)施例的數(shù)據(jù)緩存裝置的第二實(shí)施例結(jié)構(gòu)組成示意圖。本實(shí)施例中的所述數(shù)據(jù)緩存裝置包括上述第一實(shí)施例中的控制器11和內(nèi)存12,進(jìn)一步的,在本實(shí)施例中,所述控制器11具體包括讀控制模塊111,用于在接收到數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到所述內(nèi)存12中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備。另外,所述讀控制模塊111還用于在所述內(nèi)存中沒有查詢得到所述數(shù)據(jù)處理設(shè)備請(qǐng)求的數(shù)據(jù)時(shí),向所述數(shù)據(jù)處理設(shè)備返回查詢失敗通知。寫控制模塊112,用于在接收到所述數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)出的數(shù)據(jù)寫入到所述內(nèi)存中,并在已寫入到所述內(nèi)存12中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到與本數(shù)據(jù)緩存裝置相連的硬盤中。其中,所述已寫入到所述內(nèi)存12中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件為已寫入到所述內(nèi)存12中數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)的數(shù)據(jù)量閾值,滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如寫入的數(shù)據(jù)達(dá)到IG時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件。或者為向所述內(nèi)存12中寫入數(shù)據(jù)的時(shí)長達(dá)到預(yù)設(shè)的時(shí)長閾值,滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如,向所述內(nèi)存12中寫入數(shù)據(jù)的時(shí)長達(dá)到60秒時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件。在滿足預(yù)設(shè)的硬盤存儲(chǔ)條件后,所述寫控制模塊112將已寫入到所述內(nèi)存12中的數(shù)據(jù)轉(zhuǎn)存到與本數(shù)據(jù)緩存裝置相連的硬盤中。在具體實(shí)現(xiàn)時(shí),所述數(shù)據(jù)量閾值和所述時(shí)長閾值可以根據(jù)內(nèi)存的具體大小確定并設(shè)置。數(shù)據(jù)處理設(shè)備僅需將待存儲(chǔ)的數(shù)據(jù)寫入到所述數(shù)據(jù)緩存裝置的內(nèi)存12中,由所述寫控制模塊112根據(jù)硬盤存儲(chǔ)條件轉(zhuǎn)存這些待存儲(chǔ)的數(shù)據(jù)到硬盤中,數(shù)據(jù)處理設(shè)備并不直接向硬盤中寫入所述數(shù)據(jù),因此,能夠完全滿足服務(wù)器高速寫數(shù)據(jù)的性能要求。進(jìn)一步可選的,所述控制器11還可以包括計(jì)算模塊113。計(jì)算模塊113,用于根據(jù)預(yù)置的Cache算法,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所 述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。所述計(jì)算模塊113根據(jù)預(yù)置的Cache算法,對(duì)硬盤中的數(shù)據(jù)進(jìn)行判斷,以計(jì)算確定出硬盤中常被使用的熱點(diǎn)數(shù)據(jù),并將熱點(diǎn)數(shù)據(jù)預(yù)讀至所述內(nèi)存12中。所述預(yù)置的Cache算法可根據(jù)不同的數(shù)據(jù)處理業(yè)務(wù)中對(duì)數(shù)據(jù)的讀寫操作的比例來確定,所述Cache算法可靈活的修改和配置來滿足用戶的需求。其中具體的,所述計(jì)算模塊113可根據(jù)預(yù)置的Cache算法和本數(shù)據(jù)緩存裝置中記錄的所述數(shù)據(jù)處理設(shè)備發(fā)送的硬盤存儲(chǔ)地址,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。其中,所述數(shù)據(jù)處理設(shè)備是在接收到本數(shù)據(jù)緩存裝置發(fā)送的查詢失敗通知時(shí),到所述硬盤中查詢數(shù)據(jù),并在查詢得到數(shù)據(jù)時(shí),向本數(shù)據(jù)緩存裝置發(fā)送所述查詢得到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址。所示Cache算法主要是通過對(duì)數(shù)據(jù)源中的數(shù)據(jù)的讀寫模式進(jìn)行分析,判斷得出熱點(diǎn)數(shù)據(jù)。例如可以包括(I)基于時(shí)間,如LRU (Least Recently Used,最近最少使用)算法,通過分析查詢并讀取硬盤中數(shù)據(jù)源中的數(shù)據(jù)的地址、目錄和文件,把硬盤中使用時(shí)間長的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù)緩存在數(shù)據(jù)緩存裝置中。(2)基于特定業(yè)務(wù)模式,用戶的業(yè)務(wù)模式可以是對(duì)順序讀方式或者隨機(jī)讀方式為主,針對(duì)用戶的業(yè)務(wù)模式,用戶可對(duì)應(yīng)業(yè)務(wù)模式配置Cache算法,例如順序讀為主的業(yè)務(wù)模式,配置的Cache算法則以用戶的讀寫地址按一定的比例向前連續(xù)預(yù)讀硬盤中數(shù)據(jù)塊,將這些數(shù)據(jù)塊中保存的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù)緩存在數(shù)據(jù)緩存裝置中。進(jìn)一步可選的,本實(shí)施例的所述數(shù)據(jù)緩存裝置中的控制器11還可以包括記錄模塊114,用于記錄所述讀控制模塊111查詢得到的數(shù)據(jù)在內(nèi)存中的緩存存儲(chǔ)地址;更新模塊115,用于根據(jù)所述記錄模塊114中記錄的緩存存儲(chǔ)地址,采用所述預(yù)置的Cache算法更新所述內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)。所述預(yù)置的Cache算法還可以用于對(duì)內(nèi)存12中已緩存的熱點(diǎn)數(shù)據(jù)進(jìn)行更新,例如將預(yù)設(shè)事件內(nèi)使用次數(shù)最少的內(nèi)容從內(nèi)存12中移除。通過所述記錄模塊114記錄的緩存存儲(chǔ)地址,所述更新模塊115可將內(nèi)存12中緩存的不常使用的數(shù)據(jù)從內(nèi)存12中移除,以便于更好地在通過所述內(nèi)存緩存所述計(jì)算模塊113從硬盤中計(jì)算得到的熱點(diǎn)數(shù)據(jù)。
進(jìn)一步可選的,如圖2所示,在本實(shí)施例中,所述數(shù)據(jù)緩存裝置還可以包括掉電保護(hù)模塊13、備用電源模塊14以及FLASH存儲(chǔ)模塊15。所述掉電保護(hù)模塊13,用于檢測(cè)掉電事件,并在檢測(cè)到發(fā)生掉電事件時(shí),切換至所述備用電源模塊14為所述數(shù)據(jù)緩存裝置供電。所述掉電保護(hù)模塊13在檢測(cè)到發(fā)生掉電事件時(shí),還用于向所述控制器11上報(bào)中斷通知。所述控制器11還用于在接收到所述中斷通知時(shí),將寫入到所述 內(nèi)存中的數(shù)據(jù)寫入到所述FLASH存儲(chǔ)模塊15中,并在正常上電后,將所述FLASH存儲(chǔ)模塊15中的數(shù)據(jù)寫入所述硬盤中。在具體實(shí)施時(shí),所述備用電源模塊14可以為一個(gè)超級(jí)電容組,在所述掉電保護(hù)模塊13檢測(cè)到掉電事件時(shí),隔斷本數(shù)據(jù)緩存裝置與數(shù)據(jù)處理設(shè)備的電源連接,由所述作為備用電源模塊14的超級(jí)電容組對(duì)本數(shù)據(jù)緩存裝置進(jìn)行短時(shí)間的供電,由所述控制器11及時(shí)將內(nèi)存的數(shù)據(jù)轉(zhuǎn)存到FLASH存儲(chǔ)模塊15中,以避免所述內(nèi)存12因掉電而發(fā)生數(shù)據(jù)丟失。通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中采用控制器與內(nèi)存結(jié)合實(shí)現(xiàn)高速數(shù)據(jù)緩存,使得數(shù)據(jù)處理設(shè)備的CPU能夠高速進(jìn)行數(shù)據(jù)的讀和寫,提高了讀寫性能,明顯提升IOPS即每秒進(jìn)行讀寫(I/o)操作的次數(shù),并且對(duì)硬盤不再有性能要求,用戶可使用成本低的普通硬盤即可,在一定程度上節(jié)約了硬盤成本。同時(shí),本發(fā)明實(shí)施例還提供了掉電保護(hù)、備用電源以及不會(huì)由于掉電而丟失數(shù)據(jù)的FLASH存儲(chǔ)模塊,進(jìn)一步的保證了即時(shí)發(fā)生掉電情況,寫入到內(nèi)存的數(shù)據(jù)也不會(huì)丟失,在上電后,仍然能夠?qū)⑾鄳?yīng)的數(shù)據(jù)寫入到硬盤中,確保的數(shù)據(jù)的安全性。再請(qǐng)參見圖3,是本發(fā)明實(shí)施例的數(shù)據(jù)緩存裝置的其中一種具體結(jié)構(gòu)組成示意圖;本實(shí)施例的所述數(shù)據(jù)緩存裝置包括上述數(shù)據(jù)緩存裝置第二實(shí)施例中的控制器11、內(nèi)存12,本實(shí)施例中內(nèi)存12包括多條RAM內(nèi)存條,如圖中的內(nèi)存條121、內(nèi)存條122以及內(nèi)存條123、掉電保護(hù)模塊13、作為備用電源模塊的超級(jí)電容組104、用于在發(fā)生掉電事件時(shí)臨時(shí)存儲(chǔ)內(nèi)存12中緩存的數(shù)據(jù)的FLASH15,并且在本實(shí)施例中,所述數(shù)據(jù)緩存裝置是通過一PCIE接口 17與數(shù)據(jù)處理設(shè)備相連進(jìn)行數(shù)據(jù)通信;控制器11中內(nèi)置的Cache算法則用于對(duì)內(nèi)存12中的熱點(diǎn)數(shù)據(jù)更新和計(jì)算硬盤中熱點(diǎn)數(shù)據(jù)的Cache算法,所述Cache算法也可以保存在一個(gè)單獨(dú)的Cache算法存儲(chǔ)模塊中,供所述控制器11調(diào)用。通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中采用控制器與內(nèi)存結(jié)合實(shí)現(xiàn)高速數(shù)據(jù)緩存,使得數(shù)據(jù)處理設(shè)備的CPU能夠高速進(jìn)行數(shù)據(jù)的讀和寫,提高了讀寫性能,明顯提升IOPS即每秒進(jìn)行讀寫(I/O)操作的次數(shù),并且對(duì)硬盤不再有性能要求,用戶可使用成本低的普通硬盤即可,在一定程度上節(jié)約了硬盤成本。同時(shí),本發(fā)明實(shí)施例還提供了掉電保護(hù)、備用電源以及不會(huì)由于掉電而丟失數(shù)據(jù)的FLASH存儲(chǔ)模塊,進(jìn)一步的保證了即時(shí)發(fā)生掉電情況,寫入到內(nèi)存的數(shù)據(jù)也不會(huì)丟失,在上電后,仍然能夠?qū)⑾鄳?yīng)的數(shù)據(jù)寫入到硬盤中,確保的數(shù)據(jù)的安全性。再請(qǐng)參見圖4,是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)組成示意圖,所述數(shù)據(jù)存儲(chǔ)系統(tǒng)包括
數(shù)據(jù)處理設(shè)備2,數(shù)據(jù)緩存裝置I以及硬盤3,所述數(shù)據(jù)緩存裝置I通過數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備2連接,所述硬盤3與所述數(shù)據(jù)處理設(shè)備和所述數(shù)據(jù)緩存裝置連接,所述數(shù)據(jù)處理設(shè)備2用于向所述數(shù)據(jù)緩存裝置I和/或所述硬盤3中讀寫數(shù)據(jù),所述數(shù)據(jù)緩存裝置I中緩存有熱點(diǎn)數(shù)據(jù),所述熱點(diǎn)數(shù)據(jù)為所述硬盤3中常被查詢使用的數(shù)據(jù),硬盤中的熱點(diǎn)數(shù)據(jù)可以通過Cache算法計(jì)算得出。其中,所述數(shù)據(jù)緩存裝置I包括控制器11,和與所述控制器11相連的內(nèi)存12 ;所述內(nèi)存12用于緩存硬盤3上常被查詢使用的熱點(diǎn)數(shù)據(jù),所述控制器11用于根據(jù)所述數(shù)據(jù)處理設(shè)備2的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存12讀寫數(shù)據(jù)。 進(jìn)一步可選的,如圖4所示,在本實(shí)施例中,所述數(shù)據(jù)緩存裝置I還可以包括掉電保護(hù)模塊13、備用電源模塊14以及FLASH存儲(chǔ)模塊15。
所述掉電保護(hù)模塊13,用于檢測(cè)掉電事件,并在檢測(cè)到發(fā)生掉電事件時(shí),切換至所述備用電源模塊14為所述數(shù)據(jù)緩存裝置供電。所述掉電保護(hù)模塊13在檢測(cè)到發(fā)生掉電事件時(shí),還用于向所述控制器11上報(bào)中斷通知。所述控制器11還用于在接收到所述中斷通知時(shí),將寫入到所述內(nèi)存中的數(shù)據(jù)寫入到所述FLASH存儲(chǔ)模塊15中,并在正常上電后,將所述FLASH存儲(chǔ)模塊15中的數(shù)據(jù)寫入所述硬盤3中。在具體實(shí)施時(shí),所述備用電源模塊14可以為一個(gè)超級(jí)電容組,在所述掉電保護(hù)模塊13檢測(cè)到掉電事件時(shí),隔斷本數(shù)據(jù)緩存裝置與數(shù)據(jù)處理設(shè)備2的電源連接,由所述作為備用電源模塊14的超級(jí)電容組對(duì)本數(shù)據(jù)緩存裝置進(jìn)行短時(shí)間的供電,由所述控制器11及時(shí)將內(nèi)存12的數(shù)據(jù)轉(zhuǎn)存到FLASH存儲(chǔ)模塊15中,以避免所述內(nèi)存12因掉電而發(fā)生數(shù)據(jù)丟失。進(jìn)一步可選的,如圖5所示,是圖4中的數(shù)據(jù)存儲(chǔ)系統(tǒng)中數(shù)據(jù)緩存裝置的控制器的具體結(jié)構(gòu)組成示意圖,所述控制器11具體可以包括讀控制模塊111,用于在接收到所述數(shù)據(jù)處理設(shè)備2發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到所述內(nèi)存12中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備2。寫控制模塊112,用于在接收到所述數(shù)據(jù)處理設(shè)備2發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備2發(fā)出的數(shù)據(jù)寫入到所述內(nèi)存12中,并在已寫入到所述內(nèi)存12中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存12中的數(shù)據(jù)轉(zhuǎn)存到與所述硬盤3中。其中,所述已寫入到所述內(nèi)存12中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件為已寫入到所述內(nèi)存12中數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)的數(shù)據(jù)量閾值,滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如寫入的數(shù)據(jù)達(dá)到IG時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件?;蛘邽橄蛩鰞?nèi)存12中寫入數(shù)據(jù)的時(shí)長達(dá)到預(yù)設(shè)的時(shí)長閾值,滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如,向所述內(nèi)存12中寫入數(shù)據(jù)的時(shí)長達(dá)到60秒時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件。在滿足預(yù)設(shè)的硬盤存儲(chǔ)條件后,所述寫控制模塊112才將已寫入到所述內(nèi)存12中的數(shù)據(jù)轉(zhuǎn)存到所述硬盤3中。在具體實(shí)現(xiàn)時(shí),所述數(shù)據(jù)量閾值和所述時(shí)長閾值可以根據(jù)內(nèi)存12的具體大小確定并設(shè)置。數(shù)據(jù)處理設(shè)備2僅需將待存儲(chǔ)的數(shù)據(jù)寫入到所述數(shù)據(jù)緩存裝置I的內(nèi)存12中,由所述寫控制模塊112根據(jù)硬盤存儲(chǔ)條件轉(zhuǎn)存這些待存儲(chǔ)的數(shù)據(jù)到硬盤3中,數(shù)據(jù)處理設(shè)備2并不直接向硬盤3中寫入所述數(shù)據(jù),因此,能夠完全滿足高速寫數(shù)據(jù)的性能要求。進(jìn)一步可選的,所述控制器11還可以包括計(jì)算模塊113。計(jì)算模塊113,用于根據(jù)預(yù)置的Cache算法,計(jì)算所述硬盤3中的熱點(diǎn)數(shù)據(jù),并從所述硬盤3中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存12中。所述計(jì)算模塊113可根據(jù)被所述數(shù)據(jù)處理設(shè)備2獲取的數(shù)據(jù)在所述硬盤3中的硬盤存儲(chǔ)地址,采用預(yù)置的Cache算法進(jìn)行計(jì)算,得到硬盤中的熱點(diǎn)數(shù)據(jù),并緩存到所述內(nèi)存12中。其中,所述數(shù)據(jù)處理設(shè)備2從所述硬盤3中讀取數(shù)據(jù)后,將讀取到的數(shù)據(jù)在硬盤3 中的硬盤存儲(chǔ)地址發(fā)送給所述控制器11,由所述控制器11中的計(jì)算模塊113采用所述預(yù)置的Cache算法進(jìn)行計(jì)算,得到硬盤3中的熱點(diǎn)數(shù)據(jù)并緩存到所述內(nèi)存12中。具體的,所述讀控制模塊111還用于在所述內(nèi)存12中沒有查詢得到所述數(shù)據(jù)處理設(shè)備2請(qǐng)求的數(shù)據(jù)時(shí),向所述數(shù)據(jù)處理設(shè)備2返回查詢失敗通知;所述數(shù)據(jù)處理設(shè)備2在接收到查詢失敗通知時(shí),到所述硬盤3中查詢數(shù)據(jù),并在查詢得到數(shù)據(jù)時(shí),將所述查詢得到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址發(fā)送給所述數(shù)據(jù)緩存裝置I ;所述數(shù)據(jù)緩存裝置I的控制器11中還包括記錄模塊114用于記錄所述數(shù)據(jù)處理設(shè)備2發(fā)送的硬盤存儲(chǔ)地址;所述計(jì)算模塊113具體用于根據(jù)預(yù)置的Cache算法和所述記錄模塊114中記錄的硬盤存儲(chǔ)地址,計(jì)算所述硬盤3中的熱點(diǎn)數(shù)據(jù),并從所述硬盤3中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。所述計(jì)算模塊113根據(jù)預(yù)置的Cache算法,對(duì)硬盤3中的數(shù)據(jù)進(jìn)行計(jì)算判斷,以確定出硬盤3存儲(chǔ)的數(shù)據(jù)中常被使用的熱點(diǎn)數(shù)據(jù),并將確定的熱點(diǎn)數(shù)據(jù)預(yù)讀至所述內(nèi)存12中。所述預(yù)置的Cache算法可根據(jù)不同的數(shù)據(jù)處理業(yè)務(wù)中對(duì)數(shù)據(jù)的讀與寫操作的比例來確定,所述Cache算法可靈活的修改和配置來滿足用戶的數(shù)據(jù)處理需求。進(jìn)一步可選的,所述預(yù)置的Cache算法還可以用于對(duì)內(nèi)存12中已緩存的熱點(diǎn)數(shù)據(jù)進(jìn)行更新,例如將最近最少使用的內(nèi)容從內(nèi)存12中移除,通過所述記錄模塊記錄所述讀控制模塊查詢得到的數(shù)據(jù)在內(nèi)存中的緩存存儲(chǔ)地址,所述更新模塊可將內(nèi)存12中緩存的不常使用的數(shù)據(jù)從內(nèi)存12中移除,以便于更好地在通過所述內(nèi)存緩存所述計(jì)算模塊從硬盤中計(jì)算得到的熱點(diǎn)數(shù)據(jù)。因此,所述記錄模塊114還用于記錄所述讀控制模塊111查詢得到的數(shù)據(jù)在內(nèi)存12中的緩存存儲(chǔ)地址;本實(shí)施例的所述數(shù)據(jù)緩存裝置I中的控制器11還可以包括更新模塊115,用于采用所述預(yù)置的Cache算法,并根據(jù)所述記錄模塊114中記錄的緩存存儲(chǔ)地址更新所述內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)。通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中設(shè)置控制器與內(nèi)存,由所述控制器完成對(duì)內(nèi)存的數(shù)據(jù)讀或者寫控制,采用沒有讀寫次數(shù)限制的內(nèi)存來緩存相應(yīng)的數(shù)據(jù),不僅保證了數(shù)據(jù)的讀寫性能,而且節(jié)約了緩存成本。數(shù)據(jù)處理設(shè)備有數(shù)據(jù)讀寫需求時(shí),只需向數(shù)據(jù)緩存裝置發(fā)送相應(yīng)的讀請(qǐng)求或者寫請(qǐng)求即可,也節(jié)省了數(shù)據(jù)處理設(shè)備的系統(tǒng)資源;
并且在數(shù)據(jù)處理設(shè)備需要存儲(chǔ)數(shù)據(jù)時(shí),是直接向數(shù)據(jù)緩存裝置的內(nèi)存中寫入數(shù)據(jù),由數(shù)據(jù)緩存裝置將數(shù)據(jù)轉(zhuǎn)存到硬盤中,從而對(duì)硬盤不再有性能要求,用戶可使用成本低的普通硬盤即可,在一定程度上節(jié)約了硬盤成本;同時(shí),本發(fā)明實(shí)施例還提供了掉電保護(hù)、備用電源以及不會(huì)由于掉電而丟失數(shù)據(jù)的FLASH存儲(chǔ)模塊,在發(fā)生掉電情況時(shí),寫入到內(nèi)存的數(shù)據(jù)可轉(zhuǎn)存至FLASH存儲(chǔ)模塊中,并不會(huì)丟失,在上電后,仍然能夠?qū)LASH存儲(chǔ)模塊中的數(shù)據(jù)寫入到硬盤中,確保的數(shù)據(jù)的安全性。下面對(duì)本發(fā)明的數(shù)據(jù)存儲(chǔ)方法進(jìn)行詳細(xì)說明。請(qǐng)參見圖6,是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的結(jié)構(gòu)組成示意圖,本實(shí)施例的所述方法應(yīng)用在一存儲(chǔ)系統(tǒng)中,該存儲(chǔ)系統(tǒng)由數(shù)據(jù)緩存裝置和硬盤存儲(chǔ)數(shù)據(jù),數(shù)據(jù)緩存裝置通過如PCIE接口等數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,所述硬盤同時(shí)與所述數(shù)據(jù)處理設(shè)備和所 述數(shù)據(jù)緩存裝置上。本實(shí)施例的所述數(shù)據(jù)存儲(chǔ)方法包括SlOl :接收數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)讀或?qū)懻?qǐng)求;數(shù)據(jù)處理設(shè)備在有數(shù)據(jù)讀取或者數(shù)據(jù)存儲(chǔ)需求時(shí),會(huì)向本數(shù)據(jù)緩存裝置發(fā)送相應(yīng)的數(shù)據(jù)讀請(qǐng)求,或者數(shù)據(jù)寫請(qǐng)求。S102 :在接收到數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到內(nèi)存中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備,所述內(nèi)存中緩存有熱點(diǎn)數(shù)據(jù)。而當(dāng)?shù)剿鰞?nèi)存中沒有查詢得到所述數(shù)據(jù)處理設(shè)備請(qǐng)求的數(shù)據(jù)時(shí),向所述數(shù)據(jù)處理設(shè)備返回查詢失敗通知。S103:接收到數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)出的數(shù)據(jù)寫入到內(nèi)存中,并在已寫入到所述內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到硬盤中。進(jìn)一步可選地,本實(shí)施例的所述數(shù)據(jù)存儲(chǔ)方法還包括根據(jù)預(yù)置的Cache算法,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。具體的,可以采用Cache算法根據(jù)所述硬盤中常被查詢使用的數(shù)據(jù)的硬盤存儲(chǔ)地址,計(jì)算硬盤中的熱點(diǎn)數(shù)據(jù),以便于將熱點(diǎn)數(shù)據(jù)寫入到內(nèi)存中。其具體可以包括記錄所述數(shù)據(jù)處理設(shè)備發(fā)送的硬盤存儲(chǔ)地址,其中,所述數(shù)據(jù)處理設(shè)備是在接收到查詢失敗通知時(shí),到所述硬盤中查詢數(shù)據(jù),并在查詢得到數(shù)據(jù)時(shí),發(fā)送所述查詢得到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址;根據(jù)預(yù)置的Cache算法和所述記錄的硬盤存儲(chǔ)地址,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。進(jìn)一步可選地,本實(shí)施例的所述數(shù)據(jù)存儲(chǔ)方法還包括采用Cache算法對(duì)內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)進(jìn)行更新。具體可以根據(jù)Cache算法,并根據(jù)內(nèi)存中常被查詢使用的數(shù)據(jù)的緩存存儲(chǔ)地址來進(jìn)行更新,其具體包括記錄在內(nèi)存中查詢得到的數(shù)據(jù)的緩存存儲(chǔ)地址;并根據(jù)所述記錄的緩存存儲(chǔ)地址,采用所述預(yù)置的Cache算法更新所述內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)。進(jìn)一步可選地,本實(shí)施例的所述數(shù)據(jù)存儲(chǔ)方法還包括在檢測(cè)到發(fā)生掉電事件時(shí),切換至所述備用電源模塊供電,并將所述內(nèi)存中的數(shù)據(jù)寫入FLASH存儲(chǔ)模塊中,并在正常上電后,將所述FLASH存儲(chǔ)模塊中的數(shù)據(jù)寫入硬盤中。需要說明的是,上述的幾個(gè)可選的步驟可以在數(shù)據(jù)緩存裝置運(yùn)行過程中任意時(shí)間進(jìn)行。通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中采用控制器與內(nèi)存結(jié)合實(shí)現(xiàn)高速數(shù)據(jù)緩存,不需要經(jīng)常更換內(nèi)存,降低了緩存的成本,并且保證了數(shù)據(jù)讀 寫性能,明顯提升IOPS即每秒進(jìn)行讀寫(I/o)操作的次數(shù)。再請(qǐng)參見圖7,是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的其中一種數(shù)據(jù)讀方法的流程示意圖;本實(shí)施例的所述數(shù)據(jù)讀方法對(duì)應(yīng)上述數(shù)據(jù)存儲(chǔ)方法實(shí)施例中的S101。具體的,本實(shí)施例的所述數(shù)據(jù)讀方法包括S201 :數(shù)據(jù)處理設(shè)備需要查詢數(shù)據(jù)時(shí),向數(shù)據(jù)緩存裝置發(fā)出數(shù)據(jù)讀請(qǐng)求;S202:數(shù)據(jù)緩存裝置在本地的內(nèi)存中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并判斷是否查詢得到數(shù)據(jù);S203:數(shù)據(jù)緩存裝置在查詢得到數(shù)據(jù)時(shí),將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備,并記錄查詢得到的數(shù)據(jù)在內(nèi)存中的緩存存儲(chǔ)地址;S204 :數(shù)據(jù)緩存裝置沒有查詢到數(shù)據(jù)時(shí),向數(shù)據(jù)處理設(shè)備返回?cái)?shù)據(jù)查詢失敗通知;S205 :數(shù)據(jù)處理設(shè)備到硬盤中查詢數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址發(fā)送給所述數(shù)據(jù)緩存裝置;S206 :數(shù)據(jù)緩存裝置根據(jù)所述緩存存儲(chǔ)地址和預(yù)置的Cache算法更新內(nèi)存中的數(shù)據(jù);或者根據(jù)所述硬盤存儲(chǔ)地址和預(yù)置的Cache算法,從所述硬盤中獲取熱點(diǎn)數(shù)據(jù)換存到內(nèi)存中。通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例在數(shù)據(jù)緩存裝置中采用控制器與內(nèi)存結(jié)合實(shí)現(xiàn)高速數(shù)據(jù)緩存,不需要經(jīng)常更換內(nèi)存,降低了緩存的成本,并且保證了數(shù)據(jù)讀性能,明顯提升IOPS即每秒進(jìn)行讀寫(I/o)操作的次數(shù)。再請(qǐng)參見圖8,是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的其中一種數(shù)據(jù)寫方法的流程示意圖;本實(shí)施例的所述數(shù)據(jù)寫方法對(duì)應(yīng)上述數(shù)據(jù)存儲(chǔ)方法實(shí)施例中的S102。具體的,本實(shí)施例的所述數(shù)據(jù)寫方法包括S301 :數(shù)據(jù)處理設(shè)備需要存儲(chǔ)數(shù)據(jù)時(shí),向數(shù)據(jù)緩存裝置發(fā)送數(shù)據(jù)寫請(qǐng)求;S302:數(shù)據(jù)緩存裝置接收所述數(shù)據(jù)寫請(qǐng)求,并將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)送的待存儲(chǔ)的數(shù)據(jù)緩存到內(nèi)存中;S303:數(shù)據(jù)緩存裝置在檢測(cè)到已寫入到內(nèi)存中的數(shù)據(jù)滿足硬盤存儲(chǔ)條件時(shí),將已寫入到內(nèi)存中的數(shù)據(jù)寫入到硬盤中。其中,所述的已寫入到內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件具體包括已寫入到所述內(nèi)存中數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)的數(shù)據(jù)量閾值時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如寫入的數(shù)據(jù)達(dá)到IG時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件?;蛘邽橄蛩鰞?nèi)存中寫入數(shù)據(jù)的時(shí)長達(dá)到預(yù)設(shè)的時(shí)長閾值時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件,例如,向所述內(nèi)存中寫入數(shù)據(jù)的時(shí)長達(dá)到60秒時(shí),滿足預(yù)設(shè)的硬盤存儲(chǔ)條件。通過上述實(shí)施例的描述可知,本發(fā)明具有以下優(yōu)點(diǎn)數(shù)據(jù)處理設(shè)備僅需將待存儲(chǔ)的數(shù)據(jù)寫入到所述數(shù)據(jù)緩存裝置的內(nèi)存中,然后轉(zhuǎn)存這些待存儲(chǔ)的數(shù)據(jù)到硬盤中,數(shù)據(jù)處理設(shè)備并不直接向硬盤中寫入所述數(shù)據(jù),因此,能夠完全滿足服務(wù)器高速寫數(shù)據(jù)的性能要求,并且對(duì)硬盤不再有性能要求,用戶可使用成本低的普通硬盤即可,在一定程度上節(jié)約了硬盤成本。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種數(shù)據(jù)緩存裝置,其特征在于,所述數(shù)據(jù)緩存裝置通過數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,所述數(shù)據(jù)緩存裝置包括控制器,與所述控制器相連的內(nèi)存;所述內(nèi)存用于緩存與本數(shù)據(jù)緩存裝置相連的硬盤中的熱點(diǎn)數(shù)據(jù),所述控制器用于根據(jù)所述數(shù)據(jù)處理設(shè)備的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存讀寫數(shù)據(jù)。
2.如權(quán)利要求I所述的數(shù)據(jù)緩存裝置,其特征在于,所述控制器包括 讀控制模塊,用于在接收到所述數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到所述內(nèi)存中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備; 寫控制模塊,用于在接收到所述數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)出的數(shù)據(jù)寫入到所述內(nèi)存中,并在已寫入到所述內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到所述硬盤中。
3.如權(quán)利要求2所述的數(shù)據(jù)緩存裝置,其特征在于,所述控制器還包括 計(jì)算模塊,用于根據(jù)預(yù)置的Cache算法,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。
4.如權(quán)利要求2所述的數(shù)據(jù)緩存裝置,其特征在于,所述控制器還包括 記錄模塊,用于記錄所述讀控制模塊查詢得到的數(shù)據(jù)在內(nèi)存中的緩存存儲(chǔ)地址; 更新模塊,用于采用預(yù)置的Cache算法,并根據(jù)所述記錄模塊中記錄的緩存存儲(chǔ)地址更新所述內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)。
5.如權(quán)利要求2所述的數(shù)據(jù)緩存裝置,其特征在于,所述讀控制模塊還用于當(dāng)?shù)剿鰞?nèi)存中沒有查詢得到所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù)時(shí),向所述數(shù)據(jù)處理設(shè)備返回查詢失敗通知。
6.如權(quán)利要求I至5任一項(xiàng)所述的數(shù)據(jù)緩存裝置,其特征在于,還包括掉電保護(hù)模塊和備用電源模塊,其中, 所述掉電保護(hù)模塊,用于檢測(cè)掉電事件,并在檢測(cè)到發(fā)生掉電事件時(shí),切換至所述備用電源模塊為所述數(shù)據(jù)緩存裝置供電。
7.如權(quán)利要求6所述的數(shù)據(jù)緩存裝置,其特征在于,還包括=FLASH存儲(chǔ)模塊, 所述掉電保護(hù)模塊還用于在檢測(cè)到發(fā)生掉電事件時(shí),向所述控制器上報(bào)中斷通知; 所述控制器還用于在接收到所述中斷通知時(shí),將寫入到所述內(nèi)存中的數(shù)據(jù)寫入到所述FLASH存儲(chǔ)模塊中,并在正常上電后,將所述FLASH存儲(chǔ)模塊中的數(shù)據(jù)寫入所述硬盤中。
8.一種數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,包括 數(shù)據(jù)處理設(shè)備,數(shù)據(jù)緩存裝置以及硬盤,所述數(shù)據(jù)緩存裝置通過數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,所述硬盤與所述數(shù)據(jù)處理設(shè)備和所述數(shù)據(jù)緩存裝置相連,所述數(shù)據(jù)處理設(shè)備用于向所述數(shù)據(jù)緩存裝置和/或所述硬盤中讀寫數(shù)據(jù),所述數(shù)據(jù)緩存裝置中緩存有所述硬盤中的熱點(diǎn)數(shù)據(jù),其中, 所述數(shù)據(jù)緩存裝置包括控制器,和與所述控制器相連的內(nèi)存;所述內(nèi)存用于緩存所述硬盤中的熱點(diǎn)數(shù)據(jù),所述控制器用于根據(jù)所述數(shù)據(jù)處理設(shè)備的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存讀寫數(shù)據(jù)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述控制器包括 讀控制模塊,用于在接收到所述數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到所述內(nèi)存中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備;寫控制模塊,用于在接收到所述數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)出的數(shù)據(jù)寫入到所述內(nèi)存中,并在已寫入到所述內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到所述硬盤中。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述控制器還包括 計(jì)算模塊,用于根據(jù)預(yù)置的Cache算法,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。
11.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述控制器還包括 記錄模塊,用于記錄所述讀控制模塊查詢得到的數(shù)據(jù)在內(nèi)存中的緩存存儲(chǔ)地址; 更新模塊,用于根據(jù)所述記錄模塊中記錄的緩存存儲(chǔ)地址,采用所述預(yù)置的Cache算 法更新所述內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)。
12.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述讀控制模塊還用于當(dāng)?shù)剿鰞?nèi)存中沒有查詢得到所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù)時(shí),向所述數(shù)據(jù)處理設(shè)備返回查詢失敗通知。
13.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述數(shù)據(jù)處理設(shè)備在接收到查詢失敗通知時(shí),到所述硬盤中查詢數(shù)據(jù),并在查詢得到數(shù)據(jù)時(shí),將所述查詢得到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址發(fā)送給所述數(shù)據(jù)緩存裝置; 所述數(shù)據(jù)緩存裝置的控制器中的所述記錄模塊還用于記錄所述數(shù)據(jù)處理設(shè)備發(fā)送的硬盤存儲(chǔ)地址; 所述計(jì)算模塊具體用于根據(jù)預(yù)置的Cache算法和所述記錄模塊中記錄的硬盤存儲(chǔ)地址,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。
14.如權(quán)利要求8-13任一項(xiàng)所述的系統(tǒng),其特征在于,還包括掉電保護(hù)模塊和備用電源模塊,其中, 所述掉電保護(hù)模塊,用于檢測(cè)掉電事件,并在檢測(cè)到發(fā)生掉電事件時(shí),切換至所述備用電源模塊為所述數(shù)據(jù)緩存裝置供電。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括=FLASH存儲(chǔ)模塊, 所述掉電保護(hù)模塊在檢測(cè)到發(fā)生掉電事件時(shí),還用于向所述控制器上報(bào)中斷通知; 所述控制器還用于在接收到所述中斷通知時(shí),將寫入到所述內(nèi)存中的數(shù)據(jù)寫入到所述FLASH存儲(chǔ)模塊中,并在正常上電后,將所述FLASH存儲(chǔ)模塊中的數(shù)據(jù)寫入所述硬盤中。
16.一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,包括 在接收到數(shù)據(jù)處理設(shè)備發(fā)起的數(shù)據(jù)讀請(qǐng)求時(shí),到內(nèi)存中查詢所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù),并將查詢得到的數(shù)據(jù)返回給所述數(shù)據(jù)處理設(shè)備,所述內(nèi)存中緩存有熱點(diǎn)數(shù)據(jù); 接收到數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)寫請(qǐng)求時(shí),將接收到的所述數(shù)據(jù)處理設(shè)備發(fā)出的數(shù)據(jù)寫入到內(nèi)存中,并在已寫入到所述內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的硬盤存儲(chǔ)條件時(shí),將已寫入到所述內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存到硬盤中。
17.如權(quán)利要求16所述的方法,其特征在于,還包括 根據(jù)預(yù)置的Cache算法,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。
18.如權(quán)利要求16所述的方法,其特征在于,還包括 記錄在內(nèi)存中查詢得到的數(shù)據(jù)在內(nèi)存中的緩存存儲(chǔ)地址;采用所述預(yù)置的Cache算法,并根據(jù)所述記錄的緩存存儲(chǔ)地址更新所述內(nèi)存中緩存的熱點(diǎn)數(shù)據(jù)。
19.如權(quán)利要求16所述的方法,其特征在于,還包括 當(dāng)?shù)剿鰞?nèi)存中沒有查詢得到所述數(shù)據(jù)讀請(qǐng)求所請(qǐng)求的數(shù)據(jù)時(shí),向所述數(shù)據(jù)處理設(shè)備返回查詢失敗通知。
20.如權(quán)利要求19所述的方法,其特征在于,還包括 記錄所述數(shù)據(jù)處理設(shè)備發(fā)送的硬盤存儲(chǔ)地址,其中,所述數(shù)據(jù)處理設(shè)備是在接收到查詢失敗通知時(shí),到所述硬盤中查詢數(shù)據(jù),并在查詢得到數(shù)據(jù)時(shí),發(fā)送所述查詢得到的數(shù)據(jù)在硬盤中的硬盤存儲(chǔ)地址; 根據(jù)預(yù)置的Cache算法和所述記錄的硬盤存儲(chǔ)地址,計(jì)算所述硬盤中的熱點(diǎn)數(shù)據(jù),并從所述硬盤中獲取所述熱點(diǎn)數(shù)據(jù),將獲取的熱點(diǎn)數(shù)據(jù)寫入所述內(nèi)存中。
21.如權(quán)利要求16-20任一項(xiàng)所述的方法,其特征在于,還包括 在檢測(cè)到發(fā)生掉電事件時(shí),切換至所述備用電源模塊供電,并將所述內(nèi)存中的數(shù)據(jù)寫入FLASH存儲(chǔ)模塊中,并在正常上電后,將所述FLASH存儲(chǔ)模塊中的數(shù)據(jù)寫入所述硬盤中。
全文摘要
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)緩存裝置、數(shù)據(jù)存儲(chǔ)系統(tǒng)及方法,其中的所述數(shù)據(jù)緩存裝置通過數(shù)據(jù)接口與數(shù)據(jù)處理設(shè)備相連,所述數(shù)據(jù)緩存裝置包括控制器,與所述控制器相連的內(nèi)存;所述內(nèi)存用于緩存與本數(shù)據(jù)緩存裝置相連的硬盤中的熱點(diǎn)數(shù)據(jù),所述控制器用于根據(jù)所述數(shù)據(jù)處理設(shè)備的數(shù)據(jù)讀寫請(qǐng)求向所述內(nèi)存讀寫數(shù)據(jù)。采用本發(fā)明,不僅可以有效地提升數(shù)據(jù)的讀寫性能,還可以避免系統(tǒng)資源的浪費(fèi)。
文檔編號(hào)G06F12/08GK102870100SQ201280000722
公開日2013年1月9日 申請(qǐng)日期2012年6月30日 優(yōu)先權(quán)日2012年6月30日
發(fā)明者黃劍敏, 宋銅鈴, 周建軍 申請(qǐng)人:華為技術(shù)有限公司