TimesTen Scaleoutの機能
TimesTen Scaleoutには、可用性の高いインメモリー・データベースを提供する特定のキー機能があります。
インメモリー・データベース
TimesTenのデータベースは、今日の企業および業界で必要とされる応答性と高スループットによってアプリケーションを強化する、メモリー最適化されたリレーショナル・データベースです。データベースは物理メモリー(RAM)に完全に適合し、標準SQLインタフェースを提供します。
TimesTenは、すべてのデータがメモリーに格納されるというナレッジを使用して設計されています。その結果、データへのアクセスがより簡単で直接的になり、コード・パスはより短く、アルゴリズムと内部データ構造はより単純になります。こうして、TimesTenは実行時にデータが存在する場所を最適化することにより、パフォーマンスを向上させます。メモリー内のデータを管理し、それに応じてデータ構造とアクセス・アルゴリズムを最適化することにより、データベース操作が最大限の効率で実行され、応答性とスループットが大幅に向上します。
パフォーマンス
TimesTen Scaleoutは、各データベースのデータをシェアード・ナッシング・アーキテクチャのグリッド内のインスタンスに分散することで高パフォーマンスを実現します。TimesTen Scaleoutはデータベースの作業をこれらのインスタンスにパラレルに分散し、これによりSQL文の結果がより高速に計算されます。
永続性
TimesTenのデータベースは、電源障害やクラッシュ時にも持続します。TimesTenでは、これは次のものをファイル・システムに定期的に保存することで実現されます。
-
チェックポイント・ファイルを介したすべてのデータ。
-
トランザクション・ログ・ファイルを介してトランザクションによって行われた変更。
TimesTen Scaleoutでは、データベースのデータは要素に分散されます。各要素は、独自のチェックポイントおよびトランザクション・ログ・ファイルを保持します。その結果、各要素に格納されたデータは独立して永続します。グリッド内の各インスタンスはデータベースの1つの要素を管理します。障害が発生した場合、残りのインスタンスがアプリケーションにサービスの提供を続行している間、インスタンスはその要素に格納されているデータをチェックポイントおよびトランザクション・ログ・ファイルから自動的にリカバリできます。
TimesTen Scaleoutでもデータの複数のコピーを保持し、永続性とフォルト・トレランスを向上させることができます。
パフォーマンスおよびデータ永続性のニーズに応じてデータベースの永続性設定を変更できます。たとえば、高いパフォーマンス・レベルで操作するために、データをコミットごと、または定期的にバッチでファイル・システムにフラッシュするかどうかを選択できます。
SQLおよびPL/SQLの機能
アプリケーションは、SQLおよびPL/SQLを使用してデータベースのデータにアクセスします。SQLをよく理解している開発者は、TimesTen Scaleoutを使用したアプリケーションの開発において、すぐに生産性を高めることができます。
SQLの詳細は、「TimesTen ScaleoutでのSQLの使用方法」および『Oracle TimesTen In-Memory Database SQLリファレンス』を参照してください。PL/SQLの詳細は、表1-9および『Oracle TimesTen In-Memory Database PL/SQL開発者ガイド』を参照してください。
トランザクション
TimesTen Scaleoutでは、データへのACID (Atomic: 原子性、Consistent: 一貫性、Isolated: 独立性、Durable: 永続性)アクセスを提供するトランザクションがサポートされています。「TimesTen Scaleoutでの分散トランザクションの理解」および『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のトランザクション管理を参照してください。
スケーラビリティ
TimesTen Scaleoutでは、データベースのデータを個別のホストに配置されている複数のインスタンスに分散し、可用性、パフォーマンス、記憶域容量、処理能力および持続性を大幅に向上させることができます。TimesTen Scaleoutは複数のインスタンスにデータベースのデータを分散する場合、それらのインスタンスを実行しているホストによって提供されるインメモリー・リソースを使用します。
TimesTen Scaleoutでは、データベースのパフォーマンスと記憶域容量の両方を制御するためにインスタンスを追加または削除できます。インスタンスを追加すると、データベースのメモリー容量が拡張します。また、これらのインスタンスを実行しているホストの追加のコンピューティング・リソースが提供されることで、ワークロードのスループットが向上します。ビジネス・ニーズが変化した場合、インスタンス(およびそのホスト)を削除して、少ないリソースでターゲットを満たすことができます。
データの透過性
TimesTen Scaleoutは複数のインスタンスにデータを分散し、アプリケーションはデータの分散方法を認識する必要はありません。アプリケーションはグリッド内のいずれかのインスタンスに接続すると、特定のデータが配置されている場所を認識しなくても、データベースのすべてのデータにアクセスできます。
TimesTen Scaleoutではデータの分散に関する知識は必要ありませんが、この知識を使用してアプリケーションのパフォーマンスをチューニングできます。可能な場合は、この知識を使用して場所を利用できます。「疑似列の使用」を参照してください。
高可用性およびフォルト・トレランス
TimesTen Scaleoutは、ネットワークの混雑など、ほとんどの一時的な障害から自動的にリカバリします。TimesTen Scaleoutは、チェックポイントおよびトランザクション・ログ・ファイルからリカバリすることによって、ソフトウェア障害からリカバリします。ハードウェア障害などの永続的な障害は、ユーザーによる操作を必要とすることがあります。
個別のホストにデータのコピーが複数ある場合、TimesTen Scaleoutは高可用性とフォルト・トレランスを提供します。TimesTen ScaleoutにはK-safety (k
)という機能が用意されており、グリッドの作成時にk
に対して設定した値によって、グリッドに存在するデータのコピー数が定義されます。この機能により、データベースはデータの1つのコピーがアクセス可能であるかぎり、様々な障害が発生した場合にも稼働し続けることができます。
-
データの1つのコピーのみを作成する場合は、
k
を1
に設定します。この設定は本番環境ではお薦めしません。 -
データのコピーを2つ以上作成するには、
k
を2
以上に設定します(サポートされている最大値は5
です)。この設定では、グリッドをフォルト・トレラントにすることができます。そのため、1つのコピーが失敗しても、そのデータのコピーは1つ以上存在します。データの安全性を最大限確保するために、個別の物理ハードウェアにデータの各コピーを配置します。
TimesTen Scaleoutは、ソフトウェアとハードウェアの両方にフォルト・トレランスを提供します。
-
ソフトウェアの障害は、多くの場合一時的なものです。ソフトウェアのエラーによりデータのコピーの1つが使用できない場合は、データの他のコピーにSQL文が自動的にリダイレクトされます(可能な場合)。その間、TimesTen Scaleoutは障害が発生したシステムのデータをデータベースの残りの部分と同期します。TimesTen Scaleoutでは、インスタンスが実行中であれば、ユーザーが操作してリカバリする必要はありません。
-
ハードウェア障害は、最終的にユーザーの操作が必要になる場合があります。場合によっては、ホストの再起動のみが必要なことがあります。
TimesTen Scaleoutは、一貫性のある方法で障害を解決するためのメンバーシップ・サービスを提供します。メンバーシップ・サービスにより、起動しているインスタンスの一貫性のあるリストが表示されます。これは、ネットワーク・エラーのためにホストが相互に通信できない2つの別々のグループに分割された場合に役立ちます。
集中管理
管理アクティビティを実行するには、グリッド内のすべてのホストにログオンする必要はありません。かわりに、ttGridAdmin
ユーティリティを使用して単一のインスタンスからすべての管理アクティビティを実行します。ttGridAdmin
ユーティリティは、各データベースのステータスを定義、デプロイおよび確認するために使用する主要なユーティリティです。
また、ttGridRollout
ユーティリティまたはOracle SQL Developer GUI (どちらも、すべてのリクエストを処理するために背後でttGridAdmin
ユーティリティを使用)を使用して、グリッドの作成、デプロイおよび管理を容易にすることもできます。
-
グリッドを初めて作成する場合は、
ttGridRollout
ユーティリティを使用してグリッドを定義およびデプロイできます。作成後、ttGridAdmin
ユーティリティまたはOracle SQL Developerを使用してグリッドを管理します。 -
Oracle SQL Developer (グリッドとそのコンポーネントを作成、管理および検索する便利な方法をデータベース開発者に提供するグラフィカル・ユーザー・インタフェース(GUI)ツール)を使用してグリッドを作成および管理できます。また、特定のデータベース・オブジェクトの参照、作成、編集および削除、SQL文とスクリプトの実行、データの操作およびエクスポート、レポートの表示および作成を行うこともできます。『Oracle TimesTen In-Memory Database SQL Developerサポート・ユーザーズ・ガイド』を参照してください。