新四季網

針對鍵值資料庫的文件處理方法、裝置、電子設備和介質與流程

2024-04-15 18:15:05

1.本公開涉及計算機
技術領域:
:,可以應用於金融
技術領域:
:,更具體地涉及一種針對鍵值資料庫的文件處理方法、裝置、設備、介質和程序產品。
背景技術:
::2.區塊鏈是一個點對點的網絡,由一些形成鏈的節點連接而成,具有分布式事務資料庫的屬性。區塊鏈系統要求每個節點都複製一個完整的交易資料庫,用來保證新的交易可以獨立進行驗證。在典型的區塊鏈系統(如比特幣系統)中,節點不依賴於任何中央代理,每個節點都保存著交易資料庫的完整副本,靠分布式共識算法自行同步。然而,這一特性決定了區塊鏈交易資料庫的規模飛速增長。因此,隨著系統的不斷運行,節點所需的內存也需要不斷擴展來支持系統運行。尤其是在大數據時代,銀行不斷增長的交易量以及數據流量會給數據存儲帶來更大的挑戰。因此,具有海量數據的區塊鏈系統普遍使用的存儲資料庫是鍵值資料庫,利用了其靈活的可擴展性和數據模型。3.區塊鏈系統傳統使用的存儲資料庫是leveldb,leveldb是基於lsm樹(日誌結構合併樹)結構的鍵值資料庫,其能夠提供相當高的隨即寫入速度,但是隨著交易量的不斷提升,當數據量達到一個量級時,leveldb的性能會明顯下降,特別是在寫密集型的負載下會產生嚴重的延遲問題。技術實現要素:4.鑑於上述問題,本公開提供了針對鍵值資料庫的文件處理方法、裝置、設備、介質和程序產品,在執行合併操作指令時,可以通過先確定存儲在第一目標層的候選第一排序字符串表文件;再根據候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件,來控制參與進行合併操作的排序字符串表文件,從而通過篩選執行合併操作的文件,來限制每一次合併的文件數量,進而通過數據量的減少,改善文件處理過程中引起的i/o開銷和寫入停頓,提高寫入數據的性能,改善延遲問題。5.根據本公開的第一個方面,提供了一種針對鍵值資料庫的文件處理方法,包括:響應於接收到合併操作指令,確定所述鍵值資料庫的存儲組件的第一目標層;確定存儲在所述第一目標層的候選第一排序字符串表文件;根據所述候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件;其中,所述第二目標層為低於所述第一目標層一個級別的存儲層;根據所述候選第一排序字符串表文件和所述候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件;以及將所述目標排序字符串表文件存儲至所述存儲組件。6.根據本公開實施例,所述確定存儲在所述第一目標層的候選第一排序字符串表文件,包括:基於存儲在所述第一目標層的所有第一排序字符串表文件,確定與每個第一排序字符串表文件對應的第一鍵值範圍;基於存儲在所述第二目標層的所有第二排序字符串表文件,確定與每個第二排序字符串表文件對應的第二鍵值範圍;根據所述第一鍵值範圍和所述第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與所述第一排序字符串表文件對應的多個鍵值重疊率計算結果;以及根據所述多個鍵值重疊率計算結果,確定所述候選第一排序字符串表文件。7.根據本公開實施例,所述根據所述第一鍵值範圍和所述第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與所述第一排序字符串表文件對應的多個鍵值重疊率計算結果,包括:根據所述第一鍵值範圍和所述第二鍵值範圍,採用概率基數估計法確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與所述第一排序字符串表文件對應的多個鍵值重疊率計算結果。8.根據本公開實施例,所述根據所述多個鍵值重疊率計算結果,確定所述候選第一排序字符串表文件,包括:將所述多個鍵值重疊率計算結果中鍵值重疊率最小的第一排序字符串表文件,作為所述候選第一排序字符串表文件。9.根據本公開實施例,所述方法還包括,在所述確定存儲在所述第一目標層的候選第一排序字符串表文件之前:確定所述第一目標層是否為預定層;以及在確定所述第一目標層是所述預定層的情況下,設置用於執行所述合併操作的所述候選第一排序字符串表文件的文件數量。10.根據本公開實施例,所述根據所述候選第一排序字符串表文件和所述候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件,包括:將所述候選第一排序字符串表文件和所述候選第二排序字符串表文件加載至所述鍵值資料庫的內存中進行排序和合併,得到合併後的目標排序字符串表文件。11.根據本公開實施例,所述將所述目標排序字符串表文件存儲至所述存儲組件,包括:將所述目標排序字符串表文件存儲至所述第二目標層。12.根據本公開實施例,所述方法還包括:響應於所述目標排序字符串表文件存儲至所述存儲組件,從所述鍵值資料庫中刪除所述候選第一排序字符串表文件和所述候選第二排序字符串表文件。13.本公開的第二方面提供了一種針對鍵值資料庫的文件處理裝置,包括:第一確定模塊,用於響應於接收到合併操作指令,確定所述鍵值資料庫的存儲組件的第一目標層;第二確定模塊,用於確定存儲在所述第一目標層的候選第一排序字符串表文件;第三確定模塊,用於根據所述候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件;其中,所述第二目標層為低於所述第一目標層一個級別的存儲層;合併操作模塊,用於根據所述候選第一排序字符串表文件和所述候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件;以及存儲操作模塊,用於將所述目標排序字符串表文件存儲至所述存儲組件。14.本公開的第三方面提供了一種電子設備,包括:一個或多個處理器;存儲器,用於存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執行時,使得一個或多個處理器執行上述針對鍵值資料庫的文件處理方法。15.本公開的第四方面還提供了一種計算機可讀存儲介質,其上存儲有可執行指令,該指令被處理器執行時使處理器執行上述針對鍵值資料庫的文件處理方法。16.本公開的第五方面還提供了一種電腦程式產品,包括電腦程式,該電腦程式被處理器執行時實現上述針對鍵值資料庫的文件處理方法。17.本實施例提供的針對鍵值資料庫的文件處理方法,在執行合併操作指令時,可以通過先確定存儲在第一目標層的候選第一排序字符串表文件;再根據候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件,來控制參與進行合併操作的排序字符串表文件,從而通過篩選執行合併操作的文件,來限制每一次合併的文件數量,進而通過數據量的減少,改善文件處理過程中引起的i/o開銷和寫入停頓,提高寫入數據的性能,改善延遲問題。附圖說明18.通過以下參照附圖對本公開實施例的描述,本公開的上述內容以及其他目的、特徵和優點將更為清楚,在附圖中:19.圖1示意性示出了根據本公開實施例的針對鍵值資料庫的文件處理方法、裝置、設備、介質和程序產品的應用場景圖;20.圖2示意性示出了根據本公開實施例的針對鍵值資料庫的文件處理方法的流程圖;21.圖3示意性示出了根據本公開另一實施例的針對鍵值資料庫的文件處理方法的流程圖;22.圖4示意性示出了根據本公開實施例的針對鍵值資料庫的文件處理裝置的結構框圖;以及23.圖5示意性示出了根據本公開實施例的適於實現針對鍵值資料庫的文件處理方法的電子設備的方框圖。具體實施方式24.以下,將參照附圖來描述本公開的實施例。但是應該理解,這些描述只是示例性的,而並非要限制本公開的範圍。在下面的詳細描述中,為便於解釋,闡述了許多具體的細節以提供對本公開實施例的全面理解。然而,明顯地,一個或多個實施例在沒有這些具體細節的情況下也可以被實施。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本公開的概念。25.在此使用的術語僅僅是為了描述具體實施例,而並非意在限制本公開。在此使用的術語「包括」、「包含」等表明了所述特徵、步驟、操作和/或部件的存在,但是並不排除存在或添加一個或多個其他特徵、步驟、操作或部件。26.在此使用的所有術語(包括技術和科學術語)具有本領域技術人員通常所理解的含義,除非另外定義。應注意,這裡使用的術語應解釋為具有與本說明書的上下文相一致的含義,而不應以理想化或過於刻板的方式來解釋。27.在使用類似於「a、b和c等中至少一個」這樣的表述的情況下,一般來說應該按照本領域技術人員通常理解該表述的含義來予以解釋(例如,「具有a、b和c中至少一個的系統」應包括但不限於單獨具有a、單獨具有b、單獨具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系統等)。28.本公開的實施例提供了一種針對鍵值資料庫的文件處理方法和裝置,響應於接收到合併操作指令,確定所述鍵值資料庫的存儲組件的第一目標層;確定存儲在所述第一目標層的候選第一排序字符串表文件;根據所述候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件;其中,所述第二目標層為低於所述第一目標層一個級別的存儲層;根據所述候選第一排序字符串表文件和所述候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件;以及將所述目標排序字符串表文件存儲至所述存儲組件。29.圖1示意性示出了根據本公開實施例的針對鍵值資料庫的文件處理方法、裝置、設備、介質和程序產品的應用場景圖。30.如圖1所示,根據該實施例的應用場景100可以包括終端設備101、102、103,網絡104和伺服器105。網絡104用以在終端設備101、102、103和伺服器105之間提供通信鏈路的介質。網絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。31.用戶可以使用終端設備101、102、103通過網絡104與伺服器105交互,以接收或發送消息等。終端設備101、102、103上可以安裝有各種通訊客戶端應用,例如購物類應用、網頁瀏覽器應用、搜索類應用、即時通信工具、郵箱客戶端、社交平臺軟體等(僅為示例)。32.終端設備101、102、103可以是具有顯示屏並且支持網頁瀏覽的各種電子設備,包括但不限於智慧型手機、平板電腦、膝上型便攜計算機和臺式計算機等等。33.伺服器105可以是提供各種服務的伺服器,例如對用戶利用終端設備101、102、103所瀏覽的網站提供支持的後臺管理伺服器(僅為示例)。後臺管理伺服器可以對接收到的用戶請求等數據進行分析等處理,並將處理結果(例如根據用戶請求獲取或生成的網頁、信息、或數據等)反饋給終端設備。34.需要說明的是,本公開實施例所提供的針對鍵值資料庫的文件處理方法一般可以由伺服器105執行。相應地,本公開實施例所提供的針對鍵值資料庫的文件處理裝置一般可以設置於伺服器105中。本公開實施例所提供的針對鍵值資料庫的文件處理方法也可以由不同於伺服器105且能夠與終端設備101、102、103和/或伺服器105通信的伺服器或伺服器集群執行。相應地,本公開實施例所提供的針對鍵值資料庫的文件處理裝置也可以設置於不同於伺服器105且能夠與終端設備101、102、103和/或伺服器105通信的伺服器或伺服器集群中。35.應該理解,圖1中的終端設備、網絡和伺服器的數目僅僅是示意性的。根據實現需要,可以具有任意數目的終端設備、網絡和伺服器。36.以下將基於圖1描述的場景,通過圖2對公開實施例的針對鍵值資料庫的文件處理方法進行詳細描述。37.圖2示意性示出了根據本公開實施例的針對鍵值資料庫的文件處理方法的流程圖。38.如圖2所示,該實施例包括操作s210~操作s250,該針對鍵值資料庫的文件處理方法可以通過伺服器執行。39.在本公開的技術方案中,對數據的獲取、收集、存儲、使用、加工、傳輸、提供、公開和應用等處理,均符合相關法律法規的規定,採取了必要保密措施,且不違背公序良俗。40.在操作s210,響應於接收到合併操作指令,確定鍵值資料庫的存儲組件的第一目標層。41.在操作s220,確定存儲在第一目標層的候選第一排序字符串表文件。42.在操作s230,根據候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件;其中,第二目標層為低於第一目標層一個級別的存儲層。43.在操作s240,根據候選第一排序字符串表文件和候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件。44.在操作s250,將目標排序字符串表文件存儲至存儲組件。45.資料庫存儲系統在處理更新時,可以採用如in-palaceupdate(就地更新)和out-of-place(異地更新)的策略。但是針對區塊鏈等金融領域新興技術數據量大、擴展性強的特點,上述兩種更新策略在讀寫方面都有各自的缺點。lsm樹結構解決了這些問題,基於集成在結構本身的合併過程,不僅提供了高的寫性能同時對查詢性能和空間利用率都有了一定的約束。46.基於lsm樹的鍵值存儲資料庫,例如leveldb鍵值存儲資料庫。該鍵值資料庫的主要結構分為在內存中和在磁碟上,可以首先將區塊鏈中的交易數據寫入到內存中作為緩存,而memtable(內存表)就是用於組織和維護數據的內存結構。當存儲大小達到設定閾值時,系統將其轉換為一個不可修改的內存文件。該鍵值資料庫的磁碟組件是層級結構。交易數據存儲到磁碟後,被分為多個級別,每個級別大小設置為上一個級別的數倍。其中每個級別包含多個sstable(排序字符串表)文件,而每個排序字符串表文件中的鍵值對是根據鍵排序的,並且每個排序字符串表文件之間也沒有重疊的鍵範圍。當某個級別的排序字符串表文件超過預定大小時,系統將調用compaction(合併)操作。47.可以理解,合併操作是鍵值資料庫的性能瓶頸之一,其產生的性能影響在區塊鏈系統出現海量交易數據的情況下尤為突出。合併操作用於將相鄰級別中的多個鍵範圍重疊的排序字符串表文件重新排序合併,並將新生成的鍵範圍不重疊的排序字符串表文件存儲到存儲組件,如磁碟組件。以l0層為例,具體的合併操作執行過程可以分為三個部分:1.重載:當l0層觸發合併操作後,首先將候選的排序字符串表文件重新加載回內存中;2.排序合併:通過利用cpu對這些參與合併的文件進行多路歸併排序。還可以在合併之後採取一定的標準判斷這些鍵是否還需要保存,如果判斷沒有保存價值,那麼直接拋棄,如果覺得還需要繼續保存,那麼就將其重新組織形成新的一系列排序字符串表文件;3.寫回:將新生成的排序字符串表文件寫回到l1層中。通過,上述過程對候選的交易數據,即候選的排序字符串表文件進行一一處理,形成了一系列新的l1層的排序字符串表文件,同時將原來參與合併操作的文件進行刪除。48.為了避免在執行合併操作的過程中產生多餘的讀寫操作,造成系統性能波動,使區塊鏈系統產生嚴重的延遲問題。在本實施例中,通過控制參與進行合併操作的排序字符串表文件,從而實現篩選執行合併操作的文件,來限制每一次合併的文件數量,進而通過數據量的減少,改善文件處理過程中引起的i/o開銷和寫入停頓,提高寫入數據的性能。49.舉例來說,當某一層達到觸發合併操作的條件,背景線程開始調用compaction線程時,首先通過計算每層分數的方法來判斷合併操作指令來源於鍵值資料庫的存儲組件中的哪一層,如li層。然後,確定參與執行合併操作的文件,例如首先確定存儲在li層的候選排序字符串表文件,即存儲在第一目標層的候選第一排序字符串表文件。然後,選擇li+1層的候選文件,例如根據候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件;其中,第二目標層為低於第一目標層一個級別的存儲層;將li層的候選排序字符串表文件和li+1層的候選排序字符串表文件加入候選集合。針對候選集合中的文件,即候選第一排序字符串表文件和候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件。再將新生成的目標排序字符串表文件寫回到存儲組件。50.本實施例提供的針對鍵值資料庫的文件處理方法,在執行合併操作指令時,可以通過先確定存儲在第一目標層的候選第一排序字符串表文件;再根據候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件,來控制參與進行合併操作的排序字符串表文件,從而通過篩選執行合併操作的文件,來限制每一次合併的文件數量,進而通過數據量的減少,改善文件處理過程中引起的i/o開銷和寫入停頓,提高寫入數據的性能,改善延遲問題。51.確定存儲在第一目標層的候選第一排序字符串表文件,包括:基於存儲在第一目標層的所有第一排序字符串表文件,確定與每個第一排序字符串表文件對應的第一鍵值範圍;基於存儲在第二目標層的所有第二排序字符串表文件,確定與每個第二排序字符串表文件對應的第二鍵值範圍;根據第一鍵值範圍和第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果;以及根據多個鍵值重疊率計算結果,確定候選第一排序字符串表文件。52.在本實施例中,提出了限制性選擇候選第一排序字符串表文件的方法,採用有目的的選擇來進一步減少合併操作產生的i/o開銷。53.舉例來說,首先分別確定第一目標層和第二目標層中每個排序字符串表文件的鍵值範圍。然後,可以根據第一鍵值範圍和第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率;在得到重疊率計算結果後,可以在第一目標層中選擇出與第二目標層具有較小重疊範圍的排序字符串表文件,作為參與合併操作的對象。54.本實施例提供的針對鍵值資料庫的文件處理方法,通過根據第一鍵值範圍和第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果;以及根據多個鍵值重疊率計算結果,確定候選第一排序字符串表文件,可以實現限制性選擇候選第一排序字符串表文件,從而實現僅選擇一部分重疊的排序字符串表文件作為候選重新加載回內存中,進一步減少合併操作產生的i/o開銷。55.根據第一鍵值範圍和第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果,包括:根據第一鍵值範圍和第二鍵值範圍,採用概率基數估計法確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果。56.舉例來說,當li層觸發合併操作時,需要查詢層內所有排序字符串表文件以獲取其鍵值範圍與最少數量的li+1層文件鍵值範圍重疊的文件,將其作為候選。為了計算文件之間的鍵值重疊率,在本實施例中採用了hyperloglog(hll)概率基數估計器。hll是一種算法,可以估算多個集合中不同元素的數量。進一步的,在本實施例中可以定義了一個度量標準or(overlapratio),用它來表示重疊率。重疊率的計算公式可以如下:[0057][0058]其中,k(filei)表示第i個排序字符串表文件的鍵數目,unik表示第i個文件作為合併操作的候選文件時,與下層的一系列文件進行合併操作結束後生成的不重疊的唯一鍵數目。sumk表示參與合併操作過程的文件總數目。unik和k(filei)使用概率基數估計法來估算。針對li層發生的合併操作,將hll結構與磁碟組件中的每個li層排序字符串表文件相關聯。輪流計算其中所有排序字符串表文件的重疊率。通過排序,找出含有最小重疊率的文件作為最終候選文件。[0059]本實施例提供的針對鍵值資料庫的文件處理方法,可以採用概率基數估計法確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果。[0060]根據多個鍵值重疊率計算結果,確定候選第一排序字符串表文件,包括:將多個鍵值重疊率計算結果中鍵值重疊率最小的第一排序字符串表文件,作為候選第一排序字符串表文件。[0061]為了進一步減少合併操作產生的i/o開銷,可以選擇鍵值重疊率最小的第一排序字符串表文件,作為候選第一排序字符串表文件。[0062]舉例來說,s1,在後臺維護兩個排序的鍵範圍列表,可以用p表示li層鍵範圍,q表示li+1層鍵範圍,以及第一排序字符串表文件的鍵範圍在li層表示為p。可以理解,p是p的一個子序列。[0063]s2,遍歷整個q,查詢q中與p含有重疊範圍的子序列q,可以採用概率基數估計法計算重疊率並記錄。[0064]s3,在p中交替p進行查詢,重複第二個步驟。同時將重疊率的記錄進行同步更新。接著,使用排序算法,通過比較所有的重疊率大小,找到重疊率最小的第一排序字符串表文件,最終成功地找到了符合預期選擇的最終文件加入到參與合併操作的候選對象集合中。[0065]本實施例提供的針對鍵值資料庫的文件處理方法,將鍵值重疊率最小的第一排序字符串表文件,作為候選第一排序字符串表文件,實現選擇與下一層級具有最小重疊範圍的排序字符串表文件作為合併操作對象,有利於進一步減少每次合併操作產生的消耗,從而提高區塊鏈系統總體的平均寫入性能。[0066]在確定存儲在第一目標層的候選第一排序字符串表文件之前:確定第一目標層是否為預定層;以及在確定第一目標層是預定層的情況下,設置用於執行合併操作的候選第一排序字符串表文件的文件數量。[0067]在本實施例中,例如,預定層可以為l0層。[0068]可以理解,在合併操作過程對鍵值存儲資料庫的性能有著最主要的影響,而l0層的合併操作過程更是影響系統高延遲的主要因素。[0069]舉例來說,針對l0層合併操作導致的延遲問題,為了降低其導致的寫入停頓給系統帶來的性能損耗,可以在每當l0層觸發合併操作後,在進行合併操作的過程中僅選擇一部分重疊的排序字符串表文件作為候選重新加載回內存中。[0070]圖3示意性示出了根據本公開另一實施例的針對鍵值資料庫的文件處理方法的流程圖,參見圖3。在操作s301,確定鍵值資料庫的存儲組件的第一目標層。[0071]在操作s302,判斷第一目標層是為預定層,如預定層可以為l0層,然後通過計算每層分數的方法來判斷該合併操作是在l0還是其它層。[0072]若該第一目標層是預定層,則需要對文件個數進行限制,即操作s303,設置用於執行合併操作的候選第一排序字符串表文件的文件數量。再操作s304。若該第一目標層不是預定層,則直接操作s304。[0073]在操作s304,繼續選擇存儲在第二目標層的候選第二排序字符串表文件。[0074]在操作s305,執行合併操作,如將候選第一排序字符串表文件和候選第二排序字符串表文件加載至鍵值資料庫的內存中進行排序和合併,得到合併後的目標排序字符串表文件。[0075]在操作s306,將目標排序字符串表文件存儲至存儲組件,包括:將目標排序字符串表文件存儲至第二目標層。[0076]本實施例提供的針對鍵值資料庫的文件處理方法,可以通過設置用於執行合併操作的候選第一排序字符串表文件的文件數量,實現對參與合併操作的文件的個數進行限制,減少數據量。[0077]根據候選第一排序字符串表文件和候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件,包括:將候選第一排序字符串表文件和候選第二排序字符串表文件加載至鍵值資料庫的內存中進行排序和合併,得到合併後的目標排序字符串表文件。[0078]可以理解,在合併操作的過程中,可以將參與執行合併操作的文件加載至鍵值資料庫的內存中,具體的操作過程可以包括對數據進行排序和合併,得到鍵範圍不重疊的數據,即合併後的目標排序字符串表文件。[0079]本實施例提供的針對鍵值資料庫的文件處理方法,通過將候選第一排序字符串表文件和候選第二排序字符串表文件加載至鍵值資料庫的內存中進行排序和合併,實現文件數據的重新排序合併,有利於進一步約束查詢性能和空間利用率。[0080]將目標排序字符串表文件存儲至存儲組件,包括:將目標排序字符串表文件存儲至第二目標層。[0081]本實施例提供的針對鍵值資料庫的文件處理方法,通過將目標排序字符串表文件存儲至第二目標層,實現將目標排序字符串表文件存儲至較低層級的存儲層中。[0082]針對鍵值資料庫的文件處理方法,還包括:響應於目標排序字符串表文件存儲至存儲組件,從鍵值資料庫中刪除候選第一排序字符串表文件和候選第二排序字符串表文件。[0083]可以理解,為了進一步釋放存儲空間,可以在目標排序字符串表文件存儲至存儲組件後,從鍵值資料庫中刪除候選第一排序字符串表文件和候選第二排序字符串表文件。[0084]基於上述針對鍵值資料庫的文件處理方法,本公開還提供了一種針對鍵值資料庫的文件處理裝置。以下將結合圖4對該裝置進行詳細描述。[0085]圖4示意性示出了根據本公開實施例的針對鍵值資料庫的文件處理裝置的結構框圖。[0086]如圖4所示,該實施例的針對鍵值資料庫的文件處理裝置400包括第一確定模塊410、第二確定模塊420、第三確定模塊430、合併操作模塊440和存儲操作模塊450。[0087]第一確定模塊410,用於響應於接收到合併操作指令,確定鍵值資料庫的存儲組件的第一目標層;第二確定模塊420,用於確定存儲在第一目標層的候選第一排序字符串表文件;第三確定模塊430,用於根據候選第一排序字符串表文件,確定存儲在第二目標層的候選第二排序字符串表文件;其中,第二目標層為低於第一目標層一個級別的存儲層;合併操作模塊440,用於根據候選第一排序字符串表文件和候選第二排序字符串表文件,執行合併操作,得到合併後的目標排序字符串表文件;以及存儲操作模塊450,用於將目標排序字符串表文件存儲至存儲組件。[0088]在一些實施例中,所述第二確定模塊包括:第一確定子模塊,用於基於存儲在第一目標層的所有第一排序字符串表文件,確定與每個第一排序字符串表文件對應的第一鍵值範圍;第二確定子模塊,用於基於存儲在第二目標層的所有第二排序字符串表文件,確定與每個第二排序字符串表文件對應的第二鍵值範圍;第三確定子模塊,用於根據第一鍵值範圍和第二鍵值範圍,確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果;以及第四確定子模塊,用於根據多個鍵值重疊率計算結果,確定候選第一排序字符串表文件。[0089]在一些實施例中,所述第三確定子模塊包括:計算單元,用於根據第一鍵值範圍和第二鍵值範圍,採用概率基數估計法確定任一第一排序字符串表文件與任一第二排序字符串表文件之間的鍵值重疊率,得到與第一排序字符串表文件對應的多個鍵值重疊率計算結果。[0090]在一些實施例中,所述第四確定子模塊包括:排序單元,用於將多個鍵值重疊率計算結果中鍵值重疊率最小的第一排序字符串表文件,作為候選第一排序字符串表文件。[0091]在一些實施例中,所述裝置還包括,設置模塊,用於在確定存儲在第一目標層的候選第一排序字符串表文件之前:確定第一目標層是否為預定層;以及在確定第一目標層是預定層的情況下,設置用於執行合併操作的候選第一排序字符串表文件的文件數量。[0092]在一些實施例中,所述合併操作模塊,用於將候選第一排序字符串表文件和候選第二排序字符串表文件加載至鍵值資料庫的內存中進行排序和合併,得到合併後的目標排序字符串表文件。[0093]在一些實施例中,所述存儲操作模塊,用於將目標排序字符串表文件存儲至第二目標層。[0094]在一些實施例中,所述裝置還包括,刪除模塊,用於響應於目標排序字符串表文件存儲至存儲組件,從鍵值資料庫中刪除候選第一排序字符串表文件和候選第二排序字符串表文件。[0095]根據本公開的實施例,第一確定模塊410、第二確定模塊420、第三確定模塊430、合併操作模塊440和存儲操作模塊450中的任意多個模塊可以合併在一個模塊中實現,或者其中的任意一個模塊可以被拆分成多個模塊。或者,這些模塊中的一個或多個模塊的至少部分功能可以與其他模塊的至少部分功能相結合,並在一個模塊中實現。根據本公開的實施例,第一確定模塊410、第二確定模塊420、第三確定模塊430、合併操作模塊440和存儲操作模塊450中的至少一個可以至少被部分地實現為硬體電路,例如現場可編程門陣列(fpga)、可編程邏輯陣列(pla)、片上系統、基板上的系統、封裝上的系統、專用集成電路(asic),或可以通過對電路進行集成或封裝的任何其他的合理方式等硬體或固件來實現,或以軟體、硬體以及固件三種實現方式中任意一種或以其中任意幾種的適當組合來實現。或者,第一確定模塊410、第二確定模塊420、第三確定模塊430、合併操作模塊440和存儲操作模塊450中的至少一個可以至少被部分地實現為電腦程式模塊,當該電腦程式模塊被運行時,可以執行相應的功能。[0096]圖5示意性示出了根據本公開實施例的適於實現針對鍵值資料庫的文件處理方法的電子設備的方框圖。[0097]如圖5所示,根據本公開實施例的電子設備500包括處理器501,其可以根據存儲在只讀存儲器(rom)502中的程序或者從存儲部分508加載到隨機訪問存儲器(ram)503中的程序而執行各種適當的動作和處理。處理器501例如可以包括通用微處理器(例如cpu)、指令集處理器和/或相關晶片組和/或專用微處理器(例如,專用集成電路(asic))等等。處理器501還可以包括用於緩存用途的板載存儲器。處理器501可以包括用於執行根據本公開實施例的方法流程的不同動作的單一處理單元或者是多個處理單元。[0098]在ram503中,存儲有電子設備500操作所需的各種程序和數據。處理器501、rom502以及ram503通過總線504彼此相連。處理器501通過執行rom502和/或ram503中的程序來執行根據本公開實施例的方法流程的各種操作。需要注意,所述程序也可以存儲在除rom502和ram503以外的一個或多個存儲器中。處理器501也可以通過執行存儲在所述一個或多個存儲器中的程序來執行根據本公開實施例的方法流程的各種操作。[0099]根據本公開的實施例,電子設備500還可以包括輸入/輸出(i/o)接口505,輸入/輸出(i/o)接口505也連接至總線504。電子設備500還可以包括連接至i/o接口505的以下部件中的一項或多項:包括鍵盤、滑鼠等的輸入部分506;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分507;包括硬碟等的存儲部分508;以及包括諸如lan卡、數據機等的網絡接口卡的通信部分509。通信部分509經由諸如網際網路的網絡執行通信處理。驅動器510也根據需要連接至i/o接口505。可拆卸介質511,諸如磁碟、光碟、磁光碟、半導體存儲器等等,根據需要安裝在驅動器510上,以便於從其上讀出的電腦程式根據需要被安裝入存儲部分508。[0100]本公開還提供了一種計算機可讀存儲介質,該計算機可讀存儲介質可以是上述實施例中描述的設備/裝置/系統中所包含的;也可以是單獨存在,而未裝配入該設備/裝置/系統中。上述計算機可讀存儲介質承載有一個或者多個程序,當上述一個或者多個程序被執行時,實現根據本公開實施例的方法。[0101]根據本公開的實施例,計算機可讀存儲介質可以是非易失性的計算機可讀存儲介質,例如可以包括但不限於:可攜式計算機磁碟、硬碟、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或快閃記憶體)、可攜式緊湊磁碟只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本公開中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。例如,根據本公開的實施例,計算機可讀存儲介質可以包括上文描述的rom502和/或ram503和/或rom502和ram503以外的一個或多個存儲器。[0102]本公開的實施例還包括一種電腦程式產品,其包括電腦程式,該電腦程式包含用於執行流程圖所示的方法的程序代碼。當電腦程式產品在計算機系統中運行時,該程序代碼用於使計算機系統實現本公開實施例所提供的針對鍵值資料庫的文件處理方法。[0103]在該電腦程式被處理器501執行時執行本公開實施例的系統/裝置中限定的上述功能。根據本公開的實施例,上文描述的系統、裝置、模塊、單元等可以通過電腦程式模塊來實現。[0104]在一種實施例中,該電腦程式可以依託於光存儲器件、磁存儲器件等有形存儲介質。在另一種實施例中,該電腦程式也可以在網絡介質上以信號的形式進行傳輸、分發,並通過通信部分509被下載和安裝,和/或從可拆卸介質511被安裝。該電腦程式包含的程序代碼可以用任何適當的網絡介質傳輸,包括但不限於:無線、有線等等,或者上述的任意合適的組合。[0105]在這樣的實施例中,該電腦程式可以通過通信部分509從網絡上被下載和安裝,和/或從可拆卸介質511被安裝。在該電腦程式被處理器501執行時,執行本公開實施例的系統中限定的上述功能。根據本公開的實施例,上文描述的系統、設備、裝置、模塊、單元等可以通過電腦程式模塊來實現。[0106]根據本公開的實施例,可以以一種或多種程序設計語言的任意組合來編寫用於執行本公開實施例提供的電腦程式的程序代碼,具體地,可以利用高級過程和/或面向對象的程式語言、和/或彙編/機器語言來實施這些計算程序。程序設計語言包括但不限於諸如java,c++,python,「c」語言或類似的程序設計語言。程序代碼可以完全地在用戶計算設備上執行、部分地在用戶設備上執行、部分在遠程計算設備上執行、或者完全在遠程計算設備或伺服器上執行。在涉及遠程計算設備的情形中,遠程計算設備可以通過任意種類的網絡,包括區域網(lan)或廣域網(wan),連接到用戶計算設備,或者,可以連接到外部計算設備(例如利用網際網路服務提供商來通過網際網路連接)。[0107]附圖中的流程圖和框圖,圖示了按照本公開各種實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,上述模塊、程序段、或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個接連地表示的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖或流程圖中的每個方框、以及框圖或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。[0108]本領域技術人員可以理解,本公開的各個實施例和/或權利要求中記載的特徵可以進行多種組合和/或結合,即使這樣的組合或結合沒有明確記載於本公開中。特別地,在不脫離本公開精神和教導的情況下,本公開的各個實施例和/或權利要求中記載的特徵可以進行多種組合和/或結合。所有這些組合和/或結合均落入本公開的範圍。[0109]以上對本公開的實施例進行了描述。但是,這些實施例僅僅是為了說明的目的,而並非為了限制本公開的範圍。儘管在以上分別描述了各實施例,但是這並不意味著各個實施例中的措施不能有利地結合使用。本公開的範圍由所附權利要求及其等同物限定。不脫離本公開的範圍,本領域技術人員可以做出多種替代和修改,這些替代和修改都應落在本公開的範圍之內。當前第1頁12當前第1頁12

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