Oracle OpenWorld 2013

エリソンCEOが語るオラクル流インメモリDB--Oracle OpenWorld 2013

怒賀新也 (編集部) 2013年09月23日 20時07分

  • このエントリーをはてなブックマークに追加

 米Oracleがサンフランシスコで開催している年次イベント「Oracle OpenWorld 2013」の初日となった9月22日、夕方の基調講演に最高経営責任者(CEO)のLally Ellison氏が登壇し、データベース「Oracle Database 12c」のオプションとして提供するインメモリデータベースを中心に、新製品を自ら技術解説しながら紹介した。インメモリオプションをつけるだけで、他は何も変更せずに「100倍速い」という処理が実現することを強くアピールした。

Lally Ellison氏は例年通りCEO自ら込み入った技術解説をした
Lally Ellison氏は例年通りCEO自ら込み入った技術解説をした

 同日、サンフランシスコ湾で開催されていた国際ヨットレースのアメリカズカップで、負ければ敗退という崖っぷちのレースにおいて、2連勝を飾ったOracleチーム。CEOのEllison氏は、「見ましたか、良いレースだったでしょう」と話しながら上機嫌な様子で基調講演に登場した。

 そのEllison氏が今年の最大のトピックに挙げたのが、データベースの最新版である12cにオプションとして提供する「In-Memory Option Oracle Database」である。インメモリ環境上で、ロー(行)ではなくカラム(列)型データベースを運用するという点では、SAPのHANAと基本的な考え方は同じだ。

 だが、CPUを含めたハードウェアからアプリケーションまで自社でラインアップするOracleの強みを生かし、独自性の強いインメモリ戦略に仕上げた。

カラム型の弱点、トランザクション処理

 ここで、インメモリデータベースの基本的な仕組みを「インメモリ」と「カラム型」の2点から見てみたい。

 インメモリで処理する方が速い理由として、(処理速度の遅い)ディスクI/Oがないことに加え、インメモリではCPUがより高速にメモリ上のデータにアクセスできるように設計されている点が挙げられる。一方、従来型のディスク上のリレーショナルデータベース(RDB)の場合、CPUが、データへの高速なアクセスよりもOSやディスクI/Oに最適化するように設計されているため、インメモリ型ほど処理速度が上がらないという。そのため、たとえばRDBのキャッシュ領域(メモリ)を最大化しても、インメモリデータベースほど処理は高速化しないと考えられている。

 2点目のカラム型について。カラム型は文字通り列を軸に処理するのが特徴だ。特定のカラムにのみ着目するため、処理が軽くなる。例えば、コンビニエンスストアの店主が、客の来店時間帯ごとの売り上げ金額の合計を集計したいといった場合に、「来店時間帯」と「買い物合計額」の2つのカラムを参照するだけで目的を達成できる。

 一方で、通常のRDBのようにローによる処理をする場合、一行ごとにクエリ条件との合致を確認し、データの数だけその処理を繰り返す必要がある。上記のコンビニの例で言えば、目的とは関係のない項目、例えば来店客の性別、年齢、買い物点数などのデータを含めて、いったん読み込み、集計処理しなくてはならない。その分、カラム型より処理が遅くなるというわけだ。

苦手のトランザクション処理を克服

 このように、集計作業を得意とするインメモリデータベースだが、データベースへの追加、更新、削除、さらにデータの整合性維持が求められるトランザクション処理は苦手とされる。

 これは集計の際のメリットと裏腹のものといえる。例えば、「性別」「年齢」「来店時間帯」「買い物点数」「買い物合計額」という5つの項目を含む1件のデータを追加する場合、インメモリデータベースはカラムごとにデータを保持しているため、性別、年齢などここでは、5つのカラムに追加する必要があり、ここがボトルネックになるという。逆に、ロー型である通常のRDBなら、5つの項目を含めて1件のデータ追加ということで処理できる。

オラクルの工夫とは

 やや一般論に近い形でインメモリデータベースの特性を見てきたが、Ellison氏は基調講演で「集計などのクエリ処理は少なくとも100倍、インメモリが苦手とするトランザクション処理も2倍高速化した」と強調しており、さまざまな方法で独自の工夫を施している。

 1つはCPUとの連携だ。CPUが多数のコアを持つようになっている中、Ellison氏は「CPUコアがそれぞれ、インメモリデータベース上のカラムをスキャンする」と話す。このスキャンの際、非常に高速な「SIMD(Single Instruction Multiple Data)」方式で処理するという。SIMDとは、命令列は1つだが、それを複数のデータ列に適用する並列化の一形態。これにより、クエリ処理とトランザクション処理の高速化を図る。

 さらに、トランザクション処理について、通常のRDBでは1つのデータを入力すると数十のインデックスを更新しなくてはならず、これが処理速度を遅くしているとする。インメモリではインデックス自体がなくなることで、トランザクション処理を速くできるとした。

各CPUコアの処理能力を生かす
各CPUコアの処理能力を生かす

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

この記事を読んだ方に

関連ホワイトペーパー

連載

CIO
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
「企業セキュリティの歩き方」
「サイバーセキュリティ未来考」
「ネットワークセキュリティの要諦」
「セキュリティの論点」
スペシャル
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell EMC World
AWS re:Invent
AWS Summit
PTC LiveWorx
より賢く活用するためのOSS最新動向
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
米株式動向
日本株展望
企業決算