質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Q&A

解決済

2回答

12603閲覧

MongoDBでDBトランザクションが欲しい時どうしてますか?

shcwx

総合スコア17

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

0グッド

1クリップ

投稿2014/10/16 04:17

皆さん、MongoDBにはDBトランザクションの機能がないのは、周知の通りですが、それに関してどのように対応していますか?(ないと辛いですよね)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

最近、TokuMXというトランザクションを実装したMongoDBが出てきています。

便利そうなので、使っている方がいたら、所感を知りたいです。

投稿2014/10/16 06:02

bmcgn

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

二層コミットを実装することで可能なようですが、きちんと実装するのは大変そうです。
本当にトランザクションが欲しいなら、その機能をもっている DB システムを利用すべきなのでしょう。(そういってしまっては、みもふたもありませんが ...)

参考になりそうなページを紹介します。

...
トランザクション
無いからコードが複雑化する
...

...
MongoDB はトランザクションを持っていません。2つの代替手段を持っていて、1つめは素晴らしいのですが利用に制限があります、もうひとつの方法は柔軟性は高いのですが面倒です。
1つめの方法はアトミック操作です。それは素晴らしく実際の問題に適合します。既に$inc や $setなどの単純な例を見てきました。findAndModifyというドキュメントの更新と削除をアトミックに行うコマンドもあります。
2つめは、アトミック操作が不十分で二層コミットをフォールバックする際に利用します。二層コミットは Join に手動参照するトランザクションです。そ
...

...
MongoDB is usually a bad fit for it, because it doesn't support atomic operations when more than one document is affected.
A possible workaround is the two-phase-commit model.
...
This method is hard to implement and has considerable overhead. Before you implement this, you should really consider if there is really a good reason no to use a database system with native transaction support.
...

投稿2014/10/16 15:51

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shcwx

2014/10/20 05:41

詳しく回答して頂いたので、理解できました。回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問