簡體   English   中英

分散式同步安全數據存儲

[英]Decentralized synchronized secure data storage

介紹

嗨,我要問一個對我來說似乎很普遍的問題,但我需要知道是否有一種方法可以實現我所需要的。 如果不是,我需要知道為什么不這樣做

這個主意

假設我在MySql中有一個數據庫結構。

我想創建一些解決方案,以允許任何人(無論誰,無論在哪里)都具有該數據庫(及其內容)的同步副本(更新的克隆)

好吧,它並不僅僅是一個同步副本,它可以(並且應該)是多重復制(假設基本復制,這意味着,例如,全世界有十個副本)

而且,最重要的是:它必須安全 所謂安全,是指只有真正接受的事務才會與所有其他(無論有多少個)數據庫副本/克隆進行同步。

注意 :由於實時同步非常困難 ,因此,我將設計一切以使此功能不再需要。 因此它不是必需的。

我的自動建議

這就是我正在考慮的管理方式:

時間標識符和更新檢查 :每個動作(插入,更新,刪除...)將作為與時間標識符關聯的動作指令本身存儲。 [例如,我認為比DATETIME字段更好,它將是INT,例如,從2013年1月1日起經過的毫秒數] 因此,每個副本將向“鄰居副本”詢問自上次更新以來執行的新操作,並在檢查允許后執行它們。

問題1“鄰居副本”也可能過時。
解決方案1 :不要問一個鄰居,創建一個包含一些副本/克隆的隨機列表 ,然后向他們詢問消息(我可以避免使用該列表,並向所有克隆詢問更新,但是如果克隆數量也上升,這將是無效的很多)

問題2 :實時全局同步未激活。 如果...

   Someone at CLONE_ENTERPRISING inserts a row into TABLE.
   ... this row goes to every clone ...
   Someone at CLONE_FIXEMALL deletes this row.
   ... and at the same time, somewhere in an outdated clone ...
   Someone at CLONE_DROPOUT edits this row (now inexistent at the other clones)

解決方案2 :簡單的操作,在執行任何新的“ 取決於數據的操作” (例如,編輯)之前,強制執行GLOBAL同步。 這種全球同步。 例如,在進行INSERT時將不必要。

注意 :嗯,某人可能會很有趣,並在兩個克隆中進行相同的插入...由於它們沒有實時更新,因此該行將存在兩次。 但是,這與我們只有一個數據庫的情況相同,在某些需要的情況下,我們在執行最終操作之前會檢查是否存在相同的行。 沒問題

問題3 :可以編輯代碼而不過濾動作,因此有人可以散布指令以刪除所有內容,或僅進行一些拖釣活動。 這不是問題,因為好的克隆總是存在於某個地方。 那些變壞的人將不再感興趣。

如果您閱讀,我將不勝感激。 我知道這不是一個完美的解決方案,它可能有數百個漏洞,但這是我的基本出發點。 現在,我將感激您現在可以教我的一切。 非常感謝。

PS .:可能是我正在嘗試的所有操作都已經存在並具有自己的名稱。 不好意思問(如果有的話,我還是要感謝這個名字)

我建議您看一下Microsoft的Sync Framework 它可能更適合SQL Server,但它也應與MySQL一起使用。 您要解決的問題是一個非常復雜的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM