我很好奇用於構建確保沒有數據丟失的系統的技術是最重要的。舉一個簡單的例子,金融機構做什麼來確保在賬戶之間轉移資金時,一旦從一個賬戶中提取資金,毫無疑問就會將其存入另一個賬戶。我並不是在尋找諸如數據庫事務這樣的特殊技術,而是尋找更大,更體系結構的概念,比如如果服務器關閉或者隊列用完空間或者其他什麼時,數據如何保存。永不丟失數據技術
如果有人能指點我的書籍或文章,我會非常感激。
我很好奇用於構建確保沒有數據丟失的系統的技術是最重要的。舉一個簡單的例子,金融機構做什麼來確保在賬戶之間轉移資金時,一旦從一個賬戶中提取資金,毫無疑問就會將其存入另一個賬戶。我並不是在尋找諸如數據庫事務這樣的特殊技術,而是尋找更大,更體系結構的概念,比如如果服務器關閉或者隊列用完空間或者其他什麼時,數據如何保存。永不丟失數據技術
如果有人能指點我的書籍或文章,我會非常感激。
基本技巧是消除任何單點故障。任何在您的設置中可能會失敗的情況都需要備份或多個備份。從多臺交換機,服務器,UPS,硬盤驅動器等......數據庫不斷被複制,數據備份和存儲在異地,以防發生火災或其他可能會損壞建築物的災難。
它可以真正歸結爲在兩個地方有相同的數據;從下到在數據提交之前持有緩存的代碼,一直到服務器冗餘。
確保您不會丟失東西的唯一方法是獲得多份副本。
您應該閱讀約Automated Teller Machine,Online transaction processing和其他有關數據加密的主題,如果您在網站上考慮,也應考慮使用HTTPS。
您可能想了解XA或X/Open事務,這些事務可以將多個系統(包括數據庫,隊列等)協調爲ACID類似DB的事務。
我還沒有使用它,但我聽說它可能是昂貴的延遲明智和計算。但是,您的數據完整性又值多少錢?
,各銀行將保持記錄的每一筆交易,說明什麼多少,並在那裏和從那裏多少,以及他們的時間順序
這樣以後如果你比較兩個事務日誌的一個問題,如果他們不匹配,你可以找出丟失的交易
這也涵蓋了一個銀行不能信任另一個記錄保留它
問題,因爲他們交叉檢查這幾乎是一個分佈式的交易協議
正如你所指,有各種機制(如交易),以確保基於「握手」的軟件是可靠的,併成功完成。
建築上 - 是的有兩個副本的東西給你redundencey,這有助於不丟失的東西。除此之外:
我一直在爲現成的文檔管理系統解決方案架構,沒有數據丟失是最重要的驅動因素。該系統在全國範圍內推出,因此在用於爲當地用戶提供服務的「區域」緩存和實際的「數據中心」方面實現了多地點。感興趣的幾點:
我想這一切都不是嚴重軟件中心,但我認爲所有好的軟件架構/設計原則「我們」使用幫助指導我的思想。
此問題可能更適合http://serverfault.com/ – 2010-11-30 21:30:54
我認爲在這些情況下,交易應該回滾。我認爲這個東西可能屬於「兩階段承諾」 ,這是交叉> = 2系統的交易,而不是100%確定... – FrustratedWithFormsDesigner 2010-11-30 21:31:48