JP2023053925A - ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法、コンピュータプログラム及びシステム(ビッグデータ管理システムの最適なストレステストのためのワークロード生成) - Google Patents

ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法、コンピュータプログラム及びシステム(ビッグデータ管理システムの最適なストレステストのためのワークロード生成) Download PDF

Info

Publication number
JP2023053925A
JP2023053925A JP2022156395A JP2022156395A JP2023053925A JP 2023053925 A JP2023053925 A JP 2023053925A JP 2022156395 A JP2022156395 A JP 2022156395A JP 2022156395 A JP2022156395 A JP 2022156395A JP 2023053925 A JP2023053925 A JP 2023053925A
Authority
JP
Japan
Prior art keywords
queries
query
test
data points
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022156395A
Other languages
English (en)
Inventor
イルカー エンダー
Ender Ilker
オースティン クリフォード
Clifford Austin
ペドロ ミゲル バルバス
Miguel Barbas Pedro
パイヴァ フェルナンデス マティアス マラ エリサ デ
Elisa De Paiva Fernandes Matias Mara
へマント アサンダス バティア
Asandas Bhatia Hemant
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023053925A publication Critical patent/JP2023053925A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ビッグデータ管理システムの最適なストレステストのためのワークロードを生成する方法、プログラム及びシステムを提供する。【解決手段】方法は、ランダムテストクエリのセットを生成し、ランダムテストクエリのセットの特徴(例えば、クエリされるテーブルタイプ)のデータ点を決定するためにコンパイルし、特徴のデータ点と、抽出した特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離(例えば、マハラノビス距離)を測定し、その距離が閾値距離を超える各ランダムテストクエリをランク付けし、ランク付けしたランダムテストクエリを、ランク順に実行する。エラーをもたらした(例えば、システム障害)実行されたランダムテストクエリを、ログに追加し、これを、ビッグデータ管理システムに対してストレステストを実行するためにそれらのクエリを識別するのに使用する。【選択図】図4A

Description

