1. 程式人生 > >hbase/hypertable叢集啟動需要進行時間同步原因?

hbase/hypertable叢集啟動需要進行時間同步原因?


It's important to set up NTP to synch clocks within a few milliseconds across hosts. Of course they will never be exactly in sync, but there is no reason that would be necessary.
The only time clock synch comes into play is if a region migrates from one server to another. If the new RS is significantly behind the first RS, new writes will be shadowed by old writes. But since region migration takes upwards of a second, this isn't a problem when you run NTP.
New versions of HBase actually check clock synch is within a reasonable interval when you start the servers.


看不懂。。。我查了rangeserver確實是只有在遷移時判斷是否時間是否偏移

遷移的時候是不是要把快取的東西也遷過去?如果這樣,一臺時鐘慢得機器裡面的快取裡的新的吸入資料可能會那一臺時間快的中舊的寫入資料給覆蓋?

遷移的時候應該是吧memtable中的資料重新整理到檔案中才進行遷移的 否則資料就丟失了 

遷移前快取資料就寫到dfs了,另一臺機器為什麼會覆蓋,管理的range也不一樣

就算寫到DFS了,那時間戳總是不變的吧

哦,我明白你意思了
遷移過去以後有可能覆蓋是吧

然後時間快的機器讀取這個range   查詢這個range事快取裡的資料雖然舊但是時間上比檔案系統中的新,然後覆蓋了,
舊資料變成新資料了。

But since region migration takes upwards of a second, this isn't a problem when you run NTP
只要將NTP中時間設定比傳輸時間小就能保證不被覆蓋了

只要將NTP中時間設定比傳輸時間小就能保證不被覆蓋了  是上面那句英文的翻譯?

恩 應該是 

不是,我自己理解的,因為傳輸要用一定時間,等遷移過去以後,new RS開始接收資料,這時new RS接收資料的時間戳比遷移range中得新就不會出現覆蓋。

超過一秒就行了把 如果遷移的時候。。
要不我們這個系統 在遷移時,不支援寫唄。

When clocks are significantly out-of-skew (e.g. several seconds), old results can suddenly appear in a query, or worse, when the system is brought down and back up again, data can go missing. In almost all circumstances, the system will detect clock skew and either refuse updates by throwing an exception up to the application, 
or will log an error message in the range server log file

range傳輸的時間要比ntp的時間長

我覺得ntp的意義在於保證遷移range中最新的時間戳,在經過傳輸時間後,不會比new RS時間新

恩 對 

可是預設設定是30秒。。。

????