預計2018年夏天上市的MongoDB 4.0,預計將支援多文件交易(Multi-Document Transactions),以保證資料完整性(Data Integrity),這項關聯性資料庫才能提供的關鍵特性。

MongoDB技術長暨創辦人Eliot Horowitz表示,MongoDB將會是兼顧速度與彈性,使用文件模型並確保ACID原則的資料庫。

Eliot Horowitz說,在MongoDB處理交易,將會像使用關聯式資料庫一樣,開發者能使用熟悉的多語句(Multi-Statement)語法,他特別強調,在MongoDB增加的多文件交易功能,完全不會影響效能,在MongoDB 4.0交易將能在單個複本集(Single Replica Set)運作,到了MongoDB 4.2將支援跨分片部署(Shared Deployment)交易。

MongoDB以文件模型串起關聯的資料,提供使用關聯架構描述多個獨立表格關係的特性,而目前MongoDB單一文件的不可分割特性,也已經提供大多數應用程式維持資料完整性所需要的交易語意,不過,接下來新增的多文件交易,能讓開發者更容易的將MongoDB應用在更多嚴謹的情境中。

MongoDB即將提供完整的資料完整性,要溯源至3年前併購來的WiredTiger儲存引擎。Eliot Horowitz細數為達到資料完整性,MongoDB的技術發展史,從3.0版本開始
具備文件級(Document Level)的並行控制以及壓縮功能,還提供MVCC(Multiversion Concurrency Control)這種像是PostgreSQL關聯式資料庫,確保交易功能的儲存層基礎功能。

在MongoDB 3.2的增強型共識協定,能讓主要複本集(Primary Replica Set)成員的網路分區(Network Partition)快速的從故障中恢復,並更嚴謹的確保寫入的持久性(Durability)。MongoDB 3.6開始提供因果一致性(Causal Consistency)與 Retryable Writes,讓系統能跨分散式叢集節點協調用戶與伺服器端的運作,管理交易命令的前後關係。

Eliot Horowitz提到MongoDB 4.0已經完成的功能,是支援複本集時間點讀取(Replica Set Point-in-time Reads),不只對於維持交易一致性十分關鍵,在日常讀取運作上也很有用。

基於上述這些基礎,再加上即將完成的多文件分散式交易,MongoDB將能在單個複本集以及跨分片部署提供全域資料一致性。無論資料儲存的方式,開發者可以完全信任系統提供的交易完整性,並專注於應用程式功能開發,而不需要在應用程式層特別撰寫交易完整性的邏輯。


Advertisement

更多 iThome相關內容