RDBMSのパフォーマンス向上の仕掛け――SAP Sybase ASE 15.7の最新アーキテクチャー解説

作成者:矢川 文久投稿日:2013年7月23日

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

読者の皆様、はじめまして。SAPジャパンでデータベース&テクノロジーおよびアナリティクスソリューションを担当する矢川と申します。今回は「SAP Sybase ASE 15.7の最新機能 “スレッドカーネルアーキテクチャー” とその強み」と題して、技術視点から見たSAP Sybase ASEについてご紹介させていただこうと思います。よろしくお願いいたします。

「さらなるパフォーマンス」はRDBMSの永遠の命題

Tauern Highway現在、SAPでは重点施策として、アプリケーション、アナリティクス、データベース&テクノロジー、モバイル、そしてクラウドの5本の柱を掲げて、ビジネスを推進しています。今回お話しするのは、この中のデータベース&テクノロジーという領域に含まれるSAP Sybase ASE(Adaptive Server Enterprise)についてです。

皆様もご存知のとおり、従来型のOLTPデータベース市場はすでに成熟した状況を迎えており、テクノロジーの進化についても、以前のようなスピードの向上や画期的な変化は見られなくなってきています。このような状況を打破する新たなテクノロジーとして、SAPではOLTPとOLAPを併用できるインメモリーコンピューティング SAP HANAを市場に投入しています。

しかし、RDBMSの用途はすでに幅広いビジネス領域に広がっており、現在のビジネスシーンを考えた場合、欠くことのできないテクノロジーとなっていることも確かです。そして、これらのRDBMSにおける最重要課題は、依然として「パフォーマンスの向上」に尽きると言っても過言ではないでしょう。

今回発表したSAP Sybase ASE 15.7では、このパフォーマンスのさらなる向上を念頭に、1つの大きな機能拡張が図られています。これが「スレッドカーネルアーキテクチャー」です。これにより、I/Oが集中する状況、CPUの負荷が高まっている状況でも、非常に高いパフォーマンスを発揮することができます。

「スレッドカーネルアーキテクチャー」とは?

SAP Sybase ASEは、当初から「マルチスレッドアーキテクチャー」を採用しており、1つのプロセスの中でスレッドと呼ばれる処理の単位を複数動かすことで、最大限のパフォーマンスを実現してきました。以前のコンピューティング環境では、マルチコアが普及しておらず、現実的に1つのプロセッサーが対象であったため、SAP Sybase ASEは、この1つのプロセッサー上で1つのプロセスを動かし、複数のスレッドを処理していました。しかし、コンピューティング環境の劇的な進化に伴い、複数のプロセッサーを持つマルチコアが登場し、主流となりました。

この潮流に対応するため、SAP Sybase ASEでは今回のバージョン以前から、コア数分だけ同様のプロセスを起動することで、マルチコアリソースに対する最適化を図ってきました。これを「プロセスカーネルモデル」と呼びます。この段階のアーキテクチャーを一言で述べるなら「多能工」と表現できるのではないでしょうか。1人の優れた職人が複数の仕事をこなす形です。しかし、システム的な視点では、プロセス間を連携(コンテキストスイッチ)させる必要があり、そのためのオーバーヘッドが発生するという弊害もありました。

こうした課題を解消するのが、SAP Sybase ASE 15.7で採用された「スレッドカーネルモデル(アーキテクチャー)」です。スレッドカーネルアーキテクチャーでは、マルチコアのリソースに単一のプロセスで対応。すべての処理が、プロセス内のネイティブスレッドとして動作するようになりました。

では、具体的な処理の動きを図で見ていきましょう。図1は、これまでのアーキテクチャー(プロセスカーネルモデル)です。この例では、グレーの太い矢印が2つのエンジンプロセスを示しています。1つのタスクであるXがディスク上のデータを取りに行き、I/O要求が発生します。これに対しOSが要求を受付け、I/Oを実行します。この間、プロセスはただ待っているだけでなく、他のタスクYを選択し、割り当てます。仮にタスクYがディスクI/Oを発生しない処理の場合でも、すでにXからリクエストされたディスクI/Oが完了しているにもかかわらず、OSはタスクYの完了まで、タスクXにI/Oの結果を返すことができません。このため、空き時間(下記の図で赤く表示した部分)が発生してしまいます。一つ一つはミクロな時間ですが、これらの小さな空き時間を解消することはパフォーマンスの改善に寄与する要素になります。

Picture1

図1:従来のプロセスカーネルモデルの概念

SAP Sybase ASE 15.7のスレッドカーネルアーキテクチャーには(図2)、I/Oコントローラーと呼ばれるスレッドが追加されました。先ほどご説明した通り、1つのプロセスの中には複数のスレッドがありますが、その中の1つがこのI/Oコントローラースレッドで、常にI/Oの状況を監視しています。先ほどと同様にタスクXがディスクI/O要求した場合、OSがこの要求を処理し完了した段階で、最初にタスクXを実行していたスレッド1が、後発で割り当てられたスレッドYに占有されている状況をI/Oコントローラーが判別し、その段階で空きがあるスレッド2に割り当てます。これによって、タスクXは、タスクYの終了を待つことなく処理を継続でき、高いパフォーマンスを維持することができます。

Picture2

図2:SAP Sybase ASE 15.7で採用された「スレッドカーネルモデル」の概念

圧倒的な実績が示すSAP Sybase ASEの優位性

今回のバージョン15.7でより強化されたSAP Sybase ASEですが、これまでの導入実績や発揮した効果をご覧いただければ、圧倒的な優位性をご理解いただけると思います。

下記の図は、ワールドワイドの例ですが、医療分野における導入では、他のRDBMSと比較して、30〜40%もの高速性を実現。また、金融業界では、Wall Streetにおけるオンライントランザクションの内、SAP Sybase ASEが処理する件数は1分間平均で200万トランザクションに及んでいます。情報通信分野でも1日あたり10億トランザクションをSAP Sybase ASEが処理しています。ミッションクリティカルな業務を含め、全世界のさまざまなビジネスシーンで、SAP Sybase ASEが日々活用されています。

Picture3

なお、今回ご紹介したSAP Sybase ASE 15.7は、試用版でそのパフォーマンスを体感していただくことが可能です。下記リンクをクリックし、必要情報を入力していただくだけで、最新機能をお試しいただけます(サイトは英語表記です)。

試用版ダウンロードはこちらから

このブログでは、今後もデータベース領域のホットな話題について、さまざまな情報を発信していきたいと思います。ご期待ください。

ご質問はチャットWebからも受け付けております。お気軽にお問い合わせください。

●お問い合わせ先
チャットで質問する
Web問い合わせフォーム
電話: 0120-554-881(受付時間:平日 9:00~18:00)

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

連記事

SAPからのご案内

着記事お知らせメール登録

ブログ記事の情報をメール配信しています。

以下にご指定のメールアドレスを入力し「登録する」ボタンをクリックすると、確認メールが送信されます。そのメールに記載されているURLをクリックすることで登録が確定されます。また、登録の解除も以下からお願いします。


メールアドレス