データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

OracleTimesTenの概要

Times Tenは、Oracleデータベースのパフォーマンスを大幅に向上させる可能性のあるOr​​acle製品です。

Times Tenは、メモリが最適化されているだけでなく、高スループットを提供し、耐久性を確保し、拡張性を提供します。特にパフォーマンスに大きく依存するアプリケーションでは、応答時間を最小限に抑えます。従来のデータベースとは異なり、Times Tenは高効率を提供し、完全にRAMに常駐します。

TimesTen History

•1994年にHP研究所で発明されました

•HPのオープンコールソリューションに組み込まれています

•1996年にVC資金によるスタートアップとしてスピンオフ

•何千もの本番顧客

•2005年にOracleCorporationに買収されました

•2005年以降の3つのメジャーリリース:6.0、7.0、11gR2、18cリリース1

OracleTimestenの概要

Oracle TimesTenインメモリデータベースは、永続性と高可用性を備えたインメモリのリレーショナルデータベース管理システムです。 TimesTenは、もともとカリフォルニア州パロアルトのHewlett-Packardラボで設計および実装されていましたが、1996年に別のスタートアップにスピンアウトし、2005年にOracleCorporationに買収されました。

Times Tenデータベースは、高い永続性と可用性を備えています。インメモリデータベースであるため、非常に低いレイテンシと高いスループットを提供します。その他の機能には、JDBCやODBCなどの標準のリレーショナルデータベースAPIが含まれます。TimesTenは、スタンドアロンのインメモリデータベースとして使用できるだけでなく、Oracleデータベース自体を含む他のリレーショナルデータベースでキャッシュとして使用できるユーティリティも提供します。金融取引や通信課金など、非常に大量のOLTPアプリケーションでよく使用されます。

TimesTenがデータをディスクに保存する方法

画像ソース:http://luna-ext.di.fc.ul.pt/oracle11g/timesten.112/e14261/overview.htm

各TimesTenデータストアには、正確に2つのチェックポイントファイルがあります。チェックポイントは、デフォルトでは10分ごとに呼び出されます。これにより、ダーティメモリページが最初のチェックポイントファイルに書き込まれ、次のチェックポイントで他のチェックポイントファイルが使用されます。書き込みトランザクションは、最初にメモリ内のバッファに配置され、次にログファイルにフラッシュされます。

2種類のトランザクションログ:

1。バッファログ:

(速度:高速、耐久性:良好) トランザクションは、最初にメモリ内のログバッファに保存されます。バッファがいっぱいになると、バックグラウンドでディスクにフラッシュされます。プロセスは非常に高速です(5000 TPS以上)。バッファがフラッシュされる前に、クラッシュが発生してトランザクションが失われる可能性がわずかにあります。お客様はログバッファのサイズを設定できます。

2。永続的なコミット

(速度:遅い、耐久性:優れている) すべてのトランザクションはすぐにディスクにフラッシュされます。この速度は、ディスクデバイスの速度によって異なります。すべてのトランザクションがディスクに保存されるため、これは非常に耐久性があります。

お客様は、ttDurableCommit().というSQL関数を呼び出すことにより、いつでもBUFFEREDLOGGINGからDURABLECOMMITに切り替えることができます。 お客様は、実行時に耐久性とパフォーマンスを柔軟に制御できます。これは、従来のRDBMSでは不可能でした。

大幅な応答時間の改善:インメモリデータベースキャッシュ+Oracleデータベース

画像ソース:https://www.oracle.com/technetwork/database/windows/ds-imdb-cache-1-129794.pdf

上のグラフは、7つのトランザクションタイプのそれぞれについて測定された平均トランザクション応答時間を示しています。

赤いバーは、データがTimesTenIMDBにキャッシュされたときに取得された応答時間です。これは、アプリケーションデータベースの操作を大幅に改善します。 Oracleデータベースの応答時間の大部分は、クライアントサーバー接続とネットワークラウンドトリップによるものであり、アプリケーションがメモリ内のTimesTenデータベースに直接リンクしている場合はどちらも存在しないことを忘れないでください。アプリケーションは、TCP/IPクライアント/サーバーを介してTimesTenに接続することもできます。

TimesTenデータベースの作成

DSNを定義する

•DataStore属性:データベースのチェックポイントファイルのディレクトリ名を指定します。例:DataStore=/data/TTDEMO/TTDEMO-DSN1/TTDEMO-DSN1

•LogDir属性:トランザクションログファイルのディレクトリ名を指定します。トランザクションログには、データベースの更新、コミット、ロールバックごとのログレコードが含まれています。

•DatabaseCharacterSet属性:データが格納される文字セット論理的に2つの別々のメモリ領域に分割されます

•データベースメモリ領域

- Permanent region 
-   PermSize DSN attribute configures its allocated size.
 -  Region stores persistent database elements (ex: tables, indexes)
  - Region is written to disk during a checkpoint operation.
  - Temporary region 
  -TempSize DSN attribute configures its allocated size
  -Region stores transient data and information generated when executing statements.( temp tables, stored result sets..)

