MongoDB 4.0 RC 版本強勢登陸

來源:互聯網
上載者:User

標籤:分布式   強勢登陸   

摘要: MongoDB 因其靈活的文檔模型、可擴充分布式設計廣受開發人員喜愛,在此基礎上,MongoDB 4.0 推出了更強大的功能支援,目前4.0第一個RC版本已經發布,本文將介紹 MongoDB 4.0 核心的一些新特性。

MongoDB 因其靈活的文檔模型、可擴充分布式設計廣受開發人員喜愛,在此基礎上,MongoDB 4.0 推出了更強大的功能支援,目前4.0第一個RC版本已經發布,本文將介紹 MongoDB 4.0 核心的一些新特性。

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

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

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

如下是 Python API 使用事務的例子

with client.start_session() as s:    s.start_transaction():    try:        collection.insert_one(doc1, session=s)        collection.insert_one(doc2, session=s)    except:        s.abort_transaction()        raise    s.commit_transaction()

如下是 Java API 使用事務的例子

try (ClientSession clientSession = client.startSession()) {     clientSession.startTransaction();     try {         collection.insertOne(clientSession, docOne);         collection.insertOne(clientSession, docTwo);         clientSession.commitTransaction();     } catch (Exception e) {         clientSession.abortTransaction();     }}


事務是 MongoDB Team Dev經過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 功能,可以實現分區叢集維度修改訂閱。

開始體驗 MongoDB 4.0 RC
  • 猛擊這裡體驗MongoDB 4.0 RC

  • 查看Release Notes for MongoDB 4.0 Release Candidate

原文連結


MongoDB 4.0 RC 版本強勢登陸

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.