すべてのプロダクト
Search
ドキュメントセンター

PolarDB:PolarSearch 1.0 性能テスト

最終更新日:Jun 12, 2026

このドキュメントでは、OpenSearch Benchmark を使用した PolarSearch バージョン 1.0 の性能テスト結果を、HTTP ログ、NYC タクシー、Geonames の 3 つの標準ワークロードに基づいて紹介します。

説明

詳細なテスト手順については、「PolarSearch ベンチマークテスト方法」をご参照ください。

書き込み性能テスト結果

書き込みテストでは、append-no-conflicts-index-only プロシージャを使用して、完全なコーパスをクラスターに一括書き込みします。これらのテストでは、同時書き込みクライアント数(bulk_indexing_clients)を変化させながら、書き込みスループット(docs/s)を評価します。各テストは空のインデックスから開始されます。

HTTP ログ

このデータセットは、1998 年 FIFA ワールドカップの実際の Web サーバーアクセスログに基づいており、約 2 億 4,700 万件のログレコードを含みます。

  • テストシナリオ 1:6 シャード、1 レプリカ

    スループット (docs/s)

    クライアント 1

    クライアント 2

    クライアント 4

    クライアント 8 (デフォルト)

    クライアント 16

    クライアント 32

    PolarSearch 1.0

    127860

    197938

    324857

    454070

    466709

    469483

  • テストシナリオ 2:6 シャード、0 レプリカ

    スループット (docs/s)

    クライアント 1

    クライアント 2

    クライアント 4

    クライアント 8 (デフォルト)

    クライアント 16

    クライアント 32

    PolarSearch 1.0

    172384

    288195

    512037

    741541

    783537

    785893

NYC タクシー

このデータセットは、2015 年の NYC タクシー乗車データに基づいており、約 1 億 6,500 万件のレコードを含みます。

  • テストシナリオ 1:6 シャード、1 レプリカ

    スループット (docs/s)

    クライアント 1

    クライアント 2

    クライアント 4

    クライアント 8 (デフォルト)

    クライアント 16

    クライアント 32

    PolarSearch 1.0

    77098

    113670

    183412

    259955

    271045

    272685

  • テストシナリオ 2:6 シャード、0 レプリカ

    スループット (docs/s)

    クライアント 1

    クライアント 2

    クライアント 4

    クライアント 8 (デフォルト)

    クライアント 16

    クライアント 32

    PolarSearch 1.0

    126167

    187151

    311023

    451135

    482505

    488001

検索性能

検索テストは書き込み操作完了後に実行され、replica=1 および target_throughput=0(フルスピードストレステストモード)の設定で、CPU 負荷が最大時の最大検索スループット(ops/s)を評価します。

HTTP ログ

term:完全一致検索

logs-* に対して固定ヒット数 10,000 件の完全一致検索を実行し、デフォルトの上位 10 件を返します。このテストでは、PolarSearch 1.0 の転置インデックスの検索効率、シャード間ファンアウトおよびマージ操作のオーバーヘッド、ネットワーク調整レイヤーの処理能力を評価します。

