TOPシステムトレンド> 信頼性
近未来データベース
近未来データベース

第1回:データベースを取り巻く状況
著者:NTTデータ先端技術  鈴木 幸市   2005/8/8
前のページ  1  2  3  4
信頼性

   データベースにとっては、確定したデータの書き込み結果を決して失わない信頼性が非常に重要な特性になります。ソフトウェアで信頼性を確保するには、前のページの図7に示したようなログを使います。

   システムがクラッシュしてもログだけは残るように、シーケンシャルアクセスを行い、かつ同期書き込みを行います。これはカーネルやデータベースが持っているキャッシュにデータを書くだけでなく、システムがクラッシュしても(クラッシュするとメモリの内容は消えてしまいます)データがなくならないように確実にディスクに書いておく手段で、カーネルが提供しています

   クラッシュした時点では、データベース本体のデータはキャッシュに書いてあるだけでファイルには残っていませんが、これにログのデータを重ねて書いていくとデータを復元(リカバリ)することができます。このようにデータのリカバリにログを使うのが、カーネルのログ(syslogなど、これはイベントの記録)とは用途が少し異なっています。カーネルのログがほとんどテキスト情報なのに比べ、データベースのログはバイナリ形式なのが普通です。

   ソフト的にデータの信頼性を保障するしくみがログ(これと「チェックポイント」というしくみを併用することがあります)ですが、これもハードウェア障害には対応しきれないことがあります。

   その場合は磁気ディスクを多重化して、1つのディスクが障害になっても、もう一方のデータが使えるRAID1構成をとります。これと複数のディスクにデータを分散(ストライピング)させることを組み合わせたRAID1+0構成もよく使われます。RAIDはソフト的にも実現できますが、サーバがクラッシュした場合でも確実にデータを守るためには、ハードウェアで実装した方が確実です。

   またRAIDカードの中には、同期書き込みの際にも実際には遅延書き込みを行い、サーバクラッシュの際にはカードが持っているバッテリバックアップを使ってデータが確実にディスクに書けるようにしているものもあります。このようなカードを使うと、信頼性を犠牲にせずに見かけ上の書き込み速度を上げることができます。しかし長い時間で見ると、結局はディスクにデータを書かなければならないことに変わりはありません。


おわりに

   今回は「近未来データベース」の導入として、データベースを取り巻く種々の要因を解説しました。次回はデータベースの性能をスケールアウトさせる方法について、最近の試みを紹介します。さらにデータベースの多重化技術についても最近の動きを解説していきます。

前のページ  1  2  3  4


NTTデータ先端技術株式会社 鈴木 幸市
著者プロフィール
NTTデータ先端技術株式会社  鈴木 幸市
Unixにおける日本語ハンドリング、Oracleの移植、オブジェクトリレーショナルデータベースのエンジンの開発などに携わる。現在、NTTデータ先端技術にてLinux、PostgreSQLなどのオープンソースソフトウェアに関する技術を統括している。著書に「RDBMS解剖学」(翔泳社)、訳書に「オブジェクト指向データベース入門」(共立出版)など。


INDEX
第1回:データベースを取り巻く状況
  はじめに
  なぜデータベースのスケールアウトは難しいのか
  データベースとはどんなソフトウェアか
信頼性