本開示は、概して、ストレステストに関し、より具体的には、ビッグデータ管理システムの最適なストレステストのためのワークロードを生成することに関する。
データベース管理システムのテストにおいて、ストレステストとは、正常な状況下での正しい挙動とみなされるようなものに対してではなく、重い負荷/ストレス条件下での信頼性、耐障害性及び安定性に対してより重きを置くテストを指す。特に、そのようなテストの目標は、データベース管理システムが、不十分な計算リソース(メモリ又はディスクスペース等)、異常に高い同時実行性、又はサービス拒否攻撃の条件においてクラッシュしないことを保証することであり得る。
ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に使用する、ビッグデータ管理システムに対してストレステストする手段は現状存在していない。
本開示の1つの実施形態では、ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法は、ランダムテストクエリのセットを生成する段階を備える。前記方法は、前記ランダムテストクエリのセットの特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記ランダムテストクエリのセットをコンパイルする段階を更に備える。前記方法は、加えて、前記ランダムテストクエリのセットの特徴の前記データ点と、抽出された特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離を測定する段階を備える。さらに、前記方法は、その距離が閾値距離を超える各ランダムテストクエリをランク付けする段階を備える。加えて、前記方法は、前記ランク付けされたランダムテストクエリをランク順に実行する段階を備える。加えて、前記方法は、エラーをもたらした実行されたランク付けされたランダムテストクエリをログに追加する段階を備える。前記方法は、前記ログに基づいて、ビッグデータ管理システムに対してストレステストを実行するクエリを識別する段階を更に備える。
上記で説明されたコンピュータ実装方法の実施形態の他の形態は、システムの形態及びコンピュータプログラム製品の形態である。
前述は、以下に続く本開示の詳細な説明がより良好に理解され得るために、本開示の1つ又は複数の実施形態の特徴及び技術的な利点をかなり一般的に概略している。本開示の追加の特徴及び利点は、以降で説明されることになり、本開示の特許請求の範囲の主題を形成し得る。
以下の詳細な説明が以下の図面と併せて考慮されると、本開示のより良好な理解が得られ得る。
本開示の一実施形態に係る、本開示の原理を実践する通信システムを示す図である。
本開示の一実施形態に係る、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システムに対するストレステストにおいて使用されることになるクエリの最適セットを識別するために使用されるテストシステムのソフトウェアコンポーネントの図である。
本開示を実践するためのハードウェア環境を代表するテストシステムのハードウェア構成の本開示の一実施形態を示す図である。
本開示の一実施形態に係る、ビッグデータ管理システムに対してストレステストを最適に実行する方法のフローチャートである。 本開示の一実施形態に係る、ビッグデータ管理システムに対してストレステストを最適に実行する方法のフローチャートである。
本開示の一実施形態に係る、ランダムテストクエリの重みを計算する方法のフローチャートである。
本開示の一実施形態に係る、テストクエリに割り当てられた重みに基づいて、その距離が閾値距離を超えるランダムテストクエリをランク付けする方法のフローチャートである。
本開示の一実施形態に係る例示的な決定木を示す図である。
背景技術のセクションにおいて述べたように、データベース管理システムのテストにおいて、ストレステストとは、正常な状況下での正しい挙動とみなされるようなものに対してではなく、重い負荷/ストレス条件下での信頼性、耐障害性及び安定性に対してより重きを置くテストを指す。特に、そのようなテストの目標は、データベース管理システムが、不十分な計算リソース(メモリ又はディスクスペース等)、異常に高い同時実行性、又はサービス拒否攻撃の条件においてクラッシュしないことを保証することであり得る。
データベース管理システムのストレステストは、概して、3つの次元、すなわち、同時実行性(同時のクエリを実行するクライアントの数)、持続時間(連続ワークロード実行の持続時間)及び複雑性(実行されるクエリの複雑性)においてワークロード(例えば、構造化照会言語(SQL)ワークロード)によって実行される。
典型的には、テストワークロードスイート(ソフトウェアエラー等の誤った挙動を識別するために現実世界状況をシミュレートすることによってデータベース管理システムをテストするように意図されたワークロードの集合)は、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメントを識別するために等で、データベース管理システムをテストする様々なクエリ(例えば、SQLステートメント)を実行し得る。クエリのうちの多くは、完了に成功するのに多くの時間(例えば、12時間)の間実行され得、それによって、ソフトウェアエラーを識別することに関してほとんど価値が与えられず、それと同時に、価値のあるテスト及びシステムリソースが消費される。
データベース管理システムのストレステストは、システム/ランタイムの視点からデータベース管理システムソフトウェアを有効にテストするように徹底的な品質保証(QA)テストカバレッジ(テストされているソフトウェアの割合)を提供するためのデータの生成、データベースオブジェクトの装入、及び複雑なクエリ(例えば、複雑なSQLクエリ)の生成の観点で、難題であり続けている。
例えば、データベース管理システムをストレステストするクエリを生成することに関して、そのようなクエリは、信頼性、耐障害性及び安定性についてシステムをテストするのに十分に複雑であり、それと同時に、そのクエリを実行するのに多くの時間を要するほど複雑ではない必要がある。
その上、従来的なオンライントランザクション処理(OLTP)/オンライン分析処理(OLAP)システムからビッグデータ管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)によって管理されるビッグデータクラスタ(ビッグデータを記憶するデータストア(例えば、Hadoop(登録商標)分散ファイルシステム)を含むコンテナのクラスタ)への移行とともに、テストが実行する必要があるデータの量は、数桁分大きくなり、これにより、24時間の期間内で実行され得るテストクエリの数は、大幅に減少した。「ビッグデータ」は、本明細書において使用される場合、一般的に使用されるソフトウェアツールが許容可能な経過時間内で捕捉、キュレート、管理及び処理を行う能力を超えるサイズを有するデータセットを指す。
結果として、ビッグデータ管理システムに対するストレステストは、データベース管理システムソフトウェアの信頼性、耐障害性及び安定性をテストするために長時間にわたって数千個の複雑なクエリを実行する余裕を有していない。したがって、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に使用する、ビッグデータ管理システムに対してストレステストする手段は現状存在していない。
本開示の実施形態は、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)に対するストレステストにおいて使用されることになるクエリの最適セットを識別する手段を提供する。
本開示の幾つかの実施形態では、本開示は、ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法、システム及びコンピュータプログラム製品を備える。本開示の1つの実施形態では、ランダムテストクエリのセットが生成される。「テストクエリ」は、本明細書において使用される場合、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメント等の誤った挙動を識別するために現実世界状況をシミュレートすることによってビッグデータ管理システムをテストするのに使用されるクエリを指す。1つの実施形態では、そのようなランダムテストクエリは、テストクエリ内に含めるためにフィールドを含むテーブルを利用することに基づいて生成される。次に、ランダムテストクエリのセットは、当該ランダムテストクエリの当該セットの特徴(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)のデータ点を決定するためにアクセス計画特性を抽出するようにコンパイルされる。「特徴」は、本明細書において使用される場合、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオン(timeron)(使用されることになるリソースの評価に基づくコスト推定値)バケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等のような、クエリの特性を指す。「アクセス計画」は、本明細書において使用される場合、データにアクセスするための動作の順序を指定することを指す。「アクセス計画特性」は、本明細書において使用される場合、そのようなアクセス計画の特性を指す。次に、ランダムテストクエリのセットの特徴のデータ点と、抽出された特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離(例えば、マハラノビス距離、ユークリッド距離)が測定される。1つの実施形態では、特徴セットは、オプティマイザ計画及びターゲットテーブルメタデータから抽出され、ここで、抽出された特徴セットの各特徴に対応するデータ点の分布の平均が測定される。「オプティマイザ計画」は、本明細書において使用される場合、実行の最適な方法を記述する、オプティマイザの出力を指す。「ターゲットテーブルメタデータ」は、本明細書において使用される場合、クエリ時間統計値(query time stats)を含む、消費されるソースデータについてのデータ定義を提供するメタデータ(データに関するデータ)を指す。次に、その距離が閾値距離を超える各ランダムテストクエリがランク付けされる。次に、ランク付けされたランダムテストクエリは、ランク順に実行される。エラーをもたらした(例えば、システム障害等のエラーが識別された)実行されたランダムテストクエリは、ログに追加され、これは、ビッグデータ管理システムに対してストレステストを実行するためにそれらのクエリを識別するのに使用される。このようにして、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)に対するストレステストにおいて使用されることになるクエリの最適セットが識別される。
以下の説明において、本開示の深い理解を提供するために多くの具体的な詳細が記載される。しかしながら、そのような具体的な詳細がなくても本開示が実践され得ることが当業者には明らかとなる。他の事例では、不要な詳細で本開示を不明瞭にしないように、周知の回路は、ブロック図の形式で示されている。ほとんどの場合、タイミングの考慮事項等に関する詳細は、そのような詳細が本開示の完全な理解を得るのに必要ではない限り、及び関連技術における当業者の技能の範囲内である限り、省略されている。
ここで図面を詳細に参照すると、図1は、本開示の原理を実践する通信システム100の本開示の一実施形態を示している。通信システム100は、ネットワーク103を介してビッグデータ管理システム102に接続されたテストシステム101を備える。
ネットワーク103は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、ワイヤレスワイドエリアネットワーク、回路交換電話網、モバイル通信用グローバルシステム(GSM(登録商標):Global System for Mobile Communications)ネットワーク、ワイヤレスアプリケーションプロトコル(WAP)ネットワーク、WiFiネットワーク、IEEE802.11標準規格ネットワーク、これらの様々な組み合わせ等であってよい。本開示の範囲から逸脱することなく、他のネットワーク(その説明はここでは簡潔性のために省略される)も、図1のシステム100と併せて使用されてよい。
テストシステム101は、システムのその指定された要件への準拠を評価するためにビッグデータ管理システム102に対してシステムテストを実行するように構成されている。1つの実施形態では、そのようなシステムテストは、「ストレステスト」を含む。「ストレステスト」は、本明細書において使用される場合、重い負荷/ストレス条件下での信頼性、耐障害性及び安定性の観点でビッグデータ管理システム102をテストするためにビッグデータ管理システム102によって実行されることになるクエリ(例えば、構造化クエリ言語(SQL)クエリ)を各々含む、テストシステム101によって生成されるワークロードの集合を指す。1つの実施形態では、そのようなテストは、ビッグデータ管理システム102(例えば、IBM(登録商標) DB2(登録商標) Big SQL)によって管理される(ビッグデータ管理システム102に接続された)ビッグデータクラスタ104に対して実行される。1つの実施形態では、ビッグデータ管理システム102は、SQLエンジンを含み、これは、ビッグデータクラスタ104にアクセスするため、及びデータをインタロゲートするためのSQLコマンドを認識及び解釈するソフトウェアに対応する。
1つの実施形態では、テストシステム101は、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム102によって管理されるビッグデータクラスタ104に対して実行されることになるクエリ(例えば、SQLクエリ)の最適セットを生成する。そのようなクエリの最適セットを生成することのより詳細な説明が以下で更に提供される。さらに、テストシステム101のソフトウェアコンポーネントの説明が、図2に関連して以下で提供され、テストシステム101のハードウェア構成の説明が、図3に関連して以下で更に提供される。
ビッグデータ管理システム102は、データを捕捉及び分析するために、エンドユーザ、アプリケーション、データベース及びビッグデータクラスタ104とインタラクトするように構成されている。ビッグデータクラスタ104は、本明細書において使用される場合、ビッグデータを記憶するデータストア(例えば、Hadoop(登録商標)分散ファイルシステム)を含むコンテナのクラスタを指す。「ビッグデータ」は、本明細書において使用される場合、一般的に使用されるソフトウェアツールが許容可能な経過時間内で捕捉、キュレート、管理及び処理を行う能力を超えるサイズを有するデータセットを指す。
1つの実施形態では、クエリは、よく知られたSQLクエリを使用して、Hadoop(登録商標)分散ファイルシステム等のデータストアにクエリするように有効化されるクエリのクラスを含む。そのようなクエリは、本明細書において「SQL-on-Hadoop」と称される。明確性のために、「クエリ」という用語が本明細書において使用される場合、そのようなクエリは、SQLクエリ等の従来的なクエリのみではなく、SQL-on-Hadoopクエリ等のHadoop(登録商標)環境においてSQLステートメントを実行するクエリも含むことに留意されたい。
システム100は、いずれの1つの特定のネットワークアーキテクチャにも範囲を限定されない。システム100は、任意の数のテストシステム101、ビッグデータ管理システム102、ネットワーク103及びビッグデータクラスタ104を含んでよい。
ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム102に対するストレステストにおいて使用されることになるクエリの最適セットを識別するためにテストシステム101によって使用されるソフトウェアコンポーネントに関する論述が、図2に関連して以下で提供される。
図2は、本開示の一実施形態に係る、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム102に対するストレステストにおいて使用されることになるクエリの最適セットを識別するために使用されるテストシステム101(図1)のソフトウェアコンポーネントの図である。
図1と併せて図2を参照すると、テストシステム101は、トレーニングワークロードの成功をもたらすクエリ、アクセス計画/オプティマイザ計画及び環境メタデータから抽出された特徴に対応するデータ点(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)を識別するように構成された特徴抽出部201を含む。「特徴」は、本明細書において使用される場合、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオン(使用されることになるリソースの評価に基づくコスト推定値)バケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等のような、クエリの特性を指す。このようにして、クエリの特性は、データセットの特徴として変換される。
「成功をもたらすクエリ」は、本明細書において使用される場合、エラー又は障害(例えば、ソフトウェアエラー)をもたらさない、ビッグデータ管理システム102によって実行されるクエリを指す。「ワークロード」は、本明細書において使用される場合、作業をハンドリング及び処理するビッグデータ管理システム102の能力を指す。「トレーニングワークロード」は、本明細書において使用される場合、いずれのクエリがビッグデータ管理システム102に対してストレステストを実行するのに最適であるかを判断するのに使用されるワークロードを指し、ここで、「最適クエリ」は、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用するクエリを指す。1つの実施形態では、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等のような、トレーニングワークロードの成功をもたらすクエリからの特徴は、特徴抽出部201によって抽出される。
「オプティマイザ計画」は、本明細書において使用される場合、実行の最適な方法を記述する、テストシステム101のオプティマイザ202(クエリオプティマイザ)の出力を指す。そのような「出力」は、本明細書において「実行計画」及び「オプティマイザ計画」又は「アクセス計画」と称され得る。クエリオプティマイザ202は、本明細書において使用される場合、SQLステートメント等のクエリを実行する最も効率的な方法を決定するビルトインソフトウェアを指す。1つの実施形態では、クエリオプティマイザ202は、利用可能なアクセスパス及びヒントに基づいてSQLステートメントについての潜在的計画のセットを生成する。クエリオプティマイザ202は、データディクショナリ内の統計値に基づいて各計画のコストを推定する。統計値は、ステートメントによってアクセスされるテーブル、インデックス及びパーティションのデータ分布及び記憶特性についての情報を含む。1つの実施形態では、コストは、特定の計画を用いてステートメントを実行するのに必要とされる期待されるリソース使用に比例する推定値である。1つの実施形態では、クエリオプティマイザ202は、推定されたコンピュータリソース(例えば、入力/出力、処理ユニット、メモリ等)に基づいてアクセスパス及び結合順序のコストを計算する。より高いコストを有する逐次計画は、より小さいコストを有する逐次計画よりも実行するのにより長い時間を要する。並列計画を使用する場合、リソース使用は、経過時間に直接関係しない。
1つの実施形態では、クエリオプティマイザ202は、計画同士を比較し、最低コストを有する計画を選択する。そのような分析の出力は、実行の最適な方法を記述する「実行計画」又は「オプティマイザ計画」又は「アクセス計画」である。例えば、計画は、SQLステートメントを実行するのに使用される段階の組み合わせを示している。
1つの実施形態では、オプティマイザ計画内に、クエリ特性(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等)が含まれる。そのような特徴は、特徴抽出部201によって抽出される。
さらに、特徴は、「環境メタデータ」から抽出され得、環境メタデータは、ベースロケーション(テーブルを含む)、データプラットフォーム、SQLツールキットロケーション等のようなシステム全体の特性、及びクエリ時間統計値を記述する。クエリ時間統計値等のそのような特徴は、特徴抽出部201によって抽出される。
加えて、1つの実施形態では、特徴抽出部201は、オプティマイザ計画及びターゲットテーブルメタデータから特徴セットを抽出するように構成されている。「ターゲットテーブル」は、本明細書において使用される場合、データが向かう場所又はアクションが行われるテーブルを指す。「ターゲットテーブルメタデータ」は、本明細書において使用される場合、クエリ時間統計値を含む、消費されるソースデータについてのデータ定義を提供するメタデータ(データに関するデータ)を指す。そのような特徴は、特徴抽出部201によってターゲットテーブルメタデータから抽出される。
1つの実施形態では、特徴抽出部201は、抽出されることになる特徴を識別するために自然言語処理を利用する。1つの実施形態では、特徴抽出部201は、上述されたそのような特徴を、そのような特徴を示すキーワードを識別することによって抽出し、ここで、そのようなキーワードは、データ構造(例えば、テーブル)内でリストされる。1つの実施形態では、そのようなデータ構造は、テストシステム101の記憶デバイス(例えば、メモリ、ディスクドライブ)に記憶される。
1つの実施形態では、特徴抽出部201は、SQLステートメントのアクセス計画をフェッチし、フェッチされたアクセス計画を、それが含む特徴のセットに変換するように構成されている。
テストシステム101は、特徴に対応するデータ点の分布の平均を決定するように構成されたデータ分析ツール203を更に備える。例えば、特徴抽出部201は、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等についてのデータ点を抽出する。そのようなデータ点は、データセットの分布の平均を導出するためにデータ分析ツール203によって分析されてよい。
さらに、1つの実施形態では、データ分析ツール203は、テストスイートのクエリのアクセス計画特性の抽出から得られた各特徴に対応するデータ点と、各そのような特徴に対応するデータ点の分布の平均との間の距離を測定するように構成されている。1つの実施形態では、そのような距離は、ユークリッド距離等の多変量距離に対応する。1つの実施形態では、データ分析ツール203は、テストスイートのクエリの実行から得られた各特徴に対応するデータ点と、各そのような特徴に対応するデータ点の分布の平均との間のマハラノビス距離を測定する。「テストスイート」又は「テストワークロードスイート」は、本明細書において使用される場合、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメント等の誤った挙動を識別するために現実世界状況をシミュレートすることによってビッグデータ管理システムをテストするように意図された(クエリを含む)ワークロードの集合を指す。
さらに、1つの実施形態では、データ分析ツール203は、特徴(例えば、アクセス計画オペレータタイプ)に対応するデータ点と、特徴のデータ点の分布の平均との間の最も遠い距離を、そのような特徴についての「閾値距離」として設定するように構成されている。そのような閾値は、以下で更に論述されるように、場合によっては、ビッグデータ管理システム102に対してストレステストを実行するために利用され得るクエリを識別するのに使用されることになる。
特徴に対応するデータ点の分布の平均を決定するためにデータ分析ツール203によって利用されるソフトウェアツールの例としては、限定されないが、Minitab(登録商標)、IBM(登録商標) SPSS Statistics、RStudio(登録商標)、OriginPro(登録商標)、EViews(登録商標)等が挙げられる。
テストシステム101は、加えて、ランダムテストクエリのセットを生成するように構成されたクエリ生成部204を備える。「テストクエリ」は、本明細書において使用される場合、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメント等の誤った挙動を識別するために現実世界状況をシミュレートすることによってビッグデータ管理システム(例えば、ビッグデータ管理システム102)をテストするのに使用されるクエリを指す。1つの実施形態では、そのようなランダムテストクエリは、テストクエリ内に含めるためにフィールドを含むテーブルを利用することに基づいて生成される。1つの実施形態では、そのようなフィールドは、エキスパートによって装入される。1つの実施形態では、そのようなテーブルは、テストシステム101の記憶デバイス(例えば、メモリ、ディスクドライブ)内に存在するデータ構造に対応する。1つの実施形態では、クエリは、クエリ生成部204によって、ランダムテストクエリのセットの各クエリ内に含めるために上述されたテーブルからフィールドをランダムに選択することによって、ランダムに生成される。1つの実施形態では、ランダムテストクエリの各々は、同じ数のフィールドを有する。1つの実施形態では、基準(例えば、ユニオンクエリ)は、エキスパートによってフィールドに追加される。
1つの実施形態では、クエリ生成部204は、クエリ生成部204が例示のエンティティインスタンスに基づいてクエリを作成することを可能にする実例型仕様(SBE:specification by example)方法を介してランダムテストクエリのセットを生成する。例えば、代表的なテストクエリをクエリ生成部204に提出することができ、クエリ生成部204は、SBE方法を使用して大規模データベースに記憶された「類似」のクエリを識別してよい。1つの実施形態では、そのような探索は、クエリベクトル同士を比較することに基づく。そのような一実施形態では、クエリは、ベクトル空間モデルを使用して識別子(インデックス項等)のベクトルとして表されてよい。
さらに、テストシステム101は、クエリを実行又はコンパイルするように構成されたクエリ実行部205を備える。さらに、1つの実施形態では、クエリ実行部205は、アクセス計画特性を抽出するためにランダムテストクエリのセットをコンパイルするように構成されており、アクセス計画特性は、上述されたように特徴(例えば、列タイプ、アクセス計画オペレータ)のデータ点を決定するために特徴抽出部201によって使用される。「アクセス計画」は、本明細書において使用される場合、データにアクセスするための動作の順序を指定することを指す。例えば、アクセス計画は、選択されたテーブル、インデックス又は列についての統計値、オペレータについての特性、テーブル空間及び機能統計値等のグローバル情報、並びに最適化に関連する構成パラメータを閲覧することを可能にする。「アクセス計画特性」は、本明細書において使用される場合、そのようなアクセス計画の特性を指す。前述されたように、特徴抽出部201は、クエリ特性を含むオプティマイザ計画又はアクセス計画からクエリ特性を抽出するように構成されている。
ランダムテストクエリのセットをコンパイルするためにクエリ実行部205によって利用されるソフトウェアツールの例としては、限定されないが、Microsoft(登録商標) SQL server management studio(SSMS)、SQLGate(登録商標)、Postico、PopSQL(登録商標)、Adminer Editor、Valentina、DBeaver(登録商標)、SQuirreL SQL等が挙げられる。
加えて、テストシステム101は、その距離(特徴のデータ点と、そのような特徴に対応するデータ点の分布の平均との間の距離)が閾値距離を超えるランダムテストクエリ等のクエリを優先するように構成されたクエリ優先順位付けエンジン206を備える。1つの実施形態では、そのような優先順位付けは、期待されるランタイム持続時間に基づいて等で、ランダムテストクエリをランク付けすることを伴う。1つの実施形態では、ランタイム持続時間は、決定木を使用して予測され、ここで、以下で更に論述されるように、決定木は、変数を含み、変数の要素は、特徴を含む。さらに、1つの実施形態では、変数は、テーブルタイプ、オペレータ、割り込み、列タイプ、テーブルメタデータ等のようなクエリの特性を含む。
1つの実施形態では、クエリ優先順位付けエンジン206は、以下で更に論述されるように、ランダムテストクエリの各々に割り当てられた重みに基づいて、ランダムテストクエリをランク付けする。1つの実施形態では、そのような重みは、線形系の解によって決定される。
さらに、テストシステム101は、ストレステストを実行するためにビッグデータ管理システム102によって管理されるビッグデータクラスタ104に対して実行されることになるクエリ(例えば、SQLクエリ)の最適セットを識別及び選択するように構成されたクエリ選択部207を備え、ここで、そのようなクエリは、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する。1つの実施形態では、そのようなクエリの最適セットは、実行時にエラーをもたらしたランク付けされたランダムテストクエリに対応する。1つの実施形態では、そのような実行時にエラーをもたらしたクエリは、ログ(本明細書において「テストログ」と称される)に記憶される。
これらの機能及び他の機能の更なる説明は、ビッグデータ管理システムに対してストレステストを最適に実行する方法の論述に関連して以下で提供される。
ビッグデータ管理システムに対してストレステストを最適に実行する方法の論述に先立って、テストシステム101(図1)のハードウェア構成の説明が図3に関連して以下で提供される。
ここで、図1~図2と併せて図3を参照すると、図3は、本開示を実践するためのハードウェア環境を代表するテストシステム101(図1)のハードウェア構成の本開示の一実施形態を示している。
テストシステム101は、システムバス302によって様々な他のコンポーネントに接続されたプロセッサ301を有する。オペレーティングシステム303が、プロセッサ301上で実行され、図3の様々なコンポーネントの制御を提供し、それらの機能を協働させる。本開示の原理に係るアプリケーション304は、オペレーティングシステム303とともに実行され、オペレーティングシステム303に対する呼び出しを提供し、ここで、呼び出しは、アプリケーション304によって実行されることになる様々な機能又はサービスを実装する。アプリケーション304は、例えば、特徴抽出部201、クエリオプティマイザ202、データ分析ツール203、クエリ生成部204、クエリ実行部205、クエリ優先順位付けエンジン206及びクエリ選択部207を含んでよい。さらに、アプリケーション304は、例えば、図4A~図4B及び図5~図7に関連して以下で更に論述されるように、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム102によって管理されるビッグデータクラスタ104に対して実行されることになるクエリ(例えば、SQLクエリ)の最適セットを生成するプログラムを含んでよい。
再び図3を参照すると、リードオンリメモリ(「ROM」)305が、システムバス302に接続され、テストシステム101の特定の基本機能を制御する基本入力/出力システム(「BIOS」)を含む。ランダムアクセスメモリ(「RAM」)306及びディスクアダプタ307も、システムバス302に接続される。オペレーティングシステム303及びアプリケーション304を含むソフトウェアコンポーネントは、RAM306にロードされてよく、RAM306は、実行のためのテストシステム101のメインメモリであってよいことが留意されるべきである。ディスクアダプタ307は、ディスクユニット308、例えば、ディスクドライブと通信するインテグレーテッドドライブエレクトロニクス(「IDE」)アダプタであってよい。ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム102によって管理されるビッグデータクラスタ104に対して実行されることになるクエリ(例えば、SQLクエリ)の最適セットを生成するプログラムは、図4A~図4B及び図5~図7に関連して以下で更に論述されるように、ディスクユニット308内又はアプリケーション304内に存在してよいことに留意されたい。
テストシステム101は、バス302に接続された通信アダプタ309を更に備えてよい。通信アダプタ309は、ビッグデータ管理システム102等の他のデバイスと通信するためにバス302を外部ネットワーク(例えば、図1のネットワーク103)と相互接続する。
1つの実施形態では、テストシステム101のアプリケーション304は、特徴抽出部201、クエリオプティマイザ202、データ分析ツール203、クエリ生成部204、クエリ実行部205、クエリ優先順位付けエンジン206及びクエリ選択部207のソフトウェアコンポーネントを含む。1つの実施形態では、そのようなコンポーネントは、ハードウェアにおいて実装されてよく、その場合、そのようなハードウェアコンポーネントは、バス302に接続されることになる。そのようなコンポーネントによって実行される上述された機能は、包括的なコンピュータ機能ではない。結果として、テストシステム101は、特定の、非包括的なコンピュータ機能を実装する結果である特定の機械である。
1つの実施形態では、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム102によって管理されるビッグデータクラスタ104に対して実行されることになるクエリ(例えば、SQLクエリ)の最適セットを生成する機能を含む、テストシステム101のそのようなソフトウェアコンポーネント(例えば、特徴抽出部201、クエリオプティマイザ202、データ分析ツール203、クエリ生成部204、クエリ実行部205、クエリ優先順位付けエンジン206及びクエリ選択部207)の機能は、特定用途向け集積回路において具現化されてよい。
本発明は、統合のあらゆる可能な技術詳細レベルにおけるシステム、方法若しくはコンピュータプログラム製品、又はその組み合わせであってよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数の媒体)を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持及び記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は前述したものの任意の適した組み合わせであってよいが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、次のもの、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、機械的にエンコードされたデバイス、例えば、パンチカード又は命令を記録した溝内の隆起構造、及び前述したものの任意の適した組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号等の一時的な信号それ自体とは解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、或いは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク、又はその組み合わせを介して、外部コンピュータ又は外部記憶デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ、又はその組み合わせを含んでよい。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、1つ若しくは複数のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのいずれかであってよく、1つ若しくは複数のプログラミング言語は、Smalltalk(登録商標)、C++等のようなオブジェクト指向プログラミング言語と、「C」プログラミング言語又は同様のプログラミング言語のような手続き型プログラミング言語とを含む。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行されてもよいし、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に実行されてもよいし、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で実行されてもよいし、リモートコンピュータ若しくはサーバ上で完全に実行されてもよい。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、その接続が、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。幾つかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図若しくはブロック図、又はその両方を参照して説明されている。フローチャート図若しくはブロック図、又はその両方の各ブロック、並びに、フローチャート図若しくはブロック図、又はその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されよう。
これらのコンピュータ可読プログラム命令をコンピュータ又は他のプログラマブルデータ処理装置のプロセッサに提供して機械を生成してよく、それにより、コンピュータのプロセッサ又は他のプログラマブルデータ処理装置を介して実行される命令が、フローチャート若しくはブロック図、又はその両方の単数又は複数のブロックで指定された機能/動作を実装する手段を作成するようになる。また、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶されてよく、当該命令は、コンピュータ、プログラマブルデータ処理装置若しくは他のデバイス、又はその組み合わせに対し、特定の方式で機能するよう命令することができ、それにより、命令を記憶したコンピュータ可読記憶媒体は、フローチャート若しくはブロック図、又はその両方の単数又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を含むようになる。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードして、一連の動作段階をコンピュータ、他のプログラマブル装置又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成してもよく、それにより、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート若しくはブロック図、又はその両方の単数又は複数のブロックで指定された機能/動作を実装するようになる。
図面におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定される論理機能を実装する1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表し得る。幾つかの代替的な実装では、ブロックに記載される機能が、図面に記載される順序とは異なる順序で行われてよい。例えば、連続して示されている2つのブロックは、実際には、1つの段階として実現されても、同時に、実質的に同時に、部分的に若しくは全体的に時間重複する形で実行されてもよいし、ブロックは、関与する機能に依存して逆の順序で実行される場合もあり得る。ブロック図若しくはフローチャート図、又はその両方の各ブロック、並びにブロック図若しくはフローチャート図、又はその両方におけるブロックの組み合わせは、指定された機能若しくは動作を実行するか、又は専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースシステムによって実装することができることにも留意されたい。
上記で述べたように、データベース管理システムのストレステストは、システム/ランタイムの視点からデータベース管理システムソフトウェアを有効にテストするように徹底的な品質保証(QA)テストカバレッジ(テストされているソフトウェアの割合)を提供するためのデータの生成、データベースオブジェクトの装入、及び複雑なクエリ(例えば、複雑なSQLクエリ)の生成の観点で、難題であり続けている。例えば、データベース管理システムをストレステストするクエリを生成することに関して、そのようなクエリは、信頼性、耐障害性及び安定性についてシステムをテストするのに十分に複雑であり、それと同時に、そのクエリを実行するのに多くの時間を要するほど複雑ではない必要がある。その上、従来的なオンライントランザクション処理(OLTP)/オンライン分析処理(OLAP)システムからデータベース管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)によって管理されるビッグデータクラスタ(ビッグデータを記憶するデータストア(例えば、Hadoop(登録商標)分散ファイルシステム)を含むコンテナのクラスタ)への移行とともに、テストが実行する必要があるデータの量は、数桁分大きくなり、これにより、24時間の期間内で実行され得るテストクエリの数は、大幅に減少した。「ビッグデータ」は、本明細書において使用される場合、一般的に使用されるソフトウェアツールが許容可能な経過時間内で捕捉、キュレート、管理及び処理を行う能力を超えるサイズを有するデータセットを指す。結果として、ビッグデータ管理システムに対するストレステストは、データベース管理システムソフトウェアの信頼性、耐障害性及び安定性をテストするために長時間にわたって数千個の複雑なクエリを実行する余裕を有していない。したがって、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に使用する、ビッグデータ管理システムに対してストレステストする手段は現状存在しない。
本開示の実施形態は、図4A~図4B及び図5~図7に関連して以下で論述されるように、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)に対するストレステストにおいて使用されることになるクエリの最適セットを識別する手段を提供する。図4A~図4Bは、ビッグデータ管理システムに対してストレステストを最適に実行する方法のフローチャートである。図5は、ランダムテストクエリの重みを計算する方法のフローチャートである。図6は、テストクエリに割り当てられた重みに基づいて、その距離が閾値距離を超えるランダムテストクエリをランク付けする方法のフローチャートである。図7は、例示的な決定木を示している。
上記で述べたように、図4A~図4Bは、本開示の一実施形態に係る、ビッグデータ管理システムに対してストレステストを最適に実行する方法400のフローチャートである。
図1~図3と併せて図4Aを参照すると、段階401において、テストシステム101の特徴抽出部201は、トレーニングワークロードの成功をもたらすクエリ、オプティマイザ計画及び環境メタデータから抽出された特徴に対応するデータ点(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)を識別する。
上述されたように、「特徴」は、本明細書において使用される場合、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオン(使用されることになるリソースの評価に基づくコスト推定値)バケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等のような、クエリの特性を指す。「成功をもたらすクエリ」は、本明細書において使用される場合、エラー又は障害(例えば、ソフトウェアエラー)をもたらさない、ビッグデータ管理システム102によって実行されるクエリを指す。「ワークロード」は、本明細書において使用される場合、作業をハンドリング及び処理するビッグデータ管理システム102の能力を指す。「トレーニングワークロード」は、本明細書において使用される場合、いずれのクエリがビッグデータ管理システム102に対してストレステストを実行するのに最適であるかを判断するのに使用されるワークロードを指し、ここで、「最適なクエリ」は、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用するクエリを指す。1つの実施形態では、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等のような、トレーニングワークロードの成功をもたらすクエリからの特徴は、特徴抽出部201によって抽出される。
「オプティマイザ計画」は、本明細書において使用される場合、実行の最適な方法を記述する、オプティマイザ202(クエリオプティマイザ)の出力を指す。そのような「出力」は、本明細書において「実行計画」及び「オプティマイザ計画」又は「アクセス計画」と称され得る。クエリオプティマイザ202は、本明細書において使用される場合、SQLステートメント等のクエリを実行する最も効率的な方法を決定するビルトインソフトウェアを指す。1つの実施形態では、クエリオプティマイザ202は、利用可能なアクセスパス及びヒントに基づいてSQLステートメントについての潜在的計画のセットを生成する。クエリオプティマイザ202は、データディクショナリ内の統計値に基づいて各計画のコストを推定する。統計値は、ステートメントによってアクセスされるテーブル、インデックス及びパーティションのデータ分布及び記憶特性についての情報を含む。1つの実施形態では、コストは、特定の計画を用いてステートメントを実行するのに必要とされる期待されるリソース使用に比例する推定値である。1つの実施形態では、クエリオプティマイザ202は、推定されたコンピュータリソース(例えば、入力/出力、処理ユニット、メモリ等)に基づいてアクセスパス及び結合順序のコストを計算する。より高いコストを有する逐次計画は、より小さいコストを有する逐次計画よりも実行するのにより長い時間を要する。並列計画を使用する場合、リソース使用は、経過時間に直接関係しない。
1つの実施形態では、クエリオプティマイザ202は、計画同士を比較し、最低コストを有する計画を選択する。そのような分析の出力は、実行の最適な方法を記述する「実行計画」又は「オプティマイザ計画」又は「アクセス計画」である。例えば、計画は、SQLステートメントを実行するのに使用される段階の組み合わせを示している。
1つの実施形態では、オプティマイザ計画内に、クエリ特性(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等)が含まれる。そのような特徴は、特徴抽出部201によって抽出される。
さらに、特徴は、「環境メタデータ」から抽出され得、環境メタデータは、ベースロケーション(テーブルを含む)、データプラットフォーム、SQLツールキットロケーション等のようなシステム全体の特性、及びクエリ時間統計値を記述する。クエリ時間統計値等のそのような特徴は、特徴抽出部201によって抽出される。
加えて、1つの実施形態では、特徴抽出部201は、オプティマイザ計画及びターゲットテーブルメタデータから特徴セットを抽出するように構成されている。「ターゲットテーブル」は、本明細書において使用される場合、データが向かう場所又はアクションが行われるテーブルを指す。「ターゲットテーブルメタデータ」は、本明細書において使用される場合、クエリ時間統計値を含む、消費されるソースデータについてのデータ定義を提供するメタデータ(データに関するデータ)を指す。
1つの実施形態では、特徴抽出部201は、抽出されることになる特徴を識別するために自然言語処理を利用する。1つの実施形態では、特徴抽出部201は、上述されたそのような特徴を、そのような特徴を示すキーワードを識別することによって抽出し、ここで、そのようなキーワードは、データ構造(例えば、テーブル)内でリストされる。1つの実施形態では、そのようなデータ構造は、テストシステム101の記憶デバイス(例えば、メモリ305、ディスクドライブ308)に記憶される。
1つの実施形態では、特徴抽出部201は、SQLステートメントのアクセス計画をフェッチし、フェッチされたアクセス計画を、それが含む特徴のセットに変換するように構成されている。
段階402において、テストシステム101のデータ分析ツール203は、各特徴に対応するデータ点の分布の平均を決定する。例えば、特徴抽出部201は、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等についてのデータ点を抽出する。そのようなデータ点は、データセットの分布の平均を導出するためにデータ分析ツール203によって分析されてよい。
上記で述べたように、特徴に対応するデータ点の分布の平均を決定するためにデータ分析ツール203によって利用されるソフトウェアツールの例としては、限定されないが、Minitab(登録商標)、IBM(登録商標) SPSS Statistics、RStudio(登録商標)、OriginPro(登録商標)、EViews(登録商標)等が挙げられる。
段階403において、テストシステム101は、エキスパートから等で、テストスイートのクエリを受信する。「テストスイート」又は「テストワークロードスイート」は、本明細書において使用される場合、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメント等の誤った挙動を識別するために現実世界状況をシミュレートすることによってビッグデータ管理システムをテストするように意図された(クエリを含む)ワークロードの集合を指す。
段階404において、テストシステム101のクエリ実行部205は、アクセス計画特性を抽出するためにテストスイートの受信されたクエリをコンパイルし、これは、特徴(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)のデータ点を決定するために特徴抽出部201によって使用され、ここで、テストシステム101のデータ分析ツール203は、テストスイートのクエリのコンパイルから得られた各特徴に対応するデータ点と、(段階402において決定された)各そのような特徴に対応するデータ点の分布の平均との間の距離を測定する。
1つの実施形態では、データ分析ツール203は、テストスイートのクエリのコンパイルから得られた各特徴に対応するデータ点と、各そのような特徴に対応するデータ点の分布の平均との間の多変量距離(例えば、マハラノビス距離、ユークリッド距離)を測定する。
上記で述べたように、ランダムテストクエリのセットをコンパイルするためにクエリ実行部205によって利用されるソフトウェアツールの例としては、限定されないが、Microsoft(登録商標) SQL server management studio(SSMS)、SQLGate(登録商標)、Postico、PopSQL(登録商標)、Adminer Editor、Valentina、DBeaver(登録商標)、SQuirreL SQL等が挙げられる。
段階405において、テストシステム101のデータ分析ツール203は、特徴に対応するデータ点(テストスイートの実行されるクエリの特徴のデータ点)と、特徴のデータ点の分布の平均との間の最も遠い距離を、そのような特徴についての「閾値距離」として設定する。そのような閾値は、場合によっては、ビッグデータ管理システム102に対してストレステストを実行するために利用され得るクエリを識別するのに使用されることになる。例えば、そのような閾値距離は、以下で更に論述されるように、クエリ又はシステム障害を引き起こす高い確率を有する外れ値クエリを識別するのに使用される。
段階406において、テストシステム101のクエリ生成部204は、ランダムテストクエリのセットを生成する。上記で述べたように、「テストクエリ」は、本明細書において使用される場合、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメント等の誤った挙動を識別するために現実世界状況をシミュレートすることによってビッグデータ管理システム(例えば、ビッグデータ管理システム102)をテストするのに使用されるクエリを指す。1つの実施形態では、そのようなランダムテストクエリは、テストクエリ内に含めるためにフィールドを含むテーブルを利用することに基づいて生成される。1つの実施形態では、そのようなフィールドは、エキスパートによって装入される。1つの実施形態では、そのようなテーブルは、テストシステム101の記憶デバイス(例えば、メモリ305、ディスクドライブ308)内に存在するデータ構造に対応する。1つの実施形態では、クエリは、クエリ生成部204によって、ランダムテストクエリのセットの各クエリ内に含めるために上述されたテーブルからフィールドをランダムに選択することによって、ランダムに生成される。1つの実施形態では、ランダムテストクエリの各々は、同じ数のフィールドを有する。1つの実施形態では、基準(例えば、ユニオンクエリ)は、エキスパートによってフィールドに追加される。
1つの実施形態では、クエリ生成部204は、クエリ生成部204が例示のエンティティインスタンスに基づいてクエリを作成することを可能にする実例型仕様(SBE)方法を介してランダムテストクエリのセットを生成する。例えば、代表的なテストクエリをクエリ生成部204に提出することができ、クエリ生成部204は、SBE方法を使用して大規模データベースに記憶された「類似」のクエリを識別してよい。1つの実施形態では、そのような探索は、クエリベクトル同士を比較することに基づく。そのような一実施形態では、クエリは、ベクトル空間モデルを使用して識別子(インデックス項等)のベクトルとして表されてよい。
段階407において、テストシステム101の特徴抽出部201は、オプティマイザ計画及びターゲットテーブルメタデータから特徴セットを抽出する。
上述されたように、1つの実施形態では、オプティマイザ計画内に、クエリ特性(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオンバケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等)が含まれる。そのような特徴は、特徴抽出部201によって抽出される。
「ターゲットテーブル」は、本明細書において使用される場合、データが向かう場所又はアクションが行われるテーブルを指す。「ターゲットテーブルメタデータ」は、本明細書において使用される場合、クエリ時間統計値を含む、消費されるソースデータについてのデータ定義を提供するメタデータ(データに関するデータ)を指す。そのような特徴は、特徴抽出部201によってターゲットテーブルメタデータから抽出される。
段階408において、テストシステム101のデータ分析ツール203は、段階402に関連して上述されたように抽出された特徴セットの各特徴に対応するデータ点の分布の平均を測定する。
段階409において、テストシステム101のクエリ実行部205は、アクセス計画特性を抽出するためにランダムテストクエリをコンパイルし、これは、クエリの特徴のデータ点を決定するために特徴抽出部201によって使用され、次に、テストシステム101のデータ分析ツール203に、各そのような特徴(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)に対応するデータ点と、抽出された特徴セットのその同じ特徴に対応するデータ点の分布の平均との間の距離を測定させる。
1つの実施形態では、クエリ実行部205は、段階404において等で前述されたように、特徴抽出部201が特徴(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)のデータ点を決定するためにランダムテストクエリのセットをコンパイルするように構成されている。
さらに、データ分析ツール203は、段階404に関連して上述された方法と同じ方法で、各そのような特徴(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)に対応するデータ点と、抽出された特徴セットのその同じ特徴に対応するデータ点の分布の平均との間の距離を測定する。1つの実施形態では、そのような距離は、多変量距離(例えば、マハラノビス距離、ユークリッド距離)に対応する。
段階410において、測定された距離(例えば、クエリされるテーブルタイプ等の特徴についてのマハラノビス距離)が(段階405において決定された)そのような特徴(例えば、クエリされるテーブルタイプ)についての閾値距離を超えているか否かについての判断がテストシステム101のデータ分析ツール203によって行われる。そのような判断は、クエリ又はシステム障害を引き起こす高い確率を有するクエリを識別するために実行される。
測定された距離がそのような特徴についての閾値距離を超えていない場合、段階411において、テストシステム101のデータ分析ツール203は、テストクエリを破棄する。そのようなクエリは、ストレステストの観点でほとんど価値を与えないので、破棄される。そのようなクエリは、類似のカバレッジ(例えば、品質保証カバレッジ)を提供する他のクエリが実行されることになるので、ストレステストの観点でほとんど価値を与えない。換言すれば、そのようなクエリを破棄することによって、本開示の実施形態は、過多量の観点でほとんど価値を与えない類似のテストクエリの実行を防ぐ。
ここで、図1~図3と併せて図4Bを参照すると、他方、測定された距離がそのような特徴についての閾値距離を超えている場合、段階412において、テストシステム101のデータ分析ツール203は、テストクエリをクエリ優先順位付けエンジン206に、優先されるようにフィードする。1つの実施形態では、そのようなクエリは、カバレッジ複雑性及び推定クエリ持続時間に従ってクエリ優先順位付けエンジン206によってランク付けされることになる。
段階413において、追加のランダムテストクエリがコンパイルされることになるか否かについての判断がテストシステム101によって行われる。コンパイルされることになる追加のランダムテストクエリが存在する場合、クエリ実行部205は、段階409において別のランダムテストクエリをコンパイルする。
他方、コンパイルされることになる追加のランダムテストクエリが存在しない場合、段階414において、テストシステム101のクエリ優先順位付けエンジン206は、優先されることになるランダムテストクエリをランク付けする。
1つの実施形態では、クエリ優先順位付けエンジン206は、期待されるランタイム持続時間に基づいてランダムテストクエリをランク付けし、期待されるランタイム持続時間は、決定木を使用して(クエリがビッグデータ管理システム102によって管理されるビッグデータクラスタ104に対して実行されるときのクエリのランタイム持続時間を予測する)クエリの部分について予測され、ここで、決定木は、変数を含み、変数の要素は、特徴を含む。ランダムテストクエリをランク付けするクエリ優先順位付けエンジン206の実施形態に関する論述が、図5~図7に関連して以下で論述される。
図5は、本開示の一実施形態に係る、ランダムテストクエリの重みを計算する方法500のフローチャートである。
1つの実施形態では、クエリ優先順位付けエンジン206は、少数の選択されたランダムテストクエリのランタイム持続時間を、他のクエリについてのランタイム持続時間を予測するために、使用する。1つの実施形態では、そのような予測を行うために決定木が利用される。1つの実施形態では、決定木の設計は、特定のクエリの機能仕様に基づく。モデル化分類の場合、入力ドメインは、相互排他的なサブセット(いわゆる分類クラス)に分割される。決定木定義において、クエリは、異なる分類から分類クラスを組み合わせることによって定義される。1つの実施形態では、分類は相互排他的な特徴のみを含むので、クエリは、1つの分類の複数の特徴を含むことができない。
「分類クラス」は、本明細書において使用される場合、「変数」(例えば、クエリされるテーブルタイプ、オペレータ、割り込み等)とも呼ばれ、それらの要素は、「特徴」(例えば、Apache(登録商標) Parquet、TEMP演算、UNION演算、N行への限定等)と呼ばれる。「クエリ」は、本明細書において論述される場合、変数ごとに1つずつの、n個の特徴のセットを表す。クエリランタイム予測及びクエリ優先順位付けは、少なくとも1つのクエリを用いてカバレッジメトリックによって指定される特徴の全ての組み合わせをカバーするクエリの可能な最小サブセットを決定するのに使用される。
分類クラスは、クエリ(例えば、SQLクエリ)の特性と、クエリがビッグデータ管理システムのソフトウェア上で実行されるコードパスとの間の強い相関が存在するため利用される。結果として、クエリの重要な特性(特徴)を制御することは、ビッグデータ管理システムのソフトウェアコードのいずれの部分が行使されるかを制御することも意味する。
データセットの特徴として変換されるSQL-on-Hadoopクエリ等のクエリの重要な特性の例としては、次のもの、すなわち、テーブルタイプ(異なるテーブルタイプが異なるコードパスを処理及びカバーするために異なるSQLエンジン入力/出力リーダを呼び出すため、テーブルタイプ間の強い相関)、オペレータ(SQLクエリ計画オペレータは、クエリを実行する正確な段階を決定し、ここで、各オペレータは、ランタイムエンジン内で異なる機能をカバーする)、割り込み、列タイプ(行演算、述語フィルタリング及び他の低レベル機能は、SQLクエリ実行及び品質保証カバレッジに非常に相関にさせる列タイプに依存する)、環境/テーブルメタデータ(パーティションデータ及びテーブルの濃度が、ランタイムカバレッジに影響を与え、クエリ複雑性のインジケータである)、複雑性の総コスト及び一時的テーブル使用(オプティマイザ計画のための複雑性及びカバレッジの重要なインジケータが品質保証カバレッジのレベルと相関される)等が挙げられる。
そのような決定木の設計は、図5に関連して以下で論述される。
図1~図3及び図4A~図4Bと併せて図5を参照すると、段階501において、テストシステム101のクエリ優先順位付けエンジン206は、テンプレートクエリを選択する。例えば、特徴y1、y2及びy3を含むクエリが選択され、ここで、例えば、y1=「Relational」、y2=「GRPBY」及びy3=「Fetch first N rows」である。1つの実施形態では、クエリ優先順位付けエンジン206は、エキスパートによって装入されるデータ構造(例えば、テーブル)に記憶されたテンプレートクエリのセットのうちのテンプレートクエリを選択する。1つの実施形態では、データ構造は、テストシステム101の記憶デバイス(例えば、メモリ305、ディスクドライブ308)に記憶される。そのようなテンプレートクエリは、ビッグデータ管理システムのストレステストを実行するために利用される大半のクエリが含む特徴を含むように設計される。
段階502において、テストシステム101のクエリ優先順位付けエンジン206は、テンプレートクエリ内の分類クラス(変数)のクラス重みを1になるように設定する。例えば、クエリ優先順位付けエンジン206は、テンプレートクエリ内の分類クラスのクラス重み(cw)を1になるように設定し、すなわち、y1(cw=1)、y2(cw=1)、及びy3(cw=1)である。「クラス重み」は、本明細書において使用される場合、分類クラスの重要度を示す値を指す。例えば、クラス重みが高くなるほど、その分類クラスの重要度が高くなる。1つの実施形態では、クラス重みは、0~1の値の間で正規化される。
段階503において、テストシステム101のクエリ優先順位付けエンジン206は、テンプレートクエリの参照分類クラスを同じモデル化分類の別の分類クラスcに置き換えることによって、クエリ(本明細書において「シグマクエリ」と称される)を生成する。例えば、参照分類クラス(例えば、y3)は、シグマσクエリ(例えば、δY2=(y1,y2,y4))を生成する同じモデル化分類(例えば、σc)の別の分類クラス(例えば、y4)に置き換えられる。
段階504において、テストシステム101のクエリ優先順位付けエンジン206は、テンプレートクエリのクエリランタイムt_qtを測定する。1つの実施形態では、クエリ優先順位付けエンジン206は、クエリランタイムを測定するための次のツール、例えば、SolarWinds(登録商標) Database Performance Analyzer、AppOptics(商標) APM、ManageEngine(登録商標) Applications Manager、Redgate(登録商標) SQL Monitor、EverSQL、Idera(登録商標) DB Optimizer、dbForge Studio等のうちの任意のものを利用する。
段階505において、テストシステム101のクエリ優先順位付けエンジン206は、シグマクエリσc(例えば、δY2=(y1,y2,y4))ごとに、クエリランタイムt_qcを測定する。上述されたように、1つの実施形態では、クエリ優先順位付けエンジン206は、クエリランタイムを測定するための次のツール、例えば、SolarWinds(登録商標) Database Performance Analyzer、AppOptics(商標) APM、ManageEngine(登録商標) Applications Manager、Redgate(登録商標) SQL Monitor、EverSQL、Idera(登録商標) DB Optimizer、dbForge Studio等のうちの任意のものを利用する。
段階506において、テストシステム101のクエリ優先順位付けエンジン206は、cの重みを、t_qc/t_qtに等しい値に設定する。例えば、t_qt=4s及びt_Y2(t_qc)=8sである場合、y4の重みはcw=2である。
段階507において、テストシステム101のクエリ優先順位付けエンジン206は、ランダムクエリの総重みを、その分類クラスの重みの積として計算する。結果として、クエリは、それらの総重みに基づいて優先順位付けすることができる。
1つの実施形態では、重みの計算は、N=(「総分類クラス」-「総モデル化分類」)個の解を有する線形系の解によって決定される。1つの実施形態では、そのようなN個の解は、参照分類クラス外の分類クラスの重みに対応する。そのような方法において重みを計算することに関する論述は、図6に関連して以下で提供される。
図6は、本開示の一実施形態に係る、テストクエリに割り当てられた重みに基づいて、その距離が閾値距離を超えるランダムテストクエリをランク付けする方法600のフローチャートである。
図1~図3及び図4A~図4Bと併せて図6を参照すると、段階601において、テストシステム101のクエリ生成部204は、N+1個のクエリを生成する。
1つの実施形態では、そのようなクエリは、クエリ生成部204によって、クエリ内に含めるためにフィールドを含むテーブルを利用することに基づいて生成される。1つの実施形態では、そのようなフィールドは、エキスパートによって装入される。1つの実施形態では、そのようなテーブルは、テストシステム101の記憶デバイス(例えば、メモリ305、ディスクドライブ308)内に存在するデータ構造に対応する。1つの実施形態では、クエリは、クエリ生成部204によって、N+1個のクエリの各クエリ内に含めるために上述されたテーブルからフィールドをランダムに選択することによって、生成される。1つの実施形態では、クエリの各々は、同じ数のフィールドを有する。1つの実施形態では、基準(例えば、ユニオンクエリ)は、エキスパートによってフィールドに追加される。
1つの実施形態では、クエリ生成部204は、クエリ生成部204が例示のエンティティインスタンスに基づいてクエリを作成することを可能にする実例型仕様(SBE)方法を介してN+1個のクエリのセットを生成する。例えば、代表的なテストクエリをクエリ生成部204に提出することができ、クエリ生成部204は、SBE方法を使用して大規模データベースに記憶された「類似」のクエリを識別してよい。1つの実施形態では、そのような探索は、クエリベクトル同士を比較することに基づく。そのような一実施形態では、クエリは、ベクトル空間モデルを使用して識別子(インデックス項等)のベクトルとして表されてよい。
クエリを生成するためにクエリ生成部204によって利用されるソフトウェアツールの例としては、限定されないが、Microsoft(登録商標) SQL server management studio(SSMS)、SQLGate(登録商標)、Postico、PopSQL(登録商標)、Adminer Editor、Valentina、DBeaver(登録商標)、SQuirreL SQL等が挙げられる。
段階602において、テストシステム101のクエリ優先順位付けエンジン206は、第1のクエリをテンプレートクエリになるように設定し、ここで、クエリ内の全ての分類クラスに1の重みが割り当てられる。
段階603において、テストシステム101のクエリ優先順位付けエンジン206は、残りのクエリの重みを、そのクエリランタイム(当該残りのクエリのクエリランタイム)に基づいて得る。1つの実施形態では、クエリランタイムが短くなるほど、重みは高くなる。上述されたように、1つの実施形態では、クエリ優先順位付けエンジン206は、クエリランタイムを測定するための次のツール、例えば、SolarWinds(登録商標) Database Performance Analyzer、AppOptics(商標) APM、ManageEngine(登録商標) Applications Manager、Redgate(登録商標) SQL Monitor、EverSQL、Idera(登録商標) DB Optimizer、dbForge Studio等のうちの任意のものを利用する。
段階604において、テストシステム101のクエリ優先順位付けエンジン206は、図7に関連して以下で更に論述されるように、得られた重みを使用して線形系を定義する行列式を計算する。
段階605において、図7に関連して以下で更に論述されるように、線形系の一意性が確認されたか否かについての判断がテストシステム101のクエリ優先順位付けエンジン206によって行われる。
線形系の一意性が確認された場合、段階606において、テストシステム101のクエリ優先順位付けエンジン206は、クエリのリストにクエリを記憶する。1つの実施形態では、そのようなリストは、テストシステム101の記憶デバイス(例えば、メモリ305、ディスクドライブ308)内に保存されるデータ構造(例えば、テーブル)に対応する。
しかしながら、線形系の一意性が確認されなかった場合又はクエリのリストへのクエリの記憶時、段階607において、分析されることになる任意の更なるクエリが存在するか否かについての判断がテストシステム101のクエリ優先順位付けエンジン206によって行われる。
分析されることになる更なるクエリが存在する場合、クエリ優先順位付けエンジン206は、段階603において、次の残りのクエリの重みを、そのクエリランタイムに基づいて得る。
しかしながら、分析されることになる更なるクエリが存在しない場合、段階608において、テストシステム101のクエリ優先順位付けエンジン206は、クエリランタイムに基づいてクエリのリスト内のクエリをランク付けする。例えば、より小さいランタイム持続時間を有するクエリは、より大きいランタイム持続時間を有するクエリよりも高くランク付けされる。
一例として、ここで、本開示の一実施形態に係る例示的な決定木を示す図7を参照すると、決定木パターンセット700は、分類クラス(変数)701A~701C(それぞれ、「テーブルタイプ変数」、「オペレータ変数」、及び「割り込み変数」として識別される)の層を含む。分類クラス701A~701Cは、それぞれ、まとめて複数の分類クラス701、又は個別に分類クラス701と称され得る。
さらに、図7において示されているように、各分類クラス701は、1つ又は複数の要素(特徴)を含んでよい。例えば、分類クラス701Aは、要素y1 702A、y6 702B及びy8 702Cを含む。分類クラス701Bは、要素y2 702D、y7 702E及びy9 702Fを含む。さらに、分類クラス701Cは、要素y3 702G及びy5 702Hを含む。
図6と併せて図7を参照すると、図7の決定木は、次のこと、すなわち、全ペア並べ替えシーケンスセット内の最初の6=(8-3)+1個のクエリ(N+1個のクエリを生成するのにN=5を仮定する)が、QR=(y1,y2,y3)、Q1=(y1,y4,y5)、Q2=(y6,y2,y5)、Q3=(y6,y4,y3)、Q4=(y8,y9,y3)、及びQ5=(y8,y4,y5)によって与えられることを暗示する。
1つの実施形態では、y1についてのクラス重み(cw)は、cw_y1によって与えられ、y2についてのclass_weight(cw)は、cw_y2によって与えられ、以下も同様であり、このクエリ内の全ての分類クラスに1の重みが割り当てられ、例えば、(cw_y1=cw_y2=cw_3)=1である。次に、t_QR、t_Q1、...、t_Q5としてクエリランタイムを考慮することによって、Q1は、重み(cw_y1*cw_y2*cw_y3)=(t_Q1/t_QR)を得、以下も同様である。指数形式の線形系を解くために、(cw_y1=cw_y2=cw_y3)=1であることを考慮に入れることによって、次式、すなわち、log(cw_y4)+log(cw_y5)=log(t_Q1/t_QR)が得られ、以下も同様である。その場合、線形系は、以下の行列によって定義される:

