TWI710918B - 一種lsm樹的優化方法、裝置及電腦設備 - Google Patents

一種lsm樹的優化方法、裝置及電腦設備 Download PDF

Info

Publication number
TWI710918B
TWI710918B TW108106325A TW108106325A TWI710918B TW I710918 B TWI710918 B TW I710918B TW 108106325 A TW108106325 A TW 108106325A TW 108106325 A TW108106325 A TW 108106325A TW I710918 B TWI710918 B TW I710918B
Authority
TW
Taiwan
Prior art keywords
data
lsm tree
dynamic data
leaf node
target leaf
Prior art date
Application number
TW108106325A
Other languages
English (en)
Other versions
TW202004521A (zh
Inventor
陽振坤
席華鋒
韓富晟
肖金亮
Original Assignee
開曼群島商創新先進技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 開曼群島商創新先進技術有限公司 filed Critical 開曼群島商創新先進技術有限公司
Publication of TW202004521A publication Critical patent/TW202004521A/zh
Application granted granted Critical
Publication of TWI710918B publication Critical patent/TWI710918B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公開了一種LSM樹的優化方法、裝置及電腦設備,該方法包括:確定出LSM樹中,所指向的資料已被刪除的目標葉子節點;在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記。

Description

一種LSM樹的優化方法、裝置及電腦設備
本說明書實施例涉及資料處理技術領域,尤其涉及一種LSM樹的優化方法、裝置及電腦設備。
LSM樹(Log-Structured Merge Tree,日誌結構的合併樹)是一種基於硬碟的資料結構,其包括動態資料與靜態資料,動態資料和靜態資料儲存的是資料的修改增量。在存取LSM樹的過程中,依次讀取其動態資料和靜態資料,將所讀取到的結果進行合併,以得到最終的讀取結果。 由於LSM樹保存的是資料的修改增量,從而當LSM樹中保存有大量的用於表示資料已被刪除的修改增量時,在進行資料讀取過程中,需要遍歷大量的無用資料,才能讀取到有效的資料,這也就導致資料的讀取性能下降。
針對上述技術問題,本說明書實施例提供一種LSM樹的優化方法、裝置及電腦設備,技術方案如下: 根據本說明書實施例的第一態樣,提供一種LSM樹的優化方法,所述方法包括: 確定出LSM樹中,所指向的資料已被刪除的目標葉子節點; 在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記。 根據本說明書實施例的第二態樣,提供一種LSM樹的優化裝置,所述裝置包括: 目標確定模組,用於確定出LSM樹中,所指向的資料已被刪除的目標葉子節點; 第一添加模組,用於在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記。 根據本說明書實施例的第三態樣,提供一種電腦設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,所述處理器執行所述程式時實現本說明書實施例提供的LSM樹的優化方法。 本說明書實施例所提供的技術方案,透過確定出LSM樹中,所指向的資料已被刪除的目標葉子節點,在該LSM樹的動態資料中,為所確定出的目標葉子節點添加刪除標記,由於在對LSM樹進行資料存取時,首先存取LSM樹的動態資料,再存取LSM樹的靜態資料,從而在動態資料中,為那些所指向的資料已被刪除的目標葉子節點添加刪除標記,可以實現在存取動態資料時,直接跳過具有刪除標記的葉子節點,從而提高資料存取效率,進一步,在存取靜態資料時,也無需重複存取具有刪除標記的葉子節點,從而提高資料存取效率。 應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書實施例。 此外,本說明書實施例中的任一實施例並不需要達到上述的全部效果。
為了使本領域技術人員更好地理解本說明書實施例中的技術方案,下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本說明書的一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬於保護的範圍。 LSM樹是一種基於硬碟的資料結構,其代表資料庫包括Hbase、NessDB、LevelDB等。LSM樹的儲存引擎和B+樹的儲存引擎一樣,同樣支持增、刪、讀、改、順序掃描操作,而且其透過批量儲存技術可以有效規避磁碟隨機寫入問題,具體的,其核心思路是,假定內部記憶體足夠大,因此,不需要每次有資料更新就必須將資料寫入磁碟中,而可以先將最新的資料駐留在內部記憶體中,等到內部記憶體中的資料達到指定的大小限制後,再使用歸併排序的方式將內部記憶體中的資料合併追加到磁碟隊尾,基於此,也就可以將LSM樹所儲存的資料分為靜態資料和動態資料,其中,動態資料是指內部記憶體中的資料,靜態資料中的資料是指儲存于持久化媒體上,例如磁碟中的資料。本領域技術人員可以理解的是,LSM樹中儲存的是資料的修改增量,也就是資料的變更資訊。例如,如圖1所示,為LSM樹的一種示例。 在存取LSM樹的過程中,需要依次讀取其動態資料和靜態資料,將所讀取到的結果進行合併,以得到最終的讀取結果。 目前,在存取LSM的過程中,存在兩個問題: 其一:當頻繁地在動態資料中插入用於表示資料已被刪除的修改增量時,也即動態資料中保存了大量的刪除記錄時,在存取動態資料時,需要遍歷大量無用的資料,導致資料的讀取性能下降。例如,假設透過索引鍵範圍[1,50]查找資料,而如圖1所示,在索引鍵範圍[1,50]內部記憶體在大量的已被刪除的資料,例如索引鍵為3至8的葉子節點所指向的資料,索引鍵為15至31的葉子節點所指向的資料,以及索引鍵為32和索引鍵為49的葉子節點所指向的資料,那麼,在現有技術中,仍需要逐個遍歷葉子節點,最終才能得到索引鍵為9至14,以及索引鍵為33至48的葉子節點所指向的資料。 其二:在存取靜態資料時,依舊需要遍歷大量無用的資料,導致資料的查詢性能下降。例如,在存取圖1所示例的靜態資料時,依舊需要逐個遍歷索引鍵為3至99的葉子節點所指向的資料,並無法跳過所指向的資料已被刪除的葉子節點。 基於此,本說明書實施例提供一種LSM樹的優化方法,在該方法中,考慮到在存取LSM樹時,先存取其動態資料,再存取其靜態資料,從而在LSM樹的動態資料中,為所指向的資料已被刪除的葉子節點添加用於表示資料已被刪除的刪除標記,以實現後續在存取LSM樹時,若在動態資料中查找到帶有刪除標記的葉子節點,則直接跳過該葉子節點,並且,後續在查找靜態資料時,也不再查找具有相同索引鍵的葉子節點,從而提升資料查詢性能。 如下,示出下述實施例對上述LSM樹的優化方法進行詳細說明: 請參見圖2,為本說明書一示例性實施例提供的一種LSM樹的優化方法的實施例流程圖,該方法包括以下步驟: 步驟202:確定出LSM樹中,所指向的資料已被刪除的目標葉子節點。 在本說明書實施例中,可以分別針對動態資料和靜態資料,確定出所指向的資料已被刪除的葉子節點,為了描述方便,將所確定出的,也即所指向的資料已被刪除的葉子節點稱為目標葉子節點。 如下,分別從動態資料和靜態資料兩態樣進行說明: 首先,動態資料: 以圖1所示例的動態資料為例,假設透過索引鍵範圍[1,50]查找資料,在查詢過程中,可以檢測到多個索引鍵連續的葉子節點所指向的資料已被刪除,例如,索引鍵為3至8的葉子節點,索引鍵為15至31的葉子節點,那麼,則可以將這些葉子節點確定為目標葉子節點。 其次,靜態資料: 以圖3所示例的靜態資料為例,假設透過索引鍵範圍[1,50]查找資料,在查詢過程中,可以檢測到多個索引鍵連續的葉子節點所指向的資料已被刪除,例如,索引鍵為3至15的葉子節點,那麼,則可以將這些葉子節點確定為目標葉子節點。 步驟204:在LSM樹的動態資料中,為目標葉子節點添加刪除標記。 在本步驟中,仍分別從動態資料和靜態資料兩態樣進行說明: 首先,動態資料: 基於上述步驟202中的相關舉例,在動態資料中所確定出的目標葉子節點包括:索引鍵為3至8的葉子節點,索引鍵15至31的葉子節點,那麼,在本步驟中,則可以為這些目標葉子節點添加刪除標記,例如,如圖3所示,在圖3中,“dead”表示刪除標記,本領域技術人員可以理解的是,以“dead”作為刪除標記僅僅作為舉例,在實際應用中,刪除標記可以以其它形式體現,本說明書實施例對此不作限制。 此外,在本說明書實施例中還提出,若在LSM樹的動態資料中,任一枝節點下的所有葉子節點均被添加有刪除標記,則為該枝節點添加刪除標記。例如,如圖3所示,在“15”這一枝節點下,所有的葉子節點均被添加有刪除標記,則可以為該枝節點也添加刪除標記,如圖3所示。透過該種處理,後續在存取LSM樹的動態資料時,則在存取完“3”這一枝節點下的所有葉子節點後,可以直接跳過“15”這一枝節點,存取“32”這一枝節點,從而提高資料存取效率。 此外,在本說明書實施例中,考慮到後續進一步提高在靜態資料中進行資料存取的效率,可以進一步判斷被添加刪除標記的目標葉子節點中,具有最大索引鍵的目標葉子節點所指向的葉子節點的索引鍵是否與該最大索引鍵連續,若連續,則可以不做處理,若不連續,則可以在該具有最大索引鍵的目標葉子節點之後插入一個虛擬葉子節點,該虛擬葉子節點的索引鍵為該最大索引鍵加1。 舉例來說,以被添加刪除標記的目標葉子節點為索引鍵為3至8的葉子節點為例,在該些目標葉子節點中,最大索引鍵為8,如圖4所示,索引鍵為8的葉子節點所指向的下一個葉子節點的索引鍵為9,與8連續,從而則可以不做處理。 再舉例來說,以被添加刪除標記的目標葉子節點為索引鍵為15至31的葉子節點為例,在該些目標葉子節點中,最大索引鍵為31,如圖4所示,索引鍵為31的葉子節點不再指向其他葉子節點,那麼,則可以在該葉子節點之後插入一個虛擬葉子節點,該虛擬葉子節點的索引鍵為32,例如,如圖4所示。當然,本領域技術人員可以理解的是,該虛擬葉子節點不具有刪除標記。 透過該種處理,可以進一步提高在靜態資料中進行資料存取的效率,例如,在存取動態資料過程中,當遍歷到索引鍵為9的葉子節點時,發現其不具有刪除標記,則可以將[3,8]這一索引鍵範圍看作被刪除資料的索引鍵範圍,後續,在存取靜態資料時,則可以不再存取索引鍵屬於這一範圍的葉子節點。 其次,靜態資料: 基於上述步驟202中的相關舉例,在靜態資料中所確定出的目標葉子節點包括索引鍵為3至15的葉子節點,此時,則可以首先確定動態資料中是否存在索引鍵為3至15的目標葉子節點,若不存在,則可以將目標葉子節點中,具有最大索引鍵和最小索引鍵的兩個目標葉子節點插入LSM樹的動態資料中,在LSM樹的動態資料中,為所插入的目標葉子節點添加刪除標記。 例如,在索引鍵為3至15的葉子節點中,最大索引鍵為15,最小索引鍵為3,按照前述描述,將索引鍵為3和15的目標葉子節點插入LSM樹的動態資料中,並在動態資料中,為所插入的目標葉子節點添加刪除標記,具體如圖5所示。 此外,可以進一步判斷被添加刪除標記的目標葉子節點中,具有最大索引鍵的目標葉子節點所指向的葉子節點的索引鍵是否與該最大索引鍵連續,若連續,則可以不做處理,若不連續,則可以在索引鍵為該最大索引鍵的目標葉子節點之後插入一個虛擬葉子節點,該虛擬葉子節點的索引鍵為該最大索引鍵加1。 舉例來說,在圖5中,被添加刪除標記的目標葉子節點為索引鍵為3和15的葉子節點,其中的最大索引鍵為15,而在索引鍵為15的這一葉子節點之後,不具有其他葉子節點,則可以在該葉子節點之後,插入一個索引鍵為16的虛擬葉子節點,具體如圖5所示。 透過該種後續,後續在存取動態資料過程中,當遍歷到索引鍵為16的虛擬葉子節點時,發現其不具有刪除標記,則可以將[3,15]看作被刪除資料的索引鍵範圍,後續,在存取靜態資料時,則可以不再存取索引鍵屬於這一範圍的葉子節點,從而提高在靜態資料中進行資料存取的效率。 本說明書實施例所提供的技術方案,透過確定出LSM樹中,所指向的資料已被刪除的目標葉子節點,在該LSM樹的動態資料中,為所確定出的目標葉子節點添加刪除標記,由於在對LSM樹進行資料存取時,首先存取LSM樹的動態資料,再存取LSM樹的靜態資料,從而在動態資料中,為那些所指向的資料已被刪除的目標葉子節點添加刪除標記,可以實現在存取動態資料時,直接跳過具有刪除標記的葉子節點,從而提高資料存取效率,進一步,在存取靜態資料時,也無需重複存取具有刪除標記的葉子節點,從而提高資料存取效率。 相應於上述方法實施例,本說明書實施例還提供一種LSM樹的優化裝置,請參見圖6,為本說明書一示例性實施例提供的一種LSM樹的優化裝置的實施例方塊圖,該裝置可以包括:目標確定模組61、第一添加模組62。 其中,目標確定模組61,可以用於確定出LSM樹中,所指向的資料已被刪除的目標葉子節點; 第一添加模組62,可以用於在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記。 在一實施例中,所述裝置還可以包括(圖6中未示出): 第二添加模組,用於在所述LSM樹的動態資料中,若檢測到任一枝節點下的所有葉子節點均被添加有刪除標記,則為所述枝節點添加刪除標記。 在一實施例中,所述目標確定模組61可以具體用於: 分別針對LSM樹的動態資料和靜態資料,確定出所指向的資料已被刪除,且索引鍵連續的兩個以上目標葉子節點。 在一實施例中,所述第一添加模組62可以包括(圖6中未示出): 插入子模組,用於若針對LSM樹的靜態資料確定出目標葉子節點,分別將所確定出的目標葉子節點中,具有最大索引鍵和最小索引鍵的兩個目標葉子節點插入所述LSM樹的動態資料中; 標記添加子模組,用於在所述LSM樹的動態資料中,為所插入的目標葉子節點添加刪除標記。 在一實施例中,所述裝置還可以包括(圖6中未示出): 判斷模組,用於判斷被添加刪除標記的目標葉子節點中,具有最大索引鍵的目標葉子節點所指向的葉子節點的索引鍵是否與所述最大索引鍵連續; 虛擬節點插入模組,用於若不連續,則在所述具有最大索引鍵的目標葉子節點之後插入虛擬葉子節點,其中,所述虛擬葉子節點的索引鍵為所述最大索引鍵加1。 可以理解的是,目標確定模組61與第一添加模組62作為兩種功能獨立的模組,既可以如圖6所示同時配置在裝置中,也可以分別單獨配置在裝置中,因此圖6所示的結構不應理解為對本說明書實施例方案的限定。 此外,上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。 本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行所述程式時實現前述的LSM樹的優化方法。該方法至少包括:確定出LSM樹中,所指向的資料已被刪除的目標葉子節點;在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記。 圖7示出了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖,該設備可以包括:處理器710、記憶體720、輸入/輸出介面730、通信介面740和匯流排750。其中處理器710、記憶體720、輸入/輸出介面730和通信介面740透過匯流排750實現彼此之間在設備內部的通信連接。 處理器710可以採用通用的CPU(Central Processing Unit,中央處理器)、微處理器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、或者一個或多個積體電路等方式實現,用於執行相關程式,以實現本說明書實施例所提供的技術方案。 記憶體720可以採用ROM(Read Only Memory,唯讀記憶體)、RAM(Random Access Memory,隨機存取記憶體)、靜態儲存設備,動態儲存設備等形式實現。記憶體720可以儲存操作系統和其他應用程式,在透過軟體或者韌體來實現本說明書實施例所提供的技術方案時,相關的程式程式碼保存在記憶體720中,並由處理器710來呼叫執行。 輸入/輸出介面730用於連接輸入/輸出模組,以實現資訊輸入及輸出。輸入輸出/模組可以作為組件配置在設備中(圖7中未示出),也可以外接於設備以提供相應功能。其中輸入設備可以包括鍵盤、滑鼠、觸控螢幕、麥克風、各類感測器等,輸出設備可以包括顯示器、喇叭、振動器、指示燈等。 通信介面740用於連接通信模組(圖7中未示出),以實現本設備與其他設備的通信交互。其中通信模組可以透過有線方式(例如USB、網線等)實現通信,也可以透過無線方式(例如移動網路、WIFI、藍牙等)實現通信。 匯流排750包括一通路,在設備的各個組件(例如處理器710、記憶體720、輸入/輸出介面730和通信介面740)之間傳輸資訊。 需要說明的是,儘管上述設備僅示出了處理器710、記憶體720、輸入/輸出介面730、通信介面740以及匯流排750,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他組件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部組件。 本說明書實施例還提供一種電腦可讀儲存媒體,其上儲存有電腦程式,該程式被處理器執行時實現前述的LSM樹的優化方法。該方法至少包括:確定出LSM樹中,所指向的資料已被刪除的目標葉子節點;在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記。 電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、唯讀記憶體電可抹除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶式磁碟儲存器或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。 透過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本說明書實施例可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本說明書實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書實施例各個實施例或者實施例的某些部分所述的方法。 上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、行動電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。 本說明書中的各個實施例均採用漸進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是實體上分開的,在實施本說明書實施例方案時可以把各模組的功能在同一個或多個軟體和/或硬體中實現。也可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。 以上所述僅是本說明書實施例的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本說明書實施例原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本說明書實施例的保護範圍。
202‧‧‧步驟 204‧‧‧步驟 61‧‧‧目標確定模組 62‧‧‧第一添加模組 710‧‧‧處理器 720‧‧‧記憶體 730‧‧‧輸入/輸出介面 740‧‧‧通信介面 750‧‧‧匯流排
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書實施例中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。 圖1為LSM樹的一種示例; 圖2為本說明書一示例性實施例提供的一種LSM樹的優化方法的實施例流程圖; 圖3為LSM樹的靜態資料的一種示例; 圖4為在LSM樹的動態資料中添加刪除標記的一種示例; 圖5為在LSM樹的動態資料中添加刪除標記的另一種示例; 圖6為本說明書一示例性實施例提供的一種LSM樹的優化裝置的實施例方塊圖; 圖7示出了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖。

Claims (9)

  1. 一種LSM樹的優化方法,所述方法包括:確定出LSM樹中,所指向的資料已被刪除的目標葉子節點;在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記;其中,LSM樹包括內部記憶體的動態資料和儲存於持久化的媒體的靜態資料。
  2. 根據請求項1所述的方法,所述方法還包括:在所述LSM樹的動態資料中,若檢測到任一枝節點下的所有葉子節點均被添加有刪除標記,則為所述枝節點添加刪除標記。
  3. 根據請求項1所述的方法,所述確定出LSM樹中,所指向的資料已被刪除的目標葉子節點,包括:分別針對LSM樹的動態資料和靜態資料,確定出索引鍵連續的兩個以上目標葉子節點所指向的資料是否已被刪除。
  4. 根據請求項3所述的方法,若針對LSM樹的靜態資料確定出目標葉子節點,在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記,包括: 分別將所確定出的目標葉子節點中,具有最大索引鍵和最小索引鍵的兩個目標葉子節點插入所述LSM樹的動態資料中;在所述LSM樹的動態資料中,為所插入的目標葉子節點添加刪除標記。
  5. 一種LSM樹的優化裝置,所述裝置包括:目標確定模組,用於確定出LSM樹中,所指向的資料已被刪除的目標葉子節點;第一添加模組,用於在所述LSM樹的動態資料中,為所述目標葉子節點添加刪除標記;其中,LSM樹包括內部記憶體的動態資料和儲存於持久化的媒體的靜態資料。
  6. 根據請求項5所述的裝置,所述裝置還包括:第二添加模組,用於在所述LSM樹的動態資料中,若檢測到任一枝節點下的所有葉子節點均被添加有刪除標記,則為所述枝節點添加刪除標記。
  7. 根據請求項5所述的裝置,所述目標確定模組具體用於:分別針對LSM樹的動態資料和靜態資料,確定出索引鍵連續的兩個以上目標葉子節點所指向的資料是否已被刪除。
  8. 根據請求項7所述的裝置,所述第一添加模組包括:插入子模組,用於若針對LSM樹的靜態資料確定出目標葉子節點,分別將所確定出的目標葉子節點中,具有最大索引鍵和最小索引鍵的兩個目標葉子節點插入所述LSM樹的動態資料中;標記添加子模組,用於在所述LSM樹的動態資料中,為所插入的目標葉子節點添加刪除標記。
  9. 一種電腦設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,所述處理器執行所述程式時實現如請求項1至4任一項所述的方法。
TW108106325A 2018-05-31 2019-02-25 一種lsm樹的優化方法、裝置及電腦設備 TWI710918B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810550710.X 2018-05-31
CN201810550710.XA CN108804625B (zh) 2018-05-31 2018-05-31 一种lsm树的优化方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
TW202004521A TW202004521A (zh) 2020-01-16
TWI710918B true TWI710918B (zh) 2020-11-21

Family

ID=64089726

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108106325A TWI710918B (zh) 2018-05-31 2019-02-25 一種lsm樹的優化方法、裝置及電腦設備

Country Status (3)

Country Link
CN (1) CN108804625B (zh)
TW (1) TWI710918B (zh)
WO (1) WO2019228009A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804625B (zh) * 2018-05-31 2020-05-12 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备
CN114398378B (zh) * 2022-03-25 2022-11-01 北京奥星贝斯科技有限公司 确定索引代价的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138622A (zh) * 2015-08-14 2015-12-09 中国科学院计算技术研究所 用于lsm树存储系统的插入操作及负载的读取和合并方法
CN105159915A (zh) * 2015-07-16 2015-12-16 中国科学院计算技术研究所 可动态适应的lsm树合并方法及系统
US9720954B2 (en) * 2012-12-19 2017-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees
US20180089244A1 (en) * 2016-09-26 2018-03-29 Vmware, Inc. Key-value stores implemented using fragmented log-structured merge trees

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142015A (zh) * 2011-01-30 2011-08-03 唐凌遥 家族树的节点处理系统及家族树的节点处理方法
CN102542057B (zh) * 2011-12-29 2013-10-16 北京大学 基于固态硬盘的高维数据索引结构设计方法
US9218383B2 (en) * 2013-03-15 2015-12-22 International Business Machines Corporation Differentiated secondary index maintenance in log structured NoSQL data stores
CN103198150B (zh) * 2013-04-24 2016-04-20 清华大学 一种大数据索引方法及系统
CN103744961B (zh) * 2014-01-06 2016-10-19 清华大学 用可重构的文件系统目录树提高非易失性存储寿命的方法
CN105224237B (zh) * 2014-05-26 2018-06-19 华为技术有限公司 一种数据存储方法及装置
CN105447059B (zh) * 2014-09-29 2019-10-01 华为技术有限公司 一种数据处理方法及装置
US9324367B1 (en) * 2015-05-05 2016-04-26 Futurewei Technologies, Inc. SMR-aware append-only file system
US9959207B2 (en) * 2015-06-25 2018-05-01 Vmware, Inc. Log-structured B-tree for handling random writes
CN108804625B (zh) * 2018-05-31 2020-05-12 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720954B2 (en) * 2012-12-19 2017-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees
CN105159915A (zh) * 2015-07-16 2015-12-16 中国科学院计算技术研究所 可动态适应的lsm树合并方法及系统
CN105138622A (zh) * 2015-08-14 2015-12-09 中国科学院计算技术研究所 用于lsm树存储系统的插入操作及负载的读取和合并方法
US20180089244A1 (en) * 2016-09-26 2018-03-29 Vmware, Inc. Key-value stores implemented using fragmented log-structured merge trees

Also Published As

Publication number Publication date
WO2019228009A1 (zh) 2019-12-05
CN108804625A (zh) 2018-11-13
TW202004521A (zh) 2020-01-16
CN108804625B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
TWI686708B (zh) 資料庫查詢最佳化方法、裝置、及電腦設備
CN107704202B (zh) 一种数据快速读写的方法和装置
WO2020024903A1 (zh) 用于搜索区块链数据的方法、设备及计算机可读存储介质
CN109522271B (zh) 一种b+树节点的批量插入和删除方法及装置
KR20180107397A (ko) 트리 인덱스를 제공하는 컴퓨팅 장치
TWI710918B (zh) 一種lsm樹的優化方法、裝置及電腦設備
CN112214472A (zh) 气象格点数据的存储及查询方法、装置及存储介质
US8396858B2 (en) Adding entries to an index based on use of the index
US9471612B2 (en) Data processing method, data query method in a database, and corresponding device
CN117149777B (zh) 一种数据查询方法、装置、设备及存储介质
CN113297432B (zh) 用于分区拆分与合并的方法、处理器可读介质和系统
TWI738726B (zh) 遠端命令的處理方法和裝置
CN110019538B (zh) 一种数据表切换方法及装置
CN104537023A (zh) 一种反向索引记录的存储方法及装置
CN115203211A (zh) 一种唯一哈希序号生成方法和系统
CN112948389A (zh) 基于md5的数据库表数据比对方法及设备
CN109344159B (zh) 用于ldap的查找方法、装置、电子设备及存储介质
AU2016277745A1 (en) Linked-list-based method and device for application caching management
CN112307272A (zh) 确定对象之间关系信息的方法、装置、计算设备及存储介质
WO2024016789A1 (zh) 日志数据查询方法、装置、设备和介质
JP5953262B2 (ja) データ索引装置、データ索引方法及びプログラム
CN111444198B (zh) 一种基于中心化块链式账本的交易存储、查询方法
US11526495B2 (en) Method and apparatus for processing write-ahead log
JP2017211846A (ja) 検索データ管理装置、検索データ管理方法、および検索データ管理プログラム
CN117093155A (zh) 一种软拷贝查询加速的方法、系统、设备和存储介质