2016年1月14日 星期四

[mongo] 新版MongoDB 3.2架構差異測試

好久沒有重新檢視MongoDB架構

趁這次需要實作一鍵安裝到底套件

乾脆順便研究新架構 (比較對象2.4)

為什麼直接跳3.2 因為有很多限制都因這版本核心採用新的引擎

所以都解開束縛了!說什麼也要用這新版本

以下就簡單條列:

1. 新版採用WiredTiger引擎,在3.0版需要手動指定 (纏線老虎??)

2. WiredTiger只能用在64bit環境

3. WiredTiger所有操作效能基本上都提升4倍,看完測試報告後應該改稱叫(線性虎哥),因為無論操作、或連線數量如何提升,效能和scale同樣是線性的, 而response time不會隨著throughput增加而提升,而是維持一定水準。(強大!)

4. 因WiredTiger採用,所以很多架構或儲存空間限制都大幅的提升或是解除了 (ex. db name, collection name)

5. Configsvr 可直接指定relpSet(鏡像組),因此不再被限制只能用3台,但鏡像組最少還是三台

6. Configsvr relpSet不管多少台, 掛掉1/3仍可完全正常運作, 掛掉2/3還會活著但會停止sharding, 若掛掉數量超過2/3會導致整個系統無法復元,需要重新掛回1/3以上才能重開,不然立即重開的下場會導致admin使用者帳號的hash碼在資料庫中破損,再也無法登入!(重要)

7.Account管理變嚴格,早期版本從local登入相關操作(relpSet)都可以使用,但是新版啟用auth後,local登入只能看到基本設定,無法進行架構修改,必須在auth前就先在local加入高權限帳號,才能在啟用auth後登入local來進行操作。結論就是,如果在auth狀態下加入relpSet,此relpSet是無法改變其鏡像架構。

8. WiredTiger支援座標及相對座標距離搜尋 (應該只有2維)

9. 因為Account管理變嚴格,所以在設計架構最好先決定(例如Data Node兩兩一組),減少後面要修改架構時必須全部重開的問題。

10. 新版架構減少Configsvr之間同步的冗餘控制(Overhead) 95%, 以及降低安全保護的影響, 所以Configsvr負擔較舊版本輕,但是否仍然全部集中在同一台上仍需要再觀察(應該仍是,因為還是有分Primary/和Secondary)

11. 支援Spark

12. 官方提供SQL Driver for MongoDB.

13. 3.0建議不使用addUser方法,3.2版完全移除addUser 方法,必須使用createUser,並指定role.

14. mongos指定configsvr有兩種方法: [c1, c2, c3] or [relpset/c1,c2,c3,...]

15. Release in-memory engine beta (下次launch 應該可以考慮取代redis)

沒有留言:

張貼留言