數據同步:全量與增量


1.背景

數據如果保留多份,就會存在一致性問題,就需要同步,同步分為兩大類:全量和增量

2. 概述

數據如果要保留副本,要么同時寫(就是多寫),或者進行復制:異步寫(即從主數據拷貝到副本);

同時寫(多寫),引出一個問題,寫多少節點算成功(場景:分布式系統)?全部寫成功才算成功,還是寫大多數成功算成功,還是寫指定幾個節點算成功?

異步寫的話,如果采用異步復制,那么實時性需要考量的話,就需要采用性能優先的架構。

3.同步方式

 數據同步一般分為兩種方式:全量和增量。

3.1  全量

全量,這個很好理解。就是每天定時(避開業務高峰期)或者周期性全量把數據從一個地方拷貝到另外一個地方;

全量的話,可以采用直接全部覆蓋(使用“新”數據覆蓋“舊”數據);或者走更新邏輯(覆蓋前判斷下,如果新舊不一致,就更新);

這里面有一個隱藏的問題:如果采用異步寫,主數據物理刪除了,怎么直接通過全量數據同步?這就需要借助一些中間操作日志文件,或者其他手段,把這些“看不到”的數據記錄起來。

3.2 增量

增量的基礎是全量,就是你要使用某種方式先把全量數據拷貝過來,然后再采用增量方式同步更新。

增量的話,就是指抓取某個時刻(更新時間)或者檢查點(checkpoint)以后的數據來同步,不是無規律的全量同步。這里引入一個關鍵性的前提:副本一端要記錄或者知道(通過查詢更新日志或者訂閱更新)哪些更新了。

3.2.1 確定更新點

采用更新時間戳、有的采用checkpoint等來標識和記錄更新點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM