SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

Security Online Day 2022

2022年9月16日(金)10:00~17:10

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

これがOracleのインメモリ!Oracle TimesTenのすべて

第1回 Oracle TimesTenとは?


日本オラクルでデータベースのコンサルタントをしている三浦です。今回は最近更に注目を浴びつつあるインメモリーデータベース製品の特集ということで、私の大好きなOracle TimesTen In-Memory Database(以降 Oracle TimesTen)についてご紹介していきたいと思います。

Oracle TimesTenとは?

 まずは、Oracle TimesTenってなあに?というところからご説明させていただきます。

 Oracle TimesTenはマイクロ秒レベルの超高速なレスポンスを追求したオラクル社製のインメモリーデータベース製品です。元々は買収製品だったのですが、バージョンが進むごとにOracle Databaseとの親和性が高くなり、最近ではOracle DatabaseのEnterprise Editionのオプションとしても提供されています。

 Oracle TimesTenを採用するシステムは、当然ながら厳しい性能要件があり、オラクル製品の中でも高速処理を得意とするOracle ExadataやOracle Coherenceと比較されることが多いです。

 Oracle Coherenceとの1番大きな違いはOracle TimesTenがSQLを使えるRDBMSであるという点です。

 「そんなのデータベースだったら当たり前でしょ?」と言われてしまえばその通りですが、実はここが多くのお客様にとって採用の決め手になっているのです。

 Oracle Databaseを採用している現行システムの一部を高速化したいというニーズが多いため、SQLが使えることによってアプリケーションの移行コストが抑えられるという点は大きなアドバンテージになります。

 SQLアプリケーションの場合、Oracle ExadataおよびOracle TimesTenをターゲットにすることができますが、比較的シンプルなSQLでマイクロ秒レベルの性能を追求するアプリケーションでは、Oracle TimesTenをアプリケーションのキャッシュとして活用することも非常に効果的です。

 一言でOracle TimesTenといっても、実は製品としては2種類に分かれていて、 Oracle TimesTen In-Memory Database(Oracle TimesTen のみのシンプルな構成)、Oracle In-Memory Database Cache(Oracle TimesTen と Oracle Databaseを組み合わせた構成)とそれぞれ呼び名が異なります。中身は同じ製品ですが、構成によってご利用いただく製品を選択してください。

Oracle TimesTen はなぜ速いのか?

 Oracle TimesTenは高速性能を謳っていますが、なぜ速いのかがわからないと正直胡散臭いと思う方も多いでしょう。ですので、ここではOracle TimesTenの速さの理由について簡単にご説明しましょう。

 まず、Oracle TimesTenは「全てのデータがメモリ上にある前提で作られたインメモリーデータベースだから速い」のです。

 「そんなことはもうみんなわかっているよ」と言われそうですが、ではOracle Databaseでもバッファ・キャッシュを大きくして全データをメモリにどーんと載せればOracle TimesTenと同じくらいの性能が出せると思いますか?

 答えはNOです。重要なのは「全てのデータがメモリ上にある前提で作られた」という点です。

 Oracle Databaseでは、テラバイトからペタバイト・クラスのデータベースをギガバイトからテラバイト・クラスの物理メモリ上のバッファ・キャッシュに配置し、データベース処理の高速化を図っています。そのため、この2種類の記憶装置(Oracle Exadataのようにフラッシュを使う場合には3種類)の間での透過的なI/Oを高速かつ、高信頼、スケーラブルに行うためのロジックを実装しています。それに対して、Oracle TimesTenはメモリ上のデータを持ってくるだけでよいのでデータ管理や処理にかかわるロジックがシンプルであるということが速さの秘訣の一つといえます。

 Oracle TimesTenはアプリケーション・サーバとは別のサーバにインストールして、クライアント・サーバ接続で繋ぐことも可能ですが、アプリケーション・サーバの中にインストールして、ダイレクト接続することも可能です。Oracle TimesTen の高速性能を引き出せるのはもちろん後者のダイレクト接続です。

 では、Oracle Databaseでもアプリケーション層に配置すればOracle TimesTenと同じくらい速くなるのでしょうか?

 答えはやはりNOです。

 ダイレクト接続ではOracle TimesTenのDBエンジンがユーザ・アプリケーションからライブラリとして読み込まれ、アプリケーション・プロセス上で稼動します。プロセス間通信やネットワークのラウンドトリップが発生しない分、高速性能を実現することが可能なのです。

 非常に複雑な分析やビジネスロジックの処理をデータベースエンジン内でこなすことができるOracle Databaseを優等生タイプとするのであれば、Oracle Databaseと比べるともちろん苦手なこともいろいろありますが、インメモリ処理に必要なアーキテクチャと処理に特化したOracle TimesTenはゴリゴリの高速オタクと言えます。

次のページ
Oracle TimesTen の誤解を解く!

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
これがOracleのインメモリ!Oracle TimesTenのすべて連載記事一覧

もっと読む

この記事の著者

三浦 かなこ (ミウラ カナコ)

日本オラクル株式会社 コンサルティングサービス統括 テクノロジーソリューションコンサルティング統括本部 テクニカルアーキテクト本部 データベースアーキテクト部前職ではSEとして、アプリケーション開発、設計、アプリケーション試験チームリーダーなどを経験。 7年間の現場経験を経て、2006年日本オ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3641 2012/02/10 18:23

Job Board

PR

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

2022年9月16日(金)10:00~17:10

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング