[pgsql-jp: 33140] Re: PostgreSQL カンファレンスお礼および MySQL のデータが壊れる件

EBIHARA Yuichiro uiebi @ yahoo.co.jp
2004年 6月 7日 (月) 17:54:12 JST


海老原です。

--- TANIDA Yutaka <tanida @ sra.co.jp> からのメッセージ:
>
> > 某がOracleだとして、これはロールバックできなくなるのではなく、他トラ
> > ンザクションがコミットした更新の更新前イメージが見えなくなることがあ
> > る、ということです。
> 
> まあ、私は某がOracleとは一言も言っていませんが:-)その挙動も大変な問題
> になりませんか?

なりますね。
「ORA-1555 スナップショットが古すぎます」はOracleでも最もやっかいなエラー
ですから。(発生確率を低くはできても、100%確実に回避する方法がない)

> ところで、今のOracleはロールバックセグメントを使い果たしても(一つのト
> ランザクションでロールバックセグメントの容量を超えてしまうような大量の> 
更新をしても)正しいロールバックが可能なんですか?

未コミットのトランザクションが使っているロールバックセグメント領域は上書
きされませんからロールバックはできます。
ただし、詳しくは忘れましたが「ロールバックセグメントを拡張できない」旨の
エラーが出て、領域を追加したりしない限りは先に進めなくなってしまいます。

> > でもMySQLやOracleでも、ディスクが許す限りの大きなロールバックセグメ
> > ントをとっておけば、あまり大きな違いはないような気もします。
> 
> そうですね。しかし、前もって大量の領域を用意しなければならないのであれ> 
ば、PostgreSQLのVACUUMが必要なアーキテクチャと似たり寄ったりじゃないで> 
しょうか。

えぇ、どっちも一長一短だと思います。

> しかし個人的に言うと、分離レベルというのは、どうも既存のDBが完全なサポ
> ートをするとものすごく遅くなってしまったので、パフォーマンスのための救
> 済策であるように理解しているので、とにかく実装する、というスタンスにあ> 
まり前向きにはなれないですね。

同意します。自分の場合、例え4レベルあっても、結局はRead Commitedでうまく
いくように設計してしまうと思います。

> 何を持ってエンタープライズ用途と呼ぶか、でしょう。たとえばsf.netは
> PostgreSQLで動いているらしい(資料が見つかりませんが)ですが、あれはエ> 
ンタープライズでしょうか、そうでないのでしょうか?

うちの会社の基幹系業務がエンタープライズ。止まるとビジネスインパクトがで
かいやつ。^^;
他の会社・組織の定義は知りません。
こんな定義なので、自前で評価・検証するしかないわけでして。

--
海老原 雄一郎



pgsql-jp メーリングリストの案内