sitemap
 
 
download center
online education
electronic support






    高性能データベースを効率的に管理するため、Altibaseは、各階層に効率的なメモリ使用のために慎重に設計されています。データベースのようなシステムソフトウェアは、単純なメモリの割り当て(malloc)や、値を指定(memset)する演算も性能に非常に大きな影響を与えるため、Altibaseは、メモリプールを利用したメモリ管理モジュールを非常に慎重に設計して実現しました。また、Altibaseの保存デバイス管理階層(Storage Management Layer)は、メインメモリに最適化された保存単位でページを構成し、各ページの連携性を最大化することにより、データベースを効率的に保存・管理します。クエリ処理階層(Query Processing Layer)は、クエリ処理の際に必要な一時的空間(temporary storage)を効率的に管理するため、実行中に不要なメモリリソースの割り当てや解放による性能低下の要素を最小化しました。



    大容量データベースの効率的な代案として、Altibaseは、メモリとディスクの2つの保存領域を一つのDBMSで提供します。メモリ領域と同様にディスク基盤の保存領域は、従来のDRDBMSで提供するLRUアルゴリズムをベースとしたバッファプール領域や物理的ディスク保存領域をサポートします。 ユーザが要求するデータをバッファプールにキャッシュして使用し、高性能なメモリ保存領域のデータと保存領域の速度に対する性能低下の要素を最小化しました。



    Altibaseは、限定されたメインメモリを効率的に管理するため、特定のテーブルをメモリにローディング(loading)したり、アンローディング(unloading)する、選択的なローディング(selective loading)技術を提供いたします。メインメモリDBMSは、スピーディーなアクセスのためにバッファマネージャを維持しません。そのため、データベース内の全てのテーブルがメモリにロードされている状態になります。 しかし、データベース運用の際、いくつかのテーブルを除けば、実際に使われるテーブルは少量のため、不要なテーブルをディスクに落とせば、残りのメモリ空間を効率的に再利用することができます。このように一部のテーブルだけをメモリにローディングすることをselective loadingといい、これを活用すれば、DBの管理やシステムを効率的に使うことができます。




    メインメモリデータベースを運用してみると、実際に特定のテーブルに必要なメモリ空間よりはるかに多い量のメモリを占めてしまう場合があります。これは、主に大量のデータが特定のテーブルに挿入された後、変更や削除が頻繁に行われた時に発生しますが、このような場合、該当テーブルから不要なメモリをシステムに返還することができれば、より効率的にメモリを使うことができます。Altibaseは、テーブル単位のcompaction機能を提供しており、この機能を利用すると、メモリやテーブルを効率的に管理することができます。




    Altibaseは、メインメモリ上のデータベース空間を共有メモリまたはプロセスローカルメモリに確保できる機能を提供します。共有メモリをデータベース空間として使うと、システムが正常な状態では、Altibaseの再実行にかかる時間が非常に短くすることができます。これは、共有メモリ内のデータベースが安全に維持されているため、バックアップデータベースからデータを読み込む必要がなく、すぐに共有メモリ内のデータベース領域をAltibaseサーバープロセスに付けて(attach)使うことができるからです。 メインメモリ内のデータベース空間は、永続空間(persistent space)と一時的空間(temporary space)に分けられます。永続空間は、実際のテーブルとメタ情報に関するデータを保存しています。この空間は、ディスクに存在するバックアップデータベース内容を反映しています。一時的空間は、インデックスデータやクエリ演算中に発生する作業用のテーブルが置かれる場所です。
    この空間は、ディスクにあるバックアップデータベースには反映されず、Altibaseサーバーが終了すると消えてしまう空間です。Altibaseのインデックスデータはバックアップデータベースに保存されないため、一時的空間に保存・管理されます。Altibaseは、サーバーが開始時にシステムカタログからインデックス情報を取得して、一時的空間にインデックスを速やかに生成します。インデックスをバックアップデータベースに保存しないことにより、Altibaseは、サーバー実行中にインデックスの変更に対してロギングする必要がないため、その分データベースの性能をアップさせることができました。

    継続したデータの挿入により、メインメモリ内のデータベースの永続空間が足りない場合、Altibaseは、自動でデータベースの永続空間を一定のサイズに拡張して管理します。もちろん拡張されたデータベースの永続空間はバックアップデータベースに反映され、データの永続性を保障します。

    Altibaseには、このような空間的な問題を他の方法でディスク保存領域にテーブルをMoveできる機能があります。このMoveの機能は、同じスキーマのテーブルが存在する場合、メモリ領域のデータをディスク領域に移し、該当データを元のテーブルから削除してくれる機能です。このようにすることにより、アクセスの多いデータやアクセスが比較的少ないデータを分離して保存し、応答性能を最適化し、保存空間をさらに効率的に使うことができます。

faq contact us sitemap top