Oracle TimesTen In-Memory Databaseは、通信、金融、Webアプリケーション、旅行・物流、ゲームなど、今日の企業が求める即応性と高いスループットをアプリケーションに提供する、メモリ最適化リレーショナル・データベースです。このデータベースは、キャッシュ・データベース(TimesTen Application-Tier Database Cache)、スタンドアロン・データベース (TimesTen Classic) 、分散データベース (TimesTen Scaleout) としてアプリケーション層に導入できます。標準SQLインターフェース、高可用性、および耐障害性は、本製品の標準機能です。
TimesTen Application-Tier Database Cache(TimesTen Cache)は、Oracle Databaseのオプション製品で、Oracle Databaseにリアルタイムの読み取り/書き込みキャッシュ機能を提供します。TimesTen Cacheは、パフォーマンスが重要な表や表の一部をOracle Databaseからアプリケーション層にキャッシュすることで、アプリケーション・トランザクションの応答時間を改善します。キャッシュ表は、TimesTenインメモリ・データベース内の通常のリレーショナル・データベース表と同様に管理されます。そのため、TimesTen Cacheは、アプリケーションに、リレーショナル・データベースの完全な汎用性と機能性、Oracle Databaseとのキャッシュの透過的な一貫性、およびインメモリ・データベースのリアルタイム・パフォーマンスを提供することができます。TimesTen Cacheは、Oracle Databaseのパフォーマンスクリティカルなサブセットをキャッシュし、アプリケーション層の応答時間を改善する上で最適です。高可用性を実現するために、TimesTen Cacheはアクティブ-スタンバイ構成で導入することができます。これにより、キャッシュ表はOracle TimesTen In-Memory Database間でリアルタイムに複製されます。
Oracle TimesTen In-Memory Databaseは、管理対象のデータがすべて物理メモリ(RAM)内に存在するという前提で構築されています。そのため、ハードウェアに関して最も重要な点は、アプリケーション層に十分なRAMが確保されていることです。それを除けば、ハードウェアに関する考慮事項はほとんどありません。他のアプリケーションと同様に、適切なクロックスピードで動作する十分な数のCPUを備えることが、アプリケーションを可能な限り高速に実行するために重要です。また、複数のCPUを活用するためには、複数のアプリケーションを実行するか、アプリケーションを複数のスレッドを使用するように設計する必要があります。さらに、トランザクション・ログやチェックポイント・ファイルはディスク上に保存されるため、ディスクの速度が速いほど全体のパフォーマンスが向上します。
TimesTen Cache はアプリケーション層に存在するため、Oracle Database との通信には SQL*Net を使用します。Oracle Database Instant Clientは、Oracle Databaseに接続するためにTimesTen Cache内にインストールされます。
Oracle TimesTen In-Memory Databaseは、別途ライセンスが必要な製品です。この製品には、TimesTen In-Memory Database、レプリケーション・コンポーネント、およびTimesTen Scaleoutの導入が含まれます。
TimesTen Application-Tier Database Cacheは、Oracle Database Enterprise Edition向けのオプションとして提供されるOracle Database製品です。TimesTen In-Memory Databaseおよびキャッシュ技術が含まれているため、TimesTen Cacheをインメモリ・キャッシュ・データベースとして導入し、TimesTen CacheとOracle Databaseの間でデータを自動的に同期できます。
次のプラットフォームがサポートされています。
TimesTen Application-Tier Database Cacheオプションは、Oracle Databaseリリース11.2.0.4、12c、19c、21cに加えて、以下のOracle Autonomous Databaseのリリースをサポートしています。
TimesTenデータベースは、通信アプリケーション(認証、承認、番号ポータビリティ、オンライン課金および請求、仲介、コールセンターなどの)や、金融アプリケーション(証券取引、株式市場、不正検出、コンプライアンス、オンラインバンキング、債券価格設定)など、さまざまな業界の多くのアプリケーションで使用されています。その他のアプリケーションには、ゲーム、CRMシステム、航空会社予約システム、旅行計画、顧客向けアプリケーション、および防衛アプリケーションなどがあります。
Oracle TimesTenは、思考速度のOLAP分析を行うExalytics In-Memory Machineや、リアルタイム請求のOracle Billing and Revenue Managementなど、一部のOracle Applicationsの中核としても使用されています。
TimesTenデータベースとCoherenceはどちらもアプリケーション層で動作します。また、どちらもメインメモリ・ベースです。Coherence は分散型のインメモリ・オブジェクト・ストアで、直列化されたオブジェクトを保存および取得するために get/put API を使用します。
TimesTen は、ディスクへの永続性と標準的なトランザクション・セマンティクスを備えたインメモリ・リレーショナル・データベースで、SQLを使用してアクセスします。Oracle Databaseのキャッシュとして使用される場合、データは自動的にOracle Databaseと同期化されます。分散キャッシュは、位置の透明性と分散同時実行制御により、アプリケーションに対して単一のイメージを提供します。
Oracle ExadataはOracle RACを基盤とした、他に類を見ないレベルのデータベース・スループットを実現する非常にスケーラブルなシステムです。
TimesTen独自の価値は、アプリケーション層で非常に低い応答時間を実現できる点にあります。最高のパフォーマンスを実現するために、TimesTenはアプリケーションに組み込まれています。TimesTenは、マイクロ秒単位でSQLリクエストに応答します。これは、電話のルーティング、認証および承認、リアルタイム請求、証券取引、不正検出、オンラインバンキングなど、リアルタイムで即時の応答が求められるアプリケーションにとって不可欠です。
はい、Oracle TimesTen In-Memory Databaseは、現在、多くのお客様がアプリケーション層でスタンドアロン・データベースとして使用されています。TimesTenは、SQL操作に対して完全なトランザクション・サポートを提供します。また、トランザクションログはリカバリ用にディスクに保存されます(データベースは常にインメモリです)。
はい、TimesTen Application-Tier Database Cacheを使用すれば可能です。このデータベース・オプションには、TimesTen In-Memory Databaseとキャッシュ技術が含まれており、TimesTenをインメモリ・キャッシュ・データベースとして導入し、TimesTen と Oracle Database 間のデータの自動同期を有効にすることができます。
TimesTen In-Memory Databaseは、標準のODBC、JDBC、OCI、およびADO.NETインターフェイスをサポートしており、アプリケーションはSQL-92標準を使用してデータベースに接続できます。
いいえ、64ビットと32ビットの両方で、同じインターフェイスを提供しています。64ビットモードを活用するには、アプリケーションを64ビットモードで再コンパイルし、TimesTen 64ビットライブラリにリンクする必要があります
Java、.NET、C、C++、Pro*C、PL/SQL、およびPythonやNode.jsなどのオープンソース言語を使用してアプリケーションを開発できます。サンプル・プログラムの一覧については、Oracle TimesTen In-Memory Database Samples on GitHubを参照してください。
Oracle TimesTen In-Memory Databaseは、アプリケーション層で実行するように設計および最適化されています。データベースは、最高のパフォーマンスを実現するためにアプリケーションと直接リンク(組み込み)することができます。TimesTenデータベースをアプリケーションに組み込むと、SQLアクセスにネットワークやIPCのオーバーヘッドが発生しません。組み込みモードで実行している場合でも、TimesTenは完全なマルチプロセス/マルチスレッド・アクセスと同時実行制御を提供します。
はい、Oracle TimesTen In-Memory Databaseは索引をサポートしています。索引は、Oracle Databaseの場合と同様に、データベースへのクエリ・パフォーマンスを向上させます。TimesTenでは、等価検索や範囲検索に使用される範囲索引と、主キー検索や完全一致検索、等値結合に対して範囲索引より高速なアクセスを提供するハッシュ索引の2種類の索引がサポートされています。
TimesTen In-Memory Databaseは、標準SQLをサポートしています。データ構造を作成するには、SQL DDL文、例えばCREATE TABLE、CREATE INDEX、CREATE SEQUENCE、CREATE VIEW、CREATE MATERIALIZED VIEW、CREATE PACKAGE、CREATE PROCEDURE、CREATE FUNCTION、CREATE SYNONYM、ALTER TABLEなどを使用します。RDBMSで使用されるデータベース設計技術は、TimesTenでも使用可能です。ディスク最適化型RDBMSに比べ、TimesTenでのデータベース設計や管理は簡単です。なぜなら、表拡張のサイズ設定やディスクのデフラグを行う必要がないからです。
データベース全体がインメモリ内に存在する一方で、TimesTenにはトランザクション・ログファイルとチェックポイント・ファイルがあり、これらはディスクに保存されます。システムが再起動または故障した場合、インメモリデータベースはチェックポイントとトランザクション・ログファイルから復旧されます。
TimesTen Cacheは次のリリースをサポートしています。
TimesTen Cacheは、Oracle Databaseサーバーのクライアント・アプリケーションとして動作します。TimesTen Cacheは、TimesTen In-Memory Databaseと同じプラットフォームをサポートしています。Oracle TimesTenテクノロジーがサポートするプラットフォームについては、こちらをご覧ください。
はい、TimesTen CacheはOracleクライアントとして実行されるため、Oracle Databaseサーバーとは異なるプラットフォーム上で実行できます。名前が示すように、TimesTen Application-Tier Database Cache は通常アプリケーション層に配置され、Oracle Database はデータベース層に配置されます。
TimesTen Cacheにキャッシュするパフォーマンスクリティカルなデータの量は、アプリケーションの性質に応じて異なります。データベース全体をキャッシュするのではなく、データベース表、列、行のサブセットをTimesTen Cacheにキャッシュすることができます。別のオプションとして、動的キャッシュを定義する方法があります。この場合、Oracleの表から必要に応じてデータがロードされます。
TimesTenレプリケーションは、TimesTen In-Memory DatabaseおよびTimesTen Application-Tier Database Cacheの機能の一つです。TimesTenレプリケーション・テクノロジーは、TimesTenサーバーノード間のリアルタイム・データ・レプリケーションを可能にします。このテクノロジーは、高可用性アーキテクチャの構築、災害復旧サイトの構築、および複数のノードへのデータの分散に使用されます。レプリケーションは、非同期または同期データ転送を使用して、アクティブ/スタンバイ構成またはアクティブ/アクティブ構成をサポートします。詳細は、TimesTen In-Memory Database のデータシートを参照してください。
TimesTenでは、TimesTen In-Memory Database全体を1つまたは複数のTimesTenノードにレプリケートするよう構成できます。フェイルオーバー時には、スタンバイノードがアクティブノードに切り替わり、故障したノードはスタンバイ(現在アクティブ)のデータベースから復旧することができます。
はい、表レベルのレプリケーションとデータベースレベルのレプリケーションの両方がサポートされています。
TimesTenレプリケーションは、LANやWANを通じてデータベースノード間でデータをやり取りするために、永続的なストリーミングTCP/IPソケットを利用します。
はい、一方向および双方向のレプリケーションをサポートしています。双方向レプリケーションの場合、競合を避けるためにワークロードを分割することが推奨されます。同じデータベースの行が更新されて競合が起きた場合、TimesTenレプリケーションはタイムスタンプを使って競合を検出し、解決します。