當前位置:
首頁 > 知識 > MongoDB 4.0 正式版轟動發布,功能越來越強大,支持多文檔事務

MongoDB 4.0 正式版轟動發布,功能越來越強大,支持多文檔事務

MongoDB 因其靈活的文檔模型、可擴展分散式設計廣受開發者喜愛,在此基礎上,MongoDB 4.0 推出了更強大的功能支持,目前 4.0 第一個 RC 版本已經發布。

下面將介紹 MongoDB 4.0 核心的一些新特性。

MongoDB 4.0 正式版轟動發布,功能越來越強大,支持多文檔事務MongoDB 4.0 正式版轟動發布,功能越來越強大,支持多文檔事務

多文檔事務(Multi-Document ACID Transaction)

結合 MongoDB 文檔模型內嵌數組、文檔的支持,目前的單文檔事務能滿足絕大部分開發者的需求。為了讓 MongoDB 能適應更多的應用場景,讓開發變得更簡單,MongoDB 4.0 將支持複製集內部跨一或多個集合的多文檔事務,保證針對多個文檔的更新的原子性。而在未來的 MongoDB 4.2 版本,還會支持分片集群的分散式事務。

MongoDB 的事務介面非常簡單,開發者只需要將「需要保證原子性的更新序列」放到一個 session 的 開始事務 與提交事務之間即可。

MongoDB 4.0 正式版轟動發布,功能越來越強大,支持多文檔事務MongoDB 4.0 正式版轟動發布,功能越來越強大,支持多文檔事務

事務是 MongoDB 開發團隊經過3年多努力的結果,從3.0版本引入 WiredTiger 、到3.2版本支持 ReadConcern、3.6 支持 Causal Consistency 等很多工作都是在為事務功能做準備,最終在4.0版本將整個事務的API提供給用戶,幫助用戶更好的構建應用。

聚合類型轉換( Aggregation Pipeline Type Conversions)

靈活的文檔模型是 MongoDB 相比傳統關係型資料庫的一大優勢,應用開發者無需為存儲的數據預先定義結構(或者模式),這使得開發者能快速的應對開發需求的迭代;在靈活的同時,MongoDB 還提供了 schema validation 功能,使得開發者可以根據需要定義文檔數據的模型。

MongoDB 的文檔允許用戶靈活的寫入各種類型的數據欄位,這給消費數據帶了一定的複雜性,比如一些數據分析的場景,應用通常希望某個欄位的數據擁有統一的類型,以方便數據處理。

MongoDB 4.0 引入了新的聚合操作符 $convert, 允許用戶在 aggregation pipeline 里將文檔的欄位轉換成統一的類型輸出,使得數據消費端,比如 MongoDB BI 工具、Spark Connectors 以及其他 ETL 工具能更簡單的處理 MongoDB 數據。

非阻塞的備節點讀(Non-Blocking Secondary Reads)

為了確保備節點上的讀與主節點保持相同的因果一致性語義,MongoDB 備節點在批量應用 oplog 的時候會阻塞讀請求,這使得在高寫入負載下,備節點上讀的平均延時通常比主節點更高。

藉助事務功能中 storage engine timestamps and snapshots的實現,引擎層可以很容易的實現「指定時間戳快照讀取的功能」,使得備節點上的讀請求無需阻塞等待就能讀到一致時間點的數據。這個特性將極大的提升 MongoDB 讀擴展的能力。

遷移速度提升40%(40% Faster Data Migrations)

應用在不斷演進過程中,其負載特性也在不斷發生變化,這就要求資料庫具備擴展的能力,及時適應應用的負載變化。MongoDB 分片集群支持實時的添加、移除shard 節點,並能在各個 shard 之間自動遷移數據來均衡負載。

MongoDB 4.0 支持在遷移數據的過程中,並發的讀取(源端)和寫入(目標端),使得遷移的性能提升了約 40%, 使得新添加的節點能更快的承載業務壓力,讓分片集群發揮最佳效果。

擴展修改訂閱(Extensions to Change Streams)

MongoDB 3.6 推出了修改訂閱( Change Streams)的功能,使得用戶能實時的獲取數據的修改,同時通過 Change Streams 還能很方便的實現多數據中心跨複製集的數據同步。MongoDB 4.0 進一步擴展 Change Streams 功能,可以實現分片集群維度的修改訂閱。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

svn伺服器部署
微軟即將為Edge推出新的開發工具協議

TAG:Linux資訊速推 |