0 0 1 0 1 | log(t_Q1/t_QR)
1 0 0 0 1 | log(t_Q2/t_QR)
1 0 1 0 0 | log(t_Q3/t_QR)
0 1 0 1 0 | log(t_Q4/t_QR)
0 1 1 0 0 | log(t_Q5/t_QR)
右辺の計算された行列式は2である。結果として、線形系解の一意性が確認される。例えば、t_QR=1s、t_Q1=2s、t_Q2=109s、t_Q3=12s、t_Q4=82s、及びt_Q5=60sとしてランタイムを測定し、重みについての上記と同じ結果が予測される。次に、クエリの優先順位付けは、最小クエリランタイム値から最高クエリランタイム値まで達成される。
したがって、品質保証(QA)カバレッジが許すとおり、クエリは、最小クエリランタイムから最高クエリランタイムまで実行することができる。
さらに、図7において示されているように、ランタイム持続時間は、分類木要素の重要度(すなわち、選択されたテストケースの重み)に基づいて予測される。重みは、上述されたように線形系を介して計算される。
図1~図3及び図5~図7と併せて、図4Bに戻ると、段階415において、テストシステム101のクエリ実行部205は、テストクエリをランク順に実行する。
クエリを実行するためにクエリ実行部205によって利用されるソフトウェアツールの例としては、限定されないが、Microsoft(登録商標) SQL server management studio(SSMS)、SQLGate(登録商標)、Postico、PopSQL(登録商標)、Adminer Editor、Valentina、DBeaver(登録商標)、SQuirreL SQL等が挙げられる。以下の段階は、そのようなテストクエリのうちの1つのテストクエリの実行を論述する。
段階416において、テストクエリの実行が成功であった(すなわち、システム障害等のエラーが識別されなかった)か否かについての判断がテストシステム101のクエリ実行部205によって行われる。
テストクエリの実行が成功であった場合、段階417において、テストシステム101のクエリ実行部205は、クエリのトレーニングセットを更新する。そのようなトレーニングセットは、エラーが識別されなかったことを反映するように更新され、将来のクエリ生成に影響を与えるのに使用される。上述されたように、本開示の原理は、利用可能な時間及びリソースの使用を最適化しながら、クエリ又はシステム障害を引き起こす高い確率を有するビッグデータ管理システム102をテストするためのクエリの最適セットを生成することを対象とする。結果として、成功であるテストクエリは、ランダムテストクエリの後続の生成されるセットにおいて利用される可能性はより低い。
しかしながら、テストクエリの実行が成功ではなかった(すなわち、システム障害等のエラーが識別された)場合、段階418において、テストシステム101のクエリ実行部205は、クエリを、エラーをもたらしたクエリのリストを維持するログ(本明細書において「テストログ」と称される)に追加する。そのようなクエリのリストは、システム又はクエリ障害等のエラーを強制する高い確率を有するクエリを含む。
段階419において、追加のテストクエリが実行される必要があるか否かについての判断がテストシステム101のクエリ実行部205によって行われる。追加のテストクエリが実行される必要がある場合、テストシステム101のクエリ実行部205は、段階415において次のテストクエリをランク順に実行する。
しかしながら、実行されることになる追加のテストクエリが存在しない場合、段階420において、テストシステム101のクエリ選択部207は、テストログに記憶されたクエリのリストを使用してビッグデータ管理システム102に対してストレステストを実行するためのクエリの最適セットを識別する。前述されたように、テストログは、ビッグデータ管理システム102がビッグデータクラスタ104に対してそのようなクエリを実行する際にエラーを強制する高い確率を有するクエリのリストを含む。
エラーを強制する高い確率を有するクエリを利用する等、ビッグデータ管理システムに対してストレステストを実行するためのクエリの数を限定することによって、時間及びリソースは、ストレステストの品質を妥協することなく最適に使用される。
このようにして、クエリの最適セットは、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)に対するストレステストにおいて使用されるために識別される。
前述の結果として、本開示の実施形態は、クエリ又はシステム障害を引き起こす高い確率を有する外れ値クエリのセットを生成する。さらに、本開示の実施形態は、各外れ値クエリのランタイム持続時間を予測し、最短実行クエリが最初に実行され得るように実行を優先し、それによって利用可能な時間及びリソースの使用が最適化される。
さらに、本開示の原理は、ストレステストを含む技術又は技術分野を改善する。
上述されたように、データベース管理システムのストレステストは、システム/ランタイムの視点からデータベース管理システムソフトウェアを有効にテストするように徹底的な品質保証(QA)テストカバレッジ(テストされているソフトウェアの割合)を提供するためのデータの生成、データベースオブジェクトの装入、及び複雑なクエリ(例えば、複雑なSQLクエリ)の生成の観点で、難題であり続けている。例えば、データベース管理システムをストレステストするクエリを生成することに関して、そのようなクエリは、信頼性、耐障害性及び安定性についてシステムをテストするのに十分に複雑であり、それと同時に、そのクエリを実行するのに多くの時間を要するほど複雑ではない必要がある。その上、従来的なオンライントランザクション処理(OLTP)/オンライン分析処理(OLAP)システムからデータベース管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)によって管理されるビッグデータクラスタ(ビッグデータを記憶するデータストア(例えば、Hadoop(登録商標)分散ファイルシステム)を含むコンテナのクラスタ)への移行とともに、テストが実行する必要があるデータの量は、数桁分大きくなり、これにより、24時間の期間内で実行され得るテストクエリの数は、大幅に減少した。「ビッグデータ」は、本明細書において使用される場合、一般的に使用されるソフトウェアツールが許容可能な経過時間内で捕捉、キュレート、管理及び処理を行う能力を超えるサイズを有するデータセットを指す。結果として、ビッグデータ管理システムに対するストレステストは、データベース管理システムソフトウェアの信頼性、耐障害性及び安定性をテストするために長時間にわたって数千個の複雑なクエリを実行する余裕を有していない。したがって、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に使用する、ビッグデータ管理システムに対してストレステストする手段は現状存在しない。
本開示の実施形態は、ランダムテストクエリのセットを生成することによってそのような技術を改善する。「テストクエリ」は、本明細書において使用される場合、データベースシステムの特定の特徴におけるコード欠陥に起因する失敗をもたらすSQLステートメント等の誤った挙動を識別するために現実世界状況をシミュレートすることによってビッグデータ管理システムをテストするのに使用されるクエリを指す。1つの実施形態では、そのようなランダムテストクエリは、テストクエリ内に含めるためにフィールドを含むテーブルを利用することに基づいて生成される。次に、ランダムテストクエリのセットは、当該ランダムテストクエリの当該セットの特徴(例えば、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ)のデータ点を決定するためにアクセス計画特性を抽出するようにコンパイルされる。「アクセス計画」は、本明細書において使用される場合、データにアクセスするための動作の順序を指定することを指す。「アクセス計画特性」は、本明細書において使用される場合、そのようなアクセス計画の特性を指す。「特徴」は、本明細書において使用される場合、列タイプ、クエリされるテーブルタイプ、アクセス計画オペレータタイプ、タイマーオン(使用されることになるリソースの評価に基づくコスト推定値)バケットに分割される複雑性の総コスト、一時的テーブル使用、最終統計値等のような、クエリの特性を指す。次に、ランダムテストクエリのセットの特徴のデータ点と、抽出された特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離(例えば、マハラノビス距離、ユークリッド距離)が測定される。1つの実施形態では、特徴セットは、オプティマイザ計画及びターゲットテーブルメタデータから抽出され、ここで、抽出された特徴セットの各特徴に対応するデータ点の分布の平均が測定される。「オプティマイザ計画」は、本明細書において使用される場合、実行の最適な方法を記述する、オプティマイザの出力を指す。「ターゲットテーブルメタデータ」は、本明細書において使用される場合、クエリ時間統計値を含む、消費されるソースデータについてのデータ定義を提供するメタデータ(データに関するデータ)を指す。次に、その距離が閾値距離を超える各ランダムテストクエリがランク付けされる。次に、ランク付けされたランダムテストクエリは、ランク順に実行される。エラーをもたらした(例えば、システム障害等のエラーが識別された)実行されたランダムテストクエリは、ログに追加され、これは、ビッグデータ管理システムに対してストレステストを実行するためにそれらのクエリを識別するのに使用される。このようにして、ストレステストの品質を妥協することなく利用可能な時間及びリソースを最適に利用する、ビッグデータ管理システム(例えば、IBM(登録商標) DB2(登録商標) Big SQL)に対するストレステストにおいて使用されることになるクエリの最適セットが識別される。さらに、このようにして、ストレステストを含む技術分野において改善がなされる。
本開示によって提供される技術的解決策は、人間の精神において、又はペン及び紙を使用する人間によって実行することができない。すなわち、本開示によって提供される技術的解決策は、コンピュータを使用することなく、任意の合理的な時間量において、及び任意の合理的な正確性の期待で、人間の精神において、又はペン及び紙を使用する人間によって実現することができない。
本開示の様々な実施形態の説明は、例示の目的で提示されるが、網羅的であることも、開示される実施形態に限定されることも意図されていない。説明された実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、市場で見られる技術の実用的な適用若しくはそれに対する技術的改善を最も良好に説明し、又は、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択されている。

