Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

SQL AnywhereのI/O要件 - 最新ホワイトペーパー

原文:SQL Anywhere I/O Requirements – a new whitepaper

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/08/16 14:00

 SQL Anywhereエンジニアリング部門が執筆したホワイトペーパー「WindowsおよびLinux向けSQL AnywhereのI/O要件」が公開されました。WindowsおよびLinuxプラットフォームで動作するSQL Anywhereサーバーで、メディアまたは電源の障害時に確実なデータベース復旧を行うために満たすべきI/O要件が説明されています。 (原文:SQL Anywhere I/O Requirements - a new whitepaper、2011/03/30投稿)

 本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。
※編集部注:掲載しているブログ内容は執筆時点での情報のため、現在とは異なる場合があります。

 本日、SQL Anywhereエンジニアリング部門が執筆したホワイトペーパー「WindowsおよびLinux向けSQL AnywhereのI/O要件」が公開されました。このホワイトペーパーでは、WindowsおよびLinuxプラットフォームで動作するSQL Anywhereサーバーでメディアまたは電源の障害時に確実なデータベース復旧を行うために満たすべきI/O要件が詳しく説明されています。このホワイトペーパーの要約を次に示します。

 コミットされたトランザクションを確実に永続化し、電源喪失時にデータベースを適切に復旧するためには、保存先のストレージへデータが到達したということをデータベースサーバーが正しく把握できなければなりません。オペレーティングシステムとストレージデバイスは、パフォーマンスを向上させるために、書き込み操作のキャッシュや並び替えを行います。正しく設定されていないシステム上でデータベースサーバーを動作させると、データの消失や破損につながる可能性があります。この文書では、耐久性の高いストレージの要件や、SQL AnywhereのI/Oセマンティクスについて理解するために必要な背景を説明します。

 また、3.2.1項の内容を一部抜粋して紹介します。

 Windowsでは、FlushFileBuffers()を呼び出すことでOSにディスクフラッシュを要求できます。SQL Anywhereでも、データの信頼性を保証するために適宜この呼び出しを通じてフラッシュを要求しています。しかし残念ながら、一部のI/Oドライバにはバグがあり、FlushFileBuffers()を呼び出してもフラッシュコマンドが常にディスクに渡されるとは限りません。また、SQL Anywhereでは、データベースファイルやトランザクションログファイルを開く際にCreateFile()にFILE_FLAG_WRITE_THROUGHフラグを渡すことで、FUAビット付きのI/Oを要求しています。しかしFUAビットの扱いはディスクメーカーやWindowsのバージョンの間で必ずしも統一されていません。一部のATAベースの実装は、FUAビットを完全に無視しているらしく、SQL Anywhereの信頼性を脅かしています。

 Windowsを市販コンピュータ上で使っている方、あるいはLinuxディストリビューション上で使っている方(特に私が以前の記事で紹介したEXT3ファイルシステムを使用している場合)は、このホワイトペーパーをお読みになることをお勧めします。



  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • Glenn Paulley(Glenn Paulley)

    カナダ オンタリオ州 ウォータールー R&DセンターにてSQL Anywhere 開発における Director of Engineering としてクエリ・オプティマイザなどの開発をリードしている。 ・IvanAnywhere

バックナンバー

連載:Glenn Paulley氏 データベース関連ブログ 翻訳記事

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5