本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法及裝置。
背景技術(shù):
LSM-tree(日志結(jié)構(gòu)的合并樹,Log-Structured Merge-Tree)通過批量存儲(chǔ)技術(shù)規(guī)避了磁盤隨機(jī)寫入問題,大幅度地提高了寫性能。具體地,可利用LSM-tree來存儲(chǔ)數(shù)據(jù)條目和元信息條目。在LSM-tree結(jié)構(gòu)中,通過數(shù)據(jù)文件來記錄數(shù)據(jù)條目和元信息條目,并支持?jǐn)?shù)據(jù)刪除和數(shù)據(jù)讀取等操作。當(dāng)根據(jù)數(shù)據(jù)操作請(qǐng)求需要對(duì)待操作數(shù)據(jù)條目進(jìn)行操作時(shí),首先需要在數(shù)據(jù)文件中查找該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,然后根據(jù)該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目進(jìn)行相應(yīng)操作。因此,現(xiàn)有技術(shù)中的這種數(shù)據(jù)處理方式存在著處理效率低下的問題。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法及裝置。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法,該方法包括:
接收數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目;
在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;
若在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存;
根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
根據(jù)本發(fā)明的另一方面,提供了一種基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理裝置,該裝置包括:
確定模塊,適于接收數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目;
第一查找模塊,適于在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;
第二查找模塊,適于若第一查找模塊在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;
寫入模塊,適于將第二查找模塊在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存;
響應(yīng)模塊,適于根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
根據(jù)本發(fā)明提供的技術(shù)方案,接收數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目,在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,如果在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,那么在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,然后根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。本發(fā)明提供的技術(shù)方案優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目,從而加快了查找元信息條目的速度,有效地提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖;
圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖;
圖3示出了根據(jù)本發(fā)明又一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖;
圖4示出了根據(jù)本發(fā)明再一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖;
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
LSM-tree結(jié)構(gòu)可用于存儲(chǔ)數(shù)據(jù)條目和元信息條目。在LSM-tree結(jié)構(gòu)中,通過數(shù)據(jù)文件來記錄數(shù)據(jù)條目和元信息條目?,F(xiàn)有技術(shù)中,當(dāng)根據(jù)數(shù)據(jù)操作請(qǐng)求需要對(duì)待操作數(shù)據(jù)條目進(jìn)行操作時(shí),首先需要在數(shù)據(jù)文件中查找該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,然后根據(jù)該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目進(jìn)行相應(yīng)操作。因此,現(xiàn)有技術(shù)中的這種數(shù)據(jù)處理方式存在著處理效率低下的問題。在本發(fā)明提供的技術(shù)方案中,優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目,從而加快了查找元信息條目的速度,有效地提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖,如圖1所示,該方法包括如下步驟:
步驟S100,接收數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
其中,元信息條目和數(shù)據(jù)條目均是以數(shù)據(jù)鍵值對(duì)形式進(jìn)行存儲(chǔ)的。具體地,可將hash類型、zset類型、set類型或者list類型等類型的數(shù)據(jù)根據(jù)預(yù)設(shè)的封裝規(guī)則封裝成數(shù)據(jù)鍵值對(duì)形式的元信息條目和數(shù)據(jù)條目。本領(lǐng)域技術(shù)人員可根據(jù)實(shí)際需要設(shè)置具體的封裝規(guī)則,此處不做限定。
以hash類型的數(shù)據(jù)為例,假設(shè)該數(shù)據(jù)具有對(duì)應(yīng)的hashkey,該數(shù)據(jù)還包括3個(gè)成員,這3個(gè)成員分別為m1、m2和m3,那么根據(jù)該數(shù)據(jù)可封裝得到數(shù)據(jù)鍵值對(duì)形式的1條元信息條目和3條數(shù)據(jù)條目,為了便于管理,數(shù)據(jù)條目的數(shù)據(jù)鍵和與該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同。具體地,該元信息條目的數(shù)據(jù)鍵為hashkey,該數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值包括成員數(shù)量信息、版本信息或者過期時(shí)間信息等信息;第1條數(shù)據(jù)條目的數(shù)據(jù)鍵為hashkeym1,該數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值包括m1對(duì)應(yīng)的數(shù)據(jù)信息、版本信息等信息;第2條數(shù)據(jù)條目的數(shù)據(jù)鍵為hashkeym2,該數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值包括m2對(duì)應(yīng)的數(shù)據(jù)信息、版本信息等信息;第3條數(shù)據(jù)條目的數(shù)據(jù)鍵為hashkeym3,該數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值包括m3對(duì)應(yīng)的數(shù)據(jù)信息、版本信息等信息。
在步驟S100中,接收數(shù)據(jù)操作請(qǐng)求,并根據(jù)數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。其中,數(shù)據(jù)操作請(qǐng)求可以為數(shù)據(jù)刪除操作請(qǐng)求、數(shù)據(jù)讀取操作請(qǐng)求或者數(shù)據(jù)寫入操作請(qǐng)求等。
步驟S101,在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
具體地,待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同,那么在步驟S101中,可根據(jù)待操作數(shù)據(jù)條目的數(shù)據(jù)鍵,在緩存中查找該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
步驟S102,判斷在緩存中是否查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;若是,則執(zhí)行步驟S104;若否,則執(zhí)行步驟S103。
如果判斷得到在緩存中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S104;如果判斷得到在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S103。
步驟S103,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存。
其中,數(shù)據(jù)文件中記錄有若干個(gè)以數(shù)據(jù)鍵值對(duì)形式存儲(chǔ)在LSM-tree結(jié)構(gòu)中的數(shù)據(jù)條目和元信息條目。在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,在步驟S103中,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目查找對(duì)應(yīng)的元信息條目時(shí)直接從緩存中進(jìn)行查找,從而加快了查找元信息條目的速度,進(jìn)而有助于提高數(shù)據(jù)處理效率。
步驟S104,根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
在從緩存中或者數(shù)據(jù)文件中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目之后,在步驟S104中,根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng),執(zhí)行數(shù)據(jù)讀取、數(shù)據(jù)寫入或者數(shù)據(jù)刪除等操作。
根據(jù)本發(fā)明實(shí)施例提供的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法,接收數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目,在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,如果在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,那么在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,然后根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。本發(fā)明提供的技術(shù)方案優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目,從而加快了查找元信息條目的速度,有效地提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖,如圖2所示,該方法包括如下步驟:
步驟S200,接收數(shù)據(jù)刪除操作請(qǐng)求,確定與數(shù)據(jù)刪除操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
其中,元信息條目和數(shù)據(jù)條目均是以數(shù)據(jù)鍵值對(duì)形式進(jìn)行存儲(chǔ)的。具體地,數(shù)據(jù)刪除操作請(qǐng)求中可包括待操作數(shù)據(jù)條目的數(shù)據(jù)鍵的至少一部分,那么在步驟S200中,根據(jù)接收到的數(shù)據(jù)刪除操作請(qǐng)求中所包括的待操作數(shù)據(jù)條目的數(shù)據(jù)鍵的至少一部分,確定與數(shù)據(jù)刪除操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
步驟S201,在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
其中,待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同。
步驟S202,判斷在緩存中是否查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;若是,則執(zhí)行步驟S204;若否,則執(zhí)行步驟S203。
如果判斷得到在緩存中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S204;如果判斷得到在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S203。
步驟S203,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存。
在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,在步驟S203中,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目查找對(duì)應(yīng)的元信息條目時(shí)直接從緩存中進(jìn)行查找,從而加快了查找元信息條目的速度,進(jìn)而有助于提高數(shù)據(jù)處理效率。
步驟S204,修改待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息。
其中,待操作數(shù)據(jù)條目中和元信息條目中都包括版本信息。假設(shè)待操作數(shù)據(jù)條目中的版本信息和待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息均為版本1,根據(jù)數(shù)據(jù)刪除操作請(qǐng)求可知,需要?jiǎng)h除該待操作數(shù)據(jù)條目,那么在步驟S204中,可直接將該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息修改為版本2,通過修改元信息條目中的版本信息的方式來標(biāo)識(shí)該元信息條目對(duì)應(yīng)的待操作數(shù)據(jù)條目為已被刪除的數(shù)據(jù)條目。也就是說,如果某條數(shù)據(jù)條目中的版本信息不與該操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符,則說明該數(shù)據(jù)條目為已被刪除的數(shù)據(jù)條目。
根據(jù)本發(fā)明實(shí)施例提供的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法,優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目;另外,根據(jù)該技術(shù)方案,可方便地通過修改待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息的方式來標(biāo)識(shí)待操作數(shù)據(jù)條目為已被刪除的數(shù)據(jù)條目,從而進(jìn)一步提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
圖3示出了根據(jù)本發(fā)明又一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖,如圖3所示,該方法包括如下步驟:
步驟S300,接收數(shù)據(jù)讀取操作請(qǐng)求,確定與數(shù)據(jù)讀取操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
具體地,數(shù)據(jù)讀取操作請(qǐng)求中可包括待操作數(shù)據(jù)條目的數(shù)據(jù)鍵的至少一部分,那么在步驟S300中,根據(jù)接收到的數(shù)據(jù)讀取操作請(qǐng)求中所包括的待操作數(shù)據(jù)條目的數(shù)據(jù)鍵的至少一部分,確定與數(shù)據(jù)讀取操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
步驟S301,在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
具體地,待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同,那么在步驟S301中,可根據(jù)待操作數(shù)據(jù)條目的數(shù)據(jù)鍵,在緩存中查找該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
步驟S302,判斷在緩存中是否查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;若是,則執(zhí)行步驟S304;若否,則執(zhí)行步驟S303。
如果判斷得到在緩存中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S304;如果判斷得到在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S303。
步驟S303,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存。
在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,在步驟S303中,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目查找對(duì)應(yīng)的元信息條目時(shí)直接從緩存中進(jìn)行查找,從而加快了查找元信息條目的速度,進(jìn)而有助于提高數(shù)據(jù)處理效率。
步驟S304,判斷待操作數(shù)據(jù)條目中的版本信息是否與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符;若是,則執(zhí)行步驟S305;若否,則執(zhí)行步驟S306。
其中,待操作數(shù)據(jù)條目中和元信息條目中都包括版本信息,根據(jù)版本信息可判斷待操作數(shù)據(jù)條目是否已被刪除。如果判斷得到待操作數(shù)據(jù)條目中的版本信息與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符,說明該待操作數(shù)據(jù)條目不是已被刪除的數(shù)據(jù)條目,即該待操作數(shù)據(jù)條目為有效數(shù)據(jù)條目,則執(zhí)行步驟S305;如果判斷得到待操作數(shù)據(jù)條目中的版本信息不與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符,說明該待操作數(shù)據(jù)條目是已被刪除的數(shù)據(jù)條目,即該待操作數(shù)據(jù)條目為無效數(shù)據(jù)條目,則執(zhí)行步驟S306。
步驟S305,讀取得到待操作數(shù)據(jù)條目。
在待操作數(shù)據(jù)條目中的版本信息與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符的情況下,在步驟S305中,讀取得到待操作數(shù)據(jù)條目。
步驟S306,展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
在待操作數(shù)據(jù)條目中的版本信息不與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符的情況下,在步驟S306中,展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,如果元信息條目中包括過期時(shí)間信息,那么可根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的過期時(shí)間信息,判斷待操作數(shù)據(jù)條目是否為過期數(shù)據(jù)條目。如果判斷得到待操作數(shù)據(jù)條目為過期數(shù)據(jù)條目,說明該待操作數(shù)據(jù)條目為無效數(shù)據(jù)條目,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息;如果判斷得到數(shù)據(jù)條目不為過期數(shù)據(jù)條目,說明該待操作數(shù)據(jù)條目為有效數(shù)據(jù)條目,則讀取得到待操作數(shù)據(jù)條目。
根據(jù)本發(fā)明實(shí)施例提供的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法,優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目;另外,根據(jù)版本信息或過期時(shí)間信息可方便、快速地判斷待操作數(shù)據(jù)條目是否為已被刪除的或過期的數(shù)據(jù)條目,從而進(jìn)一步提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
圖4示出了根據(jù)本發(fā)明再一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法的流程示意圖,如圖4所示,該方法包括如下步驟:
步驟S400,接收數(shù)據(jù)寫入操作請(qǐng)求,確定與數(shù)據(jù)寫入操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
具體地,數(shù)據(jù)寫入操作請(qǐng)求中可包括待操作數(shù)據(jù)條目的數(shù)據(jù)鍵,那么在步驟S400中,根據(jù)接收到的數(shù)據(jù)寫入操作請(qǐng)求中所包括的待操作數(shù)據(jù)條目的數(shù)據(jù)鍵,確定與數(shù)據(jù)寫入操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
步驟S401,在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
其中,待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同。
步驟S402,判斷在緩存中是否查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;若是,則執(zhí)行步驟S404;若否,則執(zhí)行步驟S403。
如果判斷得到在緩存中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S404;如果判斷得到在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則執(zhí)行步驟S403。
步驟S403,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存。
在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,在步驟S403中,在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目查找對(duì)應(yīng)的元信息條目時(shí)直接從緩存中進(jìn)行查找,從而加快了查找元信息條目的速度,進(jìn)而有助于提高數(shù)據(jù)處理效率。
在從緩存中或者數(shù)據(jù)文件中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目之后,根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)寫入操作請(qǐng)求進(jìn)行響應(yīng)。具體地,可通過步驟S404和步驟S405進(jìn)行實(shí)現(xiàn)。
步驟S404,根據(jù)數(shù)據(jù)寫入操作請(qǐng)求中的待寫入數(shù)據(jù)信息,修改待操作數(shù)據(jù)條目的數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值。
步驟S405,根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息,修改待操作數(shù)據(jù)條目中的版本信息。
假設(shè)待操作數(shù)據(jù)條目中的版本信息為版本1,待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息為版本2,說明該待操作數(shù)據(jù)條目為已被刪除的數(shù)據(jù)條目,另外,數(shù)據(jù)寫入操作請(qǐng)求中包括待寫入數(shù)據(jù)信息,那么在步驟S404中根據(jù)待寫入數(shù)據(jù)信息修改待操作數(shù)據(jù)條目的數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值,在步驟S405中根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息,修改待操作數(shù)據(jù)條目中的版本信息,即將待操作數(shù)據(jù)條目中的版本信息修改為版本2,使得待操作數(shù)據(jù)條目中的版本信息與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符,從而通過修改待操作數(shù)據(jù)條目中的版本信息的方式來標(biāo)識(shí)該待操作數(shù)據(jù)條目為最新寫入的數(shù)據(jù)條目。
根據(jù)本發(fā)明實(shí)施例提供的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法,優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目;另外,根據(jù)該技術(shù)方案,可方便地通過修改待操作數(shù)據(jù)條目中的版本信息的方式來標(biāo)識(shí)該待操作數(shù)據(jù)條目為最新寫入的數(shù)據(jù)條目,從而進(jìn)一步提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖,如圖5所示,該裝置包括:確定模塊510、第一查找模塊520、第二查找模塊530、寫入模塊540和響應(yīng)模塊550。
確定模塊510適于:接收數(shù)據(jù)操作請(qǐng)求,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
其中,數(shù)據(jù)操作請(qǐng)求可以為數(shù)據(jù)刪除操作請(qǐng)求、數(shù)據(jù)讀取操作請(qǐng)求或者數(shù)據(jù)寫入操作請(qǐng)求等。具體地,數(shù)據(jù)操作請(qǐng)求中可包括待操作數(shù)據(jù)條目的數(shù)據(jù)鍵的至少一部分,那么確定模塊510根據(jù)接收到的數(shù)據(jù)操作請(qǐng)求中所包括的待操作數(shù)據(jù)條目的數(shù)據(jù)鍵的至少一部分,確定與數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目。
第一查找模塊520適于:在緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
其中,待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同。具體地,第一查找模塊520根據(jù)待操作數(shù)據(jù)條目的數(shù)據(jù)鍵,在緩存中查找該待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
第二查找模塊530適于:若第一查找模塊520在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
如果第一查找模塊520在緩存中未查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,那么第二查找模塊530在數(shù)據(jù)文件中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目。
寫入模塊540適于:將第二查找模塊530在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存。
寫入模塊540將第二查找模塊530在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目查找對(duì)應(yīng)的元信息條目時(shí)直接從緩存中進(jìn)行查找,從而加快了查找元信息條目的速度,進(jìn)而有助于提高數(shù)據(jù)處理效率。
響應(yīng)模塊550適于:根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
如果第一查找模塊520在緩存中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目或者第二查找模塊530在數(shù)據(jù)文件中查找到待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則響應(yīng)模塊550根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
其中,當(dāng)數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)刪除操作請(qǐng)求時(shí),響應(yīng)模塊550進(jìn)一步適于:修改待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息。
當(dāng)數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)讀取操作請(qǐng)求時(shí),響應(yīng)模塊550進(jìn)一步適于:判斷待操作數(shù)據(jù)條目中的版本信息是否與待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符;若是,則讀取得到待操作數(shù)據(jù)條目;若否,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,如果元信息條目中包括過期時(shí)間信息,那么當(dāng)數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)讀取操作請(qǐng)求時(shí),響應(yīng)模塊550進(jìn)一步適于:根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的過期時(shí)間信息,判斷待操作數(shù)據(jù)條目是否為過期數(shù)據(jù)條目;若是,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息;若否,則讀取得到待操作數(shù)據(jù)條目。
當(dāng)數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)寫入操作請(qǐng)求時(shí),響應(yīng)模塊550進(jìn)一步適于:根據(jù)待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息,修改待操作數(shù)據(jù)條目中的版本信息。具體地,當(dāng)數(shù)據(jù)寫入操作請(qǐng)求中包括待寫入數(shù)據(jù)信息時(shí),響應(yīng)模塊550進(jìn)一步適于:根據(jù)數(shù)據(jù)寫入操作請(qǐng)求中的待寫入數(shù)據(jù)信息,修改待操作數(shù)據(jù)條目的數(shù)據(jù)鍵對(duì)應(yīng)的數(shù)據(jù)值。
根據(jù)本發(fā)明實(shí)施例提供的基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理裝置,優(yōu)先從緩存中查找待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,在緩存中未查找到待操作該數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的情況下,再在數(shù)據(jù)文件中進(jìn)行查找,并將在數(shù)據(jù)文件中查找到的待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存,以便后續(xù)待操作數(shù)據(jù)條目在緩存中查找對(duì)應(yīng)的元信息條目,從而加快了查找元信息條目的速度,有效地提高了數(shù)據(jù)處理效率,優(yōu)化了數(shù)據(jù)處理方式。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了:A1、一種基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理方法,包括:
接收數(shù)據(jù)操作請(qǐng)求,確定與所述數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目;
在緩存中查找所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;
若在所述緩存中未查找到所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則在數(shù)據(jù)文件中查找所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,并將在數(shù)據(jù)文件中查找到的所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存;
根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)所述數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
A2、根據(jù)A1所述的方法,其中,所述待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同。
A3、根據(jù)A1或A2所述的方法,所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)刪除操作請(qǐng)求、數(shù)據(jù)讀取操作請(qǐng)求或者數(shù)據(jù)寫入操作請(qǐng)求。
A4、根據(jù)A3所述的方法,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)刪除操作請(qǐng)求時(shí),所述根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)所述數(shù)據(jù)操作請(qǐng)求作出響應(yīng)進(jìn)一步包括:
修改所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息。
A5、根據(jù)A3所述的方法,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)讀取操作請(qǐng)求時(shí),所述根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)所述數(shù)據(jù)操作請(qǐng)求作出響應(yīng)進(jìn)一步包括:
判斷所述待操作數(shù)據(jù)條目中的版本信息是否與所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符;若否,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
A6、根據(jù)A3所述的方法,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)讀取操作請(qǐng)求時(shí),所述根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)所述數(shù)據(jù)操作請(qǐng)求作出響應(yīng)進(jìn)一步包括:
根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的過期時(shí)間信息,判斷所述待操作數(shù)據(jù)條目是否為過期數(shù)據(jù)條目;若是,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
A7、根據(jù)A3所述的方法,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)寫入操作請(qǐng)求時(shí),所述根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)所述數(shù)據(jù)操作請(qǐng)求作出響應(yīng)進(jìn)一步包括:
根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息,修改所述待操作數(shù)據(jù)條目中的版本信息。
本發(fā)明還公開了:B8、一種基于LSM-tree結(jié)構(gòu)的數(shù)據(jù)處理裝置,包括:
確定模塊,適于接收數(shù)據(jù)操作請(qǐng)求,確定與所述數(shù)據(jù)操作請(qǐng)求所對(duì)應(yīng)的待操作數(shù)據(jù)條目;
第一查找模塊,適于在緩存中查找所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;
第二查找模塊,適于若所述第一查找模塊在所述緩存中未查找到所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,則在數(shù)據(jù)文件中查找所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目;
寫入模塊,適于將所述第二查找模塊在數(shù)據(jù)文件中查找到的所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目寫入緩存;
響應(yīng)模塊,適于根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目,對(duì)所述數(shù)據(jù)操作請(qǐng)求作出響應(yīng)。
B9、根據(jù)B8所述的裝置,其中,所述待操作數(shù)據(jù)條目的數(shù)據(jù)鍵和與所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目的數(shù)據(jù)鍵的至少一部分相同。
B10、根據(jù)B8或B9所述的裝置,所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)刪除操作請(qǐng)求、數(shù)據(jù)讀取操作請(qǐng)求或者數(shù)據(jù)寫入操作請(qǐng)求。
B11、根據(jù)B10所述的裝置,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)刪除操作請(qǐng)求時(shí),所述響應(yīng)模塊進(jìn)一步適于:
修改所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息。
B12、根據(jù)B10所述的裝置,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)讀取操作請(qǐng)求時(shí),所述響應(yīng)模塊進(jìn)一步適于:
判斷所述待操作數(shù)據(jù)條目中的版本信息是否與所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息相符;若否,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
B13、根據(jù)B10所述的裝置,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)讀取操作請(qǐng)求時(shí),所述響應(yīng)模塊進(jìn)一步適于:
根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的過期時(shí)間信息,判斷所述待操作數(shù)據(jù)條目是否為過期數(shù)據(jù)條目;若是,則展現(xiàn)數(shù)據(jù)讀取失敗的提示信息。
B14、根據(jù)B10所述的裝置,當(dāng)所述數(shù)據(jù)操作請(qǐng)求為數(shù)據(jù)寫入操作請(qǐng)求時(shí),所述響應(yīng)模塊進(jìn)一步適于:
根據(jù)所述待操作數(shù)據(jù)條目對(duì)應(yīng)的元信息條目中的版本信息,修改所述待操作數(shù)據(jù)條目中的版本信息。