TW201901484A - 資料庫狀態確定方法、一致性驗證方法及裝置 - Google Patents
資料庫狀態確定方法、一致性驗證方法及裝置 Download PDFInfo
- Publication number
- TW201901484A TW201901484A TW107108222A TW107108222A TW201901484A TW 201901484 A TW201901484 A TW 201901484A TW 107108222 A TW107108222 A TW 107108222A TW 107108222 A TW107108222 A TW 107108222A TW 201901484 A TW201901484 A TW 201901484A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- state
- database
- value
- target database
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申請公開了一種資料庫狀態確定方法,用以解決現有技術中確定資料庫狀態值時會消耗較多計算資源的問題。該方法包括:確定對目標資料庫執行的狀態遷移操作;根據執行所述狀態遷移操作前所述目標資料庫的狀態值,以及確定的所述狀態遷移操作,確定執行所述狀態遷移操作後所述目標資料庫的狀態值,所述狀態值用於表徵所述目標資料庫的狀態。本申請還公開了一種資料庫狀態確定裝置、資料庫一致性驗證方法及裝置。
Description
本申請涉及計算機技術領域,尤其涉及一種資料庫狀態確定方法及裝置,以及一種資料庫一致性驗證方法及裝置。
計算機在對資料進行儲存時,有時會將同一份資料儲存到多個不同資料庫之中,基於業務需要,往往還會要求這些不同資料庫中保持資料儲存的同步性,即各資料庫中儲存的資料往往會被要求保持一致。以區塊鏈技術為例,在經過驗證後,多個交易記錄將被寫入各個保存區塊鏈資料的節點(對應的資料庫)中,為確保產生各節點接受的新的區塊,各節點對應的資料庫中儲存的資料應當保持一致。還比如分佈式儲存中的主從資料庫的情形,為便於在主資料庫內資料錯誤時,能透過從資料庫(備份資料庫)恢復資料,往往也要求主資料庫與其從資料庫儲存的資料保持一致。 為保證多個資料庫中儲存的資料的一致性,可以對多個資料庫中的資料進行一致性檢驗,然後在發現資料不一致時,及時地採取補救措施。由於資料庫中的資料往往很多,在檢驗資料庫的一致性時,往往不會逐一比對多個資料庫中的各資料,而是透過比對用於表徵資料庫中資料狀態的狀態值來檢驗。為便於描述,可將資料庫中資料狀態簡稱為資料庫狀態。 在現有技術中,在每次資料庫中的資料發生變化後,都需要重新確定資料庫的狀態值,在確定狀態值時,往往會透過對資料庫中的所有資料進行計算來得到該狀態值。比如,該狀態值可以是資料庫中資料的哈希值,那麼在確定哈希值時,需要對資料庫中的所有資料進行拼接得到一個字符串,然後將該字符串作為哈希函數的輸入,透過哈希函數進行計算得到哈希值。那麼,當資料庫中的資料較多時,確定資料庫的狀態值便會消耗較多的計算資源。
本申請實施例提供一種資料庫狀態確定方法,用以解決現有技術中確定資料庫狀態值時會消耗較多計算資源的問題。 本申請實施例採用下述技術方案: 一種資料庫狀態確定方法,包括: 確定對目標資料庫執行的狀態遷移操作; 根據執行所述狀態遷移操作前所述目標資料庫的狀態值,以及確定的所述狀態遷移操作,確定執行所述狀態遷移操作後所述目標資料庫的狀態值,所述狀態值用於表徵所述目標資料庫的狀態。 本申請實施例還提供一種資料庫狀態確定裝置,用以解決現有技術中確定資料庫狀態值時會消耗較多計算資源的問題。 一種資料庫狀態確定裝置,包括: 第一確定單元,確定對目標資料庫執行的狀態遷移操作; 第二確定單元,根據執行所述狀態遷移操作前所述目標資料庫的狀態值,以及確定的所述狀態遷移操作,確定執行所述狀態遷移操作後所述目標資料庫的狀態值,所述狀態值用於表徵所述目標資料庫的狀態。 一種資料庫一致性驗證方法,包括: 判斷待校驗的第一資料庫和第二資料庫的狀態值是否相同,所述第一資料庫和所述第二資料庫的狀態值是透過本申請提供的資料庫狀態確定方法確定的; 若所述第一資料庫和所述第二資料庫的狀態值相同,則確定所述第一資料庫和第二資料庫的狀態一致。 一種資料庫一致性驗證裝置,包括: 狀態確定單元,判斷待校驗的第一資料庫和第二資料庫的狀態值是否相同,所述第一資料庫和所述第二資料庫的狀態值是透過本申請提供的資料庫狀態確定裝置確定的; 一致性確定單元,在確定所述第一資料庫和所述第二資料庫的狀態值相同時,則確定所述第一資料庫和第二資料庫的狀態一致。 本申請實施例採用的上述至少一個技術方案能夠達到以下有益效果: 在確定由狀態遷移操作導致資料發生變化的資料庫的狀態值時,透過確定對目標資料庫執行的該狀態遷移操作,然後根據確定的狀態遷移操作,以及執行該狀態遷移操作前資料庫的狀態值,確定執行該狀態遷移操作後資料庫的狀態值,相對於現有技術來說,無需對整個資料庫中的所有資料進行運算,避免消耗過多的計算資源。
為使本申請的目的、技術方案和優點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。 以下結合附圖,詳細說明本申請各實施例提供的技術方案。 隨著計算機技術的發展,需要驗證各資料庫中的資料是否一致的場景已經越來越多,以區塊鏈為例,區塊鏈的本質是分佈式資料庫,區塊鏈中每筆資料的變化,都會廣播至全網的各區塊鏈節點,每個節點都需要有全量的、一致的資料。在各節點中,資料往往會保存在多個資料單元中,一個資料單元可以是區塊鏈中的一個區塊,也可以是由多個區塊共同構成的資料單元。在確定節點的狀態值時,會以各個資料單元中資料的哈希值為葉子節點構建哈希樹,例如默克爾樹(Merkle Tree),然後將哈希樹根節點的哈希值作為資料庫的狀態值,進而透過該狀態值來唯一表徵資料庫的狀態。 如圖1所示為針對某一資料庫構建的一種哈希樹的資料結構示意圖,在計算哈希樹根節點的過程中,首先會計算各個資料單元中資料的哈希值,然後將得到的哈希值作為哈希樹的葉子節點的值,再計算各葉子節點的父節點的哈希值,最終得到哈希樹根節點的哈希值。當資料庫中的資料變化後,需要重新確定資料庫的狀態值,這就需要重複上述計算哈希樹根節點的過程,而如果資料庫中的資料較多,便需要對大量的資料進行哈希運算,這會消耗較多的計算資源。 在一些類似的場景下,在確定資料庫的狀態值時,也會存在消耗較多的計算資源的問題,此處不再逐一贅述。為了解決該問題,本申請提供一種資料庫狀態確定方法,透過根據對目標資料庫執行的狀態遷移操作來確定目標資料庫的狀態。 下面將詳細描述本申請提供的資料狀態確定方法,該方法的執行主體可以是計算設備,例如分佈式資料庫中的資料庫節點,或者區塊鏈中的節點。此外,該方法的執行主體還可以是實現本申請提供的資料庫狀態確定方法的應用程式。為便於描述,下文以該方法的執行主體為計算設備為例,對該方法的實施方式進行介紹。可以理解,該方法的執行主體為計算設備只是一種示例性的說明,並不應理解為對該方法的限定。 本申請提供的資料庫狀態確定方法的實現流程示意圖如圖2所示,包括下述步驟: 步驟S101:確定對目標資料庫執行的狀態遷移操作; 其中,這裡的狀態遷移操作可以是導致資料庫的狀態發送改變的資料庫操作,具體可以是資料寫入操作、資料更新操作或者資料刪除操作等操作,狀態遷移操作中可以包含被處理的資料本身以及對資料的處理方式,比如資料寫入操作會包含待寫入的資料、以及資料要寫入資料庫中的具體位置。這裡的目標資料庫可以是狀態遷移操作所針對的資料庫,該目標資料庫可以是待確定狀態值的任意資料庫。 在實際應用中,具體確定狀態遷移操作的方式可以有很多種,比如,在面向物件的應用程式中,狀態遷移操作是由物件來實現的,那麼可以透過確定狀態遷移操作對應的資料操作物件來確定;或者,還可以是根據狀態遷移操作對應的資料庫操作語句來確定。這裡的資料操作物件為面向物件的應用程式中用於執行資料庫操作的資料的物件,面向物件的應用程式中,“物件”一般是指類在內存中裝載的實例,具有相關的成員變量和成員函數。 由於資料庫中資料的改變是透過狀態遷移操作來實現的,那麼在確定了狀態遷移操作後,便可以確定執行該狀態遷移操作後的資料庫的狀態。 步驟S102:根據執行所述狀態遷移操作前所述目標資料庫的狀態值,以及確定的所述狀態遷移操作,確定執行所述狀態遷移操作後所述目標資料庫的狀態值。 這裡的狀態值用於表徵目標資料庫的狀態,由於狀態值可以用來對目標資料庫進行一致性檢驗,因此,該狀態值可以用於唯一地表徵目標資料庫中儲存的資料的特徵,該狀態值比如可以是哈希值,也可以是全局唯一標識符。其中,哈希值是透過哈希函數對輸入參數進行哈希計算得到的,全局唯一標識符可以是系統分配的用於在系統中唯一標識資料庫狀態的標識符 需要說明的是,本領域技術人員應當知曉,所謂唯一地表徵並不應當理解為絕對意義上的唯一,而是在誤差允許範圍內的唯一,目前應用最廣泛的哈希算法,在理論上也會存在輸入的資料不同但輸出的哈希值相同的情況,即所謂的哈希碰撞。 由於資料庫中資料變化後的狀態跟資料變化前的狀態以及狀態遷移操作有關,那麼在確定針對目標資料庫的狀態遷移操作後,便可以根據執行該操作前目標資料庫的狀態值,以及確定的該狀態遷移操作,確定執行該狀態遷移操作後目標資料庫的狀態值。 在實際應用中,如步驟S101中所描述的,在面向物件的應用程式中,可以透過確定狀態遷移操作對應的資料操作物件的方式來確定狀態遷移操作,那麼後續可以根據確定的該資料操作物件,以及執行該狀態遷移操作前目標資料庫的狀態值,來確定執行該狀態遷移操作後目標資料庫的狀態值。 為了方便透過簡短的標識對不同的狀態遷移操作進行區分,也可以透過某一特徵值來唯一地表徵狀態遷移操作,狀態遷移操作的特徵值可以是哈希值,或者也可以是用於唯一標識狀態遷移操作的全局唯一標識符等,此處不再贅述。為了方便對狀態遷移操作的特徵值和目標資料庫的狀態值進行計算,以得到執行狀態遷移操作後的目標資料庫的狀態值,該特徵值的資料格式可以與目標資料庫狀態值的資料格式相同或相近。 在實際應用中,對於面向物件的應用程式而言,可以確定資料操作物件的哈希值,然後根據確定的該資料操作物件的哈希值,以及執行狀態遷移操作前目標資料庫的狀態值,確定執行狀態遷移操作後目標資料庫的狀態值。 下面具體介紹本申請實施例中確定資料操作物件的哈希值的過程: 在確定資料操作物件的哈希值時,為了能夠將資料操作物件的資料格式轉換為哈希算法的輸入所支持的格式,可以對資料操作物件執行序列化操作,序列化操作可以將物件的狀態資訊轉換為可以儲存或傳輸的格式。在對資料操作物件執行序列化操作後,便可以得到資料操作物件對應的序列化資料,該序列化資料的資料格式比如可以是二進制格式,二進制格式的資料可以作為哈希算法的輸入。 在得到資料操作物件對應的序列化資料後,可以透過對該序列化資料進行哈希運算,得到該序列化資料的哈希值,即可將該序列化資料的哈希值作為該資料操作物件的哈希值。 需要說明的是,由於單次狀態遷移操作往往會對應不止一個資料操作物件,比如區塊鏈中節點每次狀態遷移操作往往會對應多個資料操作物件,那麼,在對狀態遷移操作對應的資料操作物件進行序列化時,可以分別對各資料操作物件進行序列化,然後按順序將得到的各序列化資料進行拼接,最終將得到的拼接後的序列化資料,作為狀態遷移操作對應的序列化資料。 在按順序將得到的各序列化資料進行拼接時,若各資料操作物件執行狀態遷移操作的順序是固定的,則按照執行狀態遷移操作的順序,對各資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料;若各資料操作物件執行狀態遷移操作的順序是不固定的,則按照第一預定順序,對各資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料。然後可以透過哈希函數計算拼接後的序列化資料的哈希值,將該拼接後的序列化資料的哈希值,作為該狀態遷移操作對應的資料操作物件的哈希值。 第一預定順序可以是預先設定的拼接順序,比如,如果各資料操作物件中資料的格式為key-value格式,那麼可以按照key值從大到小的順序,對各資料操作物件對應的序列化資料進行拼接。 在確定了狀態遷移操作對應的資料操作物件的哈希值後,即可根據確定的資料操作物件的哈希值,以及執行該狀態遷移操作前目標資料庫的狀態值,確定執行該狀態遷移操作後目標資料庫的狀態值。具體來說,可以按照第二預定順序,對資料操作物件的哈希值和執行該狀態遷移操作前目標資料庫的狀態值進行拼接,得到拼接資料,確定該拼接資料的哈希值,將該拼接資料的哈希值作為執行該狀態遷移操作後該目標資料庫的狀態值。 這裡的第一預定順序和第二預定順序可以是預先設定的拼接順序,在計算各資料庫的狀態值時,對資料進行拼接時應遵循相同的拼接順序,否則即使各資料庫之間的資料一致,也會導致計算出的狀態值不同,進而無法準確檢驗各資料庫的一致性。 需要說明的是,在某些情況下,兩組不同的資料在拼接後可能會變成相同的拼接資料,比如對資料“hello”和“world”進行拼接可以得到拼接資料“helloworld”,而對資料“he”和“lloworld”進行拼接同樣會得到“helloworld”,顯然這兩組資料在拼接前是不同的資料。那麼,為了避免不同的資料在拼接後相同,在執行拼接操作時,可以使用分割字符來保證拼接後資料的唯一性,具體可以將預設分割字符放置於資料的拼接位置處,其中,預設分割字符可以由開發人員預先定義。例如,分割字符串為123,那麼對於資料“hello”和“world”,在拼接後可以得到“hello123world”,對於資料“he”和“lloworld”,在拼接後可以得到“he123lloworld”。這樣即可保證拼接後的兩個資料是不同的資料。 基於上述使用分割字符對資料進行拼接的方式,在對各資料操作物件對應的序列化資料進行拼接時,可以將預設分割字符設置於進行拼接的至少兩個序列化資料之間,再對設置預設分割字符後的各序列化資料進行拼接,得到拼接後的序列化資料。當然,在使用分割字符對資料進行拼接前,可以先判斷不同組的資料在拼接後是否相同,當判斷結果為拼接後相同時,再使用分割字符分別對各組資料進行拼接,得到拼接後的序列化資料。 透過本申請實施例提供的資料庫狀態確定方法,在確定資料發生變化後資料庫的狀態值時,透過確定對目標資料庫執行的狀態遷移操作,然後根據確定的狀態遷移操作,以及執行該狀態遷移操作前資料庫的狀態值,即可確定執行該狀態遷移操作後資料庫的狀態值,相對於現有技術來說,無需對整個資料庫中的所有資料進行運算,避免消耗過多的計算資源。同時,相對於現有的區塊鏈技術中透過哈希樹等樹形結構來計算節點的哈希值而言,本申請實施例中無需構建樹形結構,也就無需對樹形結構中各節點的哈希值進行計算,避免消耗過多的計算資源。 在本申請實施例提供的一些優選方案中,會對資料操作物件進行序列化操作,以及對序列化資料進行哈希運算,這會消耗一定的計算資源,然而在分佈式資料庫中,尤其是在區塊鏈中,資料庫中儲存的資料量往往是十分龐大的,對資料庫中的資料進行哈希運算所消耗的計算資源,會遠遠大於本申請實施例的上述操作所耗費的計算資源。 按照上述資料庫狀態確定方法,便可確定資料庫的狀態值,後續便可以根據確定的狀態值來對資料庫進行一致性校驗,下面將詳細描述本申請提供的一種資料庫一致性驗證方法。 該方法的實現流程示意圖如圖3所示,包括下述步驟: 步驟S201:判斷待校驗的第一資料庫和第二資料庫的狀態值是否相同; 這裡的第一資料庫和第二資料庫為待進行校驗的資料庫,那麼,可以根據本申請實施例提供的資料庫狀態確定方法分別確定第一資料庫和第二資料庫的狀態值,具體確定過程請參照本申請中的相關描述,此處不再贅述。 步驟S202:若所述第一資料庫和所述第二資料庫的狀態值相同,則確定所述第一資料庫和所述第二資料庫的狀態一致。 若第一資料庫和第二資料庫的狀態值不相同,則確定第一資料庫和第二資料庫的狀態不一致。 基於本申請的上述發明構思,為了便於更好的理解本申請的技術特徵、手段和效果,下面以目標資料庫為區塊鏈技術中的某一節點的資料庫為例,對本申請的資料庫狀態確定方法做進一步說明。 本申請實施例中,以區塊鏈應用為fabric區塊鏈應用、目標資料庫為LevelDB資料庫以及資料庫狀態值為哈希值為例來進行描述,LevelDB資料庫可以由資料操作物件來執行狀態遷移操作,資料操作物件可以將key-value格式的資料寫入LevelDB資料庫中,區塊鏈中在進行狀態遷移操作時,會由共識算法來保證各節點間狀態遷移的操作一致,且狀態遷移發生的順序一致。 對於每個區塊鏈節點來說,在資料庫中未寫入任何資料時,各資料庫的初始狀態Sinit
均為空,此時可以給定一個哈希值,這裡將資料庫初始狀態的哈希值記為Hinit
。 那麼,在確定針對目標資料庫的第i
次狀態遷移操作Transitioni
發生時,便可以根據該操作重新計算目標資料庫的哈希值,該過程的實現流程示意圖如圖4所示,包括下述步驟: 步驟S301:確定狀態遷移操作對應的資料操作物件; 單次狀態遷移操作往往會對應多個資料操作物件,針對節點的第i
次狀態遷移操作Transitioni
可以表示為集合{op1, op2 ..., opN},其中,op為operation的簡寫,表示單個資料操作物件,意味著對於單個key-value對的一次寫入操作,每個op的格式為Key := NewVal,那麼{op1, op2 ..., opN}即表示第i
次狀態遷移操作對N個key-value對進行寫入操作。 步驟S302:將各資料操作物件序列化為二進制格式的序列化資料; 步驟S303:判斷各資料操作物件執行狀態遷移操作的順序,若是,則執行步驟S304;若否,則執行步驟S305; 步驟S304:若各資料操作物件的執行順序固定,則按照執行狀態遷移操作的順序,對各資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料,進入步驟S306; 步驟S305:若各資料操作物件的執行順序不固定,則按照第一預定順序,對各資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料; 這裡的第一預設順序可以為按照key值從大到小的順序。 步驟S306:確定拼接後的序列化資料的哈希值,作為該狀態遷移操作對應的哈希值; 將拼接後的序列化資料作為哈希算法的輸入,進行哈希計算,得到拼接後的序列化資料的哈希值,即為狀態遷移操作Transitioni
的哈希值Hash (Transitioni
)。 步驟S307:按照第二預定順序,對該狀態遷移操作對應的哈希值和執行該狀態遷移操作前目標資料庫的哈希值Hi-1
進行拼接,得到拼接資料; 步驟S308:確定該拼接資料的哈希值,將該拼接資料的哈希值作為執行狀態遷移操作Transitioni
後目標資料庫的哈希值Hi
。 最終得到的執行狀態遷移操作Transitioni
後目標資料庫的哈希值Hi
可用如下公式表示: Hi
:= Hash(Hi-1
|| Hash (Transitioni
)) 其中,H0
=Hinit
,||表示拼接操作,Hash(x
)為哈希函數,表示對輸入的資料x
執行哈希運算,哈希函數比如可以是SHA3。 透過本申請實施例提供的資料庫狀態確定方法,在確定資料發生變化後資料庫的哈希值時,透過確定對目標資料庫執行的狀態遷移操作Transitioni
,然後確定與該狀態遷移操作對應的哈希值Hash (Transitioni
),根據執行該狀態遷移操作前資料庫的哈希值Hi-1
,即可確定執行該狀態遷移操作後資料庫的狀態值Hi
。相對於現有技術來說,無需對整個節點的資料庫中的所有資料進行運算來計算哈希值,避免消耗過多的計算資源。同時,相對於現有的區塊鏈技術中透過哈希樹等樹形結構來計算節點的哈希值而言,本申請實施例中無需構建樹形結構,也就無需對樹形結構中各節點的哈希值進行計算,進一步減少了對計算資源的消耗。 以上為本申請實施例提供的資料庫狀態確定方法,基於同樣的思路,本申請實施例還提供相應的資料庫狀態確定裝置,如圖5所示,該裝置具體包括: 第一確定單元401,確定對目標資料庫執行的狀態遷移操作; 第二確定單元402,根據執行所述狀態遷移操作前所述目標資料庫的狀態值,以及確定的所述狀態遷移操作,確定執行所述狀態遷移操作後所述目標資料庫的狀態值,所述狀態值用於表徵所述目標資料庫的狀態。 本申請實施例中,資料狀態確定的具體實施方式還有很多,在一種實施方式中,第一確定單元401,確定用於對目標資料庫執行所述狀態遷移操作的資料操作物件; 第二確定單元402,根據執行所述狀態遷移操作前所述目標資料庫的狀態值,以及確定的所述資料操作物件,確定執行所述狀態遷移操作後所述目標資料庫的狀態值。 在一種實施方式中,第二確定單元402具體包括第一哈希值確定子單元403和第一狀態值確定子單元404,其中: 所述第一哈希值確定子單元403,確定所述資料操作物件的哈希值; 所述第一狀態值確定子單元404,根據確定的所述資料操作物件的哈希值,以及執行所述狀態遷移操作前所述目標資料庫的狀態值,確定執行所述狀態遷移操作後所述目標資料庫的狀態值。 在一種實施方式中,所述第一哈希值確定子單元403,具體包括序列化資料確定子單元405和第二哈希值確定子單元406,其中: 所述序列化資料確定子單元405,對所述資料操作物件進行序列化,得到序列化資料; 所述第二哈希值確定子單元406,確定所述序列化資料的哈希值,將所述序列化資料的哈希值作為所述資料操作物件的哈希值。 在一種實施方式中,所述序列化資料確定子單元405,具體包括第一拼接子單元407和第二拼接子單元408: 在一種實施方式中,所述第一拼接子單元407,在存在不止一個用於對目標資料庫執行所述狀態遷移操作的資料操作物件,且各所述資料操作物件執行狀態遷移操作的順序確定時,按照執行狀態遷移操作的順序,對各所述資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料; 所述第二拼接子單元408,在存在不止一個用於對目標資料庫執行所述狀態遷移操作的資料操作物件,且各所述資料操作物件執行狀態遷移操作的順序不確定時,按照第一預定順序,對各所述資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料。 為了防止不同組資料在拼接後相同,在一種實施方式中,所述第二拼接子單元408,將預設分割字符設置於至少兩個序列化資料之間,對設置預設分割字符後的各序列化資料進行拼接,得到拼接後的序列化資料。 在一種實施方式中,所述第一狀態值確定子單元404,按照第二預定順序,對所述資料操作物件的哈希值和執行所述狀態遷移操作前所述目標資料庫的狀態值進行拼接,得到拼接資料; 確定所述拼接資料的哈希值,將所述拼接資料的哈希值作為執行所述狀態遷移操作後所述目標資料庫的狀態值。 在一種實施方式中,所述目標資料庫為區塊鏈中任一節點對應的資料庫。 在一種實施方式中,所述狀態值用於唯一地表徵所述目標資料庫中儲存的資料的特徵。 本申請實施例提供的資料庫狀態確定裝置,在確定資料發生變化後資料庫的狀態值時,透過確定對目標資料庫執行的狀態遷移操作,該狀態遷移操作為導致資料發生該變化的狀態遷移操作,然後根據確定的狀態遷移操作,以及執行該狀態遷移操作前資料庫的狀態值,確定執行該狀態遷移操作後資料庫的狀態值,相對於現有技術來說,無需對整個資料庫中的所有資料進行運算,避免消耗過多的計算資源。 本申請實施例還提供相應的資料庫一致性驗證裝置,如圖6所示,該裝置具體包括: 判斷單元501,判斷待校驗的第一資料庫和第二資料庫的狀態值是否相同,所述第一資料庫和所述第二資料庫的狀態值是透過申請專利範圍第10-16項任一權項所述裝置確定的; 一致性確定單元502,在確定所述第一資料庫和所述第二資料庫的狀態值相同時,則確定所述第一資料庫和所述第二資料庫的狀態一致。 需要說明的是,在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都透過將改進的方法流程編程到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可編程邏輯裝置(Programmable Logic Device, PLD)(例如現場可編程閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由用戶對裝置編程來確定。由設計人員自行編程來把一個數位系統“整合”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種編程也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯編程並編程到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。 控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的計算機可讀程式代碼(例如軟體或固件)的計算機可讀媒體、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,儲存器控制器還可以被實現為儲存器的控制邏輯的一部分。本領域技術人員也知道,除了以純計算機可讀程式代碼方式實現控制器以外,完全可以透過將方法步驟進行邏輯編程來使得控制器以邏輯閘、開關、專用積體電路、可編程邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。 上述實施例闡明的系統、裝置、模組或單元,具體可以由計算機晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為計算機。具體的,計算機例如可以為個人計算機、膝上型計算機、蜂巢式電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲控制台、平板計算機、可穿戴設備或者這些設備中的任何設備的組合。 為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體及/或硬體中實現。 本領域內的技術人員應明白,本發明的實施例可提供為方法、系統或計算機程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程式代碼的計算機可用儲存媒體(包括但不限於磁碟儲存器、CD-ROM、光學儲存器等)上實施的計算機程式產品的形式。 本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程式產品的流程圖及/或方塊圖來描述的。應理解可由計算機程式指令實現流程圖及/或方塊圖中的每一流程及/或方塊、以及流程圖及/或方塊圖中的流程及/或方塊的結合。可提供這些計算機程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程資料處理設備的處理器以產生一個機器,使得透過計算機或其他可編程資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的裝置。 這些計算機程式指令也可儲存在能引導計算機或其他可編程資料處理設備以特定方式工作的計算機可讀儲存器中,使得儲存在該計算機可讀儲存器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能。 這些計算機程式指令也可裝載到計算機或其他可編程資料處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的步驟。 在一個典型的配置中,計算設備包括一個或多個處理器 (CPU)、輸入/輸出介面、網路介面和內存記憶體。 內存記憶體可能包括計算機可讀媒體中的非永久性儲存器,隨機存取記憶體(RAM) 及/或非揮發性內存記憶體等形式,如唯讀記憶體 (ROM) 或快閃內存記憶體(flash RAM)。內存記憶體是計算機可讀媒體的示例。 計算機可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是計算機可讀指令、資料結構、程式的模組或其他資料。計算機的儲存媒體的例子包括,但不限於相變內存記憶體 (PRAM)、靜態隨機存取記憶體 (SRAM)、動態隨機存取記憶體 (DRAM)、其他類型的隨機存取記憶體 (RAM)、唯讀記憶體 (ROM)、電可抹除可編程唯讀記憶體 (EEPROM)、快閃記憶體或其他內存記憶體技術、唯讀光碟唯讀記憶體 (CD-ROM)、數位多功能光碟 (DVD) 或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,計算機可讀媒體不包括暫存電腦可讀媒體 (transitory media),如調變的資料信號和載波。 還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要件的過程、方法、商品或者設備不僅包括那些要件,而且還包括沒有明確列出的其他要件,或者是還包括為這種過程、方法、商品或者設備所固有的要件。在沒有更多限制的情況下,由語句“包括一個……”限定的要件,並不排除在包括所述要件的過程、方法、商品或者設備中還存在另外的相同要件。 本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的例程、程式、物件、組件、資料結構等等。也可以在分佈式計算環境中實踐本申請,在這些分佈式計算環境中,由透過通信網路而被連接的遠程處理設備來執行任務。在分佈式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠程計算機儲存媒體中。 本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。 以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的申請專利範圍的範圍之內。
401‧‧‧第一確定單元
402‧‧‧第二確定單元
403‧‧‧第一哈希值確定子單元
404‧‧‧第一狀態值確定子單元
405‧‧‧序列化資料確定子單元
406‧‧‧第二哈希值確定子單元
407‧‧‧第一拼接子單元
408‧‧‧第二拼接子單元
501‧‧‧判斷單元
502‧‧‧一致性確定單元
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中: 圖1為本申請提供的一種哈希樹的資料結構示意圖; 圖2為本申請提供的一種資料庫狀態確定方法的實現流程示意圖; 圖3為本申請提供的一種資料庫一致性驗證方法的實現流程示意圖; 圖4為本申請提供的一種資料庫狀態確定方法的實現流程示意圖; 圖5為本申請提供的一種資料庫狀態確定裝置的具體結構示意圖; 圖6為本申請提供的一種資料庫一致性驗證裝置的具體結構示意圖。
Claims (18)
- 一種資料庫狀態確定方法,包括: 確定對目標資料庫執行的狀態遷移操作; 根據執行該狀態遷移操作前該目標資料庫的狀態值以及該狀態遷移操作,確定執行該狀態遷移操作後該目標資料庫的狀態值,該狀態值用於表徵該目標資料庫的狀態。
- 如申請專利範圍第1項所述方法,確定對目標資料庫執行的狀態遷移操作,具體包括: 確定用於對目標資料庫執行該狀態遷移操作的資料操作物件; 根據執行該狀態遷移操作前該目標資料庫的狀態值以及該狀態遷移操作,確定執行該狀態遷移操作後該目標資料庫的狀態值,具體包括: 根據執行該狀態遷移操作前該目標資料庫的狀態值,以及確定的該資料操作物件,確定執行該狀態遷移操作後該目標資料庫的狀態值。
- 如申請專利範圍第2項所述方法,該目標資料庫為區塊鏈資料庫,根據執行該狀態遷移操作前該目標資料庫的狀態值,以及確定的該資料操作物件,確定執行該狀態遷移操作後該目標資料庫的狀態值,具體包括: 確定該資料操作物件的哈希值; 根據確定的該資料操作物件的哈希值,以及執行該狀態遷移操作前該目標資料庫的狀態值,確定執行該狀態遷移操作後該目標資料庫的狀態值。
- 如申請專利範圍第3項所述方法,確定該資料操作物件的哈希值,具體包括: 對該資料操作物件進行序列化,得到序列化資料; 確定該序列化資料的哈希值,將該序列化資料的哈希值作為該資料操作物件的哈希值。
- 如申請專利範圍第4項所述方法,若存在不止一個用於對目標資料庫執行該狀態遷移操作的資料操作物件,則對該資料操作物件進行序列化,得到序列化資料,具體包括: 若各該資料操作物件執行狀態遷移操作的順序是固定的,則按照執行狀態遷移操作的順序,對各該資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料; 若各該資料操作物件執行狀態遷移操作的順序是不固定的,則按照第一預定順序,對各該資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料。
- 如申請專利範圍第5項所述方法,對各該資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料,具體包括: 在對各該資料操作物件對應的序列化資料進行拼接時,將預設分割字符設置於至少兩個序列化資料之間,對設置預設分割字符後的各序列化資料進行拼接,得到拼接後的序列化資料。
- 如申請專利範圍第3項所述方法,根據確定的該資料操作物件的哈希值,以及執行該狀態遷移操作前該目標資料庫的狀態值,確定執行該狀態遷移操作後該目標資料庫的狀態值,具體包括: 按照第二預定順序,對該資料操作物件的哈希值和執行該狀態遷移操作前該目標資料庫的狀態值進行拼接,得到拼接資料; 確定該拼接資料的哈希值,將該拼接資料的哈希值作為執行該狀態遷移操作後該目標資料庫的狀態值。
- 如申請專利範圍第1-7項任一項所述方法,該目標資料庫為區塊鏈中任一節點對應的資料庫。
- 如申請專利範圍第1項所述方法,該狀態值用於唯一地表徵該目標資料庫中儲存的資料的特徵。
- 一種資料庫一致性驗證方法,包括: 判斷待校驗的第一資料庫和第二資料庫的狀態值是否相同,該第一資料庫和該第二資料庫的狀態值是透過申請專利範圍第1-8項任一項所述方法確定的; 若該第一資料庫和該第二資料庫的狀態值相同,則確定該第一資料庫和該第二資料庫的狀態一致。
- 一種資料庫狀態確定裝置,包括: 第一確定單元,確定對目標資料庫執行的狀態遷移操作; 第二確定單元,根據執行該狀態遷移操作前該目標資料庫的狀態值,以及確定的該狀態遷移操作,確定執行該狀態遷移操作後該目標資料庫的狀態值,該狀態值用於表徵該目標資料庫的狀態。
- 如申請專利範圍第11項所述裝置,該第一確定單元,確定用於對目標資料庫執行該狀態遷移操作的資料操作物件; 該第二確定單元,根據執行該狀態遷移操作前該目標資料庫的狀態值,以及確定的該資料操作物件,確定執行該狀態遷移操作後該目標資料庫的狀態值。
- 如申請專利範圍第12項所述裝置,該第二確定單元具體包括第一哈希值確定子單元和第一狀態值確定子單元,其中: 該第一哈希值確定子單元,確定該資料操作物件的哈希值; 該第一狀態值確定子單元,根據確定的該資料操作物件的哈希值,以及執行該狀態遷移操作前該目標資料庫的狀態值,確定執行該狀態遷移操作後該目標資料庫的狀態值。
- 如申請專利範圍第13項所述裝置,該第一哈希值確定子單元,具體包括序列化資料確定子單元和第二哈希值確定子單元,其中: 該序列化資料確定子單元,對該資料操作物件進行序列化,得到序列化資料; 該第二哈希值確定子單元,確定該序列化資料的哈希值,將該序列化資料的哈希值作為該資料操作物件的哈希值。
- 如申請專利範圍第14項所述裝置,該序列化資料確定子單元,具體包括第一拼接子單元和第二拼接子單元: 該第一拼接子單元,在存在不止一個用於對目標資料庫執行該狀態遷移操作的資料操作物件,且各該資料操作物件執行狀態遷移操作的順序確定時,按照執行狀態遷移操作的順序,對各該資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料; 該第二拼接子單元,在存在不止一個用於對目標資料庫執行該狀態遷移操作的資料操作物件,且各該資料操作物件執行狀態遷移操作的順序不確定時,按照第一預定順序,對各該資料操作物件對應的序列化資料進行拼接,得到拼接後的序列化資料。
- 如申請專利範圍第13項所述裝置,該第一狀態值確定子單元,按照第二預定順序,對該資料操作物件的哈希值和執行該狀態遷移操作前該目標資料庫的狀態值進行拼接,得到拼接資料; 確定該拼接資料的哈希值,將該拼接資料的哈希值作為執行該狀態遷移操作後該目標資料庫的狀態值。
- 如申請專利範圍第11-16項任一項所述裝置,該目標資料庫為區塊鏈中任一節點對應的資料庫。
- 一種資料庫一致性驗證裝置,包括: 判斷單元,判斷待校驗的第一資料庫和第二資料庫的狀態值是否相同,該第一資料庫和該第二資料庫的狀態值是透過申請專利範圍第10-16項任一項所述裝置確定的; 一致性確定單元,在確定該第一資料庫和該第二資料庫的狀態值相同時,則確定該第一資料庫和該第二資料庫的狀態一致。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710377721.8 | 2017-05-25 | ||
??201710377721.8 | 2017-05-25 | ||
CN201710377721.8A CN107247749B (zh) | 2017-05-25 | 2017-05-25 | 一种数据库状态确定方法、一致性验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201901484A true TW201901484A (zh) | 2019-01-01 |
TWI710916B TWI710916B (zh) | 2020-11-21 |
Family
ID=60017352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107108222A TWI710916B (zh) | 2017-05-25 | 2018-03-12 | 資料庫狀態確定方法、一致性驗證方法及裝置 |
Country Status (14)
Country | Link |
---|---|
US (1) | US10789243B2 (zh) |
EP (1) | EP3557452B1 (zh) |
JP (1) | JP6921206B2 (zh) |
KR (1) | KR102231058B1 (zh) |
CN (1) | CN107247749B (zh) |
AU (1) | AU2018274424B2 (zh) |
BR (1) | BR112019014478A2 (zh) |
CA (1) | CA3049831C (zh) |
MX (1) | MX2019008383A (zh) |
PH (1) | PH12019501637A1 (zh) |
RU (1) | RU2725760C1 (zh) |
SG (1) | SG11201906495TA (zh) |
TW (1) | TWI710916B (zh) |
WO (1) | WO2018214897A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247749B (zh) | 2017-05-25 | 2020-08-25 | 创新先进技术有限公司 | 一种数据库状态确定方法、一致性验证方法及装置 |
GB201713046D0 (en) * | 2017-08-15 | 2017-09-27 | Nchain Holdings Ltd | Computer-implemented system and method |
CN107807982B (zh) * | 2017-10-27 | 2020-09-18 | 中国农业银行股份有限公司 | 一种异构数据库的一致性校验方法及装置 |
CN107729541A (zh) * | 2017-10-31 | 2018-02-23 | 咪咕数字传媒有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
US11146407B2 (en) * | 2018-04-17 | 2021-10-12 | Digicert, Inc. | Digital certificate validation using untrusted data |
CN108615156A (zh) * | 2018-05-09 | 2018-10-02 | 上海魅联信息技术有限公司 | 一种基于区块链的数据结构 |
CN109345159A (zh) * | 2018-08-21 | 2019-02-15 | 深圳市口袋网络科技有限公司 | 一种数据写入方法及装置、设备、存储介质 |
CN109446211B (zh) * | 2018-10-08 | 2020-08-14 | 联动优势科技有限公司 | 一种一致性校验方法及装置 |
TWI710238B (zh) * | 2018-12-17 | 2020-11-11 | 財團法人國家實驗研究院 | 分散式儲存系統之同步刪除方法 |
US11044096B2 (en) * | 2019-02-04 | 2021-06-22 | Accenture Global Solutions Limited | Blockchain based digital identity generation and verification |
US11122091B2 (en) * | 2019-04-16 | 2021-09-14 | FireMon, LLC | Network security and management system |
CN110175758A (zh) * | 2019-05-08 | 2019-08-27 | 杭州宇链科技有限公司 | 一种基于区块链的链上多层自动分润方法 |
KR102620584B1 (ko) * | 2019-05-17 | 2024-01-02 | 삼성에스디에스 주식회사 | 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법 |
EP3669280B1 (en) | 2019-07-11 | 2021-09-08 | Advanced New Technologies Co., Ltd. | Shared blockchain data storage |
EP3669281B1 (en) * | 2019-07-11 | 2024-04-03 | Advanced New Technologies Co., Ltd. | Shared blockchain data storage |
WO2019179540A2 (en) | 2019-07-11 | 2019-09-26 | Alibaba Group Holding Limited | Shared blockchain data storage |
CN112559484A (zh) * | 2019-09-25 | 2021-03-26 | 伊姆西Ip控股有限责任公司 | 用于管理数据对象的方法、设备和计算机程序产品 |
CN111639952A (zh) * | 2020-05-28 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 基于区块链的退货核验方法、系统、服务器及终端 |
CN112463132B (zh) * | 2020-11-13 | 2023-06-06 | 四川新网银行股份有限公司 | 一种数据库切换工具及切换方法 |
CN113420036A (zh) * | 2021-06-22 | 2021-09-21 | 南方电网数字电网研究院有限公司 | 一种电网监控系统内存库关系库一致性校验方法 |
US20230185670A1 (en) * | 2021-12-13 | 2023-06-15 | Scality, S.A. | Method and apparatus for monitoring storage system replication |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03152992A (ja) | 1989-10-27 | 1991-06-28 | W R Grace & Co | 印刷回路板及びその製造方法 |
CN1054886A (zh) | 1990-03-19 | 1991-10-02 | 湖南省森林植物园 | 一种固体碳酸饮料的生产工艺 |
US9824107B2 (en) * | 2006-10-25 | 2017-11-21 | Entit Software Llc | Tracking changing state data to assist in computer network security |
CN101957858A (zh) * | 2010-09-27 | 2011-01-26 | 中兴通讯股份有限公司 | 数据比对方法和装置 |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN102662946B (zh) * | 2012-02-20 | 2015-10-07 | 北京地拓科技发展有限公司 | 一种自动监测数据库中记录变化的方法和系统 |
US9697238B2 (en) * | 2012-03-01 | 2017-07-04 | Microsoft Technology Licensing, Llc | Drift detection and notification |
US9032247B2 (en) * | 2012-07-26 | 2015-05-12 | Apple Inc. | Intermediate database management layer |
JP2014059757A (ja) * | 2012-09-18 | 2014-04-03 | International Business Maschines Corporation | 木構造を有するデータを処理する装置、処理方法およびプログラム |
CN103164523A (zh) * | 2013-03-19 | 2013-06-19 | 华为技术有限公司 | 数据一致性检查方法、装置及系统 |
CN103345521B (zh) * | 2013-07-17 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN103678583B (zh) * | 2013-12-11 | 2017-07-21 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
CN104731792B (zh) * | 2013-12-19 | 2018-09-21 | 中国银联股份有限公司 | 数据库一致性校验方法及系统、定位数据库差异的方法及系统 |
CN105447046A (zh) * | 2014-09-02 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据一致性处理方法、装置和系统 |
CN104346454B (zh) * | 2014-10-30 | 2017-12-05 | 上海新炬网络技术有限公司 | 基于Oracle数据库的数据一致性校验方法 |
US9436923B1 (en) * | 2015-02-26 | 2016-09-06 | Skuchain, Inc. | Tracking unitization occurring in a supply chain |
WO2016161073A1 (en) * | 2015-03-31 | 2016-10-06 | Nasdaq, Inc. | Systems and methods of blockchain transaction recordation |
CN106484690A (zh) * | 2015-08-24 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种数据迁移的验证方法及装置 |
US9390154B1 (en) * | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
JP6452156B2 (ja) * | 2015-09-03 | 2019-01-16 | 日本電信電話株式会社 | 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム |
US20170116693A1 (en) * | 2015-10-27 | 2017-04-27 | Verimatrix, Inc. | Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger |
CN105488675B (zh) * | 2015-11-25 | 2019-12-24 | 布比(北京)网络技术有限公司 | 一种区块链的分布式共享总账构建方法 |
CN105976232B (zh) * | 2016-06-24 | 2020-04-28 | 深圳前海微众银行股份有限公司 | 资产交易方法和装置 |
CN106250721A (zh) * | 2016-07-28 | 2016-12-21 | 杭州云象网络技术有限公司 | 一种基于区块链的电子版权保护方法 |
CN106230808A (zh) | 2016-07-28 | 2016-12-14 | 杭州云象网络技术有限公司 | 一种基于区块链技术的个人征信系统建设方法 |
CN106357405A (zh) * | 2016-09-19 | 2017-01-25 | 弗洛格(武汉)信息科技有限公司 | 一种基于区块链技术一致性算法的数据管理方法及系统 |
CN107247749B (zh) * | 2017-05-25 | 2020-08-25 | 创新先进技术有限公司 | 一种数据库状态确定方法、一致性验证方法及装置 |
-
2017
- 2017-05-25 CN CN201710377721.8A patent/CN107247749B/zh active Active
-
2018
- 2018-03-12 TW TW107108222A patent/TWI710916B/zh active
- 2018-05-23 CA CA3049831A patent/CA3049831C/en active Active
- 2018-05-23 MX MX2019008383A patent/MX2019008383A/es unknown
- 2018-05-23 RU RU2019121699A patent/RU2725760C1/ru active
- 2018-05-23 KR KR1020197020615A patent/KR102231058B1/ko active IP Right Grant
- 2018-05-23 JP JP2019538236A patent/JP6921206B2/ja active Active
- 2018-05-23 EP EP18805650.1A patent/EP3557452B1/en active Active
- 2018-05-23 SG SG11201906495TA patent/SG11201906495TA/en unknown
- 2018-05-23 BR BR112019014478-1A patent/BR112019014478A2/pt active Search and Examination
- 2018-05-23 AU AU2018274424A patent/AU2018274424B2/en active Active
- 2018-05-23 WO PCT/CN2018/087966 patent/WO2018214897A1/zh unknown
-
2019
- 2019-07-12 PH PH12019501637A patent/PH12019501637A1/en unknown
- 2019-10-28 US US16/665,200 patent/US10789243B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
SG11201906495TA (en) | 2019-08-27 |
AU2018274424B2 (en) | 2020-07-02 |
KR20190096391A (ko) | 2019-08-19 |
JP6921206B2 (ja) | 2021-08-18 |
CA3049831A1 (en) | 2018-11-29 |
CA3049831C (en) | 2021-12-14 |
US10789243B2 (en) | 2020-09-29 |
EP3557452A1 (en) | 2019-10-23 |
US20200057760A1 (en) | 2020-02-20 |
EP3557452A4 (en) | 2020-01-22 |
AU2018274424A1 (en) | 2019-08-01 |
JP2020509451A (ja) | 2020-03-26 |
BR112019014478A2 (pt) | 2020-05-26 |
CN107247749B (zh) | 2020-08-25 |
MX2019008383A (es) | 2019-09-11 |
EP3557452B1 (en) | 2021-09-15 |
PH12019501637A1 (en) | 2020-03-16 |
KR102231058B1 (ko) | 2021-03-25 |
TWI710916B (zh) | 2020-11-21 |
RU2725760C1 (ru) | 2020-07-06 |
WO2018214897A1 (zh) | 2018-11-29 |
CN107247749A (zh) | 2017-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI710916B (zh) | 資料庫狀態確定方法、一致性驗證方法及裝置 | |
TWI718375B (zh) | 基於區塊鏈的資料處理方法及設備 | |
JP6804668B2 (ja) | ブロックデータ検証方法および装置 | |
JP6675518B1 (ja) | サービス要求を処理するための方法およびデバイス | |
WO2020233146A1 (zh) | 数据操作记录的存储方法、系统、装置及设备 | |
US11144286B2 (en) | Generating synchronous digital circuits from source code constructs that map to circuit implementations | |
TW201944314A (zh) | 配置支付流程、執行支付流程的方法、裝置及設備 | |
CN111198868A (zh) | 一种智能分库实时数据迁移方法和装置 | |
CN109241026A (zh) | 数据管理的方法、装置及系统 | |
CN111767556A (zh) | 区块链中实现隐私保护的方法及节点、存储介质 | |
WO2020168901A1 (zh) | 一种数据计算方法及引擎 | |
US20200167527A1 (en) | Method, device, and apparatus for word vector processing based on clusters | |
US20170052856A1 (en) | Transactional distributed lifecycle management of diverse application data structures | |
US9576085B2 (en) | Selective importance sampling | |
US20150106781A1 (en) | Verification of uml state machines | |
US9542165B2 (en) | Model to Petri-Net transformation | |
WO2020063181A1 (zh) | 一种数据处理方法、装置及设备 | |
TWI662486B (zh) | 檢查分布式業務處理完整度的方法及裝置 | |
CN104915352B (zh) | 一种验证MapReduce环境下处理数据正确性的方法和装置 | |
CN112749152A (zh) | 智能合约的数据迁移方法、装置及存储介质 | |
CN107135137B (zh) | 网络群组识别方法及装置 | |
CN107391223A (zh) | 一种文件处理方法及装置 | |
CN118331931B (zh) | 一种数据溯源方法、装置及设备 | |
US10387229B2 (en) | Reducing cost of deserialization by skipping unused array regions | |
CN118069713A (zh) | 区块链中的交易读写集获取方法及区块链节点 |