Brian Moran 著

 先週,私はMicrosoftが出した新しいTPC-Cベンチマークの世界記録を称賛した(該当記事)。しかし,多くの読者が「Transaction Processing Performance Council」(TPC)が何であるか,またそのベンチマークが何を意味するかを知らないようだ。

 例えば,ある読者は「なぜTPCという組織は,商業的にライセンス設定されたOSとデータベースだけをテストするのか?見たところ,その非営利団体は,入手できるものは何でもベンチマークしているようだ。例えば,なぜ彼らはLinuxプラットホームのpostreqsqlやmysqlをテストしないのか?」。

 その質問への単純な答えは,告訴される恐れがあるからだ。もう少し詳しく回答しよう。まず,TPCについて理解の助けになるように,その組織についてバックグラウンドをざっと説明したほうがいいだろう。

 TPCの設立趣意書には「TPCは,トランザクション処理とデータベースのベンチマークを定義して,そして業界からみて,客観的かつ検証可能なTPC性能データを広めるために設立された非営利団体である」と称している。TPCのWebサイトの上のタグ・ラインにも「Transaction Processing Performance Councilは,トランザクション処理とデータベースのベンチマークを定義して,業界に信頼できる結果を与える」とある。大体の大枠がつかめただろう。彼らはデータベースのベンチマーク・テストを行い,結果を発表するわけだ。

 TPCは現在「TPC-C」,「TPC-H」,「TPC-R」,「TPC-W」――4つのベンチマーク・テストを運営している。TPC-CはOLTP(OnLine Transaction Processing)向けのもので,TPC-HとTPC-Rは意思決定支援とデータ・ウエアハウジング処理向け,そしてTPC-WはWebベースでトランザクション処理する電子商取引システム向けである。

 TPCのWebサイトは,その組織とベンチマークについての情報をたくさん供給しており,中には驚くほど面白いヒストリー・ページもある(その通り。私はそれを面白いと感じる十分オタクな人間なのだ)。

 TPCのベンチマーク・スコアは,通常2つの値からなる。「tpmC」と「Price/tpmC」だ。tpmCはTPC-Cテストで処理した毎分のトランザクション数である。そして,Price/tpmCはトランザクションのそれぞれがいくらの費用がかかったかを示す。コストはシステムの寿命で償却される計算である。TPCの価格設定スコアについては,解説がある(該当サイト)。

 それでは先ほど挙げた読者の本質的な最初の質問に戻ろう。「なぜ私は,XYZという製品のベンチマーク結果を見なかったのか?」。TPCは独立した非営利団体である。しかし,TPCはあるデータベース・プラットホーム上で,そのデータベース・ベンダーの承認なしでベンチマーク・テストを実施する力を持っていない。

 実際のところ,大抵の主要なデータベースのベンダーは,IBMを例外として,自分たちのライセンス契約の中に明示的な許諾なしでベンチマーク情報を公開することを禁じる文面を含めている。SQL Serverのエンドユーザー・ライセンス契約(EULA)から引用してみるとこうなっている。

「e.Benchmarkテスト あなたはMicrosoftの事前の書面での承諾なしで,サード・パーティにサーバー・ソフトウエアやクライアント・ソフトウエアのどんなベンチマーク・テストの結果も公開してはならない。」 Oracle,Sybase,Informixも,それぞれ似たような文章を契約に入れている。

 これらの条項は普通「DeWitt条項」といわれている。David DeWitt氏は,米Wisconsin Benchmarks社の創設者の1人で,この条項は1980年代半ばに初めて公開された。その当時,Wisconsin Benchmarks社は,Oracleデータベースについて不利なスコアを発表し,米Oracleはその否定的な公開情報に満足しなかった。Oracleは無許可のベンチマーク・テストを禁じる条項をそのライセンス契約に加え,そして他のベンダーのほとんどが同じ措置をとった。つまり,前述の読者の質問への答えは,データベース・ベンダーが結果の公開を許さないかもしれないので,ベンチマークがほとんど行われない,ということである。

 他の独立した組織が発表した無許可のデータベース・ベンチマーク結果を見ることがあるかもしれない。ベンダー側はパブリシティ(マスコミ)の恐ろしさを知っているから,この条項を使って人々を告訴することをためらっているのである。けれども法的には,無許可のベンチマークを発表すると,その組織がベンダーから訴えられるはずである。いずれにしてもTPCが無許可でベンチマークした結果を公開することはないだろう。

 ベンダーがTPCベンチマーク・テストを行う場合は,自分たちの機材を使う。そして,独立した第三者を雇って,数値の監査を受けたり,TPCの規則に従ったことを保証したりしてもらう。その後,結果だけがTPCサイト上のTPC-Cスコアとして公開される。一方で,ベンダーが公認する限りは,だれでもTPCベンチマーク・スコアを提出できる。ベンチマークを提出するには,ほんの1250ドルの費用がかかるだけだ。どうやってスコアを提出するかは,Webサイトで調べられる(該当サイト)。

 もちろん,テスト環境を構築してテストを行い,その結果を監査してもらうには,何100万ドルもの負担がかかるはずだ。この実質上の制約条件のため,ベンチマーク結果を公開する目的でデータベース・ベンダーとハードウエア・ベンダーが協力して行った結果以外に,リリースされたTPCの数値を私は見たことがない。

 どのベンチマーク結果を発表するかは,ベンダー自身が決めるのだという事実を考慮すれば,読者の2番目の質問への答えは明白になる。当然ベンダーたちは自分たちの戦略上の有利になる数値だけを発表するのだ。私はそれらの戦略上の利害関係がいったい何かは明確にできないが,ベンダーがあるTPC-Cのスコアを自分たちの最大の利益になると思わないなら,その結果が発表されるのを見ることは恐らくないだろう。結果が自社に有利に見えない限り,正気のベンダーなら,1対1またはN対Nで既存の数値の比較結果を公開したりしないだろう。不幸にも,現実の大抵のユーザーは1対1またはN対Nの比較結果の方を見たいと思っている。

 Microsoftが達成した新しい世界記録は正確で本物なのか?その通り。もしOracleがその結果を負かせる数値を持っているなら,対抗して新しいベンチマーク結果を発表するだろう。TPCの数値は,後で検証可能な形で監査されており,そのスコアは常に挑戦を受けて書き換えられるので,この数値は信頼できる。Microsoftは今のところはトップである。

 TPCベンチマークのスコアは根拠のある有効な結果を提供するので,それらから多くの有用な情報を集められる。しかし,TPCのスコアを解釈する場合は,どのように,そしてなぜそのスコアが発表されたかについて理解しておくことが必要である。企業は,エンドユーザーにとって入手可能な,最も包括的なベンチマーク情報を供給するという目的を持っているのではなく,マーケティング上の理由のためだけにスコアを公開するのだ。