[pgsql-jp: 28138] Re: レプリケーション
Mashiki
mashiki @ yanah.com
2002年 12月 1日 (日) 01:16:51 JST
Mashikiです。
>> 現在公開中のバージョンではシーケンス・データのクラスタDB間での整合性はとっ
>> ていません.
>
>SERIAL 型 ( SEQUENCE )の整合性が取れないのは痛いですね。
>
>主キーを SERIAL 型にして自動取得して、その値を他の表の外部
>キーや、主キーの一部として使用するという使い方は多いと思います。
>
>また、外部に伝票類として出力されるデーターにも、受注番号や
>○○番号など SEQUENCE の値が使われるので、DB の外のデーター
>と レプリケーションされた DB の中の値が一致しないと、
>用途によっては致命的ですね。
僕が設計するシステムは全滅ですね。
無理やりやろうと思えば、例えばA,B,Cなる3つのサーバーで
A:
CREATE SEQUENCE seqKey START 1 MAXVALUE 10000000;
B:
CREATE SEQUENCE seqKey START 10000001 MAXVALUE 20000000;
C:
CREATE SEQUENCE seqKey START 20000001 MAXVALUE 30000000;
のようにSequenceを作っておくとか。この場合、シーケンスが
出す結果の「順序」という意味はなくなりますが、ユニーク性は
大丈夫でしょう。実際のサーバーのロケーションが関東、大阪、
福岡とかだったら、これはこれでわかり易いかも。
下は開き直る場合、
A:
CREATE SEQUENCE seqKey START 1 INCREMNT 3;
B:
CREATE SEQUENCE seqKey START 2 INCREMNT 3;
C:
CREATE SEQUENCE seqKey START 3 INCREMNT 3;
>> 次のバージョンはクラスタDB間でシーケンス・データの整合性を取れるように少
>> し工夫を加えています.テスト環境では,クラスタDBを後から追加してもシーケ
>> ンスのデータは整合性が取れていました.
>-- snip --
>
>次バージョンに期待します。
どのように実現しているのか興味しんしんです。キャッシュを2段階にして、
各サーバーでその枠を使い切ったら、マスターDBよりもらう感じかなあ。
pgsql-jp メーリングリストの案内