InterBase
マルチ・ジェネレーション・アーキテクチャーとは、InterBaseのマルチバージョン並行処理制御の実装のことである。InterBaseはこの技術を使用した2番目の商用データベースである。ちなみに1番目は、DECのRdb/ELNである。
1)データベースには並行性制御が必要であり、そのためにロックを使用する。
簡単な銀行のアプリケーションを考えて見よう。2人のユーザーが、ある口座の預金にアクセスする。Bobは口座を読み込んで、そこに1000ドルを見つける。それで彼は500ドルを引き出す。Janeは同じ口座をBobが変更する前に読み込んで、1000ドルを見つける。そして800ドルを引き出す。口座は300ドル貸し越しになるはずだが、実際には、どちらのトランザクションが先に処理されるかによって、口座の残高は500ドルか200ドルのどちらかになるだろう(訳注:このような現象は失われた更新-ロストアップデート とよばれる)。これは深刻な問題を引き起こすので、言うまでもなく、複数のユーザーがアクセスするデータベースシステムはどれでも、このようなシナリオに対処する何らかの種類のシステムが必要だ。
その代わりに、データベースの各レコードは1つ以上のバージョンの中に存在する事が出来る。
例えば、BobとJaneが口座を見た時、彼らは共に「バージョン1」を取得し、1000ドルを見つける。Bobが預金を引き出して口座を変更した時、データは上書きされない。代わりに、500ドルの入った「バージョン2」が作成される。Janeが800ドルを引き出そうとすると、新しいバージョン2があると通知される。よってJaneの引き出しは失敗する。
このアプローチは、マルチバージョン並行処理制御と呼ばれる。InterBaseのマルチバージョン並行処理制御の実装は通例、マルチ・ジェネレーション・アーキテクチャーと呼ばれる。
マルチバージョン並行処理制御により、真のスナップショット・トランザクション・アイソレーション(独立性)を比較的シンプルに実装する事も出来る。InterBaseではスナップショット・アイソレーションを持つトランザクションはデータベースの状態を、トランザクションが始まった時点の状態として正確に示す。これはアクティブ・データベースのバックアップや、長時間のバッチプロセスなどに非常に便利である。
InterBase 7 サーバの完全インストールに必要なディスク容量は、40MBである。これは競合する多くのデータベースサーバのクライアント・アプリケーションのインストールに必要なディスク容量より小さい。サーバのユーザーのアイドル時のメモリ使用量は極めて小さい。InterBaseのクライアントに必要な最低限のディスク容量は、400KBである。