term (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

148

312

591

829

1147

1475

asc_sort_timestamp:doc values によるソート

すべてのドキュメントに対して match_all クエリを実行し、タイムスタンプの昇順で上位 10 件を返します。@timestamp フィールドは date 型であり、doc values のカラム型ストレージを使用してソートされます。この操作では、doc values の読み取り効率、トップ N ヒープソート、および PolarSearch 1.0 のコーディネーターノードのマージ能力を評価します。

asc_sort_timestamp (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

133

262

443

579

732

931

range:タイムウィンドウ範囲スキャン

@timestamp フィールドに対して動的タイムウィンドウの範囲クエリを実行します。ログプロダクトのクエリの 90 % には時間フィルターが含まれるため、このタスクでは日付範囲スキャンの効率を評価し、term クエリと補完することでポイントクエリと範囲クエリの比較を行います。

range (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

106

269

431

573

707

815

hourly_agg:時系列集約

すべてのドキュメントに対して date_histogram 集約(1 時間単位のバケット化)を実行します。これは、ログモニタリングおよび統計分析シナリオにおける日付型の集約スループットを評価するコア操作です。

hourly_agg (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

1.48

2.97

4.3

4.76

4.8

4.8

NYC タクシー

match-all:ベースラインスケジューリング

約 1 億 6,500 万件の全データセットに対して match_all クエリを実行し、ソートや集約なしでデフォルトの上位 10 件のみを返します。このプロセスでは、エンジンのリクエスト解析、シャードスケジューリング、結果シリアル化の基本パスの効率をテストします。

match-all (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

281

564

1115

2022

3167

4508

range:数値範囲スキャン

total_amount フィールド(運賃金額、scaled_float 型)に対して固定数値範囲フィルターを適用し、5 ~ 15 ドルの運賃を持つ乗車記録をクエリし、デフォルトで 10 件を返します。この操作では、数値フィールドの範囲スキャン効率をテストします。

range (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

10.63

21.07

39

43

43

43

autohisto_agg:適応型時系列集約

20 日間のタイムウィンドウ内のデータに対して auto_date_histogram 集約(自動バケット化、buckets=20)を実行し、エンジンの適応型集約機能を評価します。これは rangerange は数値範囲クエリ用、auto_date_histogram は時系列集約用)と補完関係にあります。

autohisto_agg (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

17.55

37.64

64.55

73.38

74

75.84

Geonames

Geonames データセットは、世界中のポイント・オブ・インタレスト(POI)データに基づいており、地名、国別コード、人口、地理座標などのフィールドを含む約 1,140 万件のレコードで構成されています。主にさまざまなクエリタイプのパフォーマンス評価に使用されます。Geonames データセットは HTTP ログおよび NYC タクシーデータセットと比べてはるかに小さいため、書き込み時間が短く、PolarSearch 1.0 の書き込み性能差は有意な比較を行うほど顕著ではありません。そのため、Geonames テストでは検索シナリオに焦点を当て、完全一致検索、全文検索、集約、ジオ空間クエリ、スクリプトスコアリングをカバーし、プロダクトのクエリ処理能力を評価します。

term:完全一致検索

term (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

434

866

1615

2887

4433

5755

phrase:全文フレーズ一致

このテストでは、全文検索におけるフレーズ一致のパフォーマンスを評価します。フレーズ一致では、転置インデックス内の語位置情報を検証する必要があるため、標準的な term クエリよりも計算負荷が高くなります。

phrase (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

408

782

1341

2523

3737

4925

country_agg_uncached:ネストされた terms 集約

このテストでは、すべてのドキュメントに対して国別コードによる terms 集約を行い、さらにネストされた sum 集約を実行します。集約キャッシュは無効にして、実際の計算オーバーヘッドを反映させます。このテストでは、重い集約負荷下でのエンジンの CPU 利用効率を評価し、コンピューティング集約型の集約シナリオを代表します。

country_agg_uncached (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

12

24.62

45

50.55

51

51

decay_geo_gauss_function_score:ジオ空間距離減衰スコアリング

geo_point フィールドに対してジオ距離減衰関数(ガウス減衰)付きスコアリングクエリを実行し、GeoSpatial インデックスのクエリ効率およびスコア計算能力を評価します。

decay_geo_gauss (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

5

9.73

17

18.62

19

19

painless_static:Painless スクリプトスコアリング

このテストでは、Painless スクリプトを使用して各ドキュメントのカスタムスコアを計算します。スクリプトは事前にコンパイルされ、静的バインドで実行されます。このテストでは、JIT コンパイルを含むスクリプトエンジンの計算スループットを評価し、高度にカスタマイズされたスクリプトスコアリングシナリオを代表します。

painless_static (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

5.52

10.85

19

20.89

21

21

desc_sort_population:doc values による数値ソート

population フィールド(整数型)で全ドキュメントを降順にソートし、上位 10 件を返します。ソートは doc values のカラム型ストレージを使用して実行されます。この操作では、カラム型ストレージからの数値フィールド読み取り効率およびトップ N ソートのパフォーマンスをテストします。

desc_sort_population (ops/s)

クライアント 1

クライアント 2

クライアント 4

クライアント 8

クライアント 16

クライアント 32

PolarSearch 1.0

250

464

864

1451

1960

2469