•インスタンス管理者がデータベースに接続すると、データベースが自動的に作成されます

                       $ttisql <DSN name>

•ttisqlユーティリティはサーバーDSNに直接接続し、ttIsqlCSユーティリティはTimesTenクライアントDSNに接続します。

               $ttisql connStr "DSN=TTDEMO-DSN1;UID=timesten;pwd=timesten"

•RAMポリシー:データベースがメモリにロードされるタイミングとメモリからアンロードされるタイミングを決定します。

             inUse: The database is in memory if it is in use (default policy). 
            always: The database is always kept resident in memory. 
            manual: The database is manually loaded into and unloaded from memory.

GitOpsは、クラウドネイティブアプリケーションを構築するための効果的な基盤を実現できます。GitOpsの主要な原則は、組織にとって次の利点を強調しています。

インメモリデータベースキャッシュ

画像ソース:https://www.oracle.com/database/technologies/timesten-cache.html

•Oracleデータベーステーブルをアプリケーション層にキャッシュします
  1. 個々のテーブルと関連テーブルをキャッシュする
  2. 行と列のすべてまたはサブセットをキャッシュする
•読み取り専用で更新可能なキャッシュデータベース
  1. 通常のSQLデータベーステーブルのようにキャッシュされたテーブルにアクセスする
  2. 参加/検索、挿入/更新/削除
•自動データ同期
  1. TimesTenからOracleへ
  2. OracleからTimesTenへ

OracleIMDBキャッシュ

キャッシュグループとは何ですか?

A set of cached tables created in TimesTen database that correspond to tables in Oracle Database

読み取り専用キャッシュグループ

読み取り操作はTimesTenで実行されます

書き込み操作はOracleに渡され、TimesTenに自動的に更新されます

画像ソース:https://docs.oracle.com/cd/E18283_01/timesten.112/e14261/cache.htm

OracleのCacheConnectを使用すると、ユーザーはOracleデータベースのサブセットをTimesTenにキャッシュして、頻繁にアクセスされるデータへの応答時間とスループットを向上させることができます。

選択した完全なテーブル、行のサブセット、または列のサブセットをキャッシュできます。キャッシュは読み取り専用または更新可能です。データがTimesTenデータベース内で更新される場合、更新は同期書き込みを介してOracleデータベースに伝播されます。スルーまたは非同期ライトスルー。同じOracleDBから複数のキャッシュインスタンスをキャッシュできます。各キャッシュインスタンスは、独自の異なるキャッシュコンテンツのセットを持つことができます。

IMDBキャッシュの管理とベストプラクティス

•OracleデータベースとTimesTenデータベースの両方での1回限りのキャッシュセットアップ(実装ドキュメントごと)

•キャッシュエージェントの再起動ポリシーの設定:手動、常に、norestart

•AUTOREFRESH間隔を指定します

  • キャッシュグループ内のOracleテーブルにINSERT、UPDATE、およびDELETEトリガーを作成します
  • トリガーは、TimesTenがOracleに保持するログテーブルに小さな行を挿入します
  • TimesTenエージェントはこのテーブルをクエリし、指定した間隔でデータを更新します•Oracleでのデータ定義の変更には、LOAD、UNLO​​AD、FLUSH、REFRESHCACHEGROUPSが必要です
結論

TimesTenは、標準のAPIを介して標準のリレーショナルデータベース機能を提供しながら、SQL操作に非常に低いレイテンシと非常に高いスループットを提供するインメモリリレーショナルデータベースです。スタンドアロンデータベースとして、またはOracleデータベース用の高性能リレーショナルキャッシュとして展開できます。

コメントや質問をするには、[フィードバック]タブを使用します。私たちと会話を始めることもできます。


  1. クラウドにOracleデータベース(DBaaS)を作成する

    この投稿では、Oracle®Cloudでサービスとしてのデータベース(DBaaS)データベースを作成するために必要なすべての手順を説明します。 はじめに このサービスにより、ユーザーは、物理ハードウェアをセットアップしたり、オペレーティングシステムをインストールしたり、Oracle Databaseのインストール前提条件を処理したりすることなく、データベースを作成できます。データベースの作成に時間はかからず、最小限のシステム管理者権限が必要です。 この投稿では、OracleCloudでDBaaSをセットアップするための次の手順を学習します。 コンパートメントを作成します。 仮想クラウドネ

  2. データベース管理者向けの新しいOracle19c機能

    Oracle®Databaseバージョン19cでは、多数の新機能と改善された機能が導入されました。 はじめに Oracle 19cは、Oracle Database 12cリリース2製品ファミリの最後であり、長期的なサポートがあります。 Linux®、Windows®、Solaris®、HP /UX®、AIX®プラットフォーム、およびOracleCloudで使用できます。 Oracle 19cは、すべての運用および分析ワークロードに対して最高のパフォーマンス、スケーラビリティ、信頼性、およびセキュリティ機能をお客様に提供します。 機能 データベース管理者(DBA)のタスクを簡単にする新機能