Claims (20)

  1. ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法であって、
    ランダムテストクエリのセットを生成する段階と、
    前記ランダムテストクエリのセットの特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記ランダムテストクエリのセットをコンパイルする段階と、
    前記ランダムテストクエリのセットの特徴の前記データ点と、抽出された特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離を測定する段階と、
    その距離が閾値距離を超える各ランダムテストクエリをランク付けする段階と、
    前記ランク付けされたランダムテストクエリをランク順に実行する段階と、
    エラーをもたらした実行されたランク付けされたランダムテストクエリをログに追加する段階と、
    前記ログに基づいて、ビッグデータ管理システムに対してストレステストを実行するクエリを識別する段階と
    を備える、方法。
  2. その距離が前記閾値距離を超える前記ランダムテストクエリの各々は、期待されるランタイム持続時間に基づいてランク付けされる、請求項1に記載の方法。
  3. 前記ランタイム持続時間は、決定木を使用して予測され、前記決定木は、変数を含み、前記変数の要素は、特徴を含む、請求項2に記載の方法。
  4. 前記変数は、テーブルタイプ、オペレータ、割り込み、列タイプ、及びテーブルメタデータからなる群から選択されるクエリの1つ又は複数の特性を含む、請求項3に記載の方法。
  5. その距離が前記閾値距離を超える前記ランダムテストクエリの各々は、その距離が前記閾値距離を超える前記ランダムテストクエリの各々に割り当てられた重みに基づいてランク付けされ、前記重みは、線形系の解によって決定される、請求項1から4のいずれか一項に記載の方法。
  6. トレーニングワークロードの成功をもたらすクエリから抽出された特徴に対応するデータ点を識別する段階と、
    前記抽出された特徴の各特徴に対応する前記識別されたデータ点からデータ点の分布の平均を決定する段階と、
    テストスイートのクエリを受信する段階と、
    特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記テストスイートの前記受信されたクエリをコンパイルする段階と、
    前記テストスイートの前記コンパイルされたクエリの各特徴の前記データ点と、各そのような特徴に対応する前記識別されたデータ点からのデータ点の前記分布の前記平均との間の距離を測定する段階と、
    前記テストスイートの前記コンパイルされたクエリの特徴に対応するデータ点と、前記特徴のデータ点の前記分布の前記平均との間の最も遠い距離を、前記特徴についての閾値距離として設定する段階と
    を更に備える、請求項1から4のいずれか一項に記載の方法。
  7. 前記距離は、マハラノビス距離を含む、請求項6に記載の方法。
  8. ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータプログラムであって、プロセッサに、
    ランダムテストクエリのセットを生成する手順と、
    前記ランダムテストクエリのセットの特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記ランダムテストクエリのセットをコンパイルする手順と、
    前記ランダムテストクエリのセットの特徴の前記データ点と、抽出された特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離を測定する手順と、
    その距離が閾値距離を超える各ランダムテストクエリをランク付けする手順と、
    前記ランク付けされたランダムテストクエリをランク順に実行する手順と、
    エラーをもたらした実行されたランク付けされたランダムテストクエリをログに追加する手順と、
    前記ログに基づいて、ビッグデータ管理システムに対してストレステストを実行するクエリを識別する手順と
    を実行させるためのコンピュータプログラム。
  9. その距離が前記閾値距離を超える前記ランダムテストクエリの各々は、期待されるランタイム持続時間に基づいてランク付けされる、請求項8に記載のコンピュータプログラム。
  10. 前記ランタイム持続時間は、決定木を使用して予測され、前記決定木は、変数を含み、前記変数の要素は、特徴を含む、請求項9に記載のコンピュータプログラム。
  11. 前記変数は、テーブルタイプ、オペレータ、割り込み、列タイプ、及びテーブルメタデータからなる群から選択されるクエリの1つ又は複数の特性を含む、請求項10に記載のコンピュータプログラム。
  12. その距離が前記閾値距離を超える前記ランダムテストクエリの各々は、その距離が前記閾値距離を超える前記ランダムテストクエリの各々に割り当てられた重みに基づいてランク付けされ、前記重みは、線形系の解によって決定される、請求項8から11のいずれか一項に記載のコンピュータプログラム。
  13. 前記プロセッサに、
    トレーニングワークロードの成功をもたらすクエリから抽出された特徴に対応するデータ点を識別する手順と、
    前記抽出された特徴の各特徴に対応する前記識別されたデータ点からデータ点の分布の平均を決定する手順と、
    テストスイートのクエリを受信する手順と、
    特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記テストスイートの前記受信されたクエリをコンパイルする手順と、
    前記テストスイートの前記コンパイルされたクエリの各特徴の前記データ点と、各そのような特徴に対応する前記識別されたデータ点からのデータ点の前記分布の前記平均との間の距離を測定する手順と、
    前記テストスイートの前記コンパイルされたクエリの特徴に対応するデータ点と、前記特徴のデータ点の前記分布の前記平均との間の最も遠い距離を、前記特徴についての閾値距離として設定する手順と
    を更に実行させる、請求項8から11のいずれか一項に記載のコンピュータプログラム。
  14. 前記距離は、マハラノビス距離を含む、請求項13に記載のコンピュータプログラム。
  15. システムであって、
    ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータプログラムを記憶するメモリと、
    前記メモリに接続されたプロセッサであって、前記プロセッサは、
    ランダムテストクエリのセットを生成することと、
    前記ランダムテストクエリのセットの特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記ランダムテストクエリのセットをコンパイルすることと、
    前記ランダムテストクエリのセットの特徴の前記データ点と、抽出された特徴セットの各同じ特徴に対応するデータ点の分布の平均との間の距離を測定することと、
    その距離が閾値距離を超える各ランダムテストクエリをランク付けすることと、
    前記ランク付けされたランダムテストクエリをランク順に実行することと、
    エラーをもたらした実行されたランク付けされたランダムテストクエリをログに追加することと、
    前記ログに基づいて、ビッグデータ管理システムに対してストレステストを実行するクエリを識別することと
    を含む前記コンピュータプログラムのプログラム命令を実行するように構成されている、プロセッサと
    を備える、システム。
  16. その距離が前記閾値距離を超える前記ランダムテストクエリの各々は、期待されるランタイム持続時間に基づいてランク付けされる、請求項15に記載のシステム。
  17. 前記ランタイム持続時間は、決定木を使用して予測され、前記決定木は、変数を含み、前記変数の要素は、特徴を含む、請求項16に記載のシステム。
  18. 前記変数は、テーブルタイプ、オペレータ、割り込み、列タイプ、及びテーブルメタデータからなる群から選択されるクエリの1つ又は複数の特性を含む、請求項17に記載のシステム。
  19. その距離が前記閾値距離を超える前記ランダムテストクエリの各々は、その距離が前記閾値距離を超える前記ランダムテストクエリの各々に割り当てられた重みに基づいてランク付けされ、前記重みは、線形系の解によって決定される、請求項15から18のいずれか一項に記載のシステム。
  20. 前記コンピュータプログラムの前記プログラム命令は、
    トレーニングワークロードの成功をもたらすクエリから抽出された特徴に対応するデータ点を識別することと、
    前記抽出された特徴の各特徴に対応する前記識別されたデータ点からデータ点の分布の平均を決定することと、
    テストスイートのクエリを受信することと、
    特徴のデータ点を決定するために、アクセス計画特性を抽出するように前記テストスイートの前記受信されたクエリをコンパイルすることと、
    前記テストスイートの前記コンパイルされたクエリの各特徴の前記データ点と、各そのような特徴に対応する前記識別されたデータ点からのデータ点の前記分布の前記平均との間の距離を測定することと、
    前記テストスイートの前記コンパイルされたクエリの特徴に対応するデータ点と、前記特徴のデータ点の前記分布の前記平均との間の最も遠い距離を、前記特徴についての閾値距離として設定することと
    を更に備える、請求項15から18のいずれか一項に記載のシステム。
