Cassandra的數據整理

Life is full of accidence, just enjoy it!

 

人生總是時時充滿意外,在你某個不注意的角落,會給你突然來一下。做爲一個程序猿,很多時候,你的工作就是排雷兵,有時,你去排雷,卻會引爆新的雷。或者哪天你抵擋敵人進攻的雷卻會變成自己撤退的雷區!

 

前兩天上線一個新版本的時候,發現一個針對老版本的優化出了問題,感受良多,代碼往往跟不上產品策略的變化。

 

這些雷好解決,大不了就是版本回退!但是有些雷卻是太難解決了。這兩天提供線上服務存儲的cassandra節點出了問題,不知道某一天數據歸整失敗了。數據規整失敗的原因看來應該是某個規整數據區間商品寫入太大。通過庫爬蟲上線以後,每天要多寫入800w的數據,8M* 10k(每個數據大小)就是90G,這裏面的數據大部分都是重複的,歸整完以後就只有一份,可惜不知道在某個時間點寫失敗了。於是悲劇了,在以後的幾天裏,幾個爬蟲的寫入以每天200G+的速度蹭蹭的往上漲,3個1T的硬盤,每個都用到了75%,按照cassandra的歸整方式,就沒有足夠的空間歸整了,只能手工清除了。在這個時間點上,cassandra單個節點的性能也迅速下降,不停在在丟消息,由於對cassandra的同步機制沒搞那麼明白,所以不知道這些丟掉的消息會不會有數據同步的消息。更悲劇的是這裏面的數據存有很多人工的數據是不能直接刪除的,於是乎需要把數據讀出來保存一封,寫入到另外一個cassandra的節點上,讓後清除這個節點的數據,然後啓動這個節點,然後bootstrapping,數據就會自動同步了。

 

唉,第一次刪線上的數據,2個多T,還是難免有很多顧慮的,提前寫了很多腳本來讀取,驗證。rm -rf *的時候,心裏還是一直在pray!

 

還好的就是到目前爲止,沒出現啥問題!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章