專利名稱:基于鍵值對緩存的數(shù)據(jù)讀寫方法及裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)緩存處理技術,尤其涉及一種基于鍵值對(KV, Key-Value )緩存的數(shù)據(jù)讀寫方法及裝置。
背景技術:
隨著數(shù)字電視技術的發(fā)展,智能電視系統(tǒng)服務的客戶數(shù)量日益增大。為了提高智能電視系統(tǒng)中數(shù)據(jù)傳輸(讀寫)的效率,提升智能電視系統(tǒng)的并發(fā)性能,一般采用鍵值對(KV,Key-Value)緩存技術,KV緩存技術是現(xiàn)今應用廣泛的存儲技術,通過將熱點數(shù)據(jù)存儲在智能電視系統(tǒng)的內(nèi)存中,并采用哈希(Hash)索引方式提升對數(shù)據(jù)的讀寫訪問速度,從而可以極大提高智能電視系統(tǒng)的并發(fā)性能以及傳輸效率。但由于緩存技術是將數(shù)據(jù)存儲在內(nèi)存中,因而,在智能電視系統(tǒng)發(fā)生故障時,不僅會造成數(shù)據(jù)傳輸業(yè)務中斷,而且,緩存中存儲的數(shù)據(jù)也會丟失且不可恢復,使得智能電視系統(tǒng)的可用性或可靠性較低。為了避免智能電視系統(tǒng)故障導致的數(shù)據(jù)丟失以及傳輸業(yè)務中斷,提升智能電視系統(tǒng)的可用性,現(xiàn)有技術提出了主從結構的KV緩存的數(shù)據(jù)讀寫方法。在智能電視系統(tǒng)中,設置一個主緩存器以及一個或多個從緩存器,主緩存器與從緩存器實時進行數(shù)據(jù)同步。在智能電視系統(tǒng)正常運行時,主緩存器處于工作狀態(tài),向請求服務的客戶端提供數(shù)據(jù)讀寫業(yè)務服務,從緩存器處于備用狀態(tài)。當主緩存器發(fā)生故障失效時,各從緩存器根據(jù)預先設置的失效處理策略,將其中的一個從緩存器升級為主緩存器,用以替換失效的主緩存器,并向請求服務的客戶端發(fā)送包含升級的從緩存器的服務地址更新信息,通知客戶端更新設置,使得客戶端可以根據(jù)服務地址更新信息向升級的從緩存器請求數(shù)據(jù)讀寫業(yè)務服務,保障數(shù)據(jù)傳輸業(yè)務不中斷;同時,向各從緩存器發(fā)送同步信息,通知各從緩存器按照預先設置的同步周期與自身進行數(shù)據(jù)同步。失效的主緩存器在排除故障后,作為從緩存器以供備份。由上述可見,現(xiàn)有基于KV緩存的數(shù)據(jù)讀寫方法,通過主從結構的KV緩存,用以保障智能電視系統(tǒng)數(shù)據(jù)傳輸?shù)目捎眯?。但是,通過主緩存器向客戶端提供數(shù)據(jù)讀寫業(yè)務服務,從緩存器只是作為備份緩存器,在主緩存器失效之前,從緩存器不能為客戶端提供數(shù)據(jù)讀寫業(yè)務服務,使得主緩存器負載較重,導致主緩存器與從緩存器的負載失衡,容易引起主緩存器擁堵,使得主緩存器數(shù)據(jù)讀寫效率降低;進一步地,在主緩存器發(fā)生故障失效時,需要升級的從緩存器向智能電視系統(tǒng)中的各客戶端發(fā)送包含該從緩存器的服務地址更新信息,使客戶端更新設置以能與升級的從緩存器進行通信,從而不中斷數(shù)據(jù)讀寫業(yè)務服務。由于智能電視系統(tǒng)服務的客戶端數(shù)量大,使得發(fā)送服務地址更新信息所需的資源開銷大;而且,客戶端需要根據(jù)接收的包含升級的從緩存器的服務地址更新信息進行更新設置,需要針對主從緩存器的結構不斷構建、變更連接,流程較為復雜,不能做到透明連接。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種基于鍵值對緩存的數(shù)據(jù)讀寫方法,客戶端可以透明使用緩存器,不用關心單個緩存器是否發(fā)生故障,并且可以提高緩存器數(shù)據(jù)的讀寫效率。
權利要求
1.一種基于鍵值對緩存的數(shù)據(jù)讀寫方法,該方法包括:預先設置以鍵值對的方式緩存數(shù)據(jù)的主緩存器以及從緩存器,并設置從緩存器根據(jù)預先設置的同步周期,從主緩存器獲取同步更新的數(shù)據(jù);接收客戶端發(fā)送的數(shù)據(jù)請求,并識別數(shù)據(jù)請求類型,如果為數(shù)據(jù)讀請求,選取從緩存器,將數(shù)據(jù)讀請求輸出至該從緩存器,如果為數(shù)據(jù)讀寫請求或數(shù)據(jù)寫請求,將數(shù)據(jù)請求輸出至主緩存器;接收主緩存器返回的數(shù)據(jù)請求響應或從緩存器返回的數(shù)據(jù)讀請求響應后,轉發(fā)至相應的客戶端;監(jiān)測主緩存器和從緩存器的狀態(tài),在監(jiān)測到主緩存器發(fā)生故障后,選取從緩存器并向該從緩存器發(fā)送屬性變更指令,該從緩存器根據(jù)所述屬性變更指令切換為主緩存器。
2.根據(jù)權利要求1所述的方法,其中,所述方法進一步包括:更新存儲的運行狀態(tài)列表中發(fā)生故障的主緩存器信息以及選取的從緩存器信息;遠程拉起發(fā)生故障的主緩存器,在發(fā)生故障的主緩存器排除故障啟動后,更新存儲的運行狀態(tài)列表中發(fā)生故障的主緩存器信息;將啟動的主緩存器切換為從緩存器,向該切換的從緩存器發(fā)送包含當前主緩存器信息的同步更新指令;所述切換的從緩存器接收同步更新指令,向同步更新指令中包含的當前主緩存器獲取同步更新的數(shù)據(jù)。
3.根據(jù)權利要求2所述的方法,其中,所述運行狀態(tài)列表包含緩存器的屬性、緩存器狀態(tài)以及緩存器當前的負載量。
4.根據(jù)權利要求2所述的方 法,其中,所述方法進一步包括:設置從服務管理器,按照預先設置的狀態(tài)更新周期,與主服務管理器運行狀態(tài)列表同I K少;監(jiān)測主服務管理器的狀態(tài),在監(jiān)測到主服務管理器發(fā)生故障后,接管主服務管理器。
5.根據(jù)權利要求4所述的方法,其中,所述接管主服務管理器包括:從服務管理器切換為主服務管理器后,動態(tài)生成偽IP ;調(diào)用用于配置該從服務管理器網(wǎng)卡的命令,將動態(tài)生成的偽IP掛載到網(wǎng)卡的媒體訪問層地址上;生成并發(fā)送地址解析協(xié)議包,通知主緩存服務器、各從緩存服務器以及外部網(wǎng)關。
6.根據(jù)權利要求1所述的方法,其中,所述從緩存器的數(shù)量為多個,所述選取從緩存器包括:根據(jù)預先設置的負載策略,從多個從緩存器中選取符合負載策略的一個從緩存器; 在選取從緩存器并向該從緩存器發(fā)送屬性變更指令后,所述方法進一步包括:向其他從緩存器發(fā)送包含該從緩存器信息的同步更新指令,以使接收同步更新指令的從緩存器向指令中的從緩存器獲取同步更新的數(shù)據(jù)。
7.一種基于鍵值對緩存的數(shù)據(jù)讀寫裝置,其特征在于,該裝置包括:主緩存器、從緩存器以及主服務管理器,其中,主緩存器,用于以鍵值對的方式緩存數(shù)據(jù),接收主服務管理器輸出的數(shù)據(jù)讀寫請求,進行數(shù)據(jù)讀寫,并將讀寫的數(shù)據(jù)攜帶在數(shù)據(jù)讀寫請求響應中,輸出至主服務管理器;在發(fā)生故障并排除故障啟動后,切換為從緩存器;從緩存器,用于以鍵值對的方式緩存數(shù)據(jù),根據(jù)預先設置的同步周期,從主緩存器獲取同步更新的數(shù)據(jù);接收主服務管理器輸出的數(shù)據(jù)讀請求,讀取數(shù)據(jù),并將讀取的數(shù)據(jù)攜帶在數(shù)據(jù)讀請求響應中,輸出至主服務管理器;接收主服務管理器輸出的屬性變更指令,根據(jù)所述屬性變更指令切換為主緩存器;主服務管理器,用于監(jiān)測主緩存器和從緩存器的狀態(tài),在監(jiān)測到主緩存器發(fā)生故障后, 根據(jù)預先設置的負載策略,從管理的從緩存器中,選取符合負載策略的一個從緩存器,并向該從緩存器發(fā)送屬性變更指令,向其他從緩存器發(fā)送包含該從緩存器信息的同步更新指令,以使接收同步更新指令的從緩存器向指令中的從緩存器獲取同步更新的數(shù)據(jù);接收客戶端發(fā)送的數(shù)據(jù)請求,如果為數(shù)據(jù)讀請求,根據(jù)預先設置的負載策略,選取符合負載策略的一個從緩存器,將數(shù)據(jù)讀請求輸出至該從緩存器,如果為數(shù)據(jù)讀寫請求或數(shù)據(jù)寫請求,將數(shù)據(jù)讀寫請求輸出至主緩存器。
8.根據(jù)權利要求7所述的裝置,其特征在于,所述主服務管理器在主緩存器發(fā)生故障后,進一步用于遠程拉起發(fā)生故障的主緩存器,并在發(fā)生故障的主緩存器啟動后,將運行狀態(tài)列表中該緩存器的運行狀態(tài)更新為正常運行。
9.根據(jù)權利要求7或8所述的裝置,其特征在于,所述裝置進一步包括:從服務管理器,用于按照預先設置的狀態(tài)更新周期,與主服務管理器運行狀態(tài)列表同步;監(jiān)測主服務管理器的狀態(tài),在監(jiān)測到主服務管理器發(fā)生故障后,接管主服務管理器。
10.根據(jù)權利要求9所述的裝置,其特征在于,所述主緩存器與主服務管理器的數(shù)量為一個,所述從緩存器與從服務管理器的數(shù)量為一個 或多個。
全文摘要
本發(fā)明公開了一種基于鍵值對緩存的數(shù)據(jù)讀寫方法及裝置。該方法包括設置以鍵值對的方式緩存數(shù)據(jù)的主緩存器以及從緩存器,并設置從緩存器根據(jù)設置的同步周期從主緩存器獲取同步更新的數(shù)據(jù);接收客戶端發(fā)送的數(shù)據(jù)請求,如果為數(shù)據(jù)讀請求,輸出至選取的從緩存器,否則,將數(shù)據(jù)請求輸出至主緩存器;接收主緩存器返回的數(shù)據(jù)請求響應或從緩存器返回的數(shù)據(jù)讀請求響應后,轉發(fā)至相應的客戶端;監(jiān)測主緩存器和從緩存器的狀態(tài),在監(jiān)測到主緩存器發(fā)生故障后,選取從緩存器并發(fā)送屬性變更指令,從緩存器根據(jù)屬性變更指令切換為主緩存器。應用本發(fā)明,客戶端可透明使用緩存器,不用關心單個緩存器是否發(fā)生故障,并可提高緩存器數(shù)據(jù)的讀寫效率。
文檔編號H04N21/442GK103207841SQ201310071339
公開日2013年7月17日 申請日期2013年3月6日 優(yōu)先權日2013年3月6日
發(fā)明者張帥, 周翚 申請人:青島海信傳媒網(wǎng)絡技術有限公司