JP2022156395A 2021-10-01 2022-09-29 ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法、コンピュータプログラム及びシステム(ビッグデータ管理システムの最適なストレステストのためのワークロード生成) Pending JP2023053925A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/492,255 US11741001B2 (en) 2021-10-01 2021-10-01 Workload generation for optimal stress testing of big data management systems
US17/492,255 2021-10-01

Publications (1)

Publication Number Publication Date
JP2023053925A true JP2023053925A (ja) 2023-04-13

Family

ID=85775222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022156395A Pending JP2023053925A (ja) 2021-10-01 2022-09-29 ビッグデータ管理システムに対してストレステストを最適に実行するコンピュータ実装方法、コンピュータプログラム及びシステム(ビッグデータ管理システムの最適なストレステストのためのワークロード生成)

Country Status (3)

Country Link
US (2) US11741001B2 (ja)
JP (1) JP2023053925A (ja)
CN (1) CN115934502A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989157B2 (en) * 2022-01-10 2024-05-21 Dell Products L.P. Test adaption and distribution according to customer knowledge base

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120630A1 (en) * 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
US7599922B1 (en) * 2002-11-27 2009-10-06 Microsoft Corporation System and method for federated searching
US7447680B2 (en) * 2004-07-29 2008-11-04 International Business Machines Corporation Method and apparatus for optimizing execution of database queries containing user-defined functions
US9262477B1 (en) 2012-06-21 2016-02-16 Pivotal Software, Inc. Accuracy testing of query optimizers
WO2016167824A1 (en) * 2015-04-15 2016-10-20 Hewlett Packard Enterprise Development Lp Database query classification
US10083191B2 (en) 2015-05-08 2018-09-25 International Business Machines Corporation Dynamic test case prioritization for relational database systems
US10176022B2 (en) 2015-12-21 2019-01-08 International Business Machines Corporation Dynamically adapting a test workload to accelerate the identification of performance issues
US10474562B2 (en) * 2017-09-20 2019-11-12 Salesforce.Com Machine learning based ranking of test cases for software development
US10318412B1 (en) 2018-06-29 2019-06-11 The Travelers Indemnity Company Systems, methods, and apparatus for dynamic software generation and testing
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11249887B2 (en) 2019-08-27 2022-02-15 Nec Corporation Deep Q-network reinforcement learning for testing case selection and prioritization
US11182279B1 (en) * 2020-08-10 2021-11-23 International Business Machines Corporation Optimizing test case execution

