TW201804346A - 針對資料庫的資料修改請求處理方法和裝置 - Google Patents

針對資料庫的資料修改請求處理方法和裝置 Download PDF

Info

Publication number
TW201804346A
TW201804346A TW106119326A TW106119326A TW201804346A TW 201804346 A TW201804346 A TW 201804346A TW 106119326 A TW106119326 A TW 106119326A TW 106119326 A TW106119326 A TW 106119326A TW 201804346 A TW201804346 A TW 201804346A
Authority
TW
Taiwan
Prior art keywords
data
log
database
request
modification request
Prior art date
Application number
TW106119326A
Other languages
English (en)
Other versions
TWI701567B (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 TW201804346A publication Critical patent/TW201804346A/zh
Application granted granted Critical
Publication of TWI701567B publication Critical patent/TWI701567B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

Landscapes

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

Abstract

本申請案公開了一種針對資料庫的資料修改請求處理方法及裝置,用以解決現有技術中針對資料庫的資料修改請求處理方式耗時較長的問題。所述方法包括:接收針對資料庫的資料修改請求;根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料;在對所述第一日誌進行持久化處理後,返回所述資料修改請求對應的修改結果。

Description

針對資料庫的資料修改請求處理方法和裝置
本申請案涉及資料庫技術領域,尤其涉及一種針對資料庫的資料修改請求處理方法及裝置。
資料庫是一套運行在伺服器上的軟體,用於儲存、查詢、管理大量資料。資料庫的日誌是資料庫使用的一種儲存內容,其可以用於記錄資料庫中曾經發生的操作,比如,資料修改等操作。在資料庫重新開機時,可以使用日誌來恢復之前的正常運行狀態;資料庫將日誌發送給另一個資料庫,則另一個資料庫也可以利用接收到的日誌恢復出於發送日誌的資料庫完全一樣的副本,這就是資料庫主備同步的一種方法。其中,日誌中包含有包含修改後的資料、修改前的資料,甚至在某些場景下還包含與被修改資料相關的其他資料等。
在現有技術中,使用者可以向資料庫發送的資料修改請求,資料庫根據資料修改請求,相應地修改資料以及生成日誌,並對生成的日誌進行持久化處理(比如,保存在硬碟中),然後向使用者返回該資料修改請求對應的修改結果(比如,告知使用者修改成功),需要說明的是,生 成的日誌一般是暫態的,進行持久化處理是為了防止斷電或重啟等意外丟失。進一步地,若資料庫有備資料庫,則資料庫還會先將生成的日誌同步給備資料庫,再返回該資料修改請求對應的修改結果。
但是,無論是對生成的日誌進行持久化處理,還是將生成的日誌同步給備資料庫,都需要花費不少時間,這導致現有技術中針對資料庫的資料修改請求處理方式耗時較長。
本申請案實施例提供一種針對資料庫的資料修改請求處理方法及裝置,用以解決現有技術中針對資料庫的資料修改請求處理方式耗時較長的問題。
本申請案實施例採用下述技術方案:本申請案實施例提供的一種針對資料庫的資料修改請求處理方法,包括:接收針對資料庫的資料修改請求;根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料;在對所述第一日誌進行持久化處理後,返回所述資料修改請求對應的修改結果。
本申請案實施例提供的一種針對資料庫的資料修改請 求處理裝置,包括:接收模組,接收針對資料庫的資料修改請求;處理模組,根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料;返回模組,在對所述第一日誌進行持久化處理後,返回所述資料修改請求對應的修改結果。
本申請案實施例採用的上述至少一個技術方案能夠達到以下有益效果:對於任一資料修改請求,相比於現有技術中生成一種包含修改後的資料、修改前的資料,以及與被修改資料相關的其他資料的完整日誌,本申請案的方案可以生成兩種內容不全相同的不一定完整的日誌,即第一日誌和第二日誌。第一資料即為修改後的資料,第二資料即為修改前的資料,第一日誌中可以只包含第一資料,而不包含第二資料以及與被修改資料相關的其他資料。由於僅根據修改後的資料,而無需根據第二資料以及與被修改資料相關的其他資料,即可恢復資料庫狀態或主備同步,則在對第一日誌進行持久化處理後,即可向使用者返回修改結果,由於第一日誌的資料量少於完整日誌的資料量,則持久化處理所耗費時間也相對少,可以減少針對資料庫的資料修改請求處理時間,因此,可以部分或全部地解決現有技術中的問題。
701‧‧‧接收模組
702‧‧‧處理模組
703‧‧‧返回模組
704‧‧‧發送裝置
705‧‧‧同步模組
此處所說明的附圖用來提供對本申請案的進一步理解,構成本申請案的一部分,本申請案的示意性實施例及其說明用於解釋本申請案,並不構成對本申請案的不當限定。在附圖中:圖1為本申請案實施例提供的一種針對資料庫的資料修改請求處理方法的流程示意圖;圖2為現有技術提供的一種實際應用場景下,資料修改請求處理流程示意圖;圖3為本申請案實施例提供的一種實際應用場景下,資料修改請求處理流程示意圖;圖4為本申請案實施例提供的一種實際應用場景下,向諸如資料分析系統等外部系統發送日誌的流程示意圖;圖5為本申請案實施例提供的一種實際應用場景下,備資料庫對接收到的主資料庫同步的第一日誌的處理流程示意圖;圖6為本申請案實施例提供的一種實際應用場景(沿用圖2~圖4中的場景)下,本申請案的方案所涉及的各端互動示意圖;圖7為本申請案實施例提供的一種針對資料庫的資料修改請求處理裝置的結構示意圖。
為使本申請案的目的、技術方案和優點更加清楚,下 面將結合本申請案具體實施例及相應的附圖對本申請案技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請案一部分實施例,而不是全部的實施例。基於本申請案中的實施例,本領域普通技術人員在沒有做出進步性勞動前提下所獲得的所有其他實施例,都屬於本申請案保護的範圍。
圖1為本申請案實施例提供的一種針對資料庫的資料修改請求處理方法的流程示意圖。
圖1中的流程的執行主體可以是所述資料庫,或者不屬於所述資料庫但可以連接所述資料庫的功能模組,本申請案對所述資料庫和/或所述功能模組所處設備並不做限定,所述設備包括但不限於:作為伺服器或客戶機的個人電腦、大中型電腦、電腦集群、手機、平板電腦、智慧手錶、車載移動台、個人電腦等。
圖1中的流程可以包括以下步驟:
S101:接收針對資料庫的資料修改請求。
在本申請案實施例中,資料修改請求是用於請求修改資料庫中資料的請求,其可以是由資料庫的使用者手動發送的,或者,通過執行自動化腳本自動發送的。資料修改請求包括以下請求中的至少一種:資料更新請求、資料刪除請求、資料增加請求。
本申請案對資料修改請求的格式並不做限定,其可以是結構化查詢語言(Structured Query Language,SQL)語句格式,也可以是資料庫支援的其他格式。 S102:根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料。
在本申請案實施例中,資料修改請求可以表明請求進行怎麼樣的資料修改操作。具體地,資料修改請求表明了請求將資料庫中的第二資料修改為第一資料。當然,在實際應用中,資料修改請求也可以是一個不那麼具體的請求,比如,某個資料修改請求可以是表明請求將資料庫中的總資料量減少一半等,具體減少哪些資料,可以由資料庫按照一定的策略決定。
在本申請案實施例中,第一資料或第二資料也可以為空。比如,對於資料刪除請求,第二資料不為空,而第一資料為空;對於資料增加請求,第一資料不為空,而第二資料為空;而對於資料更新請求,第一資料和第二資料均不為空。
本申請案對於第一資料和第二資料的具體內容並不做限定,其可以是資料庫記錄、或資料表、或資料索引、或資料視圖等任一類資料中的部分或全部。
在本申請案實施例中,如果要根據日誌進行資料庫恢復或主備同步,則日誌中至少要包含第一資料。至於第二資料以及與被修改資料相關的其他資料,對於資料庫恢復或主備同步的目的而言,則是可有可無,因此,它們可以不包含在日誌中。本申請案的方案正是基於這樣的思路, 解決現有技術中的問題的,現有技術中只有一種日誌(為了便於描述,稱為:完整日誌),第一資料和第二資料均是包含在完整日誌中的,而本申請案的方案則提供了第一日誌和第二日誌這兩種日誌,其中,第一日誌可以是專門用於資料庫恢復或主備同步的精簡日誌,其較佳地可以只包含第一資料(從而可以使得第一日誌的資料量儘量地小),第二日誌可以是完整日誌或者用於對第一日誌進行補充的不完整日誌。比如,第二日誌可以既包含第二資料,也包含第一資料,甚至還可以包含與被修改資料相關的其他資料等,第二日誌也可以只包含第二資料。
在本申請案實施例中,第二日誌或第二日誌結合第一日誌也可以用於資料庫恢復或主備同步,進一步地,還可以用於除了資料庫恢復或主備同步以外的工作,比如,用於對資料庫中的資料變化情況進行即時分析等。
在本申請案實施例中,對步驟S102中“將第二資料修改為第一資料”與“生成第一日誌和第二日誌”這兩個子步驟的執行順序並不做限定。一般地,是先執行修改操作,再生成對應的日誌;但是,為了防止執行修改操作時發生斷電等異常導致丟失日誌,在實際應用中,也可以先生成日誌,再執行對應的修改操作,這樣的話,即使執行修改操作時發生斷電等異常,也可以根據恢復正常後的資料庫中資料的實際狀態轉返日誌,有利於保證轉返後的日誌中既沒有丟失應有的日誌也沒有包含產生錯誤或多餘的日誌。
S103:在對所述第一日誌進行持久化處理後,返回所述資料修改請求對應的修改結果。
在本申請案實施例中,在步驟S102中生成的第一日誌和第二日誌具體可以是在記憶體或快取中生成,生成後是處於一種暫時的、非穩定的狀態,一般地,若此時資料庫發生重啟或斷電,則生成的第一日誌和第二日誌也將丟失,進而後續也無法進行資料庫恢復或主備同步或實現其他需要用到日誌的功能。為了防止出現這種情況,可以先對第一日誌進行持久化處理,再向資料修改請求的發送方返回對應的修改結果,以保證即使出現這種情況,至少還可以利用持久化處理過的第一日誌進行資料庫恢復或主備同步。
在本申請案實施例中,基於類似的理由,對於第二日誌,也可以對其進行持久化處理。但是對第二日誌進行的持久化處理可以不放在資料修改請求處理流程的關鍵路徑上,具體地,圖1中的流程不包含“對第二日誌進行持久化處理”,圖1中的流程的任一步驟的執行都不必以“對第二日誌進行持久化處理”為前提。
例如,可以用主要的執行緒或進程執行圖1中的流程,而用另一個執行緒(比如,後臺執行緒等)或進程對第二日誌進行持久化處理,這兩部分動作可以互不干涉。
在本申請案實施例中,對返回的修改結果包含的具體內容並不做限定。修改結果可以只包含對是否修改成功的說明內容,也可以包含對資料具體被修改成怎樣的說明內 容等。
需要說明的是,圖1中的流程的各步驟的執行主體均可以是同一設備,或者,也可以是不同設備。比如,步驟S101和步驟S102的執行主體可以為設備1,步驟S103的執行主體可以為設備2;又比如,步驟S101的執行主體可以為設備1,步驟S102和步驟S103的執行主體可以為設備2;等等。
通過上述方法,對於任一資料修改請求,相比於現有技術中生成一種包含修改後的資料、修改前的資料,以及與被修改資料相關的其他資料的完整日誌,本申請案的方案可以生成兩種內容不全相同的不一定完整的日誌,即第一日誌和第二日誌。第一資料即為修改後的資料,第二資料即為修改前的資料,第一日誌中可以只包含第一資料,而不包含第二資料以及與被修改資料相關的其他資料。由於僅根據修改後的資料,而無需根據第二資料以及與被修改資料相關的其他資料,即可恢復資料庫狀態或主備同步,則在對第一日誌進行持久化處理後,即可向使用者返回修改結果,由於第一日誌的資料量少於完整日誌的資料量,則持久化處理所耗費時間也相對少,可以減少針對資料庫的資料修改請求處理時間,因此,可以部分或全部地解決現有技術中的問題。
不僅如此,由於在本申請案的方案中還生成了第二日誌,第二日誌可以完整日誌或用於對第一日誌進行補充的不完整日誌。因此,相比於現有技術中的日誌,總的日誌 內容上也不會缺少,而且用於生成日誌所耗費的資源也相差無幾,現有技術能夠基於日誌實現的功能,本申請案的方案仍然能夠實現。
基於上述方法,本申請案實施例還提供了上述方法的一些具體實施方案,以及擴展方案,下面進行說明。
在本申請案實施例中,前面提到了對第一日誌或第二日誌進行持久化處理。為了便於理解,對持久化處理進行說明。持久化處理可以包括:保存至非揮發性儲存裝置中,更具體地,可以是以一定格式記錄至檔中,再將檔保存至非揮發性儲存裝置中。其中,非揮發性儲存裝置具體可以指斷電不丟失已儲存資料的儲存裝置,比如,硬碟,唯讀記憶體(ROM)、可擦除可程式設計唯讀記憶體(EPROM)、電可擦除唯讀記憶體(EEPROM)、快閃記憶體等。
例如,可以將生成的記錄至文本中,在將文本保存至硬碟中,等等。
在本申請案實施例中,根據前面的說明可知,除了用於主備資料庫同步和資料庫恢復以外,日誌還可以有其他用途,比如,用於對資料分析等。第二日誌可以用於實現所述其他用途,下面進行具體說明。
在某些應用場景下,資料庫連接有諸如資料分析系統等外部系統,資料庫的日誌可以提供給外部系統用於實現其他用途。以資料分析系統為例,資料分析系統可以根據資料庫發送的日誌,對資料庫中的資料變化情況進行即時 或非即時的分析,以及將分析結果提供給相關使用者或機構等。
為了提供資料分析結果的準確性和全面性,資料分析系統需要日誌中包含有修改後的資料(亦即,第一資料),以及包含修改前的資料(亦即,第二資料),甚至還需要包含其他相關資料(比如,與被修改的資料屬於相同資料庫記錄的其他資料等)。
在本申請案實施例中,第二日誌可以滿足資料分析系統的需求。具體地,在生成第二日誌後或對第二日誌進行持久化處理後,可以將第二日誌發送給資料分析系統,以便於資料分析系統根據第二日誌進行資料分析。本申請案對資料分析系統的具體分析內容並不做限定。
在本申請案實施例中,為了進一步地提高本申請案的方案的強韌性,在對第一日誌進行持久化處理後,可以暫時不返回修改結果,而是將第一日誌同步給備資料庫或其他設備後,再返回修改結果。如此,一方面是便於備資料庫及時同步修改,另一方面相當於是對第一日誌進行了備份,即使對第一日誌進行持久化處理時所使用的儲存裝置發生故障,仍然可以從備資料庫或其他設備找回第一日誌。
例如,當資料庫為主資料庫時,對於步驟S103,返回所述資料修改請求對應的修改結果前,還可以執行:將所述第一日誌同步給所述資料庫的備資料庫,以便於所述備資料庫根據所述第一日誌,同步所述修改。
根據上面的分析,在一種實際應用場景下,第一日誌是只包含第一資料的精簡日誌,第二日誌是至少包含第一資料和第二資料的完整日誌,基於圖2和圖3,對現有技術和本申請案的方案的處理流程進行對比分析。
圖2為現有技術提供的一種實際應用場景下,資料修改請求處理流程示意圖。假定圖2中的流程的執行主體為某主資料庫,該流程可以包括以下步驟:
S201:主資料庫接收使用者發送的資料修改請求。
S202:主資料庫根據資料修改請求,執行相應的資料修改操作。
S203:主資料庫根據資料修改請求或執行的資料修改操作,在記憶體中生成第二日誌。
S204:主資料庫對生成的第二日誌進行持久化處理。
S205:主資料庫將持久化處理的第二日誌同步給備資料庫。
S206:主資料庫應答使用者修改成功。
若步驟S201~S205中任一步驟執行出現異常,則在消除該異常前可以不執行步驟S206。
圖3為本申請案實施例提供的一種實際應用場景下,資料修改請求處理流程示意圖。假定圖3中的流程的執行主體也為某主資料庫,該流程可以包括以下步驟:
S301:主資料庫接收使用者發送的資料修改請求。
S302:主資料庫根據資料修改請求,執行相應的資料修改操作。
S303:主資料庫根據資料修改請求或執行的資料修改操作,在記憶體中生成第一日誌和第二日誌。
S304:主資料庫對生成的第一日誌進行持久化處理。
S305:主資料庫將持久化處理的第一日誌同步給備資料庫。
S306:主資料庫應答使用者修改成功。
若步驟S301~S305中任一步驟執行出現異常,則在消除該異常前可以不執行步驟S306。
通過對圖2和圖3中流程的比較可知,由於第一日誌的資料量小於第二日誌的資料量,因此,本申請案的方案相比於現有技術,減少了在應答使用者修改成功之前,所需進行持久化處理的日誌資料量,從而可以減少資料修改請求處理時間。
不僅如此,在圖2和圖3的流程中,主資料庫都對被資料庫進行了日誌同步。同步日誌也需要佔用相應的頻寬和花費相應的時間,由於第一日誌的資料量小於第二日誌的資料量,因此,本申請案的方案相比於現有技術,還可以減少同步日誌所佔用的頻寬和/或花費的時間。
本申請案實施例還提供了一種實際應用場景下,向諸如資料分析系統等外部系統發送日誌的流程示意圖,如圖4所示。假定圖4中的流程的執行主體也為某主資料庫,該流程可以包括以下步驟:
S401:主資料庫檢測記憶體中新生成的第二日誌。
S402:主資料庫獲取新生成的第二日誌。
S403:主資料庫對獲取的第二日誌進行持久化處理。
S404:主資料庫將第二日誌發送給預定的外部系統。
在本申請案實施例中,備資料庫在接收到主資料庫同步的日誌後,也可以進行持久化處理和/或發送給外部系統等操作,但是,具體操作過程與現有技術有所區別。下面對備資料庫的相關操作進行說明。
在現有技術中,備資料庫接收到的是完整日誌(亦即,上例中的第二日誌),因此,可以直接對接收到的日誌進行持久化處理和/或發送給外部系統等操作。
而在本申請案的方案中,備資料庫接收到的是精簡日誌(亦即,上例中的第一日誌),只能直接對接收到的日誌進行持久化處理,而不適合發送給外部系統,在實際應用中,備資料庫也可能有使用完整日誌的需求,因此,備資料庫可以先根據精簡日誌得到對應的完整日誌,進而可以對完整日誌進行持久化處理和/或發送給外部系統等操作。如此,可以提高主備資料庫中日誌的一致程度。根據這樣的思路,資料庫將所述第一日誌同步給所述資料庫的備資料庫後,備資料庫可以執行:所述備資料庫根據所述第一日誌,同步所述修改,以及生成所述第二日誌。進一步地,備資料庫還可以執行:所述備資料庫對同步得到的所述第一日誌和/或根據所述第一日誌生成的所述第二日誌進行持久化處理;所述備資料庫將所述第二日誌發送給預定的外部系統。
本申請案實施例提供了一種實際應用場景下(沿用圖 2~圖4中的場景),備資料庫對接收到的主資料庫同步的第一日誌的處理流程示意圖,如圖5所示。假定圖5中的流程的執行主體也某主資料庫的某備資料庫,該流程可以包括以下步驟:
S501:備資料庫接收主資料庫同步的第一日誌。
S502:備資料庫對接收到的第一日誌進行持久化處理。
S503:備資料庫對重播第一日誌。
S504:備資料庫通過重播,同步資料修改操作以及在記憶體中生成第二日誌。
S505:備資料庫對第二日誌進行持久化處理。
在本申請案實施例中,如前所述,針對任一資料修改請求,都可以生成第一日誌和第二日誌這兩種日誌,為了提高後續對這兩種日誌的讀取速度,在進行持久化處理時,可以將第一日誌與第二日誌分別保存在不同的非揮發性儲存裝置中。從而,兩種日誌的讀取可以分別基於各自的儲存裝置的性能(如頻寬、讀取速度等)進行,可以並行進行。
在本申請案實施例中,如前所述,完整日誌或第二日誌除了可以包含第一資料和第二資料之外,還可以包含與被修改資料相關的其他資料。一般地,若第一資料、第二資料屬於至少一條資料庫記錄,則第二日誌中還可以包含的“與被修改資料相關的其他資料”包括但不限於:所述第一資料所屬資料庫記錄中除了所述第一資料之外的資 料、和/或所述第二資料所屬資料庫記錄中除了所述第二資料之外的資料。
為了便於理解,用如下表1和表2舉例進行說明。
Figure TW201804346AD00001
表1為某資料庫中的一張資料表的部分內容,包括a、b、c三條資料庫記錄,每一條記錄分別包含n個鍵值對,n個鍵分別為column_1~column_n,每條資料庫記錄中的每個鍵對應的值如表1所示。為了便於描述,以下將鍵值對及其所屬資料庫記錄的行號,用<row>:<key,value>表示,“key”表示鍵,“value”表示值,row表示該鍵值對所屬資料庫記錄的行號。
假定該資料庫接收到了使用者發送的資料修改請求,根據該資料修改請求,將<a>:<column_2,a_2>修改為<a>:<column_2,a_2’>,以及將<b>:<column_2,b_2>修改為<b>:<column_2,b_2’>,修改後的表1如下表2所示。
Figure TW201804346AD00002
對於上例,第一資料為<a>:<column_2,a_2’>和<b>:<column_2,b_2’>,第二資料為<a>:<column_2,a_2>和<b>:<column_2,b_2>。
與被修改的資料相關的其他資料可以包括:記錄a和記錄b中除了被修改的資料之外的其他資料,亦即,<a>:<column_1,a_1>、...、<a>:<column_n,a_n>,以及<b>:<column_1,b_1>、...、<b>:<column_n,b_n>。
生成的第一日誌可以只包含第一資料,而不包含第二資料以及與被修改的資料相關的其他資料,如下所示:
“<a>:<column_2,a_2’>
<b>:<column_2,b_2’>”。
生成的第二日誌可以既包含第一資料,也包含第二資料以及與被修改的資料相關的其他資料,如下所示:
“<a>:第二資料以及與被修改的資料相關的其他資料:<column_1,a_1>,<column_2,a_2>,...,<column_n,a_n>;第一資料:<column_2,a_2’>
<b>:第二資料以及與被修改的資料相關的其他資料:<column_1,a_1>,<column_2,a_2>,..., <column_n,a_n>;第一資料:<column_2,a_2’>”。
需要說明的是,上例中的日誌中包含的內容的表現形式僅是示例,並非對本申請案的限定,在實際應用中,也可以採用其他形式表現這些內容。
為了更直觀地瞭解本申請案的方案,本申請案實施例還提供了一種實際應用場景(沿用圖2~圖4中的場景)下,本申請案的方案所涉及的各端互動示意圖,如圖6所示。
圖6中主要包括四端,分別為使用者、主資料庫、備資料庫、資料分析系統。圖6中標號①~⑤對應的步驟為本申請案實施例提供的資料修改請求處理方法的主要步驟,未加標號的步驟為次要步驟,各步驟在上面都分別已經進行了詳細說明,在此不贅述。
以上為本申請案實施例提供的一種針對資料庫的資料修改請求處理方法,基於同樣的思路,本申請案實施例還提供相應的裝置,如圖7所示。
圖7為本申請案實施例提供的一種針對資料庫的資料修改請求處理裝置的結構示意圖,包括:接收模組701,接收針對資料庫的資料修改請求;處理模組702,根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料;返回模組703,在對所述第一日誌進行持久化處理 後,返回所述資料修改請求對應的修改結果。
可選地,其特徵在於,所述第二日誌還包含所述第一資料。
可選地,處理模組702,在記憶體中生成第一日誌和第二日誌。
可選地,處理模組702,還對所述第二日誌進行持久化處理。
可選地,所述裝置還包括:發送裝置704,將所述第二日誌發送給資料分析系統,以便於所述資料分析系統根據所述第二日誌進行資料分析。
可選地,當所述資料庫為主資料庫時,所述裝置還包括:同步模組705,在返回模組703返回所述資料修改請求對應的修改結果前,將所述第一日誌同步給所述資料庫的備資料庫,以便於所述備資料庫根據所述第一日誌,同步所述修改。
可選地,所述第一資料屬於至少一條資料庫記錄;所述第二日誌還包含:所述第一資料所屬資料庫記錄中除了所述第一資料之外的資料、和/或所述第二資料所屬資料庫記錄中除了所述第二資料之外的資料。
可選地,所述持久化處理包括:保存至非揮發性儲存裝置中。
可選地,所述持久化處理包括:保存至非揮發性儲存 裝置中;所述第一日誌與所述第二日誌通過所述持久化處理,被分別保存在不同的非揮發性儲存裝置中。
可選地,所述資料修改請求為資料更新請求、或資料刪除請求、或資料增加請求;當所述資料修改請求為資料更新請求時,所述第一資料、所述第二資料均不為空;當所述資料修改請求為資料刪除請求時,所述第一資料為空,所述第二資料不為空;當所述資料修改請求為資料增加請求時,所述第一資料不為空,所述第二資料為空。
圖7中的裝置具體可以位於資料庫,或者不屬於資料庫但可以連接資料庫的功能模組上。
本申請案提供的裝置是與本申請案提供的方法一一對應的,因此,所述裝置也具有與所述方法類似的有益技術效果,由於上面已經對所述方法的有益技術效果進行了詳細說明,因此,這裡不再贅述所述裝置的有益技術效果。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理設備的處理器以產生一個機器,使得通過電腦或其他可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體, 隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁片儲存或其他磁性儲存裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還 存在另外的相同要素。
以上所述僅為本申請案的實施例而已,並不用於限制本申請案。對於本領域技術人員來說,本申請案可以有各種更改和變化。凡在本申請案的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請案的申請專利範圍之內。

Claims (22)

  1. 一種針對資料庫的資料修改請求處理方法,其特徵在於,包括:接收針對資料庫的資料修改請求;根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料;在對所述第一日誌進行持久化處理後,返回所述資料修改請求對應的修改結果。
  2. 如申請專利範圍第1項所述的方法,其中,所述第二日誌還包含所述第一資料。
  3. 如申請專利範圍第2項所述的方法,其中,生成第一日誌和第二日誌,具體包括:在記憶體中生成第一日誌和第二日誌。
  4. 如申請專利範圍第2項所述的方法,其中,所述方法還包括:對所述第二日誌進行持久化處理。
  5. 如申請專利範圍第2項所述的方法,其中,所述方法 還包括:將所述第二日誌發送給資料分析系統,以便於所述資料分析系統根據所述第二日誌進行資料分析。
  6. 如申請專利範圍第2項所述的方法,其中,當所述資料庫為主資料庫時,返回所述資料修改請求對應的修改結果前,所述方法還包括:將所述第一日誌同步給所述資料庫的備資料庫,以便於所述備資料庫根據所述第一日誌,同步所述修改。
  7. 如申請專利範圍第6項所述的方法,其中,將所述第一日誌同步給所述資料庫的備資料庫後,所述方法還包括:所述備資料庫根據所述第一日誌,同步所述修改,以及生成所述第二日誌。
  8. 如申請專利範圍第7項所述的方法,其中,所述方法還包括:所述備資料庫對同步得到的所述第一日誌和/或根據所述第一日誌生成的所述第二日誌進行持久化處理。
  9. 如申請專利範圍第1~5項之任一項所述的方法,其中,所述第一資料、所述第二資料屬於至少一條資料庫記錄; 所述第二日誌還包含:所述第一資料所屬資料庫記錄中除了所述第一資料之外的資料、和/或所述第二資料所屬資料庫記錄中除了所述第二資料之外的資料。
  10. 如申請專利範圍第1~8項之任一項所述的方法,其中,所述持久化處理包括:保存至非揮發性儲存裝置中。
  11. 如申請專利範圍第1~4項之任一項所述的方法,其中,所述持久化處理包括:保存至非揮發性儲存裝置中;所述第一日誌與所述第二日誌通過所述持久化處理,被分別保存在不同的非揮發性儲存裝置中。
  12. 如申請專利範圍第1~8項之任一項所述的方法,其中,所述資料修改請求為資料更新請求、或資料刪除請求、或資料增加請求;當所述資料修改請求為資料更新請求時,所述第一資料、所述第二資料均不為空;當所述資料修改請求為資料刪除請求時,所述第一資料為空,所述第二資料不為空;當所述資料修改請求為資料增加請求時,所述第一資料不為空,所述第二資料為空。
  13. 一種針對資料庫的資料修改請求處理裝置,其特徵在於,包括: 接收模組,接收針對資料庫的資料修改請求;處理模組,根據所述資料修改請求,將所述資料庫中的第二資料修改為第一資料,以及生成第一日誌和第二日誌,所述第一日誌包含所述第一資料,所述第二日誌包含所述第二資料;返回模組,在對所述第一日誌進行持久化處理後,返回所述資料修改請求對應的修改結果。
  14. 如申請專利範圍第13項所述的裝置,其中,所述第二日誌還包含所述第一資料。
  15. 如申請專利範圍第14項所述的裝置,其中,所述處理模組,在記憶體中生成第一日誌和第二日誌。
  16. 如申請專利範圍第14項所述的裝置,所述處理模組,還對所述第二日誌進行持久化處理。
  17. 如申請專利範圍第14項所述的裝置,其中,所述裝置還包括:發送裝置,將所述第二日誌發送給資料分析系統,以便於所述資料分析系統根據所述第二日誌進行資料分析。
  18. 如申請專利範圍第14項所述的裝置,其中,當所述資料庫為主資料庫時,所述裝置還包括: 同步模組,在所述返回模組返回所述資料修改請求對應的修改結果前,將所述第一日誌同步給所述資料庫的備資料庫,以便於所述備資料庫根據所述第一日誌,同步所述修改。
  19. 如申請專利範圍第13~18項之任一項所述的裝置,其中,所述第一資料屬於至少一條資料庫記錄;所述第二日誌還包含:所述第一資料所屬資料庫記錄中除了所述第一資料之外的資料、和/或所述第二資料所屬資料庫記錄中除了所述第二資料之外的資料。
  20. 如申請專利範圍第13~18項之任一項所述的裝置,其中,所述持久化處理包括:保存至非揮發性儲存裝置中。
  21. 如申請專利範圍第13~18項之任一項所述的裝置,其中,所述持久化處理包括:保存至非揮發性儲存裝置中;所述第一日誌與所述第二日誌通過所述持久化處理,被分別保存在不同的非揮發性儲存裝置中。
  22. 如申請專利範圍第13~18項之任一項所述的裝置,其中,所述資料修改請求為資料更新請求、或資料刪除請求、或資料增加請求;當所述資料修改請求為資料更新請求時,所述第一資料、所述第二資料均不為空; 當所述資料修改請求為資料刪除請求時,所述第一資料為空,所述第二資料不為空;當所述資料修改請求為資料增加請求時,所述第一資料不為空,所述第二資料為空。
TW106119326A 2016-07-04 2017-06-09 針對資料庫的資料修改請求處理方法和裝置 TWI701567B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??201610518735.2 2016-07-04
CN201610518735.2A CN106897338A (zh) 2016-07-04 2016-07-04 一种针对数据库的数据修改请求处理方法及装置
CN201610518735.2 2016-07-04

Publications (2)

Publication Number Publication Date
TW201804346A true TW201804346A (zh) 2018-02-01
TWI701567B TWI701567B (zh) 2020-08-11

Family

ID=59191565

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106119326A TWI701567B (zh) 2016-07-04 2017-06-09 針對資料庫的資料修改請求處理方法和裝置

Country Status (9)

Country Link
US (3) US11106695B2 (zh)
EP (1) EP3480705B1 (zh)
JP (1) JP6987340B2 (zh)
KR (1) KR102248386B1 (zh)
CN (1) CN106897338A (zh)
MY (1) MY189491A (zh)
SG (1) SG11201811808VA (zh)
TW (1) TWI701567B (zh)
WO (1) WO2018006723A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI816875B (zh) * 2019-08-22 2023-10-01 鴻海精密工業股份有限公司 資料同步查詢方法、裝置、電腦裝置及存儲介質

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897338A (zh) 2016-07-04 2017-06-27 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置
CN110209642A (zh) * 2018-02-05 2019-09-06 北京智明星通科技股份有限公司 信息处理的方法、装置、服务器及计算机可读介质
CN110851486A (zh) * 2018-07-26 2020-02-28 珠海格力电器股份有限公司 数据存储方法及装置
CN110134653B (zh) * 2019-05-17 2021-09-07 杭州安恒信息技术股份有限公司 一种利用日志辅助数据库审计方法及***
CN110543386B (zh) * 2019-09-16 2022-06-10 上海达梦数据库有限公司 一种数据存储方法、装置、设备和存储介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430869A (en) * 1991-05-29 1995-07-04 Hewlett-Packard Company System and method for restructuring a B-Tree
US5701480A (en) 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
EP0758114A4 (en) * 1995-02-28 1998-08-26 Ntt Data Tsushin Kk COOPERATIVE DISTRIBUTED SYSTEM, NEWSPAPER PROCESSING AND RECOVERY PROCESSING IN THE SAME
US6510421B1 (en) * 1998-12-29 2003-01-21 Oracle Corporation Performing 2-phase commit with presumed prepare
US6981004B2 (en) * 2002-09-16 2005-12-27 Oracle International Corporation Method and mechanism for implementing in-memory transaction logging records
JP4186602B2 (ja) * 2002-12-04 2008-11-26 株式会社日立製作所 ジャーナルログを利用した更新データ書込方法
US7168001B2 (en) 2004-02-06 2007-01-23 Hewlett-Packard Development Company, L.P. Transaction processing apparatus and method
JP4582297B2 (ja) * 2004-06-25 2010-11-17 日本電気株式会社 レプリケーションシステム、装置、方法、およびプログラム
JP4248510B2 (ja) * 2005-03-24 2009-04-02 株式会社東芝 計算機システム、ディスク装置およびデータ更新制御方法
US8185551B2 (en) * 2007-06-08 2012-05-22 Massachusetts Institute Of Technology Disk-resident streaming dictionary
EP2309392A1 (en) * 2008-02-29 2011-04-13 Kabushiki Kaisha Toshiba Memory system
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4870190B2 (ja) * 2009-04-27 2012-02-08 株式会社日立製作所 データ処理方法、計算機、及びデータ処理プログラム
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
CN102024021A (zh) * 2010-11-04 2011-04-20 曙光信息产业(北京)有限公司 一种逻辑文件***元数据的日志方法
CN102270225B (zh) * 2011-06-28 2015-10-21 用友网络科技股份有限公司 数据变更日志监控方法和数据变更日志监控装置
CN103166785A (zh) * 2011-12-15 2013-06-19 同程网络科技股份有限公司 基于Hadoop的分布式日志分析***
JP2013178685A (ja) * 2012-02-29 2013-09-09 Nec Corp 非同期バックアップ機能を有するデータ処理システム、フロントシステム、バックアップ方法、及びそのためのプログラム
JP2014071487A (ja) * 2012-09-27 2014-04-21 Sony Corp ファイル記録装置、フィルシステム管理方法およびチェンジャドライブ
US9396220B2 (en) * 2014-03-10 2016-07-19 Oracle International Corporation Instantaneous unplug of pluggable database from one container database and plug into another container database
US10706009B2 (en) * 2013-03-14 2020-07-07 Oracle International Corporation Techniques to parallelize CPU and IO work of log writes
US9514007B2 (en) * 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9098453B2 (en) * 2013-07-11 2015-08-04 International Business Machines Corporation Speculative recovery using storage snapshot in a clustered database
CN104462127B (zh) * 2013-09-22 2018-07-20 阿里巴巴集团控股有限公司 一种记录数据更新方法及装置
US10230796B2 (en) * 2014-05-30 2019-03-12 Apple Inc. Intelligent disk space manager
US10545987B2 (en) * 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
CN104537037B (zh) * 2014-12-23 2018-01-23 杭州华为数字技术有限公司 一种处理数据库日志的方法及装置
US9811493B2 (en) * 2015-05-29 2017-11-07 Toshiba Memory Corporation Semiconductor device
WO2017042890A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法
US10296661B2 (en) 2015-09-11 2019-05-21 Salesforce.Com, Inc. Processing log files using a database system
US10747739B1 (en) * 2015-09-18 2020-08-18 Amazon Technologies, Inc. Implicit checkpoint for generating a secondary index of a table
US10628422B2 (en) * 2015-10-23 2020-04-21 Oracle International Corporation Implementing a logically partitioned data warehouse using a container map
CN107046552B (zh) * 2016-02-05 2020-10-23 华为技术有限公司 基于心跳的数据同步装置、方法及分布式存储***
CN106897338A (zh) 2016-07-04 2017-06-27 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI816875B (zh) * 2019-08-22 2023-10-01 鴻海精密工業股份有限公司 資料同步查詢方法、裝置、電腦裝置及存儲介質

Also Published As

Publication number Publication date
MY189491A (en) 2022-02-16
JP2019527883A (ja) 2019-10-03
KR102248386B1 (ko) 2021-05-07
US20210390114A1 (en) 2021-12-16
EP3480705A4 (en) 2019-05-08
JP6987340B2 (ja) 2021-12-22
KR20190026846A (ko) 2019-03-13
TWI701567B (zh) 2020-08-11
US11106695B2 (en) 2021-08-31
WO2018006723A1 (zh) 2018-01-11
US20190155817A1 (en) 2019-05-23
SG11201811808VA (en) 2019-02-27
US11132379B2 (en) 2021-09-28
EP3480705A1 (en) 2019-05-08
US20200125581A1 (en) 2020-04-23
EP3480705B1 (en) 2021-08-04
CN106897338A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
TWI701567B (zh) 針對資料庫的資料修改請求處理方法和裝置
US10216588B2 (en) Database system recovery using preliminary and final slave node replay positions
US20230087447A1 (en) Data migration method and device
CN112131237B (zh) 数据同步方法、装置、设备及计算机可读介质
TW201801495A (zh) 資料處理方法和設備
US8615488B2 (en) Physical replication of database subset to improve availability and reduce resource cost in a cloud environment
EP4213038A1 (en) Data processing method and apparatus based on distributed storage, device, and medium
WO2019109854A1 (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
WO2019042174A1 (zh) 在主数据库和备数据库之间的同步方法、数据库***和设备
EP4170509A1 (en) Method for playing back log on data node, data node, and system
CN102693312B (zh) 一种键值库数据存储中柔性事务管理方法
US20180121531A1 (en) Data Updating Method, Device, and Related System
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
US11093290B1 (en) Backup server resource-aware discovery of client application resources
EP4390646A1 (en) Data processing method in distributed system, and related system
US20190050455A1 (en) Adaptive page rendering for a data management system
WO2017050177A1 (zh) 一种数据同步方法和装置
CN113946542A (zh) 数据处理方法以及装置
WO2016060700A1 (en) File system journaling
US20240220334A1 (en) Data processing method in distributed system, and related system
US10706012B2 (en) File creation
US11977785B2 (en) Non-volatile memory device-assisted live migration of virtual machine data
CN113360476B (zh) 一种程序数据库虚拟化插拔的方法及设备
US20240103973A1 (en) Leveraging file-system metadata for direct to cloud object storage optimization
US10942649B2 (en) System and method for backup storage garbage collection