[前][次][番号順一覧][スレッド一覧]

mysql:14138

From: "Hiroyuki Yamada" <"Hiroyuki Yamada" <yamahiroyu.y@xxxxxxxxxx>>
Date: Mon, 30 Jul 2007 12:21:07 +0900
Subject: [mysql 14138] アプリケーションレベルでの書き込みの分散について

MySQLにおける書き込みの分散について質問させてください。

現在、書き込みが多いサーバーを運用しており、
その書き込みをアプリケーションレベルで複数マシンに分散させたいとおもっております。


考えている手段としては、ユーザごとに書き込み先を分散させる方法で、
例えば、

user_id 1-100000 => マシン1へ書き込み
user_id 100001-200000 => マシン2へ書き込み

のようなことです。

例えば、2つのテーブルがあるとして、
(現状は、もうちょっと複雑ですが、説明をわかりやすくするために、2つのテーブルで説明します。)

user - ユーザのプロファイル等(書き込み少ない)
user_write - ユーザの書き込み履歴(書き込み多い)

user への書き込みはあまりなく、user_writeへの書き込みがとても多い状況なので、
user_writeのみを分散したいと考えています。


                   --------
                    user
                   --------

     ---------------     ---------------
     user_write1  user_write2
     ---------------     ---------------


この際、user_write1 と user を一貫性を保ったまま更新したい場合は
どのようにするのが一般的でしょうか?
(両方とも成功する必要があり、片方の失敗は許されない)

MySQL5からのtwo phase commit はこのような複数マシンをまたがったような
トランザクションにも対応できるのでしょうか?


よく出てくるmixiの例などは参考にしていますが、
(http://blog.livedoor.jp/nipotan/archives/50538571.html)
複数マシンへの書き込みに関しては具体的な方法がないので、
ちょっと困っております。


みなさんなら、こういう状況でどうされますでしょうか?
ご教授ください

Hiroyuki Yamada

[前][次][番号順一覧][スレッド一覧]

->   14138 2007-07-30 12:21 ["Hiroyuki Yamada" <y] アプリケーションレベルでの書き込みの分散について
     14142 2007-07-31 15:00 ┣["T.Hirotsu" <hirotsu]                                       
     14143 2007-07-31 18:18 ┣["Kensuke Kaneko" <ky]                                       
     14144 2007-07-31 21:26 ┃┗["T.Hirotsu" <hirotsu]                                     
     14145 2007-07-31 23:53 ┃ ┗["Hiroyuki Yamada" <y]                                   
     14151 2007-08-01 12:04 ┗[<ikari-ml@xxxxxxxxxx] [meiwaku#]Re:  アプリケーションレベルでの書き込みの分散について