Also Published As

Publication number Publication date
CN115934502A (zh) 2023-04-07
US20230103856A1 (en) 2023-04-06
US20230333971A1 (en) 2023-10-19
US11741001B2 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
Fan et al. Improving data quality: Consistency and accuracy
Shen et al. Automating performance bottleneck detection using search-based application profiling
US11500830B2 (en) Learning-based workload resource optimization for database management systems
US20090177642A1 (en) Method and system for automated detection of application performance bottlenecks
US20080065687A1 (en) Methods, Systems, and Media for Generating a Regression Suite Database
CN114095273A (zh) 基于深度学习的互联网漏洞挖掘方法及大数据挖掘系统
US9195730B2 (en) Verifying correctness of a database system via extended access paths
US10191947B2 (en) Partitioning advisor for online transaction processing workloads
US20230333971A1 (en) Workload generation for optimal stress testing of big data management systems
WO2016210200A1 (en) Automated validation of database index creation
Doka et al. Ires: Intelligent, multi-engine resource scheduler for big data analytics workflows
US8185881B2 (en) Procedure summaries for pointer analysis
Eismann et al. Modeling of parametric dependencies for performance prediction of component-based software systems at run-time
US8650180B2 (en) Efficient optimization over uncertain data
Raza et al. Autonomic workload performance tuning in large-scale data repositories
Ouared et al. Deepcm: Deep neural networks to improve accuracy prediction of database cost models
CN118093434A (zh) 一种智能化信息系统性能评估与测试方法及系统
US7870123B2 (en) Database optimizer plan validation and characterizations
CN114064606A (zh) 数据库迁移方法、装置、设备、存储介质和系统
CN117273278A (zh) Erp云端管理系统
Saha et al. PReach: a heuristic for probabilistic reachability to identify hard to reach statements
US7805434B2 (en) Performing a non-invasive runtime simulation for a database system
US20100205584A1 (en) Method and apparatus for determining authoritativeness of first software component with regard to second software component
Xu et al. Learning to optimize federated queries
Garg et al. Analysis and prioritization of design metrics