BT

MongoDB 4.0がマルチドキュメントトランザクションをサポート

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 編集部T フォローする 0 人のフォロワー 投稿日 2018年3月1日. 推定読書時間: 3 分 |

原文(投稿日:2018/02/16)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

MongoDBがWiredTigerとそのリレーショナルデータベースストレージエンジンを買収したので、技術者はMongoDBがマルチドキュメントトランザクションをサポートする時を推測してきた。今週の発表で、MongoDB 4.0の一部として、この夏に準備が完了する予定である。

MongoDBのGrigori Melnik氏は、「アプリケーションの80%~90%はマルチドキュメントトランザクションを全く必要としない」と主張している(しかし、この主張には疑問の余地があり、階層的なデータベースには多くの非正規化データを含む傾向があり、一貫性を確保するために複数の場所で同時に更新がされる必要がある)。彼は続けて次のように言っている。

また、開発者やDBAの中には、40年にわたるリレーショナルデータのモデリングによって、構築するデータ・モデルに関係なく、マルチテーブル/マルチドキュメント・トランザクションが、どのデータベースに対しても要件であるとするのが習慣となっている人もいます。別の人たちは、現状、アプリケーションではマルチドキュメントトランザクションは不要であるが、将来的には必要となる可能性があり、データベースを扱えきれない状況となってしまわないか懸念しています。

ACIDの基礎となるマルチドキュメントトランザクションのサポートは、MongoDB 3.0から始まった。このバージョンでは、MongoDBは、PostgreSQLやOracleリレーショナルデータベースによく連想されるスナップショット分離のための手法であるマルチバージョン・コンカレンシー・コントロール(MVCC)が取り入れられた。最近のバージョンのSQL Serverでは、MVCCを「メモリ最適化」テーブルにも使用している。

MongoDB 3.2では「リード・コンサーン」のサポートが追加された。これまで、クライアントは、通信しているノードのいずれかが知っているデータを与えられていた。リード・コンサーンオプションによって、クライアントは大多数のノードが知っているデータを要求できる。ドキュメントによれば、「リード・コンサーンのレベルに関係なく、ノード上の最新のデータは、システム内の最新のデータを反映していない可能性がある」。

MongoDB 3.6では「因果一貫性」と呼ばれるものを提供した。以前のバージョンのMongoDBでは、操作が特定の順序で行われるという保証はなかった。たとえば、一連のレコードを削除し、次に削除したばかりのレコードを返す読み取りを実行できる。因果一貫性によって、読み取り操作が書き込み操作の結果に依存することを示すことができ、読み取りが実行される前に削除が完了したことを確認できる。

最後に、MongoDB 4.0は読み取りの一貫性を実行する機能を提供する。つまり、読み取り操作が開始された瞬間に知られていたデータだけを返す。A Quick Primer on Isolation Levels and Dirty Readsという記事で説明されている通り、MongoDBの以前のバージョンでは、いずれかの時点とは、必ずしも一貫性がない結果が返される可能性がある。1つのクエリでドキュメントをスキップしたり、同じドキュメントの複数のバージョンを返すこともできる。

マルチドキュメントトランザクションを試してみたい開発者には、MongoDB 4.0ベータプログラムに登録することが勧められている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT