2013-06-25 36 views
0

在消息傳遞/分佈式系統中,我們基於同步時鐘執行檢查點,我們在這裏存儲進程的狀態。如何在消息傳遞系統中創建檢查點?

現在我想知道,怎樣才能做到這一點幾乎?

說,與請求/響應客戶端服務器系統,我的系統交易。在某個地方,我想製作檢查點,所以如果發生任何故障,我可以進行回滾。

在這種情況下,我需要存儲哪些信息? 我想知道實際的考慮事項。我瀏覽了幾篇關於回滾恢復的文章,並試圖爲PoC做一個實現。

任何人,誰在他們的系統嘗試了檢查點機制,可以給我一些線索?

編輯

我試着做非確定性事件回滾(如:接收請求的web服務) 有兩種方法我在我的腦海,一種是基於檢查點,另一個是基於日誌。 我選擇了Apache Axis2平臺作爲我的web服務平臺。它已經擁有了記錄facility.So,記錄會在這種情況下,更容易..

所以,當我們做checkpoint基於基礎/日誌,做我們需要存儲整個數據?

  • 在這兩種情況下存儲數據是否有區別?

  • 在這種類型的恢復中,我們需要回滾客戶端和服務器,客戶端可以基於我們存儲的信息進行回滾。在這種情況下,我們如何回滾服務器? 這是必要的嗎?或者我理解正確的協議

回答

1

您需要保存的數據在很大程度上取決於你的系統上,因此不知道了很多關於它,我們就不能明確告訴你什麼在這裏保存。

然而,在一般情況下,你需要存儲任何數據對應用程序的關鍵。對於某些應用程序,您將存儲整個內存內容並在該點重新加載。這有點沉重,但可能是必要的。一般來說,這是非常昂貴的,通常不是必需的。通常情況下,您可以存儲任何內部狀態數據(可能是您連接的客戶端或這些連接的狀態),以及在失敗後重新啓動應用程序時,可以重新加載所有數據並將任何連接重新創建你的客戶。

在另一種實現,你可能不關心連接到你的客戶,你只需要保存一些小的內部狀態,讓客戶自己重新連接並重新啓動時,他們所做的任何連接他們在做。這一切都取決於你願意失去多少執行力,以及你想通過創建這些檢查點來引入多少開銷。

+0

感謝您的明確解釋,我添加了更多的問題,我原來的帖子..請檢查這些也.. – Ratha