Parallel Database Systems: The Future of High Performance Database Systems

September 25, 2021

データベースの処理性能を上げる手段として、特殊なハードウェアをもちいたり、メモリやディスクを共有した複数のコンピュータを使ったりするよりも、安価で単純に実装できることから、汎用的なコンピュータによる水平パーティションのシェアードナッシング構成を支持した。 論文が発表された1992年の時点でTeradataやTandem NonStopなどのパーティンション化されたデータベースがある。

データの分割方法にround-robin, hashing partitioning, range partitioningがある。 round robinはデータが順番に直列的に問い合わせられるときは有効だが、特定の値でレコードを検索する用途にはむかない。

Hasing partitioningは、属性値のhash値で保存先のデータベースを決める。 Hash値の計算につかう属性値が同じであれば問い合わせ先のデータベースが一緒になり、クエリを実行すべきディスクの数がへる。したがって、問い合わせが直列的か属性の値を指定したものだけであるときに有効に機能する。

一緒に検索されることが多いデータは、ディスク上の物理的に近くに配置しておくことが望ましい。 range partitioningは、属性値の似ているレコードを同じパーティションに保存することで、直列的な問い合わせや属性値による問い合わせだけでなく、一緒に問い合わせられやすいレコードを同じパーティションに保存できる。 ただし、Hashing partitioningやround robinに比べ、データの保存先が特定のパーティションに偏ってしまうおそれがある。

論文をこちらからダウンロードできます。