本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法及裝置。
背景技術(shù):
目前,后臺系統(tǒng)在淘汰過期的數(shù)據(jù)時,都是在后臺設(shè)置一個專門針對硬盤中過期數(shù)據(jù)的淘汰線程,通過淘汰線程來掃描并刪除硬盤中需要淘汰的過期數(shù)據(jù)。
但是,發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術(shù)中的上述方式至少存在下述缺陷:由于硬盤中存儲的數(shù)據(jù)容量比較大,因此設(shè)置專門的淘汰線程無疑會增加后臺運行的負載,使后臺中相關(guān)線程的處理速度減慢,由此降低了后臺對數(shù)據(jù)的處理效率,影響后臺的運行速度。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法及裝置。
根據(jù)本發(fā)明的一個方面,提供了一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法,包括:在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致;在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰;對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
可選地,所述方法執(zhí)行之前,進一步包括步驟:預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置所述數(shù)據(jù)一致性檢測的執(zhí)行周期;和/或,在所述方法執(zhí)行過程中,進一步包括步驟:獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整所述數(shù)據(jù)一致性檢測的執(zhí)行周期。
可選地,所述方法執(zhí)行之前,進一步包括步驟:預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則;其中,所述數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。
可選地,所述預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則的步驟之后,進一步包括步驟:按照所述數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,由各個線程池并行執(zhí)行后續(xù)步驟。
可選地,所述基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法進一步包括:為各個線程池分別設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量;其中,線程池的權(quán)重值越大,線程池內(nèi)包含的線程的數(shù)量越多;線程池的權(quán)重值越小,線程池內(nèi)包含的線程的數(shù)量越少。
可選地,所述檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致的步驟具體包括:提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算所述鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致。
根據(jù)本發(fā)明的另一方面,提供了一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方裝置,包括:檢測模塊,適于在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致;確定模塊,適于在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰;淘汰模塊,適于對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
可選地,所述裝置進一步包括:第一預(yù)處理模塊,適于預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置所述數(shù)據(jù)一致性檢測的執(zhí)行周期;調(diào)整模塊,適于獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整所述數(shù)據(jù)一致性檢測的執(zhí)行周期。
可選地,所述裝置進一步包括:第二預(yù)處理模塊,適于預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則;其中,所述數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。
可選地,所述裝置進一步包括:劃分創(chuàng)建模塊,適于按照所述數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,由各個線程池并行執(zhí)行后續(xù)步驟。
可選地,所述裝置進一步包括:設(shè)置模塊,適于為各個線程池分別設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量;其中,線程池的權(quán)重值越大,線程池內(nèi)包含的線程的數(shù)量越多;線程池的權(quán)重值越小,線程池內(nèi)包含的線程的數(shù)量越少。
可選地,所述檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致的步驟具體包括:提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算所述鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致。
在本發(fā)明提供的一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法及裝置中,首先在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致;然后在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰;最后對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。由此可見,本發(fā)明解決了在對過期數(shù)據(jù)進行淘汰時,由于在后臺設(shè)置了專門的淘汰線程進而增加了集群負載,進而使后臺運行速度變慢的問題。本發(fā)明在很大程度上減輕了集群的負載,提升了后臺的運行效率。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例一提供的基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法流程圖;
圖2示出了本發(fā)明實施例二提供的基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法流程圖;
圖3示出了本發(fā)明實施例三提供的基于數(shù)據(jù)表的數(shù)據(jù)淘汰裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提供了一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法及裝置,至少能夠解決現(xiàn)有技術(shù)中在對過期數(shù)據(jù)進行淘汰時,由于在后臺設(shè)置了專門的淘汰線程進而增加了后臺運行負載,使后臺運行速度變慢的技術(shù)問題。
實施例一
圖1示出了本發(fā)明實施例一提供的基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法流程圖。如圖1所示,該方法包括以下步驟:
步驟S110:在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測各個數(shù)據(jù)表中的數(shù)據(jù)是否一致。
具體地,在將數(shù)據(jù)存儲(即寫入)到對應(yīng)的數(shù)據(jù)表中時,由于數(shù)據(jù)會被復(fù)制為多份并且每一份數(shù)據(jù)都會被分為多個數(shù)據(jù)片進行分片存儲,因此不同的數(shù)據(jù)表中會對應(yīng)存儲內(nèi)容相同的數(shù)據(jù)分片。一致性檢測是指:為了嚴格確保各個數(shù)據(jù)表中存儲的數(shù)據(jù)分片內(nèi)容的準確性,降低在各個數(shù)據(jù)表中寫入數(shù)據(jù)時的出錯概率,對各個數(shù)據(jù)表中存儲的數(shù)據(jù)對應(yīng)設(shè)置一個定期或者不定期的遍歷過程,在此遍歷過程中,會執(zhí)行對數(shù)據(jù)表中存儲的相同內(nèi)容數(shù)據(jù)的校驗,以此來檢測各個數(shù)據(jù)表中對應(yīng)的數(shù)據(jù)是否一致,實現(xiàn)確保各個數(shù)據(jù)表中存儲的數(shù)據(jù)分片內(nèi)容的準確性的目的。其中,在進行上述遍歷過程時,其遍歷過程可以多線程并行執(zhí)行,即可以通過一個線程來校驗數(shù)據(jù)表中的多個數(shù)據(jù),并同時通過多個線程同時工作來校驗數(shù)據(jù)表中的多個數(shù)據(jù),以此來提高校驗過程的效率。
步驟S120:在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰。
其中,數(shù)據(jù)淘汰規(guī)則為本領(lǐng)域技術(shù)人員根據(jù)實際情況針對數(shù)據(jù)表中的每條數(shù)據(jù)設(shè)置的淘汰規(guī)則,具體地,在設(shè)置數(shù)據(jù)淘汰規(guī)則時,其設(shè)置方式是多樣的,比如可以根據(jù)各個數(shù)據(jù)表中數(shù)據(jù)的時間屬性、數(shù)據(jù)的溫度屬性相關(guān)屬性來設(shè)置,或者也可以根據(jù)數(shù)據(jù)表中數(shù)據(jù)的其他特性來設(shè)置,在這里,數(shù)據(jù)淘汰規(guī)則的具體設(shè)置方式由本領(lǐng)域技術(shù)人員根據(jù)實際情況而定,只要能識別出對應(yīng)的需要淘汰的數(shù)據(jù),本發(fā)明對數(shù)據(jù)淘汰規(guī)則的具體設(shè)置方式不作限制。在遍歷過程中,在根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰時,具體可以為判斷數(shù)據(jù)表中的數(shù)據(jù)的對應(yīng)屬性是否滿足數(shù)據(jù)淘汰規(guī)則,若判斷結(jié)果為是,則確定該數(shù)據(jù)需要淘汰,并進一步執(zhí)行步驟S130;否則,取消進一步操作。
步驟S130:對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
具體地,需要淘汰的數(shù)據(jù)為步驟S120中確定的需要淘汰的數(shù)據(jù),在對需要淘汰的數(shù)據(jù)進行淘汰時,根據(jù)步驟S120中的確定結(jié)果將數(shù)據(jù)表中對應(yīng)的需要淘汰的數(shù)據(jù)進行刪除操作,以實現(xiàn)對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰的目的。在此過程中,由于淘汰數(shù)據(jù)的過程是在執(zhí)行數(shù)據(jù)一致性檢測時的遍歷過程中進行的,因此,可以直接由負責(zé)數(shù)據(jù)一致性檢測的線程完成淘汰操作,無需額外開設(shè)專門的淘汰線程,因而在很大程度上減輕了因開設(shè)專門的淘汰線程而給后臺運行帶來的運行負載過大的問題,提升了后臺的運行效率。
由此可見,在本發(fā)明提供的一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法中,首先在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致;然后在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰;最后對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。因此,本發(fā)明解決了在對過期數(shù)據(jù)進行淘汰時,由于在后臺設(shè)置了專門的淘汰線程進而增加了后臺運行負載,進而使后臺運行速度變慢的問題。本發(fā)明在很大程度上減輕了后臺運行的負載,提升了后臺運行的效率。
實施例二
圖2示出了本發(fā)明實施例二提供的基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法流程圖。如圖2所示,該方法包括以下步驟:
步驟S210:預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期。
具體地,數(shù)據(jù)淘汰周期具體為本領(lǐng)域技術(shù)人員根據(jù)各個數(shù)據(jù)表中存儲數(shù)據(jù)的特點,針對各個數(shù)據(jù)表設(shè)置的對應(yīng)的數(shù)據(jù)淘汰周期。例如,若數(shù)據(jù)表1中存儲的數(shù)據(jù)的信息時效期為4h,則針對數(shù)據(jù)表1的信息時效性將數(shù)據(jù)表1的數(shù)據(jù)淘汰周期設(shè)置為4h。數(shù)據(jù)一致性檢測的執(zhí)行周期為在檢測數(shù)據(jù)的一致性時,對數(shù)據(jù)表中各個數(shù)據(jù)進行遍歷過程的周期。例如,數(shù)據(jù)的一致性檢測的執(zhí)行周期也可以設(shè)置為4h,則默認每4h對各個數(shù)據(jù)表中的數(shù)據(jù)執(zhí)行一次遍歷過程,并在此過程中對數(shù)據(jù)進行一致性檢測。在本發(fā)明中,為了使數(shù)據(jù)的淘汰過程與數(shù)據(jù)的一致性檢測過程同時進行,可以根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期。其中,在設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期時,具體為在遍歷各個數(shù)據(jù)表中的數(shù)據(jù)之前,預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期。例如,可以根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,將數(shù)據(jù)一致性檢測的執(zhí)行周期與上述各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置為一致。
另外,考慮到各個數(shù)據(jù)表是動態(tài)變化的,因此,各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰周期也可能是動態(tài)變化的,因此,為了使數(shù)據(jù)一致性檢測的執(zhí)行周期能夠靈活調(diào)整,在本方法的執(zhí)行過程中,還可以進一步包括以下步驟:獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整數(shù)據(jù)一致性檢測的執(zhí)行周期。本發(fā)明并不限定調(diào)整步驟的執(zhí)行時機,只要是在數(shù)據(jù)一致性檢測的執(zhí)行周期設(shè)置好之后均可以進行調(diào)整。具體地,預(yù)先獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,然后根據(jù)獲取結(jié)果調(diào)整數(shù)據(jù)一致性檢測的執(zhí)行周期。其中,在獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期時,可以設(shè)置一個對應(yīng)的獲取周期,例如4h/次,或者是獲取條件,例如,當硬盤中存儲的數(shù)據(jù)超過一定的百分比。當?shù)竭_上述獲取周期的時間或者滿足上述獲取條件時,對應(yīng)獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期。其中,當根據(jù)數(shù)據(jù)淘汰周期確定的下一次執(zhí)行數(shù)據(jù)淘汰的時間點早于根據(jù)數(shù)據(jù)一致性檢測的執(zhí)行周期確定的下一次執(zhí)行數(shù)據(jù)一致性檢測的時間點時(即:數(shù)據(jù)淘汰周期小于數(shù)據(jù)一致性檢測周期),可以縮短數(shù)據(jù)一致性檢測的執(zhí)行周期;當根據(jù)數(shù)據(jù)淘汰周期確定的下一次執(zhí)行數(shù)據(jù)淘汰的時間點晚于根據(jù)數(shù)據(jù)一致性檢測的執(zhí)行周期確定的下一次執(zhí)行數(shù)據(jù)一致性檢測的時間點時(即:數(shù)據(jù)淘汰周期大于數(shù)據(jù)一致性檢測周期),可以增大數(shù)據(jù)一致性檢測的執(zhí)行周期。從而盡可能地使根據(jù)數(shù)據(jù)淘汰周期確定的下一次執(zhí)行數(shù)據(jù)淘汰的時間點與根據(jù)數(shù)據(jù)一致性檢測的執(zhí)行周期確定的下一次執(zhí)行數(shù)據(jù)一致性檢測的時間點一致。上述調(diào)整過程能夠針對實際情況對數(shù)據(jù)一致性檢測的執(zhí)行周期進行靈活調(diào)整,增加了數(shù)據(jù)一致性檢測的執(zhí)行周期的靈活性和時效性。
步驟S220:預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則,其中,數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。
具體地,數(shù)據(jù)淘汰規(guī)則為本領(lǐng)域技術(shù)人員根據(jù)實際情況針對數(shù)據(jù)表中的存儲數(shù)據(jù)設(shè)置的淘汰規(guī)則。其中,上述數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。
具體實施中,在設(shè)置基于數(shù)據(jù)的溫度屬性的淘汰規(guī)則時,具體可以為:根據(jù)實際情況針對數(shù)據(jù)表中的各個數(shù)據(jù)設(shè)置一個或多個對應(yīng)的溫度屬性閾值,然后將數(shù)據(jù)表中各個數(shù)據(jù)的溫度屬性值與上述設(shè)置的對應(yīng)的溫度屬性閾值進行比較,當數(shù)據(jù)的溫度屬性值小于上述設(shè)置的溫度屬性閾值時,判斷該數(shù)據(jù)為需要淘汰的數(shù)據(jù);否則,取消進一步操作。另外,在確定各個數(shù)據(jù)的溫度屬性值時,可以根據(jù)各個數(shù)據(jù)在數(shù)據(jù)表中的寫入總次數(shù)以及預(yù)設(shè)的溫度屬性計算規(guī)則來計算各個數(shù)據(jù)的溫度屬性值。具體地,在一種實現(xiàn)方式中,預(yù)設(shè)的溫度屬性計算規(guī)則包括:將每個數(shù)據(jù)在數(shù)據(jù)表中的寫入總次數(shù)作為該數(shù)據(jù)的溫度屬性值。該種方式簡便易行,能夠根據(jù)數(shù)據(jù)的寫入次數(shù)確定數(shù)據(jù)的重要程度。在另一種實現(xiàn)方式中,預(yù)設(shè)的溫度屬性計算規(guī)則包括:預(yù)先將數(shù)據(jù)表中存儲的數(shù)據(jù)根據(jù)寫入時間劃分為多個數(shù)據(jù)區(qū)間,為各個數(shù)據(jù)區(qū)間分別設(shè)置對應(yīng)的區(qū)間權(quán)重值;針對每個數(shù)據(jù),根據(jù)該數(shù)據(jù)各次寫入時所處的數(shù)據(jù)區(qū)間確定該數(shù)據(jù)的溫度屬性值。該種方式便于根據(jù)數(shù)據(jù)的寫入時間確定數(shù)據(jù)的溫度屬性,尤其適用于根據(jù)寫入時間段確定數(shù)據(jù)重要性的場景中。
在設(shè)置基于數(shù)據(jù)的過期時間的淘汰的規(guī)則時,具體可以為:在存儲數(shù)據(jù)表中的各個數(shù)據(jù)的信息時,進一步在存儲信息中加入各個數(shù)據(jù)的時間元信息,其中,上述時間元信息包括各個數(shù)據(jù)的寫入時間以及各個數(shù)據(jù)的有效時間,然后根據(jù)上述時間元信息計算各個數(shù)據(jù)的過期時間(寫入時間+有效時間),進一步判斷當前系統(tǒng)中的時間是否已經(jīng)超過上述過期時間,若判斷結(jié)果為是,則確定對應(yīng)的數(shù)據(jù)為需要淘汰的數(shù)據(jù);否則,取消進一步操作。在這里,上述時間元信息并不是固定為上述的寫入時間以及有效時間,還可以只包括寫入時間或者只包含有效時間,或者還可以包含其他的時間信息,只要能得到各個數(shù)據(jù)的過期時間,本發(fā)明對時間元信息中包含的時間信息不作限制。另外,除了針對每個數(shù)據(jù)分別設(shè)置對應(yīng)的有效時間外,也可以直接針對數(shù)據(jù)表中的全部數(shù)據(jù)統(tǒng)一設(shè)置對應(yīng)的過期時間,例如,可以設(shè)置表1中的所有數(shù)據(jù)均在寫入后3小時過期,或設(shè)置表1中的所有數(shù)據(jù)均在預(yù)設(shè)的時間點過期。并且,在設(shè)置數(shù)據(jù)淘汰規(guī)則時,其設(shè)置方式包括但不限于上述提到的兩種設(shè)置方式,本領(lǐng)域技術(shù)人員還可以根據(jù)實際情況進一步針對數(shù)據(jù)表中各個數(shù)據(jù)的其他屬性來設(shè)置各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則,具體實施中,本發(fā)明對各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則的具體設(shè)置方式不作限制。
步驟S230:按照數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,由各個線程池并行執(zhí)行后續(xù)步驟。
具體地,預(yù)設(shè)的數(shù)據(jù)淘汰規(guī)則為多個,在按照數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組時,可以按照每個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則將每個數(shù)據(jù)表劃分在對應(yīng)的數(shù)據(jù)表分組中。即:所劃分的每個數(shù)據(jù)表分組中包含的數(shù)據(jù)表都對應(yīng)同一個數(shù)據(jù)淘汰規(guī)則。在完成上述步驟之后,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,通過上述創(chuàng)建的各個線程池來對每個數(shù)據(jù)表分組中包含的數(shù)據(jù)表進行進一步的處理。其中,在創(chuàng)建上述線程池時,進一步為各個線程池設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量;其中,線程池的權(quán)重值越大,線程池內(nèi)包含的線程的數(shù)量越多;線程池的權(quán)重值越小,線程池內(nèi)包含的線程的數(shù)量越少。由此可見,針對數(shù)據(jù)量較大和/或重要性較高的數(shù)據(jù)表分組,對應(yīng)創(chuàng)建權(quán)重較大的線程池,針對數(shù)據(jù)量較小和/或重要性較低的數(shù)據(jù)表分組,對應(yīng)創(chuàng)建權(quán)重較小的線程池,以此來提高針對每個數(shù)據(jù)表分組中數(shù)據(jù)的處理效率。
步驟S240:根據(jù)步驟S210中設(shè)置的數(shù)據(jù)一致性檢測的執(zhí)行周期執(zhí)行數(shù)據(jù)一致性檢測操作,在檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測各個數(shù)據(jù)表中的數(shù)據(jù)是否一致。
其中,在檢測各個數(shù)據(jù)表中的數(shù)據(jù)是否一致時,可以提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致。
具體地,在將數(shù)據(jù)存儲(即寫入)到對應(yīng)的數(shù)據(jù)表中時,由于數(shù)據(jù)會被復(fù)制為多份并且每一份數(shù)據(jù)都會被分為多個數(shù)據(jù)片進行分片存儲,因此不同的數(shù)據(jù)表中會對應(yīng)存儲內(nèi)容相同的數(shù)據(jù)分片。在本步驟中,提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),即上述存儲內(nèi)容相同的數(shù)據(jù),然后根據(jù)預(yù)先設(shè)置的計算規(guī)則計算上述提取的鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,并根據(jù)計算結(jié)果確定上述提取的各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù)是否一致。具體實施中,預(yù)先設(shè)置的計算規(guī)則可以為預(yù)設(shè)的MD5校驗碼,通過上述MD5校驗碼計算各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù)的MD5值,并根據(jù)計算所得的MD5值確定各個數(shù)據(jù)是否一致。其中,在進行上述步驟時,其過程可以是通過多線程并行執(zhí)行,即可以通過一個線程來同時校驗數(shù)據(jù)表中的多個數(shù)據(jù),并同時通過多個線程同時工作來校驗數(shù)據(jù)表中的多個數(shù)據(jù),以此來提高校驗過程的效率。
步驟S250:在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰。
在本步驟中,數(shù)據(jù)淘汰規(guī)則為步驟S220中設(shè)置的數(shù)據(jù)淘汰規(guī)則。具體地,在遍歷一個數(shù)據(jù)表時,根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰,若該數(shù)據(jù)表中的數(shù)據(jù)滿足數(shù)據(jù)淘汰規(guī)則,則確定該數(shù)據(jù)需要淘汰,并進一步執(zhí)行步驟S260;否則,取消進一步操作。
步驟S260:對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
具體地,根據(jù)步驟S250中的確定結(jié)果,將確定為需要淘汰的數(shù)據(jù)進行刪除操作,以實現(xiàn)對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰的目的。在此過程中,由于淘汰數(shù)據(jù)的過程是在執(zhí)行數(shù)據(jù)一致性檢測時的遍歷過程進行的,因此在很大程度上減輕了因此開設(shè)專門的淘汰線程給后臺的運行帶來的運行負載過大的問題,提升了后臺的運行效率。
由此可見,在本發(fā)明提供的一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法中,首先預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期;和/或,獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整數(shù)據(jù)一致性檢測的執(zhí)行周期,并預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則;然后按照數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,并由各個線程池執(zhí)行后續(xù)步驟。其中,上述后續(xù)步驟包括首先提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致;然后在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰,最后對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。因此,本發(fā)明解決了在對過期數(shù)據(jù)進行淘汰時,由于在后臺設(shè)置了專門的淘汰線程進而增加了后臺運行負載,進而使后臺運行速度變慢的問題。本發(fā)明在很大程度上減輕了后臺運行的負載,提升了后臺的運行效率,同時也進一步提高了存儲數(shù)據(jù)的準確性。
另外,通過對數(shù)據(jù)表進行分組以及設(shè)置多個不同權(quán)重的線程池的方式,不僅實現(xiàn)了并行處理的效果,還使用戶能夠根據(jù)實際需求優(yōu)先淘汰非重要的數(shù)據(jù),使淘汰方案更為靈活。另外,各個分組的數(shù)據(jù)表的一致性檢測周期可以相同也可以不同(即:各個線程池可以分別按照不同的執(zhí)行周期進行一致性檢測),例如,可以根據(jù)各個分組的數(shù)據(jù)表的重要程度、更新頻率和/或數(shù)據(jù)類型等多種因素,分別為各個分組的數(shù)據(jù)表設(shè)置與該分組相對應(yīng)的數(shù)據(jù)淘汰周期和/或一致性檢測周期。
實施例三
圖3示出了本發(fā)明實施例三提供的基于數(shù)據(jù)表的數(shù)據(jù)淘汰裝置的結(jié)構(gòu)框圖。如圖3所示,該裝置包括:檢測模塊31、確定模塊32、淘汰模塊33、第一預(yù)處理模塊34、調(diào)整模塊35、第二預(yù)處理模塊36、劃分創(chuàng)建模塊37以及設(shè)置模塊38。
檢測模塊31適于在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致。
其中,在檢測各個數(shù)據(jù)表中的數(shù)據(jù)是否一致時,檢測模塊31可以提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致。具體地,在將數(shù)據(jù)存儲(即寫入)到對應(yīng)的數(shù)據(jù)表中時,由于數(shù)據(jù)會被復(fù)制為多份并且每一份數(shù)據(jù)都會被分為多個數(shù)據(jù)片進行分片存儲,因此不同的數(shù)據(jù)表中會對應(yīng)存儲內(nèi)容相同的數(shù)據(jù)分片。在檢測模塊31提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),即上述存儲內(nèi)容相同的數(shù)據(jù)之后,根據(jù)預(yù)先設(shè)置的計算規(guī)則計算上述提取的鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,并根據(jù)計算結(jié)果確定上述提取的各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù)是否一致。具體實施中,預(yù)先設(shè)置的計算規(guī)則可以為預(yù)設(shè)的MD5校驗碼,通過上述MD5校驗碼計算各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù)的MD5值,并根據(jù)計算所得的MD5值確定各個數(shù)據(jù)是否一致。其中,在進行上述步驟時,其過程可以是通過多線程并行執(zhí)行,即可以通過一個線程來校驗數(shù)據(jù)表中的多個數(shù)據(jù),并同時通過多個線程同時工作來校驗數(shù)據(jù)表中的多個數(shù)據(jù),以此來提高校驗過程的效率。
確定模塊32適于在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰。
具體地,數(shù)據(jù)淘汰規(guī)則為第二預(yù)處理模塊36中設(shè)置的數(shù)據(jù)淘汰規(guī)則。具體地,確定模塊32在遍歷一個數(shù)據(jù)表時,根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰,若該數(shù)據(jù)表中的數(shù)據(jù)滿足數(shù)據(jù)淘汰規(guī)則,則確定該數(shù)據(jù)需要淘汰,并將上述確定信息發(fā)送給淘汰模塊33;否則,取消進一步操作。
淘汰模塊33適于對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
具體地,淘汰模塊33在接收到確定模塊32發(fā)送的確定消息之后,將確定為需要淘汰的數(shù)據(jù)進行刪除操作,以實現(xiàn)對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰的目的。在此過程中,由于淘汰數(shù)據(jù)的過程是在執(zhí)行數(shù)據(jù)一致性檢測時的遍歷過程進行的,因此在很大程度上減輕了因此開設(shè)專門的淘汰線程給后臺的運行帶來的運行負載過大的問題,提升了后臺的運行效率。
第一預(yù)處理模塊34適于預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置所述數(shù)據(jù)一致性檢測的執(zhí)行周期。
具體地,數(shù)據(jù)淘汰周期具體為本領(lǐng)域技術(shù)人員根據(jù)各個數(shù)據(jù)表中存儲數(shù)據(jù)的特點,針對各個數(shù)據(jù)表設(shè)置的對應(yīng)的數(shù)據(jù)淘汰周期。數(shù)據(jù)一致性檢測的執(zhí)行周期為在檢測數(shù)據(jù)的一致性時,對數(shù)據(jù)表中各個數(shù)據(jù)進行遍歷過程的周期。在本發(fā)明中,為了使數(shù)據(jù)的淘汰過程與數(shù)據(jù)的一致性檢測過程同時進行,可以通過第一預(yù)處理模塊34根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期。其中,第一預(yù)處理模塊34在設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期時,具體為在遍歷各個數(shù)據(jù)表中的數(shù)據(jù)之前,預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期。例如,可以根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,將數(shù)據(jù)一致性檢測的執(zhí)行周期與上述各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置為一致。
調(diào)整模塊35適于獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整所述數(shù)據(jù)一致性檢測的執(zhí)行周期。
具體地,由于各個數(shù)據(jù)表是動態(tài)變化的,因此,各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰周期也可能是動態(tài)變化的,因此,為了使第一預(yù)處理模塊34設(shè)置的數(shù)據(jù)一致性檢測的執(zhí)行周期能夠靈活調(diào)整,在遍歷各個數(shù)據(jù)表中的數(shù)據(jù)時,還可以通過調(diào)整模塊35進一步針對上述數(shù)據(jù)一致性檢測的執(zhí)行周期進行調(diào)整,即:通過調(diào)整模塊35預(yù)先獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,然后根據(jù)獲取結(jié)果調(diào)整數(shù)據(jù)一致性檢測的執(zhí)行周期。其中,調(diào)整模塊35在獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期時,可以設(shè)置一個對應(yīng)的獲取周期,例如4h/次,或者是獲取條件,例如,當硬盤中存儲的數(shù)據(jù)超過一定的百分比。當?shù)竭_上述獲取周期的時間或者滿足上述獲取條件時,調(diào)整模塊35對應(yīng)獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期。其中,當調(diào)整模塊35根據(jù)數(shù)據(jù)淘汰周期確定的下一次執(zhí)行數(shù)據(jù)淘汰的時間點早于根據(jù)數(shù)據(jù)一致性檢測的執(zhí)行周期確定的下一次執(zhí)行數(shù)據(jù)一致性檢測的時間點時(即:數(shù)據(jù)淘汰周期小于數(shù)據(jù)一致性檢測周期),可以縮短數(shù)據(jù)一致性檢測的執(zhí)行周期;當根據(jù)數(shù)據(jù)淘汰周期確定的下一次執(zhí)行數(shù)據(jù)淘汰的時間點晚于根據(jù)數(shù)據(jù)一致性檢測的執(zhí)行周期確定的下一次執(zhí)行數(shù)據(jù)一致性檢測的時間點時(即:數(shù)據(jù)淘汰周期大于數(shù)據(jù)一致性檢測周期),可以增大數(shù)據(jù)一致性檢測的執(zhí)行周期。從而盡可能地使根據(jù)數(shù)據(jù)淘汰周期確定的下一次執(zhí)行數(shù)據(jù)淘汰的時間點與根據(jù)數(shù)據(jù)一致性檢測的執(zhí)行周期確定的下一次執(zhí)行數(shù)據(jù)一致性檢測的時間點一致。上述調(diào)整過程能夠針對實際情況對數(shù)據(jù)一致性檢測的執(zhí)行周期進行靈活調(diào)整,增加了數(shù)據(jù)一致性檢測的執(zhí)行周期的靈活性和時效性。
第二預(yù)處理模塊36適于預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則。
具體地,數(shù)據(jù)淘汰規(guī)則為本領(lǐng)域技術(shù)人員根據(jù)實際情況針對數(shù)據(jù)表中的存儲數(shù)據(jù)設(shè)置的淘汰規(guī)則。其中,上述數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。具體實施中,第二預(yù)處理模塊36在設(shè)置基于數(shù)據(jù)的溫度屬性的淘汰規(guī)則時,具體可以為:根據(jù)實際情況針對數(shù)據(jù)表中的各個數(shù)據(jù)設(shè)置一個或多個對應(yīng)的溫度屬性閾值,然后將數(shù)據(jù)表中各個數(shù)據(jù)的溫度屬性值與上述設(shè)置的對應(yīng)的溫度屬性閾值進行比較,當數(shù)據(jù)的溫度屬性值小于上述設(shè)置的溫度屬性閾值時,判斷該數(shù)據(jù)為需要淘汰的數(shù)據(jù);否則,取消進一步操作。另外,在確定各個數(shù)據(jù)的溫度屬性值時,可以根據(jù)各個數(shù)據(jù)在數(shù)據(jù)表中的寫入總次數(shù)以及預(yù)設(shè)的溫度屬性計算規(guī)則來計算各個數(shù)據(jù)的溫度屬性值。具體地,在一種實現(xiàn)方式中,預(yù)設(shè)的溫度屬性計算規(guī)則包括:將每個數(shù)據(jù)在數(shù)據(jù)表中的寫入總次數(shù)作為該數(shù)據(jù)的溫度屬性值。該種方式簡便易行,能夠根據(jù)數(shù)據(jù)的寫入次數(shù)確定數(shù)據(jù)的重要程度。在另一種實現(xiàn)方式中,預(yù)設(shè)的溫度屬性計算規(guī)則包括:預(yù)先將數(shù)據(jù)表中存儲的數(shù)據(jù)根據(jù)寫入時間劃分為多個數(shù)據(jù)區(qū)間,為各個數(shù)據(jù)區(qū)間分別設(shè)置對應(yīng)的區(qū)間權(quán)重值;針對每個數(shù)據(jù),根據(jù)該數(shù)據(jù)各次寫入時所處的數(shù)據(jù)區(qū)間確定該數(shù)據(jù)的溫度屬性值。該種方式便于根據(jù)數(shù)據(jù)的寫入時間確定數(shù)據(jù)的溫度屬性,尤其適用于根據(jù)寫入時間段確定數(shù)據(jù)重要性的場景中。第二預(yù)處理模塊36在設(shè)置基于數(shù)據(jù)的過期時間的淘汰的規(guī)則時,具體可以為:在存儲數(shù)據(jù)表中的各個數(shù)據(jù)的信息時,進一步在存儲信息中加入各個數(shù)據(jù)的時間元信息,其中,上述時間元信息包括各個數(shù)據(jù)的寫入時間以及各個數(shù)據(jù)的有效時間,然后根據(jù)上述時間元信息計算各個數(shù)據(jù)的過期時間(寫入時間+有效時間),進一步判斷當前系統(tǒng)中的時間是否已經(jīng)超過上述過期時間,若判斷結(jié)果為是,則確定對應(yīng)的數(shù)據(jù)為需要淘汰的數(shù)據(jù);否則,取消進一步操作。在這里,上述時間元信息并不是固定為上述的寫入時間以及有效時間,還可以只包括寫入時間或者只包含有效時間,或者還可以包含其他的時間信息,只要能得到各個數(shù)據(jù)的過期時間,本發(fā)明對時間元信息中包含的時間信息不作限制。另外,除了針對每個數(shù)據(jù)分別設(shè)置對應(yīng)的有效時間外,也可以直接針對數(shù)據(jù)表中的全部數(shù)據(jù)統(tǒng)一設(shè)置對應(yīng)的過期時間,例如,可以設(shè)置表1中的所有數(shù)據(jù)均在寫入后3小時過期,或設(shè)置表1中的所有數(shù)據(jù)均在預(yù)設(shè)的時間點過期。并且,第二預(yù)處理模塊36在設(shè)置數(shù)據(jù)淘汰規(guī)則時,其設(shè)置方式包括但不限于上述提到的兩種設(shè)置方式,本領(lǐng)域技術(shù)人員還可以根據(jù)實際情況進一步針對數(shù)據(jù)表中各個數(shù)據(jù)的其他屬性來設(shè)置各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則,具體實施中,本發(fā)明對各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則的具體設(shè)置方式不作限制。
劃分創(chuàng)建模塊37適于按照數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,由各個線程池并行執(zhí)行后續(xù)步驟。
具體地,預(yù)設(shè)的數(shù)據(jù)淘汰規(guī)則為多個,劃分創(chuàng)建模塊37在按照數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組時,可以按照每個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則將每個數(shù)據(jù)表劃分在對應(yīng)的數(shù)據(jù)表分組中。即:劃分創(chuàng)建模塊37所劃分的每個數(shù)據(jù)表分組中包含的數(shù)據(jù)表都對應(yīng)同一個數(shù)據(jù)淘汰規(guī)則。在完成上述步驟之后,劃分創(chuàng)建模塊37分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,通過上述創(chuàng)建的各個線程池來對每個數(shù)據(jù)表分組中包含的數(shù)據(jù)表進行進一步的處理。
設(shè)置模塊38適于為各個線程池分別設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量。
具體地,在創(chuàng)建上述線程池時,通過設(shè)置模塊38進一步為各個線程池設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量。其中,設(shè)置模塊38設(shè)置的線程池的權(quán)重值越大,線程池內(nèi)包含的線程的數(shù)量越多;相對地,設(shè)置模塊38設(shè)置線程池的權(quán)重值越小,線程池內(nèi)包含的線程的數(shù)量越少。由此可見,針對數(shù)據(jù)量較大和/或重要性較高的數(shù)據(jù)表分組,對應(yīng)創(chuàng)建權(quán)重較大的線程池,針對數(shù)據(jù)量較小和/或重要性較低的數(shù)據(jù)表分組,對應(yīng)創(chuàng)建權(quán)重較小的線程池,以此來提高針對每個數(shù)據(jù)表分組中數(shù)據(jù)的處理效率。
上述各個模塊的具體結(jié)構(gòu)和工作原理可參照方法實施例中相應(yīng)步驟的描述,此處不再贅述。另外,本領(lǐng)域技術(shù)人員可對上述的各個模塊進行靈活地合并或刪減,例如,上述的第一預(yù)處理模塊34、調(diào)整模塊35、第二預(yù)處理模塊36、劃分創(chuàng)建模塊37以及設(shè)置模塊38并不是必須的,本領(lǐng)域技術(shù)人員可根據(jù)需要設(shè)置。本發(fā)明對模塊的具體數(shù)量和劃分方式不做限定。
由此可見,在本發(fā)明提供的一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰裝置中,首先通過第一預(yù)處理模塊34預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置數(shù)據(jù)一致性檢測的執(zhí)行周期;并通過調(diào)整模塊35獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整數(shù)據(jù)一致性檢測的執(zhí)行周期;然后通過第二預(yù)處理模塊36預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則;并通過劃分創(chuàng)建模塊37按照數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,并由各個線程池執(zhí)行后續(xù)步驟。其中,進一步通過設(shè)置模塊38為上述創(chuàng)建的各個線程池分別設(shè)置對應(yīng)的權(quán)重值,并根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量上述后續(xù)步驟。在此之后,通過檢測模塊31提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致;然后通過確定模塊32在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰,最后通過淘汰模塊33對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。因此,本發(fā)明解決了在對過期數(shù)據(jù)進行淘汰時,由于在后臺設(shè)置了專門的淘汰線程進而增加了后臺運行負載,進而使后臺運行速度變慢的問題。本發(fā)明在很大程度上減輕了后臺運行的負載,提升了后臺的運行效率,同時也進一步提高了存儲數(shù)據(jù)的準確性。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的基于數(shù)據(jù)表的數(shù)據(jù)淘汰裝置設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了:A1、一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰方法,包括:
在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致;
在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰;
對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
A2、根據(jù)A1所述的方法,其中,所述方法執(zhí)行之前,進一步包括步驟:預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置所述數(shù)據(jù)一致性檢測的執(zhí)行周期;和/或,
在所述方法執(zhí)行過程中,進一步包括步驟:獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整所述數(shù)據(jù)一致性檢測的執(zhí)行周期。
A3、根據(jù)A1或A2所述的方法,其中,所述方法執(zhí)行之前,進一步包括步驟:預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則;其中,所述數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。
A4、根據(jù)A3所述的方法,其中,所述預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則的步驟之后,進一步包括步驟:按照所述數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,由各個線程池并行執(zhí)行后續(xù)步驟。
A5、根據(jù)A4所述的方法,其中,進一步包括:為各個線程池分別設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量;其中,線程池的權(quán)重值越大,線程池內(nèi)包含的線程的數(shù)量越多;線程池的權(quán)重值越小,線程池內(nèi)包含的線程的數(shù)量越少。
A6、根據(jù)A1-A5任一所述的方法,其中,所述檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致的步驟具體包括:
提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算所述鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致。
本發(fā)明還公開了:B7、一種基于數(shù)據(jù)表的數(shù)據(jù)淘汰裝置,包括:
檢測模塊,適于在執(zhí)行數(shù)據(jù)一致性檢測時遍歷各個數(shù)據(jù)表中的數(shù)據(jù),以檢測所述各個數(shù)據(jù)表中的數(shù)據(jù)是否一致;
確定模塊,適于在遍歷過程中針對任一個數(shù)據(jù)表,進一步根據(jù)該數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則確定該數(shù)據(jù)表中的各個數(shù)據(jù)是否需要淘汰;
淘汰模塊,適于對該數(shù)據(jù)表中需要淘汰的數(shù)據(jù)進行淘汰。
B8、根據(jù)B7所述的裝置,其中,所述裝置進一步包括:第一預(yù)處理模塊,適于預(yù)先根據(jù)各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期設(shè)置所述數(shù)據(jù)一致性檢測的執(zhí)行周期;
調(diào)整模塊,適于獲取各個數(shù)據(jù)表的數(shù)據(jù)淘汰周期,根據(jù)獲取結(jié)果調(diào)整所述數(shù)據(jù)一致性檢測的執(zhí)行周期。
B9、根據(jù)B7或B8所述的裝置,其中,所述裝置進一步包括:第二預(yù)處理模塊,適于預(yù)先設(shè)置并存儲各個數(shù)據(jù)表對應(yīng)的數(shù)據(jù)淘汰規(guī)則;其中,所述數(shù)據(jù)淘汰規(guī)則包括以下中的至少一個:基于數(shù)據(jù)的溫度屬性進行淘汰的規(guī)則、以及基于數(shù)據(jù)的過期時間進行淘汰的規(guī)則。
B10、根據(jù)B9所述的裝置,其中,所述裝置進一步包括:劃分創(chuàng)建模塊,適于按照所述數(shù)據(jù)淘汰規(guī)則將全部數(shù)據(jù)表劃分為多個數(shù)據(jù)表分組,分別為每個數(shù)據(jù)表分組創(chuàng)建對應(yīng)的線程池,由各個線程池并行執(zhí)行后續(xù)步驟。
B11、根據(jù)B10所述的裝置,其中,所述裝置進一步包括:設(shè)置模塊,適于為各個線程池分別設(shè)置對應(yīng)的權(quán)重值,根據(jù)各個線程池的權(quán)重值設(shè)置各個線程池內(nèi)包含的線程的數(shù)量;其中,線程池的權(quán)重值越大,線程池內(nèi)包含的線程的數(shù)量越多;線程池的權(quán)重值越小,線程池內(nèi)包含的線程的數(shù)量越少。
B12、根據(jù)B7-B11任一所述的裝置,其中,所述檢測模塊具體用于:
提取各個數(shù)據(jù)表中鍵值相同的數(shù)據(jù),計算所述鍵值相同的數(shù)據(jù)對應(yīng)的數(shù)據(jù)校驗值,根據(jù)計算結(jié)果確定各個數(shù)據(jù)是否一致。