TPC-C ベンチマークのオープン ソース Java 実装 (TCJ - TPC-C via JDBC (昨年 MMatejka によって作成) と呼ばれる) を使用して、Oracle と 2 つの OSS DBMS のパフォーマンスを比較しました。
TPC-C は独自の分野では標準であり、私の質問は次のとおりです。
OSS データベース システムのパフォーマンス テストが体系的に実装されていない主な理由は何ですか?
TPC-C ベンチマークのオープン ソース Java 実装 (TCJ - TPC-C via JDBC (昨年 MMatejka によって作成) と呼ばれる) を使用して、Oracle と 2 つの OSS DBMS のパフォーマンスを比較しました。
TPC-C は独自の分野では標準であり、私の質問は次のとおりです。
OSS データベース システムのパフォーマンス テストが体系的に実装されていない主な理由は何ですか?
まず、意見を求めることに近づいているため、あなたの質問がSOに完全に適合するかどうかはわかりません。したがって、私の答えはすべて事実よりも意見です。このほとんどは何年にもわたって読んできましたが、参照/証拠を見つけるのに苦労するでしょう。私は TPC のメンバーではありませんが、TPC-H スイートでテストされた分散列ストア データベースを取得しようとして、かなりの調査を行いました。
ベンチマーク
これらは、単一の機能をテストして比較するのに優れていますが、残念ながら、それは思ったほど簡単ではありません. 企業はより良い結果を得るために多大な労力を費やし、ベンチマークのソースに特定の関数を実装することもあります (そう聞いたことがあります)。全体的なベンチマーク結果の信頼性については、多くの議論があります。また、ベンチマークは製品によっては完全に適合する場合もありますが、別の製品では適合しない場合もあります。
あなたの例ではJdbcを使用していますが、すべてのデータベースにjdbcがあるわけではありません。さらに悪いことに、そのクラスのアプリケーションを有効にするためだけに「マイナーボルトオン」である可能性があります。そのため、すべての主な使用法が SQL に埋め込まれている場合に jdbc を介してベンチマークを実行すると、一部のソリューションが不当に/不適切に描写される可能性があります。
ベンチマークはベンダを真の優先事項からそらし、ベンチマークのためだけに労力を費やして機能を実装するという議論があります。
ベンチマークも非常に簡単に誤解される可能性があります.TPCはさまざまなベンチマークのスイートであり、必要に応じて正しいものを選択する必要があります(oltpの場合はtpc-c、dssの場合はtpc-hなど)。
TPC
これが tpc にとって否定的であると思われる場合は、ご容赦ください。私はプロの tpc です。
Tpc は、非常に厳密な一連のテスト要件を定義しています。あなたはこれらを手紙に従わなければなりません。tpc-h の場合、これはあなたがしなければならないことの例です
上記により、結果を読む人々が結果の完全性を信頼できることが保証されます。これは、企業のバイヤーにとって素晴らしいことです.
Tpc は非営利団体で、誰でも参加できます。料金はかかりますが、OSS を除けば大きな障壁ではありません。本当に素晴らしい結果を達成できると思う場合、または政府との契約などに入札するために公開された結果が必要な場合にのみ、現実的にこの料金を支払うことになります。
tpc for oss で私が目にする最大の問題は、それがリレーショナル ベンダーに大きく偏っており、その提供物でエントリー基準を満たすことができる oss ソリューションがほとんどないことです。ベンチマークを行うことは、一部のチームにとって気晴らしになることもあります。
tpc の代替案
もちろん、tpc に代わるものは存在しますが、私が知っている限り、まだ実際に牽引力を得るものはありません。主要なベンダーは、多くの場合、製品をベンチマークして結果を公開することはできないと規定しています。そのため、新しいベンチマークを採用するには、政治的に鋭敏である必要があります。ここでのベンダーのスタンスに同意します。誰かがベンチマークを誤って実装し、私の製品が不十分であると報告するのは嫌いです。
tpc が開始されて以来、データベースのランドスケープは大きく分裂しましたが、多くの「ビジネスに賭ける」アプリケーションは依然として「クラシック」データベースで実行されているため、まだ場所があります。ただし、nosql などの台頭により、新しいベンチマークの場所がありますが、本当の問題は何を測定するかということです。「%kitten%」のように xyz を選択することさえあります。または「kitten%」のような xyz。さまざまなソリューションに劇的な影響を与えます。それを解決すると、どの共通インターフェースを許可するか (odbc、jdbc、http/ajax、組み込み SQL など)、これらのインターフェースのそれぞれがパフォーマンスに大きく影響します。リレーショナル モデルと結果整合性モデルの ACID など、実際のモデルはどうですか? 特別に設計されたハードウェアを使用するハードウェア/ソフトウェア ソリューションはどうですか?
各データベースはさまざまなニーズに対して設計上のトレードオフを行っており、ベンチマークは競争条件を平準化しようとしています。これは、共通点がある場合、または多くの異なるメトリックを報告する場合にのみ可能です.
代替案を作成しようとする際の問題の 1 つは、「誰が支払うのか」ということです。実行するテストの種類について合意が必要です。次に、結果が意味のあるものになるように監査する必要があります。これにはすべてお金がかかります。