香港新浪網MySinaBlog 精選話題工具
« 上一篇 | 下一篇 »
Enoch | 22nd Oct 2009, 17:30 PM | 公司發展 | (652 Reads)
今天收到iThome對記憶體資料庫的報導寄來的雜誌,看到記憶體資料庫的Hot Standy原理,和我在超級市場電腦化計劃書所想的很接近.

超市使用值分咭,不能死機,資料不能有任何損失和錯誤.當Active Server無法處理Transaction時,Standby Server要自動去處理,如下圖:

Picture

MemDB的網絡系統是用Client-Server,應用程式是Client,直接Send Reqeust到Server,而我設計Request只有SELECT,LIST ,REPORT, INSERT, UPDATE和DELETE,前三個不會有任何update,也不會有任何disk access,可以分別在Active或Standby處理.

後三個Request需要同時update Ative和Standby,當Active Server接到這些Request,首先pass這request到Standby執行,然後由Active執行,在正常執行之下,兩個db是consistent,否則要處理error handlling.

要做以上error handling,一個方法是Active和Standby都儲存一個version number,每個update request,它們的version number是一致.有以下error case要處理.

1) Standby無法回應,這個case比較簡單,Active可繼續正常連作,並回報給技術人員.

2) Active無法回應,Standby會嘗試連接Active,如果失敗,Standby轉為Active,並回報給技術人員.Client無法連接到Active,會自動連到Standby.

當技術人員接到報告,可於非使用時間檢查和修正,因為還有一部Server可以運作,所以有更多時間讓技術人員去解決問題.

現時MemDB有很多客戶都是使用一個Server,多年出問題的機會很微,但對大公司,以上的解決方案是不可少,當然以上系統會複雜了很多,增加了開發和維護難度.


[1] Active-Active ?

如果Active因某些原因暫時無法回應, 但Standby轉為Active後,Active卻突然回復正常...

會不會變成Active-Active ?


[引用] | 作者 飛飛 | 22nd Oct 2009 22:43 PM | [舉報垃圾留言]

[2] Re: 飛飛
飛飛 :
如果Active因某些原因暫時無法回應, 但Standby轉為Active後,Active卻突然回復正常...
會不會變成Active-Active ?

所以有version control, active會問standby取version, 如果不consistent, 就不能使用了.


[引用] | 作者 Enoch | 23rd Oct 2009 09:39 AM | [舉報垃圾留言]

[3] smartcard

其實使用smartcard,就可以offline處理,成本也不貴。個人經驗話我知,呢d同步處理,好容易玩死自己。


[引用] | 作者 alex | 28th Oct 2009 16:59 PM | [舉報垃圾留言]

[4] Re: alex
alex :
其實使用smartcard,就可以offline處理,成本也不貴。個人經驗話我知,呢d同步處理,好容易玩死自己。

除了因要儲值功能, stand-by都有其value, 不過同意你的說法, 好容易玩死自己, 所以要客戶投資才會開發.


[引用] | 作者 Enoch | 30th Oct 2009 18:32 PM | [舉報垃圾留言]