[pgsql-jp: 27621] Re: データベース間のリレーションの図り方
Tatsuo Ishii
t-ishii @ sra.co.jp
2002年 10月 12日 (土) 21:10:43 JST
石井です.
> > やっぱり良く分からないので,具体例をあげていただけませんか?
>
> んーと、リモートとローカルでどういう順にbeginをかけるかによると思うのですが、
> 例えば、リモート→ローカルという順番でトランザクションを始める場合に、
>
> リモートにbeginかけて、何らかの理由でレスポンスが遅れてる間に
> ローカルでは他のトランザクションによってデータが更新されて、
> その後ローカルにbeginする、とかというのは、ローカルとリモートでbeginが始まる
> タイミングが大きくズレる場合がありますよね?
>
> 本来ならリモートでbeginするのと同時にローカルでもトランザクションを開始して
> ほしいわけですが、「双方にbeginを発行するタイムラグ」が問題になることは
> 無いのかなぁ、と。
dblinkのような仕掛けを使う限り,そういうことはあり得ないのではないでしょ
うか.
SELECT dblink("dbname=test host=hoge", "BEGIN");
ってやると,dblinkの中でlibpqがhogeにコネクトしてBEGINを実行し,BEGIN
が完了するまでブロックするので,dblinkから戻ってきたときにはリモートで
BEGINが必ず終わっていますよね.あ,そういうことではない?
> すみません。SQL99じゃなくて、策定中の(?)SQL4(?)みたいです。
> 先日プレゼンでキーワードを見たのを、後日検索してみました。
>
> http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_3d.html
>
> これの「SQL/MED」のあたりです。
なるほど.このURLはちょっと説明が大ざっぱすぎて良く分かりませんが,オ
プティマイザの問題はどうするんでしょうかね.そこまでは考えてないのかな.
オプティマイザの問題を考慮しなくて良いのなら,dblink程度で十分実現でき
そうな機能のように見えました.それどころか,dblinkなら,周辺機器から上
がってくる情報のようなものさえテーブルに見せかけるようなこともできます.
個人的にはこっちの方が面白そう.
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内