(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-10
(54)【発明の名称】ストレージシステムへの複数のパスを伴う非リレーショナルデータベースに対するクエリの管理
(51)【国際特許分類】
G06F 16/903 20190101AFI20241003BHJP
【FI】
G06F16/903
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515832
(86)(22)【出願日】2022-10-10
(85)【翻訳文提出日】2024-03-12
(86)【国際出願番号】 EP2022078071
(87)【国際公開番号】W WO2023061922
(87)【国際公開日】2023-04-20
(32)【優先日】2021-10-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】シヴァクマル、ガンジー
(72)【発明者】
【氏名】マクラ、ルーク
(72)【発明者】
【氏名】パテル、クシャル
(72)【発明者】
【氏名】パテル、サルヴェシュ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
(57)【要約】
ストレージシステムへの複数のパスを有する非リレーショナルデータベースに対するクエリの管理。非リレーショナルデータベースに対するクエリを管理するためのコンピュータ実装方法、システム、及びコンピュータプログラム製品。オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリがアプリケーションから受信される。ストレージシステムのディスクボリュームが次に、要求されたオブジェクトのレコードから識別される。ディスクボリュームを識別すると、ストレージシステムの非類似CPUコアにタグ設定された識別済みのディスクボリュームへの論理及び/又は物理入力/出力接続が識別される。識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、CPUコアについてのCPUコア速度、及び、オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、識別済みの論理及び/又は物理入力/出力接続の1つが次に選択される。要求は次に、選択された入力/出力接続を通じてストレージシステムへ送信される。
【特許請求の範囲】
【請求項1】
非リレーショナルデータベースに対するクエリを管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法は:
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する段階;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する段階;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する段階、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する段階;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する段階;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する段階
を備える、コンピュータ実装方法。
【請求項2】
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する段階を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する段階を更に備える、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、請求項2又は3に記載のコンピュータ実装方法。
【請求項5】
前記クエリに関する緊急性情報を取得する段階;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する段階
を更に備える、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記オブジェクトを取り出すための前記クエリは、人工知能アプリケーションから受信される、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、それにより具現化されたプログラムコードを有する1又は複数のコンピュータ可読記憶媒体を含み、前記プログラムコードは:
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順
のためのプログラミング命令を含む、コンピュータプログラム製品。
【請求項9】
前記プログラムコードは更に:
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する手順
のための前記プログラミング命令を含む、請求項8に記載のコンピュータプログラム製品。
【請求項10】
前記プログラムコードは、前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する手順
のための前記プログラミング命令を更に備える、請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、請求項9又は10に記載のコンピュータプログラム製品。
【請求項12】
前記プログラムコードは更に、
前記クエリに関する緊急性情報を取得する手順;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する手順
のための前記プログラミング命令を含む、請求項8から11のいずれか一項に記載のコンピュータプログラム製品。
【請求項13】
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、請求項12に記載のコンピュータプログラム製品。
【請求項14】
前記オブジェクトを取り出すための前記クエリは人工知能アプリケーションから受信される、請求項8から13のいずれか一項に記載のコンピュータプログラム製品。
【請求項15】
非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラムを記憶するためのメモリ;及び
前記メモリに接続されているプロセッサ
を備えるシステムであって、前記プロセッサは、
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順
を含む前記コンピュータプログラムのプログラム命令を実行するように構成されている、システム。
【請求項16】
前記コンピュータプログラムの前記プログラム命令は更に:
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する手順
を含む、請求項15に記載のシステム。
【請求項17】
前記コンピュータプログラムの前記プログラム命令は更に:
前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する手順
を含む、請求項16に記載のシステム。
【請求項18】
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、請求項16又は17に記載のシステム。
【請求項19】
前記コンピュータプログラムの前記プログラム命令は更に:
前記クエリに関する緊急性情報を取得する手順;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する手順
を含む、請求項15から18のいずれか一項に記載のシステム。
【請求項20】
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、請求項19に記載のシステム。
【請求項21】
プログラムがコンピュータ上で実行されるとき、請求項1から7のいずれか一項に記載のコンピュータ実装方法を実行するように適合されているプログラムコード手段を備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、NoSQLデータベースなどの非リレーショナルデータベースに関連し、より具体的には、マルチパスストレージ接続(すなわち、ストレージシステムへの複数のパス)を伴う非リレーショナルデータベース(例えば、NoSQLデータベース)に対するクエリの管理に関連する。
【背景技術】
【0002】
非リレーショナルデータベースは、「リレーショナル」でないデータベースである。リレーショナルデータベースは、データを関係として(表形式の提示、すなわち、各テーブルが行及び列のセットから成るテーブルの集合として)ユーザに提示する。しかしながら、非リレーショナルデータベースは、リレーショナルデータベースにおいて使用される表形式の関係以外の手段でモデリングされるデータの記憶及び取り出しのためのメカニズムを提供する。そのような非リレーショナルデータベースの例はNoSQL(「非構造化クエリ言語(SQL)」)データベースである。
【発明の概要】
【0003】
発明の一態様によれば、非リレーショナルデータベースに対するクエリを管理するためのコンピュータ実装方法が提供される。方法は、非リレーショナルデータベースシステムのストレージシステムからオブジェクトを取り出すためのクエリを受信する段階を備える。方法は追加的に、オブジェクトのレコードからストレージシステムのディスクボリュームを識別することを含む。さらに、方法は、ストレージシステムのディスクボリュームに対する論理及び/又は物理入力/出力接続を識別する段階を備え、ここで、論理及び/又は物理入力/出力接続の各々は、非リレーショナルデータベースからストレージシステムのディスクボリュームへのパスに対応し、ここで、論理及び/又は物理入力/出力接続の各々は、ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む。追加的に、方法は、ストレージシステムのCPUコアについてのCPUコア速度を取得する段階を備える。加えて、方法は、識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、CPUコアについてのCPUコア速度、及び、オブジェクトの取り出しについての緊急性の決定されたレベルに基づいてオブジェクトを取り出すために要求をストレージシステムへ送信することに使用される、識別済みの論理及び/又は物理入力/出力接続の1つを選択する段階を備える。方法は更に、選択された論理又は物理入力/出力接続を介して要求をストレージシステムへ送信する段階を備える。
【0004】
上記で説明されたコンピュータ実装方法の実施形態の他の形態は、システムの形態及びコンピュータプログラム製品の形態である。別の態様によれば、非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、それにより具現化されたプログラムコードを有する1又は複数のコンピュータ可読記憶媒体を含み、前記プログラムコードは、オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;前記識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順ためのプログラミング命令を含む、コンピュータプログラム製品が提供される。
【0005】
別の態様によれば、非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラムを記憶するためのメモリ;及び前記メモリに接続されているプロセッサを備えるシステムであって、前記プロセッサは、オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;前記識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順を含む前記コンピュータプログラムのプログラム命令を実行するように構成されている、システムが提供される。
【0006】
前述は、以下に続く本開示の詳細な説明がより良好に理解され得るために、本開示の1又は複数の実施形態の特徴及び技術的な利点をかなり一般的に概略している。本開示の追加の特徴及び利点は、以降で説明されることになり、本開示の特許請求の範囲の主題を形成し得る。
【図面の簡単な説明】
【0007】
発明の1又は複数の好ましい実施形態が、ここでは単に例として、以下の図面を参照して説明される。
【0008】
【
図1】本開示の実施形態による、本開示の原理を実施する通信システムを示す図である。
【0009】
【
図2】本開示の実施形態による、ストレージシステムのディスクボリューム及び非リレーショナルデータベースシステムの間の複数の入力/出力接続を示す。
【0010】
【
図3】本開示の実施形態による、適切なレベルの緊急性を伴う、非リレーショナルデータベースシステムによって発行された要求をストレージシステムへ送信するために、非リレーショナルデータベースシステム及びストレージシステムの間の入力/出力接続の1つを選択するのに使用される非リレーショナルデータベースシステムのソフトウェアコンポーネントの図である。
【0011】
【
図4】本開示を実施するためのハードウェア環境を表す非リレーショナルデータベースシステムのハードウェア構成の本開示の実施形態を示す。
【0012】
【
図5】本開示の実施形態による、非リレーショナルデータベースシステム及びそのストレージシステムの間の各パスを通じた入力/出力アクセス特性のパターンを構築するための方法のフローチャートである。
【0013】
【
図6】本開示の実施形態による、ストレージシステムへの複数の入力/出力接続を利用することによって、非リレーショナルデータベースシステムへのクエリを管理するための方法のフローチャートであり、ここで、これらのクエリ緊急性が入力/出力接続の1つに沿ってストレージシステムに伝搬される。
【発明を実施するための形態】
【0014】
背景技術のセクションで記載された通り、非リレーショナルデータベースは、「リレーショナル」でないデータベースである。リレーショナルデータベースは、データを関係として(表形式の提示、すなわち、各テーブルが行及び列のセットから成るテーブルの集合として)ユーザに提示する。しかしながら、非リレーショナルデータベースは、リレーショナルデータベースにおいて使用される表形式の関係以外の手段でモデリングされるデータの記憶及び取り出しのためのメカニズムを提供する。そのような非リレーショナルデータベースの例はNoSQL(「非構造化クエリ言語(SQL)」)データベースである。
【0015】
NoSQLデータベース(例えば、MongoDB(登録商標))が、ビッグデータ及びリアルタイムウェブアプリケーションにおいて、ますます多く使用されている。NoSQLシステムは、SQL様クエリ言語をサポートし得る、又は、ポリグロットパーシステンスアーキテクチャにおいてSQLデータベースと共に存在し得ることを強調するために、場合によっては、「Not only SQL」とも呼ばれる。
【0016】
この手法に対するモチベーションには、設計の単純性、マシンのクラスタへの単純な「水平」スケーリング(これはリレーショナルデータベースについて問題である)、可用性に対するより細かい制御、及び、オブジェクトリレーショナルインピーダンスミスマッチの制限が含まれる。NoSQLデータベースによって使用されるデータ構造(例えば、キー値ペア、ワイドカラム、グラフ又はドキュメント)は、リレーショナルデータベースにおいてデフォルトで使用されるものと異なり、いくつかの動作がNoSQLにおいてより速くなる。所与のNoSQLデータベースの特定の適合性は、解決する必要がある問題に依存する。場合によっては、NoSQLデータベースによって使用されるデータ構造はまた、リレーショナルデータベーステーブル「より柔軟である」と見られる。
【0017】
リレーショナルデータベースの典型的な表構造の代わりに、NoSQLデータベースは、JavaScript(登録商標)Object Notation(JSON)、拡張可能なマークアップ言語(XML)、又はバイナリJSON(BSON)ドキュメントなど、1つのデータ構造内にデータを収容する。この非リレーショナルデータベース設計は、スキーマを必要としないので、大きい、典型的には非構造化データセットを管理するための迅速なスケーラビリティを提供する。Java(登録商標)及びすべてのJava(登録商標)ベース商標及びロゴは、Oracle及び/又はその関連団体の商標又は登録商標である。
【0018】
NoSQLデータベースはまた、分散データベースの一種であり、これは、情報がコピーされて、リモート又はローカルであり得る、ストレージシステムなどの様々なサーバに記憶されることを意味する。これはデータの可用性及び信頼性を確実にする。データの一部がオフラインになる場合、データベースの残りは実行を継続できる。
【0019】
そのようなストレージシステムはディスクボリュームのセットを含み得る。本明細書において使用される「ディスクボリューム」は、ストレージシステムの一部を指す。そのようなディスクボリュームのセットは、データをロー(raw)バイナリ形式で記憶するローディスクボリュームに対応し得る。
【0020】
ストレージシステムは、ハイブリッドクラウドコンピューティング環境などのクラウドコンピューティング環境を介してNoSQLデータベースからアクセス可能であり得る。ハイブリッドクラウドコンピューティング環境は、別個のエンティティであり続けるが共に結合されて複数のデプロイメントモデルの利益を提供する、プライベートクラウド又はオンプレミスリソースなどの、パブリッククラウド及びプライベート環境の混成物である。
【0021】
ハイブリッドクラウド実装において、アプリケーションは、NoSQLデータベースに接続されたストレージシステムからデータを読み取るための要求を発行し得る物理ハイブリッドクラウドサーバ(又はサーバレイヤの上の仮想マシン)上で実行し得る。ストレージシステムのストレージディスクは、相互接続されたストレージエリアネットワーク(SAN)ファブリックの手段を介してNoSQLデータベースに接続され得る。そのようなケースにおいて、SANファブリックは、NoSQLデータベース及びストレージシステムのディスクボリュームと異なるパスを含み得る。すなわち、NoSQLデータベースからストレージシステムにおける同一の仮想ディスクに到達するための異なるパスがあり得、ここで、各ディスクボリュームへの各パスは、速度、処理パワーなどの異なる特性で動作し得る。
【0022】
NVMe(登録商標)(不揮発性メモリエクスプレス)などの伝送プロトコルが、NoSQLデータベースに接続されたストレージシステムにおける不揮発性記憶媒体などの不揮発性記憶媒体にアクセスするために利用され得る。そのような技術を使用する結果、多くの入力/出力接続が単一の物理接続を通じて生成され得、入力/出力接続を並列化する利益を獲得する。結果として、NoSQLディスクボリュームは、複数のパス(「マルチパス」)を有し得、各パスは、ストレージシステムにおける非類似CPUコアにタグ設定された1又は複数の入力/出力キューを有する。そのようなシナリオにおいて、特定のパス上で要求されるときに入力/出力性能に影響を及ぼし得るCPUコア間のクロック速度差があり得る。
【0023】
残念ながら、NVMeベースの規格はマルチパスポリシーを有しない。結果として、NoSQLデータベースは、同一のディスクボリュームについて生成された複数の入力/出力接続についての情報を取得できない。さらに、AIアプリケーションなどのアプリケーションが、オブジェクト(例えば、JSONオブジェクト)をストレージシステムから緊急に取り出すことを望む(即時の取り出しを必要とする)クエリを発行する場合、NoSQLデータベース及びストレージシステムの間の動作の違いに起因して、これらの入力/出力接続の1つなどを介して、そのようなクエリ緊急性(例えば、取り出し緊急性)をストレージシステムへ伝搬するための手段は現在無い。
【0024】
したがって、NoSQLデータベースが、多接続入力/出力伝送プロトコル(例えば、NVMe)において生成される複数の入力/出力接続を利用する、及び、これらの入力/出力接続の1つを介するなどしてクエリ緊急性をストレージシステムに伝搬するための手段は現在無い。
【0025】
本開示の実施形態は、非リレーショナルデータベース(例えば、NoSQLデータベース)が、多接続入力/出力伝送プロトコル(例えば、NVMe)において生成される複数の入力/出力接続を利用するための手段を提供し、ここで、クエリ緊急性は、これらの入力/出力接続の1つに沿ってストレージシステムに伝搬される。
【0026】
本開示のいくつかの実施形態において、本開示は、非リレーショナルデータベースに対するクエリを管理するためのコンピュータ実装方法、システム及びコンピュータプログラム製品を含む。本開示の一実施形態において、非リレーショナルデータベースシステム(例えばNoSQLデータベースシステム)のストレージシステムからオブジェクトを取り出すためのクエリがAIアプリケーションなどのアプリケーションから受信され、ここで、ストレージシステムは、ハイブリッドクラウド環境を介して非リレーショナルデータベースシステムに接続される。一実施形態において、ストレージシステムは、オブジェクトベースのストレージシステムであり、ここで、データは、その内容及び他の属性に基づいて、フラットアドレス空間上でストレージシステムにおいて「オブジェクト」の形態で記憶される。ストレージシステムのディスクボリュームは次に、そのようなディスクボリュームに関連付けられた識別子(例えば、ラベル)などの要求されたオブジェクトのレコードから識別される。ディスクボリュームを識別すると、非類似CPUコアにタグ設定された識別済みのディスクボリュームへの論理及び/又は物理入力/出力接続が、ストレージシステムの様々なディスクボリュームに接続された論理及び/又は物理入力/出力接続のリストを記憶するデータ構造を介するなどして識別される。一実施形態において、論理及び/又は物理入力/出力接続の各々は、ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む。ストレージシステムのCPUコアについてのCPUコア速度(例えば、クロック速度)が取得された後、識別済みのディスクボリュームに接続された識別済みの論理及び/又は物理入力/出力接続の1つが、識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、CPUコアについてのCPUコア速度、及び、オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて選択される。一実施形態において、そのような入力/出力アクセス特性(例えば、入力/出力レイテンシ、帯域幅、応答時間、パケットドロップ、輻輳など)及びCPUコアについてのCPUコア速度は、データ構造(例えばテーブル)から取得される。一実施形態において、オブジェクトの取り出しについての緊急性のレベルが、取り出すように要求されたオブジェクトのオブジェクトカテゴリ、及び/又は、オブジェクトを取り出すことを要求するアプリケーションのタイプに基づいて決定される。オブジェクトの取り出しについての緊急性の決定されたレベル(例えば、クリティカル)に基づいて、入力/出力接続についての必要な入力/出力アクセス特性、及び、オブジェクトを取り出すためにストレージシステムに要求を送信するのに利用される必要なCPUコア速度が、様々なレベルの緊急性に関連付けられたそのような要件を列挙するデータ構造などを介して決定される。そのような要件を両方満たす、又は、最も近く満たすCPUコアにタグ設定された識別済み入力/出力接続から入力/出力接続の1つを識別した後、非リレーショナルデータベースシステムは、ハイブリッドクラウド環境において、選択された入力/出力接続を通じて、要求(例えば読み取り要求)をストレージシステムへ送信する。この方式において、非リレーショナルデータベースシステムは、クエリの緊急性がこれらの入力/出力接続の1つに沿ってストレージシステムに伝搬される多接続入力/出力伝送プロトコル(例えばNVMe)によって確立される複数の入力/出力接続を利用することが可能である。
【0027】
以下の説明において、本開示の深い理解を提供するために多くの具体的な詳細が記載される。しかしながら、そのような具体的な詳細がなくても本開示が実施され得ることが当業者には明らかとなる。他の事例では、不要な詳細で本開示を不明瞭にしないように、周知の回路は、ブロック図の形式で示されている。ほとんどの場合、タイミングの考慮事項等に関する詳細は、そのような詳細が本開示の完全な理解を得るのに必要ではない限り、及び関連技術における当業者の技能の範囲内である限り、省略されている。
【0028】
ここで図面を詳細に参照すると、
図1は、本開示の原理を実施する通信システム100の本開示の実施形態を示している。通信システム100は、オブジェクトを非リレーショナルデータベースシステム102のストレージシステム103から取り出すために、クエリをNoSQLデータベースシステムなどの非リレーショナルデータベースシステム102へ送信する、人工知能(AI)アプリケーション101などのアプリケーションを含む。
【0029】
一実施形態において、AIアプリケーション101が、ハイブリッドクラウド環境を介して非リレーショナルデータベースシステム102に接続される(
図1に示されない)。そのような実施形態において、AIアプリケーション101が、物理ハイブリッドクラウドサーバ上で実行している。一実施形態において、AIアプリケーション101が、サーバレイヤの上の仮想マシン上で実行している。本明細書において使用される「人工知能(AI)」は、マシンによって示される知能を指す。本明細書において使用される「AIアプリケーション」は、電子商取引、ナビゲーション、ロボット、ヒューマンリソース、ヘルスケア、農業、ゲーミング、自動車、ソーシャルメディア、マーケティングなどの様々な態様におけるAIのアプリケーションを伴うAIのアプリケーションを指す。一実施形態において、AIアプリケーション101は、メタデータ及びそれらの教師データを非リレーショナルデータベースシステム102のストレージシステム103に記憶する。以下では、AIアプリケーションを利用することに関連して本開示を説明するが、他のタイプのアプリケーションが、オブジェクトを非リレーショナルデータベースのストレージシステムから取り出すためのクエリを送信するために本開示によって利用され得ることに留意されたい。
【0030】
非リレーショナルデータベースシステム102は、リレーショナルデータベースにおいて使用される表形式の関係以外の手段においてモデリングされる、ストレージシステム103などからのデータの記憶及び取り出しのためのメカニズムを提供する。そのような非リレーショナルデータベースの例はNoSQL(「非構造化クエリ言語(SQL)」)データベースである。
【0031】
一実施形態において、非リレーショナルデータベースシステム102は、JSON、XML、又はBSONドキュメントなど1つのデータ構造内にデータを収容する。そのような非リレーショナルデータベースシステムは、本明細書において、「ドキュメント」を記憶する「非リレーショナルドキュメントデータベース」と称され得る。一実施形態において、そのようなドキュメントは、データ(又は情報)を標準フォーマット又はエンコーディングでカプセル化及びエンコーディングする。エンコーディングは、XML、YAML及びJSON、及び、BSONなどのバイナリ形式を含む。ドキュメントは、そのドキュメントを表す一意のキーを介してデータベースにおいてアドレス指定される。
【0032】
一実施形態において、非リレーショナルデータベースシステム102がハイブリッドクラウド環境104を介してそのストレージシステム103に接続される。本明細書において使用されるハイブリッドクラウド環境104は、別個のエンティティのままであるが共に結合されている、プライベートクラウド又はオンプレミスリソースなどのパブリッククラウド及びプライベート環境の混成物を指す。
【0033】
一実施形態において、ストレージシステム103は、オブジェクトベースストレージシステムであり、ここで、データは、ファイル名及び位置ではなく、その内容及び他の属性に基づいて、フラットアドレス空間上でストレージシステム103内において「オブジェクト」の形態で記憶される。一実施形態において、ストレージシステム103に記憶された各オブジェクトは、「オブジェクトID」と呼ばれる固有識別子によって識別される。オブジェクトIDは、ストレージ位置を指定する必要無しでオブジェクトへの容易なアクセスを可能にする。
【0034】
一実施形態において、ストレージシステム103は、ディスクボリューム105A~105Cのセット(「ディスクボリュームA」、「ディスクボリュームB」、及び「ディスクボリュームC」としてそれぞれ識別される)を含む。ディスクボリュームは、まとめて又は個別に、それぞれ複数のディスクボリューム105又はディスクボリューム105と称され得る。
【0035】
本明細書において使用される「ディスクボリューム105」はストレージシステム103の一部を指す。そのようなディスクボリューム105のセットは、データをローバイナリ形式で記憶するローディスクボリュームに対応し得る。そのようなデータは、AIシステムによって保存されたメタデータ及び教師データを含み得る。
【0036】
一実施形態において、ストレージシステム103のストレージディスク105は、ハイブリッドクラウド環境104を通じて、複数のパス106を介して非リレーショナルデータベースシステム102に接続される。パス106は、まとめて又は個別に、それぞれ複数のパス106又はパス106と称され得る。一実施形態において、
図2に関連して下で説明されるように、非リレーショナルデータベースシステム102からストレージシステム103における同一の仮想ディスク105に到達するための異なるパス106があり、ここで、各ディスクボリューム105への各パス106は、異なる特性の速度、処理パワーなどで動作し得る。一実施形態において、そのようなパス106は論理及び/又は物理入力/出力接続であり得る。本明細書において使用される、語句「入力/出力」接続における(「/」)という表記は、「又は」を指す。したがって、本明細書において使用される語句「入力/出力接続」は、入力接続又は出力接続を指す。
【0037】
一実施形態において、NVMe(登録商標)(不揮発性メモリエクスプレス)などの多接続入力/出力伝送プロトコルが、非リレーショナルデータベースシステム102によってストレージシステム103の仮想ディスク105にアクセスするために利用される。そのようなプロトコルにおいて、入力/出力接続を並列化する利益を獲得するために、単一の物理接続を介して生成される複数の入力/出力接続がある。そのような入力/出力接続が、
図1のパス106によって表される。語句「入力/出力接続」及び「パス」が、本明細書において交換可能に使用され、同一の意味を有することに留意されたい。
【0038】
一実施形態において、
図2に示されるように、各パス106は、ストレージシステム103における非類似中央処理装置(CPU)コアにタグ設定される1又は複数の入力/出力キューを有し得る。
【0039】
図2を参照すると、
図2は、本開示の実施形態による、ストレージシステム103のディスクボリューム105及び非リレーショナルデータベースシステム102の間の複数の入力/出力接続を示す。
【0040】
図2に示されるように、
図1に関連して、
図1のパス106の入力/出力接続を表すパス106A-106Cが、非リレーショナルデータベースシステム102及びストレージシステム103のディスクボリューム105Aの間に接続される。上で説明されたように、これらのパス106の各々(パス106A~106C)は、ストレージシステム103における異なるCPUコアにタグ設定される1又は複数の入力/出力キューを含む。例えば、パス106Aは、ストレージシステム103のCPUコア202A(
図2において「CPUコア1」と識別される)にタグ設定された入力/出力キュー201A(
図2において「I/Oキュー1」と識別される)及び入力/出力キュー201B(
図2において「I/Oキュー2」と識別される)を含む。そのようなパス106AをCPUコア202Aにタグ設定することによって、パス106A上を伝送される要求が、関連付けられた又は「タグ設定された」CPUコア202Aによって処理される。したがって、本明細書において使用される用語「タグ設定(tagged)」は、関連付けられた入力/出力接続106(例えば、入力/出力接続106A)上で伝送される要求を処理する特定のCPUコア(例えばCPUコア202A)を識別することを指す。本明細書において使用される語句「入力/出力」における表記(「/」)は、「又は」を指すことに留意されたい。したがって、本明細書において使用される語句「入力/出力」は「入力又は出力」を指す。
【0041】
図2において更に示されるように、パス106Bは、ストレージシステム103のCPUコア202B(
図2において「CPUコア2」として識別される)にタグ設定された入力/出力キュー201C(
図2において「I/Oキュー3」と識別される)を含む。パス106Cは、CPUコア202C(
図2において「CPUコア3」と識別される)にタグ設定された入力/出力キュー201D(
図2において「I/Oキュー4」と識別される)を含む。
【0042】
上で説明されるように、一実施形態において、パス106A~106Cなどのパス106は論理及び/又は物理入力/出力接続であり得る。入力/出力キュー201A~201Dは、まとめて又は個別に、それぞれ複数の入力/出力キュー201又は入力/出力キュー201と称され得る。CPUコア202A~202Cは、まとめて又は個別に、それぞれ複数のCPUコア202又はCPUコア202と称され得る。
【0043】
本明細書において使用される入力/出力キュー201は、入力/出力要求を保持する抽象データ型を指す。例えば、入力/出力キュー201は、AIアプリケーション101によって要求されるオブジェクトをストレージシステム103(例えばディスクボリューム105A)から取り出すために、非リレーショナルデータベースシステム102からの要求を一時的に記憶し得る。
【0044】
本明細書において使用されるCPUコア202は、ストレージシステムの中央処理装置内の個別の処理ユニットを指す。
【0045】
図2は4つの入力/出力キュー201を示すが、本開示は、そのような実施形態に範囲を限定されない。各パス106は、任意の数の入力/出力キュー201を含み得、非リレーショナルデータベースシステム102及びストレージシステム103のディスクボリューム105の間に任意の数のパス106があり得る。さらに、
図2は、ストレージシステム103における3つのCPUコア202を示すが、本開示は、そのような実施形態に範囲を限定されない。ストレージシステム103は任意の数のCPUコア202を含み得る。
【0046】
図1に戻ると、
図2と併せて、一実施形態において、非リレーショナルデータベースシステム102は、オブジェクトをストレージシステム103から取り出すための要求(AIアプリケーション101からのクエリの受信時に非リレーショナルデータベースシステム102によって発行される応答)を送信するために、これらのパス106の1つをI/O接続として選択するように構成されている。一実施形態において、そのような選択は、パス106の入力/出力アクセス特性、CPUコア202のコア速度(クロック速度)、及びマルチレベル緊急性のタイプに基づく。
【0047】
一実施形態において、入力/出力アクセス特性は、下で更に詳細に説明されるように、機械学習を使用して、パス106を通じた入力/出力アクセス特性のパターンに基づいて決定される。
【0048】
本明細書において使用される「マルチレベル緊急性のタイプ」は、非リレーショナルデータベースシステム102によって発行される要求(例えば読み取り要求)の緊急性のレベルの1つを指す。例えば、一実施形態において、非リレーショナルデータベースシステム102によって発行される要求(例えば、読み取り要求)の緊急性のレベルは、緊急、クリティカル、及びスーパークリティカルを含み、ここで、クリティカル区分は、緊急区分に割り当てられた要求より処理されることが重要である要求に割り当てられ、ここで、スーパークリティカル区分は、クリティカル区分に割り当てられた要求より処理されることが重要である要求に割り当てられる。一実施形態において、マルチレベル緊急性のそのようなタイプは、取り出されることが要求されるオブジェクトのオブジェクトカテゴリ、オブジェクトを取り出すことを要求するアプリケーションのタイプなど、(ストレージシステム103からオブジェクトを取り出すことを要求する)クエリに関する緊急性情報を取得することに基づいて決定される。
【0049】
非リレーショナルデータベースシステム102のこれら及び他の機能のより詳細な説明が、下で更に提供される。さらに、非リレーショナルデータベースシステム102のソフトウェアコンポーネントの説明が、
図3に関連して下で提供され、非リレーショナルデータベースシステム102のハードウェア構成の説明が、
図4に関連して下で更に提供される。
【0050】
システム100は、いずれの1つの特定のネットワークアーキテクチャにも範囲を限定されない。システム100は、任意の数のAIアプリケーション101、非リレーショナルデータベースシステム102、ストレージシステム103、ハイブリッドクラウド環境104、ディスクボリューム105、及びパス106を含み得る。
【0051】
複数の入力/出力接続106を利用するために非リレーショナルデータベースシステム102によって使用されるソフトウェアコンポーネントに関する論述が、
図3に関連して下で提供され、ここで、クエリ緊急性(AIアプリケーション101によって発行されるクエリの緊急性)がこれらの入力/出力接続106の1つに沿ってストレージシステム103に伝搬される。下でより詳細に説明されるように、そのような緊急性は、非リレーショナルデータベースシステム102によってストレージシステム103に発行される要求に対する適切なレベルの緊急性の割り当てに基づいてストレージシステム103に伝搬される。
【0052】
図3は、本開示の実施形態による、適切なレベルの緊急性を伴う、非リレーショナルデータベースシステム102によってストレージシステム103に発行される要求を送信するために、非リレーショナルデータベースシステム102及びストレージシステム103の間の入力/出力接続106の1つを選択するために使用される非リレーショナルデータベースシステム102のソフトウェアコンポーネントの図である。
【0053】
図3に示されるように、
図1~2と併せて、非リレーショナルデータベースシステム102は、それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するために、非リレーショナルデータベースシステム102及びストレージシステム103の間のパス106の各々から入力/出力統計を収集するように構成されているモニタエンジン301を含む。本明細書において使用される「入力/出力ワークロード」は、特定の時間長にわたって入力/出力接続106によって収集される入力の量、及び、入力/出力接続106によって生成される出力の量を指す。本明細書において使用される「レイテンシ」は時間遅延を指す。入力/出力統計は、これらに限定されないが、入力/出力レイテンシ、帯域幅、応答時間、パケットドロップ、輻輳などを含む。
【0054】
一実施形態において、モニタエンジン301は、読み取り及び書き込み要求の数などの入力/出力接続106上の入力/出力アクセスパターンを識別することによって入力/出力ワークロードを評価する。入力/出力接続106上の入力/出力アクセスパターンを識別することによって入力/出力ワークロードを評価するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、Iometer、Condusiv(登録商標) I/O Assessment Toolなどを含む。
【0055】
一実施形態において、モニタエンジン301は、要求が1つのポイントから別のポイントへ移動すること、及び、応答が送信元(例えば、非リレーショナルデータベースシステム102)へ再び送信されることに要する時間を測定することによって、入力/出力接続106の入力/出力レイテンシを評価する。そのような測定は、「ラウンドトリップ時間」と称される。別の実施形態において、モニタエンジン301は、要求がポイントを出た時点からその目的地に到達するまでに要する時間を記録する。そのような測定は、「最初のバイトまでの時間」と称される。そのような実施形態において、データ収集ソフトウェアは、目的地ポイント(例えば、ストレージシステム103)にインストールされる。
【0056】
入力/出力レイテンシなどの入力/出力統計を、非リレーショナルデータベースシステム102及びストレージシステム103の間のパス106の各々から収集して、それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標)Network Performance Monitor、SolarWinds(登録商標) NetFlow Traffic Analyzer、Angry IP Scanner、SolarWinds(登録商標) Engineer's Toolset(登録商標)、Paessler(登録商標) PRTG Network Monitor、NetScanTools(登録商標)、Amazon(登録商標) CloudWatch(登録商標)などを含む。
【0057】
一実施形態において、モニタエンジン301は、入力/出力接続106の帯域幅(所与のパスにわたるデータ転送の最大レート)を測定する。
【0058】
入力/出力接続106の帯域幅を測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) Network Performance Monitor、SolarWinds(登録商標) NetFlow Traffic Analyzer、Paessler(登録商標) PRTG Network Monitor、N-able(登録商標) Remote Monitoring & Managementなどを含む。
【0059】
一実施形態において、モニタエンジン301は、入力/出力接続106の応答時間を測定する。本明細書において使用される「応答時間」は、入力/出力動作を完了するのに要する時間長を指す。入力/出力接続106の応答時間を測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) Engineer's Toolset(登録商標)、Amazon(登録商標) CloudWatch(登録商標)、Dynatrace(登録商標)、ManageEngine(登録商標) Applications Managerなどを含む。
【0060】
一実施形態において、モニタエンジン301は、入力/出力接続106にわたるパケットドロップを測定する。本明細書において使用される「パケットドロップ」は、遅延又は誤って配置されたパケットを指す。入力/出力接続106にわたるパケットドロップを測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) Network Quality Manager、SolarWinds(登録商標) Network Performance Monitor、Paessler(登録商標) PRTG Network Monitor、Packet Loss Test(登録商標)などを含む。
【0061】
一実施形態において、モニタエンジン301は入力/出力接続106の輻輳を測定する。本明細書において使用される「輻輳」は、接続が処理できるより多くのデータを搬送しているときに発生するサービス品質の低減を指す。入力/出力接続106にわたる輻輳を測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) NetFlow Traffic Analyzer、Wireshark(登録商標)、Cacti(登録商標)、LogicMonitor(登録商標)、Datadog(登録商標)、Dynatrace(登録商標)などを含む。
【0062】
非リレーショナルデータベースシステム102は更に、モニタエンジン301からの収集された入力/出力統計を使用して各パス106についての入力/出力アクセス特性のパターンを構築するように構成されている機械学習エンジン302を含む。一実施形態において、機械学習エンジン302は、機械学習アルゴリズムを利用して、モニタエンジン301からの収集された入力/出力統計を使用して各パス106を通じた入力/出力アクセス特性のパターンを構築する。
【0063】
本明細書において使用される、パス106を通じた入力/出力アクセス特性の「パターン」は、パス106によってサービングされている入力/出力ワークロード、特定の時刻などに基づく、典型的にはパス106によって示される入力/出力アクセス統計を指す。そのようなパターンは、モニタエンジン301から収集される(それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するために使用される)入力/出力統計に基づき、これは、処理されている入力/出力ワークロードなどに基づくなどしてパス106の入力/出力アクセス特性を予測するように数学モデルを訓練するために「訓練データ」として使用される。一実施形態において、入力/出力特性のそのようなパターンは、入力/出力アクセス特性の異なるフィールドに対応する値に対応する。例えば、0.3ミリ秒、15KHz、5ミリ秒、1及び0のパターンにおいて、0.3ミリ秒は入力/出力レイテンシに対応し、15KHzは帯域幅に対応し、5ミリ秒は応答時間に対応し、1は1時間の期間にわたるパケットドロップ数に対応し、0は輻輳が存在しないことに対応する。
【0064】
一実施形態において、機械学習エンジン302は、機械学習アルゴリズム(例えば、教師あり学習)を使用して、モニタエンジン301から収集された(それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するために使用される)入力/出力統計から成るサンプルデータに基づいて数学モデルを構築する。そのようなデータセットは本明細書において、「訓練データ」と称され、これは、タスクを実行するよう明示的にプログラムされることなくパス106の入力/出力アクセス特性の予測又は決定を行うために機械学習アルゴリズムによって使用される。一実施形態において、訓練データは、処理される入力/出力ワークロード、時刻、処理されるクエリのタイプなどに基づく入力/出力統計から成る。アルゴリズムは、各パス106にわたる入力/出力アクセス特性について、訓練データに対して反復的に予測を行う。そのような教師あり学習アルゴリズムの例は、最近傍法、単純ベイズ、決定木、線形回帰、サポートベクタマシン、及びニューラルネットワークを含む。
【0065】
一実施形態において、数学モデル(機械学習モデル)は、各パス106を通じた入力/出力アクセス特性を予測するよう訓練された区分モデルに対応する。
【0066】
非リレーショナルデータベースシステム102は更に、ストレージシステム103からオブジェクトを取り出すために非リレーショナルデータベースシステム102によってAIアプリケーション101から受信されたクエリによって示されるマルチレベル緊急性のタイプ(入力/出力レベル優先度のタイプ)を決定するように構成されている優先度識別モジュール303を含む。本明細書において使用される「オブジェクト」は、ストレージシステム103に記憶されるデータを指し、ここで、「オブジェクト」の形態であるデータは、ファイル名及び位置ではなく、その内容及び他の属性に基づいてフラットアドレス空間上で記憶される。
【0067】
受信されたクエリにおけるそのような緊急性のレベルは、要求されたオブジェクトをストレージシステム103から読み取るために非リレーショナルデータベースシステム102によって発行される要求の緊急性に反映される。
【0068】
本明細書において使用される「マルチレベル緊急性のタイプ」は、ストレージシステム103から要求されたオブジェクトを読み取るために非リレーショナルデータベースシステム102によって発行される要求(例えば、読み取り要求)の緊急性のレベルの1つを指す。例えば、一実施形態において、非リレーショナルデータベースシステム102によって発行される要求(例えば、読み取り要求)の緊急性のレベルは、緊急、クリティカル、及びスーパークリティカルを含み、ここで、クリティカル区分は、緊急区分に割り当てられた要求より処理されることが重要である要求に割り当てられ、ここで、スーパークリティカル区分は、クリティカル区分に割り当てられた要求より処理されることが重要である要求に割り当てられる。一実施形態において、マルチレベル緊急性のそのようなタイプは、取り出されることが要求されるオブジェクトのオブジェクトカテゴリ、オブジェクトを取り出すことを要求するアプリケーションのタイプなど、(ストレージシステム103からオブジェクトを取り出すことを要求する)クエリに関する緊急性情報を取得することに基づいて決定される。
【0069】
一実施形態において、優先度識別モジュール303は、非リレーショナルデータベースシステム102によって受信されるクエリに関する緊急性情報を取得する。一実施形態において、そのような緊急性情報は、取り出されるよう要求されたオブジェクトのオブジェクトカテゴリを含む。例えば、一実施形態において、優先度識別モジュール303は、クエリを分析して、データのタイプ(例えば、メタデータ、教師データ、分析データ、視覚データ、テキストデータ、数値データなど)など、取り出されるオブジェクトのタイプを決定し得る。例えば、一実施形態において、クエリは、要求されているオブジェクト(データ)のタイプを説明するメタデータを含み得る。そのような説明は次に、オブジェクトのタイプ、及び、それらの関連付けられたオブジェクトカテゴリのリストを記憶するデータ構造(例えばテーブル)から「オブジェクトカテゴリ」を識別するために使用される。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ、ディスクユニット)に記憶される。一実施形態において、優先度識別モジュール303が、自然言語処理を利用して、データ構造におけるオブジェクトの一致するタイプを識別して、その関連付けられたオブジェクトカテゴリを確定(locate)する。
【0070】
オブジェクトカテゴリを識別すると、一実施形態において、優先度識別モジュール303は、オブジェクトカテゴリ(例えば、メタデータ)及びそれらの関連付けられたマルチレベル緊急性(例えば、スーパークリティカル)のリストを記憶するデータ構造(例えば、テーブル)におけるオブジェクトカテゴリの識別に基づいて、非リレーショナルデータベースシステム102によって発行される要求(オブジェクトを取り出すための要求)におけるマルチレベル緊急性のタイプを識別する。例えば、そのようなデータ構造におけるオブジェクトカテゴリを識別すると、非リレーショナルデータベースシステム102によって発行される要求における関連付けられたマルチレベル緊急性が次に取得され得る。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ、ディスクユニット)に記憶される。一実施形態において、優先度識別モジュール303は、自然言語処理を利用して、データ構造における一致するオブジェクトカテゴリを識別して、非リレーショナルデータベースシステム102によって発行される要求におけるその関連付けられたマルチレベル緊急性を確定する。
【0071】
一実施形態において、優先度識別モジュール303は、クエリを発行するAIアプリケーション101のタイプの識別に基づいて、非リレーショナルデータベースシステム102によって発行される要求(オブジェクトを取り出す要求)におけるマルチレベル緊急性のタイプを識別する。例えば、AIアプリケーション101は、電子商取引、ナビゲーション、ロボット、ヒューマンリソース、ヘルスケア、農業、ゲーミング、自動車、ソーシャルメディア、マーケティングなど、様々な態様におけるAIのアプリケーションを伴い得る。一実施形態において、AIアプリケーションのタイプ(例えば、ゲーミング)がその識別子(例えば、名称)から決定される。一実施形態において、AIアプリケーション101のタイプは、AIアプリケーション101のタイプ(例えば、ゲーミング)及びそれらの関連付けられたマルチレベル緊急性(例えば、クリティカル)のリストを記憶するデータ構造(例えば、テーブル)を使用して、非リレーショナルデータベースシステム102によって発行される要求(オブジェクトを取り出す要求)におけるマルチレベル緊急性のタイプを識別するために使用される。例えば、そのようなデータ構造におけるAIアプリケーション101のタイプを識別すると、非リレーショナルデータベースシステム102によって発行される要求における関連付けられたマルチレベル緊急性が次に取得され得る。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ、ディスクユニット)に記憶される。一実施形態において、優先度識別モジュール303は、自然言語処理を利用して、データ構造におけるAIアプリケーション101の一致するタイプを識別して、非リレーショナルデータベースシステム102によって発行される要求におけるその関連付けられたマルチレベル緊急性を確定する。
【0072】
非リレーショナルデータベースシステム102は更に、ディスクボリューム105を、そのようなディスクボリューム105に関連付けられた識別子(例えば、ラベル)など、要求されたオブジェクトのレコード(例えば、オブジェクトディクショナリレコード)から識別するように構成されているディスクボリューム識別モジュール304を含む。本明細書において使用される「要求されたオブジェクト」は、AIアプリケーション101によって取り出されることが要求されるオブジェクトを指す。一実施形態において、データ構造(例えば、テーブル)は、ストレージシステム103の特定のディスクボリューム105など、ストレージシステム103内のそのストレージ位置を示すそのようなオブジェクトに関連付けられたレコードを記憶する。そのようなレコードは本明細書において、「オブジェクトディクショナリレコード」と称される。一実施形態において、そのようなデータ構造は、非リレーショナルデータベースシステム102のストレージデバイス(例えばメモリ、ディスクユニット)に記憶される。
【0073】
非リレーショナルデータベースシステム102は更に、要求(例えば、読み取り要求)を非リレーショナルデータベースシステム102からストレージシステム103へ送信するためにパス106(例えば、論理又は物理入力/出力接続)が選択されるときなど、特定の時点においてストレージシステム103のCPUコア202のCPUコア速度を識別するように構成されているコア速度識別モジュール305を含む。本明細書において使用される「CPUコア速度」は、CPUコア202のクロック速度(動作速度)を指す。一実施形態において、CPUコア速度は、入力/出力キュー201を初期化する時間にコア速度識別モジュール305によって取得される。CPUコア202のCPUコア速度を測定するためにコア速度識別モジュール305によって利用されるソフトウェアツールの例は、これらに限定されないが、CPUID HWMonitor、SolarWinds(登録商標) Server & Application Monitor、Paessler(登録商標) PRTG Network Monitor、SysGaugeなどを含む。
【0074】
さらに、非リレーショナルデータベースシステム102は、非リレーショナルデータベースシステム102からストレージシステム103へ要求(例えば、読み取り要求)を送信するために使用されるパス106(例えば、論理又は物理入力/出力接続)を選択するように構成されているパス選択ロジック306を含み、ここで、クエリ緊急性は、そのような選択されたパス106に沿ってストレージシステム103へ伝搬される。
【0075】
一実施形態において、パス選択ロジック306は、非リレーショナルデータベースシステム102から(ディスクボリューム識別モジュール304によって識別される)ストレージシステム103の識別済みのディスクボリューム105に延在する論理又は物理接続106を識別するように構成されている。
【0076】
一実施形態において、パス選択ロジック306は、ストレージシステム103の特定のディスクボリューム105に接続される論理及び/又は物理接続106のリストを記憶するデータ構造(例えばテーブル)におけるそのような接続106を識別することに基づいて、非リレーショナルデータベースシステム102から、ストレージシステム103の識別済みのディスクボリューム105に延在する論理及び/又は物理接続106を識別する。一実施形態において、そのようなディスクボリューム105は、識別子(例えばラベル)によって識別される。結果として、ディスクボリューム識別モジュール304によって識別されるディスクボリューム105について識別子を取得した後、パス選択ロジック306は、上で説明されたデータ構造における識別済みのディスクボリューム105の確定に基づいて、そのようなディスクボリューム105に接続される論理及び/又は物理接続106を識別することが可能である。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ、ディスクユニット)に記憶される。一実施形態において、パス選択ロジック306は、自然言語処理を利用して、データ構造における一致するディスクボリューム識別子(例えば、ラベル)を識別して、そのようなディスクボリューム105に接続される論理及び/又は物理接続106を確定する。
【0077】
一実施形態において、パス選択ロジック306は、入力/出力アクセス特性のパターン、CPUコア202のCPUコア速度、及び、オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、パス106(ストレージシステム103の識別済みのディスクボリューム105に接続されているものと識別される論理及び/又は物理接続の1つ)を選択するように構成されている。上で説明されたように、入力/出力アクセス特性のパターンは機械学習エンジン302によって生成される。さらに、上で説明されたように、CPUコア202についてのCPUコア速度は、コア速度識別モジュール305によって決定される。追加的に、上で説明されたように、オブジェクトの取り出しについての緊急性の決定されたレベルは、優先度識別モジュール303によって決定される。そのような情報に基づいて、パス選択ロジック306は、オブジェクトの取り出しについての緊急性のレベルの要件を満たす適切な入力/出力アクセス特性を伴って、非リレーショナルデータベースシステム102から識別済みのディスクボリューム105へのパス106を選択する。
【0078】
一実施形態において、データ構造(例えばテーブル)は、入力/出力レイテンシの範囲、帯域幅、応答時間、パケットドロップの数、輻輳の存在など、選択された入力/出力接続106によって保持される必要がある入力/出力アクセス特性の必要なパターンに対する緊急性のレベル(マルチレベル緊急性のタイプ)のマッピングを記憶する。例えば、「クリティカル」タイプの緊急性については、(値の観点における)入力/出力アクセス特性の以下のパターンが、そのような緊急性のレベルにマッピングされる:0.2~1.5ミリ秒(許容可能な入力/出力レイテンシの範囲);15~20KHz(許容可能な帯域幅の範囲);5~10ミリ秒(許容可能な応答時間の範囲);1(1時間の期間にわたる許容可能なパケットドロップの数)及び0(輻輳が存在しない)。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ、ディスクユニット)に記憶される。
【0079】
さらに、一実施形態において、データ構造(例えばテーブル)が、CPUコア202についてのCPUコア速度の範囲に対する緊急性のレベル(マルチレベル緊急性のタイプ)のマッピングを記憶する。例えば、「クリティカル」タイプの緊急性については、CPUコア202についてのCPUコア速度の範囲は、3.5GHz~4.0GHzである。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ、ディスクユニット)に記憶される。
【0080】
優先度識別モジュール303によって決定されるオブジェクトの取り出しについての緊急性のレベル(マルチレベル緊急性のタイプ)に基づいて、パス選択ロジック306は、入力/出力アクセス特性のパターンを識別し、さらに、上で説明されたデータ構造におけるそのような緊急性のレベルと一致するCPUコア202についてのCPUコア速度の範囲を識別する。
【0081】
その後、パス選択ロジック306は、上で説明されたデータ構造から取得される入力/出力アクセス特性と一致する又は最も近く一致する(機械学習エンジン302から取得される)入力/出力アクセス特性を伴う、識別済みのディスクボリューム105に接続されている識別済みの論理及び/又は物理接続からパス106(例えば論理又は物理接続)を識別し、ここで、そのような識別済みのパスは、上で説明されたデータ構造から取得されるCPUコア速度の範囲を満たすコア速度(コア速度識別モジュール305から取得されるコア速度)を伴うCPUコア202にタグ設定される。例えば、パス106B(識別済みのディスクボリューム105に接続されている識別済みの論理及び/又は物理接続からのパスの1つ)は、上で説明されたデータ構造から取得された、緊急性の指定されたレベル(例えば、クリティカル)についての入力/出力アクセス要件を満たす(機械学習エンジン302から取得される)入力/出力アクセス特性のパターンを示し得る。さらに、そのようなパス(パス106B)は、上で説明されたデータ構造から取得された、緊急性の指定されたレベル(例えば、クリティカル)についてのCPUコア速度の必要とされる範囲を満たす(コア速度識別モジュール305から取得される)コア速度を伴うCPUコア202(例えばCPUコア202B)にタグ設定され得る。結果として、そのような例において、パス106Bは、非リレーショナルデータベースシステム102からストレージシステム103へ要求(例えば、読み取り要求)を送信するために使用されるようにパス選択ロジック306によって選択され、ここで、クエリの緊急性は、そのような選択されたパス106に沿ってストレージシステム103に伝搬される。
【0082】
一実施形態において、緊急性の指定されたレベル(例えば、クリティカル)についての入力/出力アクセス要件を満たすパス106が識別されないシナリオにおいて、パス選択ロジック306は、緊急性の指定されたレベルについての入力/出力アクセス要件を最も近く満たし、緊急性の指定されたレベル(例えば、クリティカル)についてのCPUコア速度の必要とされる範囲を満たす又は最も近く満たすCPUコア202にタグ設定されるパスを選択する。
【0083】
これら及び他の機能の更なる説明が、非リレーショナルデータベースに対するクエリを管理するための方法の論述に関連して下で提供される。
【0084】
非リレーショナルデータベースに対するクエリを管理するための方法の論述の前に、非リレーショナルデータベースシステム102(
図1)のハードウェア構成の説明が、
図4に関連して下で提供される。
【0085】
ここで
図4を参照すると、
図4は、本開示を実施するためのハードウェア環境を表す非リレーショナルデータベース102(
図1)のハードウェア構成の本開示の実施形態を示す。
【0086】
非リレーショナルデータベースシステム102は、システムバス402によって様々な他のコンポーネントに接続されているプロセッサ401を有する。オペレーティングシステム403が、プロセッサ401上で実行され、
図4の様々なコンポーネントの制御を提供し、それらの機能を協働させる。本開示の原理によるアプリケーション404は、オペレーティングシステム403とともに実行され、オペレーティングシステム403に対する呼び出しを提供し、ここで、呼び出しは、アプリケーション404によって実行されることになる様々な機能又はサービスを実装する。アプリケーション404は、例えば、モニタエンジン301(
図3)、機械学習エンジン302(
図3)、優先度識別モジュール303(
図3)、ディスクボリューム識別モジュール304(
図3)、コア速度識別モジュール305(
図3)、及びパス選択ロジック306(
図3)を含み得る。さらに、アプリケーション404は例えば、
図5~6に関連して下で更に説明される非リレーショナルデータベースシステムに対するクエリを管理するためのプログラムを含み得る。
【0087】
再び
図4を参照すると、リードオンリメモリ(ROM)405がシステムバス402に接続され、非リレーショナルデータベースシステム102の特定の基本機能を制御する基本入力/出力システム(BIOS)を含む。ランダムアクセスメモリ(「RAM」)406及びディスクアダプタ407も、システムバス402に接続されている。オペレーティングシステム403及びアプリケーション404を含むソフトウェアコンポーネントは、実行のために非リレーショナルデータベースシステム102のメインメモリであり得るRAM406にロードされ得ることに留意されたい。ディスクアダプタ407は、ディスクユニット408、例えば、ディスクドライブと通信するインテグレーテッドドライブエレクトロニクス(「IDE」)アダプタであってよい。
図5~6に関連して下で更に説明されるような、非リレーショナルデータベースシステムに対するクエリを管理するためのプログラムは、ディスクユニット408又はアプリケーション404に存在し得ることに留意されたい。
【0088】
非リレーショナルデータベースシステム102は更に、バス402に接続されている通信アダプタ409を含み得る。通信アダプタ409は、ストレージシステム103(
図1)などの他のデバイスと通信するために、外部ネットワーク(例えばハイブリッドクラウド環境104)とバス402を相互接続する。
【0089】
一実施形態において、非リレーショナルデータベースシステム102のアプリケーション404は、モニタエンジン301、機械学習エンジン302、優先度識別モジュール303、ディスクボリューム識別モジュール304、コア速度識別モジュール305及びパス選択ロジック306のソフトウェアコンポーネントを含む。一実施形態において、そのようなコンポーネントは、ハードウェアにおいて実装されてよく、その場合、そのようなハードウェアコンポーネントは、バス402に接続されることになる。そのようなコンポーネントによって実行される上述された機能は、包括的なコンピュータ機能ではない。結果として、非リレーショナルデータベースシステム102は、特定の非汎用コンピュータ機能を実装する結果である特定の機械である。
【0090】
一実施形態において、クエリを管理するための機能を含む、非リレーショナルデータベースシステム102のそのようなソフトウェアコンポーネント(例えば、モニタエンジン301、機械学習エンジン302、優先度識別モジュール303、ディスクボリューム識別モジュール304、コア速度識別モジュール305及びパス選択ロジック306)の機能が、特定用途向け集積回路において具現化され得る。
【0091】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法及び/又はコンピュータプログラム製品であり得る。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためにコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数又は複数)を含んでよい。
【0092】
コンピュータ可読記憶媒体は、命令実行デバイスにより用いられる命令を保持及び記憶できる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述したものの任意の好適な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非包括的なリストには、以下、すなわちポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカード又は命令が記録されている溝内の隆起構造などの機械的にエンコーディングされたデバイス、及び上述したものの任意の好適な組み合わせが含まれる。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0093】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへ、又は、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージデバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0094】
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データであり得、又は、Smalltalk(登録商標)又はC++などのようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語を含む1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に且つリモートコンピュータ上で部分的に、又は、リモートコンピュータ又はサーバ上で全体的に実行し得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、又はこの接続は、(例えば、インターネットサービスプロバイダを用いるインターネットを通じて)外部コンピュータに対して行われ得る。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズし得る。
【0095】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図にあるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0096】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、又は他のプログラマブルデータ処理装置に提供され、マシンを生成してよく、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1又は複数のブロックで指定された機能/動作を実装するための手段を作成する。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図の1又は複数のブロックにおいて指定される機能/動作の態様を実装する命令を含む製品を有するように、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスが特定の様式で機能するように指示し得るコンピュータ可読記憶媒体に記憶され得る。
【0097】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置又は他のデバイスにロードして、一連の動作段階をコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成してよく、それにより、コンピュータ、他のプログラマブル装置又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の1又は複数のブロックにおいて指定される機能/動作を実装する。
【0098】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能及び動作を示している。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1又は複数の実行可能命令を備える命令のモジュール、セグメント、又は部分を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてよく、同時に、実質的に同時に、部分的に又は全体的に時間が重複する方式で実行されてよく、又は、ブロックは、場合によっては、関与する機能に応じて逆の順序で実行されてよい。ブロック図及び/又はフローチャート図における各ブロック、及びブロック図及び/又はフローチャート図におけるブロックの組み合わせが、指定された機能又は動作を実行する、又は特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する、特殊目的ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0099】
上に記載されたように、NVMe(登録商標)(不揮発性メモリエクスプレス)などの伝送プロトコルが、NoSQLデータベースなどの非リレーショナルデータベースに接続されているストレージシステムにおける不揮発性記憶媒体などの不揮発性記憶媒体にアクセスするために利用され得る。そのような技術を使用する結果、多くの入力/出力接続が単一の物理接続を通じて生成され得、入力/出力接続を並列化する利益を獲得する。結果として、NoSQLディスクボリュームは、複数のパス(「マルチパス」)を有し得、各パスは、ストレージシステムにおける非類似CPUコアにタグ設定された1又は複数の入力/出力キューを有する。そのようなシナリオにおいて、特定のパス上で要求されるときに入力/出力性能に影響を及ぼし得るCPUコア間のクロック速度差があり得る。
残念ながら、NVMeベースの規格はマルチパスポリシーを有しない。結果として、NoSQLデータベースは、同一のディスクボリュームについて生成された複数の入力/出力接続についての情報を取得できない。さらに、AIアプリケーションなどのアプリケーションが、オブジェクト(例えば、JSONオブジェクト)をストレージシステムから緊急に取り出すことを望む(即時の取り出しを必要とする)クエリを発行する場合、NoSQLデータベース及びストレージシステムの間の動作の違いに起因して、これらの入力/出力接続の1つなどを介して、そのようなクエリ緊急性(例えば、取り出し緊急性)をストレージシステムへ伝搬するための手段は現在無い。したがって、NoSQLデータベースが、多接続入力/出力伝送プロトコル(例えば、NVMe)において生成される複数の入力/出力接続を利用する、及び、これらの入力/出力接続の1つを介するなどしてクエリ緊急性をストレージシステムに伝搬するための手段は現在無い。
【0100】
図5及び6に関連して下で説明されるように、本開示の実施形態は、非リレーショナルデータベース(例えば、NoSQLデータベース)が、多接続入力/出力伝送プロトコル(例えば、NVMe)において生成される複数の入力/出力接続を利用するための手段を提供し、ここで、クエリ緊急性は、これらの入力/出力接続の1つに沿ってストレージシステムに伝搬される。
図5は、非リレーショナルデータベースシステム及びそのストレージシステムの間の各パスを通じた入力/出力アクセス特性のパターンを構築するための方法のフローチャートである。
図6は、ストレージシステムへの複数の入力/出力接続を利用することによって、非リレーショナルデータベースシステムに対するクエリを管理するための方法のフローチャートであり、ここで、クエリ緊急性は、これらの入力/出力接続の1つに沿ってストレージシステムに伝搬される。
【0101】
上に記載されたように、
図5は、本開示の実施形態による、非リレーショナルデータベースシステム102(
図1及び2)及びそのストレージシステム103(
図1及び2)の間の各パスを通じた入力/出力アクセス特性のパターンを構築するための方法500のフローチャートである。
【0102】
ここで
図1~4と併せて
図5を参照すると、動作501において、非リレーショナルデータベースシステム102のモニタエンジン301は、ハイブリッドクラウド環境104を介して非リレーショナルデータベースシステム102からストレージシステム103の仮想ディスク105に延在する利用可能なパス106の各々から入力/出力統計を収集し、それぞれのパス106の入力/出力ワークロード及びレイテンシを評価する。
【0103】
上で説明されたように、本明細書において使用される「入力/出力ワークロード」は、特定の時間長にわたって入力/出力接続106によって収集される入力の量、及び、入力/出力接続106によって生成される出力の量を指す。本明細書において使用される「レイテンシ」は時間遅延を指す。入力/出力統計は、これらに限定されないが、入力/出力レイテンシ、帯域幅、応答時間、パケットドロップ、輻輳などを含む。
【0104】
一実施形態において、モニタエンジン301は、読み取り及び書き込み要求の数などの入力/出力接続106上の入力/出力アクセスパターンを識別することによって入力/出力ワークロードを評価する。入力/出力接続106上の入力/出力アクセスパターンを識別することによって入力/出力ワークロードを評価するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、Iometer、Condusiv(登録商標) I/O Assessment Toolなどを含む。
【0105】
一実施形態において、モニタエンジン301は、要求が1つのポイントから別のポイントへ移動すること、及び、応答が送信元(例えば、非リレーショナルデータベースシステム102)へ再び送信されることに要する時間を測定することによって、入力/出力接続106の入力/出力レイテンシを評価する。そのような測定は、「ラウンドトリップ時間」と称される。別の実施形態において、モニタエンジン301は、要求がポイントを出た時点からその目的地に到達するまでに要する時間を記録する。そのような測定は、「最初のバイトまでの時間」と称される。そのような実施形態において、データ収集ソフトウェアは、目的地ポイント(例えば、ストレージシステム103)にインストールされる。
【0106】
入力/出力レイテンシなどの入力/出力統計を、非リレーショナルデータベースシステム102及びストレージシステム103の間のパス106の各々から収集して、それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標)Network Performance Monitor、SolarWinds(登録商標) NetFlow Traffic Analyzer、Angry IP Scanner、SolarWinds(登録商標) Engineer's Toolset(登録商標)、Paessler(登録商標) PRTG Network Monitor、NetScanTools(登録商標)、Amazon(登録商標) CloudWatch(登録商標)などを含む。
【0107】
一実施形態において、モニタエンジン301は、入力/出力接続106の帯域幅(所与のパスにわたるデータ転送の最大レート)を測定する。
【0108】
入力/出力接続106の帯域幅を測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) Network Performance Monitor、SolarWinds(登録商標) NetFlow Traffic Analyzer、Paessler(登録商標) PRTG Network Monitor、N-able(登録商標) Remote Monitoring & Managementなどを含む。
【0109】
一実施形態において、モニタエンジン301は、入力/出力接続106の応答時間を測定する。本明細書において使用される「応答時間」は、入力/出力動作を完了するのに要する時間長を指す。入力/出力接続106の応答時間を測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) Engineer's Toolset(登録商標)、Amazon(登録商標) CloudWatch(登録商標)、Dynatrace(登録商標)、ManageEngine(登録商標) Applications Managerなどを含む。
【0110】
一実施形態において、モニタエンジン301は、入力/出力接続106にわたるパケットドロップを測定する。本明細書において使用される「パケットドロップ」は、遅延又は誤って配置されたパケットを指す。入力/出力接続106にわたるパケットドロップを測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) Network Quality Manager、SolarWinds(登録商標) Network Performance Monitor、Paessler(登録商標) PRTG Network Monitor、Packet Loss Test(登録商標)などを含む。
【0111】
一実施形態において、モニタエンジン301は入力/出力接続106の輻輳を測定する。本明細書において使用される「輻輳」は、接続が処理できるより多くのデータを搬送しているときに発生するサービス品質の低減を指す。入力/出力接続106にわたる輻輳を測定するためにモニタエンジン301によって利用されるソフトウェアツールの例は、これらに限定されないが、SolarWinds(登録商標) NetFlow Traffic Analyzer、Wireshark(登録商標)、Cacti(登録商標)、LogicMonitor(登録商標)、Datadog(登録商標)、Dynatrace(登録商標)などを含む。
【0112】
動作502において、非リレーショナルデータベースシステム102の機械学習エンジン302は、収集された入力/出力統計を使用して、各パス106についての入力/出力アクセス特性のパターンを構築する。
【0113】
上で説明されたように、本明細書において使用される、パス106を通じて入力/出力アクセス特性の「パターン」は、パス106によってサービングされている入力/出力ワークロード、特定の時刻などに基づく、典型的にはパス106によって示される入力/出力アクセス統計を指す。そのようなパターンは、モニタエンジン301から収集される(それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するために使用される)入力/出力統計に基づき、これは、処理されている入力/出力ワークロードなどに基づくなどしてパス106の入力/出力アクセス特性を予測するように数学モデルを訓練するために「訓練データ」として使用される。一実施形態において、入力/出力特性のそのようなパターンは、入力/出力アクセス特性の異なるフィールドに対応する値に対応する。例えば、0.3ミリ秒、15KHz、5ミリ秒、1及び0のパターンにおいて、0.3ミリ秒は入力/出力レイテンシに対応し、15KHzは帯域幅に対応し、5ミリ秒は応答時間に対応し、1は1時間に期間にわたるパケットドロップ数に対応し、0は輻輳が存在しないことに対応する。
【0114】
一実施形態において、機械学習エンジン302は、機械学習アルゴリズム(例えば、教師あり学習)を使用して、モニタエンジン301から収集された(それぞれのパス106の入力/出力ワークロード及びレイテンシを評価するために使用される)入力/出力統計から成るサンプルデータに基づいて数学モデルを構築する。そのようなデータセットは本明細書において、「訓練データ」と称され、これは、タスクを実行するよう明示的にプログラムされることなくパス106の入力/出力アクセス特性の予測又は決定を行うために機械学習アルゴリズムによって使用される。一実施形態において、訓練データは、処理される入力/出力ワークロード、時刻、処理されるクエリのタイプなどに基づく入力/出力統計から成る。アルゴリズムは、各パス106にわたる入力/出力アクセス特性について、訓練データに対して反復的に予測を行う。そのような教師あり学習アルゴリズムの例は、最近傍法、単純ベイズ、決定木、線形回帰、サポートベクタマシン、及びニューラルネットワークを含む。
【0115】
一実施形態において、数学モデル(機械学習モデル)は、各パス106を通じた入力/出力アクセス特性を予測するよう訓練された区分モデルに対応する。
【0116】
各パス106についての入力/出力アクセス特性のパターンの決定に基づいて、非リレーショナルデータベースシステム102は、要求(例えば、読み取り要求)をストレージシステム103へ送信するための適切なパス106(入力/出力接続)を選択し、ここで、クエリの緊急性(クエリ緊急性)は、
図6に関連して下で説明される選択されたパス106(入力/出力接続)に沿ってストレージシステム103に伝搬される。
【0117】
図6は、本開示の実施形態による、ストレージシステム103(
図1及び2)への複数の入力/出力接続106(
図1及び2)を利用することによって非リレーショナルデータベースシステム102(
図1及び2)に対するクエリを管理するための方法600のフローチャートであり、ここで、クエリ緊急性は、これらの入力/出力接続106の1つに沿ってストレージシステム103へ伝搬される。
【0118】
図1~5と併せて
図6を参照すると、動作601において、非リレーショナルデータベースシステム102は、オブジェクトをストレージシステム103から取り出すためのクエリをAIアプリケーション101から受信する。
【0119】
上で説明されたように、一実施形態において、ストレージシステム103は、オブジェクトベースストレージシステムであり、ここで、データは、ファイル名及び位置ではなく、その内容及び他の属性に基づいて、フラットアドレス空間上でストレージシステム103内において「オブジェクト」の形態で記憶される。一実施形態において、ストレージシステム103に記憶された各オブジェクトは、「オブジェクトID」と呼ばれる固有識別子によって識別される。オブジェクトIDは、ストレージ位置を指定する必要無しでオブジェクトへの容易なアクセスを可能にする。
【0120】
動作602において、非リレーショナルデータベースシステム102の優先度識別モジュール303は、クエリに関する緊急性情報を取得する。一実施形態において、そのような緊急性情報は、取り出されるように要求されるオブジェクトのオブジェクトカテゴリ、及び、オブジェクトを取り出すように要求するアプリケーション101のタイプを含む。
【0121】
動作603において、非リレーショナルデータベースシステム102の優先度識別モジュール303は、取得された緊急性情報に基づいて、オブジェクトの取り出しについての緊急性のレベルを決定する。そのような「緊急性のレベル」は、オブジェクトをストレージシステム103から取り出すための、AIアプリケーション101から非リレーショナルデータベースシステム102によって受信されるクエリによって示されるマルチレベル緊急性のタイプ(入力/出力レベル優先度のタイプ)を指す。
【0122】
上に記載されたように、受信されたクエリにおけるそのような緊急性のレベルは、要求されたオブジェクトをストレージシステム103から読み取るために非リレーショナルデータベースシステム102によって発行される要求の緊急性に反映される。
【0123】
本明細書において使用される「マルチレベル緊急性のタイプ」は、ストレージシステム103から要求されたオブジェクトを読み取るために非リレーショナルデータベースシステム102によって発行される要求(例えば、読み取り要求)の緊急性のレベルの1つを指す。例えば、一実施形態において、非リレーショナルデータベースシステム102によって発行される要求(例えば、読み取り要求)の緊急性のレベルは、緊急、クリティカル、及びスーパークリティカルを含み、ここで、クリティカル区分は、緊急区分に割り当てられた要求より処理されることが重要である要求に割り当てられ、ここで、スーパークリティカル区分は、クリティカル区分に割り当てられた要求より処理されることが重要である要求に割り当てられる。一実施形態において、マルチレベル緊急性のそのようなタイプは、取り出されることが要求されるオブジェクトのオブジェクトカテゴリ、オブジェクトを取り出すことを要求するアプリケーションのタイプなど、(ストレージシステム103からオブジェクトを取り出すことを要求する)クエリに関する緊急性情報を取得することに基づいて決定される。
【0124】
一実施形態において、優先度識別モジュール303は、非リレーショナルデータベースシステム102によって受信されるクエリに関する緊急性情報を取得する。一実施形態において、そのような緊急性情報は、取り出されるよう要求されたオブジェクトのオブジェクトカテゴリを含む。例えば、一実施形態において、優先度識別モジュール303は、クエリを分析して、データのタイプ(例えば、メタデータ、教師データ、分析データ、視覚データ、テキストデータ、数値データなど)など、取り出されるオブジェクトのタイプを決定し得る。例えば、一実施形態において、クエリは、要求されているオブジェクト(データ)のタイプを説明するメタデータを含み得る。そのような説明は次に、オブジェクトのタイプ、及び、それらの関連付けられたオブジェクトカテゴリのリストを記憶するデータ構造(例えばテーブル)から「オブジェクトカテゴリ」を識別するために使用される。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ405、ディスクユニット408)に記憶される。一実施形態において、優先度識別モジュール303が、自然言語処理を利用して、データ構造におけるオブジェクトの一致するタイプを識別して、その関連付けられたオブジェクトカテゴリを確定(locate)する。
【0125】
オブジェクトカテゴリを識別すると、一実施形態において、優先度識別モジュール303は、オブジェクトカテゴリ(例えば、メタデータ)及びそれらの関連付けられたマルチレベル緊急性(例えば、スーパークリティカル)のリストを記憶するデータ構造(例えば、テーブル)におけるオブジェクトカテゴリの識別に基づいて、非リレーショナルデータベースシステム102によって発行される要求(オブジェクトを取り出すための要求)におけるマルチレベル緊急性のタイプを識別する。例えば、そのようなデータ構造におけるオブジェクトカテゴリを識別すると、非リレーショナルデータベースシステム102によって発行される要求における関連付けられたマルチレベル緊急性が次に取得され得る。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ405、ディスクユニット408)に記憶される。一実施形態において、優先度識別モジュール303は、自然言語処理を利用して、データ構造における一致するオブジェクトカテゴリを識別して、非リレーショナルデータベースシステム102によって発行される要求におけるその関連付けられたマルチレベル緊急性を確定する。
【0126】
一実施形態において、優先度識別モジュール303は、クエリを発行するAIアプリケーション101のタイプの識別に基づいて、非リレーショナルデータベースシステム102によって発行される要求(オブジェクトを取り出す要求)におけるマルチレベル緊急性のタイプを識別する。例えば、AIアプリケーション101は、電子商取引、ナビゲーション、ロボット、ヒューマンリソース、ヘルスケア、農業、ゲーミング、自動車、ソーシャルメディア、マーケティングなど、様々な態様におけるAIのアプリケーションを伴い得る。一実施形態において、AIアプリケーションのタイプ(例えば、ゲーミング)がその識別子(例えば、名称)から決定される。一実施形態において、AIアプリケーション101のタイプは、AIアプリケーション101のタイプ(例えば、ゲーミング)及びそれらの関連付けられたマルチレベル緊急性(例えば、クリティカル)のリストを記憶するデータ構造(例えば、テーブル)を使用して、非リレーショナルデータベースシステム102によって発行される要求(オブジェクトを取り出す要求)におけるマルチレベル緊急性のタイプを識別するために使用される。例えば、そのようなデータ構造におけるAIアプリケーション101のタイプを識別すると、非リレーショナルデータベースシステム102によって発行される要求における関連付けられたマルチレベル緊急性が次に取得され得る。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ405、ディスクユニット408)に記憶される。一実施形態において、優先度識別モジュール303は、自然言語処理を利用して、データ構造におけるAIアプリケーション101の一致するタイプを識別して、非リレーショナルデータベースシステム102によって発行される要求におけるその関連付けられたマルチレベル緊急性を確定する。
【0127】
動作604において、非リレーショナルデータベースシステム102のディスクボリューム識別モジュール304は、そのようなディスクボリュームに関連付けられた識別子(例えば、ラベル)などの要求されたオブジェクトのレコードからディスクボリュームを識別する。
【0128】
上に記載されたように、ディスクボリューム識別モジュール304は、そのようなディスクボリューム105に関連付けられた識別子(例えば、ラベル)などの要求されたオブジェクトのレコード(例えば、オブジェクトディクショナリレコード)からディスクボリューム105を識別する。本明細書において使用される「要求されたオブジェクト」は、AIアプリケーション101によって取り出されることが要求されるオブジェクトを指す。一実施形態において、データ構造(例えば、テーブル)は、ストレージシステム103の特定のディスクボリューム105など、ストレージシステム103内のそのストレージ位置を示すそのようなオブジェクトに関連付けられたレコードを記憶する。そのようなレコードは本明細書において、「オブジェクトディクショナリレコード」と称される。一実施形態において、そのようなデータ構造は、非リレーショナルデータベースシステム102のストレージデバイス(例えばメモリ405、ディスクユニット408)に記憶される。
【0129】
動作605において、非リレーショナルデータベースシステム102のパス選択ロジック306は、非リレーショナルデータベースシステム102からストレージシステム103の識別済みのディスクボリューム105に延在する論理及び/又は物理接続105を識別する。
【0130】
上に記載されたように、一実施形態において、パス選択ロジック306は、ストレージシステム103の特定のディスクボリューム105に接続される論理及び/又は物理接続106のリストを記憶するデータ構造(例えばテーブル)におけるそのような接続106を識別することに基づいて、非リレーショナルデータベースシステム102から、(動作604において識別される)ストレージシステム103の識別済みのディスクボリューム105に延在する論理及び/又は物理接続106を識別する。一実施形態において、そのようなディスクボリューム105は、識別子(例えばラベル)によって識別される。結果として、動作604においてディスクボリューム識別モジュール304によって識別されるディスクボリューム105について識別子を取得した後、パス選択ロジック306は、上で説明されたデータ構造における識別済みのディスクボリューム105の確定に基づいて、そのようなディスクボリューム105に接続される論理及び/又は物理接続106を識別することが可能である。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ405、ディスクユニット408)に記憶される。一実施形態において、パス選択ロジック306は、自然言語処理を利用して、データ構造における一致するディスクボリューム識別子(例えば、ラベル)を識別して、そのようなディスクボリューム105に接続される論理及び/又は物理接続106を確定する。
【0131】
動作606において、非リレーショナルデータベースシステム102のコア速度識別モジュール305は、要求(例えば、読み取り要求)を非リレーショナルデータベースシステム102からストレージシステム103へ送信するためにパス106(例えば、論理又は物理入力/出力接続)が選択されるときなど、特定の時点におけるストレージシステム103のCPUコア202のCPUコア速度を識別する。
【0132】
上に記載されたように、本明細書において使用される「CPUコア速度」は、CPUコア202のクロック速度(動作速度)を指す。一実施形態において、CPUコア速度は、入力/出力キュー201を初期化する時間にコア速度識別モジュール305によって取得される。CPUコア202のCPUコア速度を測定するためにコア速度識別モジュール305によって利用されるソフトウェアツールの例は、これらに限定されないが、CPUID HWMonitor、SolarWinds(登録商標) Server & Application Monitor、Paessler(登録商標) PRTG Network Monitor、SysGaugeなどを含む。
【0133】
動作607において、非リレーショナルデータベースシステム102のパス選択ロジック306は、(動作502において取得される)識別済みの論理及び/又は物理入力/出力接続106の入力/出力アクセス特性のパターン、(動作606において取得される)CPUコア202についてのCPUコア速度、及び、(動作603において取得される)マルチレベル緊急性の決定されたタイプに基づいて、ハイブリッドクラウド環境104を越えて非リレーショナルデータベースシステム102からストレージシステム103へ要求(例えば、読み取り要求)を送信するために使用される、(動作605において識別された)識別済みの論理及び/又は物理入力/出力接続106の1つを選択する。
【0134】
上で説明されたように、入力/出力アクセス特性のパターンは機械学習エンジン302によって生成される。さらに、上で説明されたように、CPUコア202についてのCPUコア速度は、コア速度識別モジュール305によって決定される。追加的に、上で説明されたように、オブジェクトの取り出しについての緊急性の決定されたレベルは、優先度識別モジュール303によって決定される。そのような情報に基づいて、パス選択ロジック306は、オブジェクトの取り出しについての緊急性のレベルの要件を満たす適切な入力/出力アクセス特性を伴って、非リレーショナルデータベースシステム102から識別済みのディスクボリューム105へのパス106を選択する。
【0135】
一実施形態において、データ構造(例えばテーブル)は、入力/出力レイテンシの範囲、帯域幅、応答時間、パケットドロップの数、輻輳の存在など、選択された入力/出力接続106によって保持される必要がある入力/出力アクセス特性の必要なパターンに対する緊急性のレベル(マルチレベル緊急性のタイプ)のマッピングを記憶する。例えば、「クリティカル」タイプの緊急性については、(値の観点における)入力/出力アクセス特性の以下のパターンが、そのような緊急性のレベルにマッピングされる:0.2~1.5ミリ秒(許容可能な入力/出力レイテンシの範囲);15~20KHz(許容可能な帯域幅の範囲);5~10ミリ秒(許容可能な応答時間の範囲);1(1時間の期間にわたる許容可能なパケットドロップの数)及び0(輻輳が存在しない)。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ405、ディスクユニット408)に記憶される。
【0136】
さらに、一実施形態において、データ構造(例えばテーブル)が、CPUコア202についてのCPUコア速度の範囲に対する緊急性のレベル(マルチレベル緊急性のタイプ)のマッピングを記憶する。例えば、「クリティカル」タイプの緊急性については、CPUコア202についてのCPUコア速度の範囲は、3.5GHz~4.0GHzである。一実施形態において、そのようなデータ構造は専門家によって事前設定される。一実施形態において、そのようなデータ構造が、非リレーショナルデータベースシステム102のストレージデバイス(例えば、メモリ405、ディスクユニット408)に記憶される。
【0137】
優先度識別モジュール303によって決定されるオブジェクトの取り出しについての緊急性のレベル(マルチレベル緊急性のタイプ)に基づいて、パス選択ロジック306は、入力/出力アクセス特性のパターンを識別し、さらに、上で説明されたデータ構造におけるそのような緊急性のレベルと一致するCPUコア202についてのCPUコア速度の範囲を識別する。
【0138】
その後、パス選択ロジック306は、上で説明されたデータ構造から取得された(機械学習エンジン302から取得された入力/出力アクセス特性と一致する又は最も近く一致する)入力/出力アクセス特性を伴う、(動作605において取得された)識別済みのディスクボリューム105に接続されている識別済みの論理及び/又は物理接続からパス106(例えば、論理又は物理接続)を識別し、ここで、そのような識別済みのパスは、上で説明されたデータ構造から取得されたCPUコア速度の範囲を満たすコア速度(動作606においてコア速度識別モジュール305から取得されるコア速度)を有するCPUコア202にタグ設定される。例えば、パス106B(識別済みのディスクボリューム105に接続されている識別済みの論理及び/又は物理接続からのパスの1つ)は、上で説明されたデータ構造から取得された、緊急性の指定されたレベル(例えば、クリティカル)についての入力/出力アクセス要件を満たす(機械学習エンジン302から取得される)入力/出力アクセス特性のパターンを示し得る。さらに、そのようなパス(パス106B)は、上で説明されたデータ構造から取得された、緊急性の指定されたレベル(例えば、クリティカル)についてのCPUコア速度の必要とされる範囲を満たす(動作606においてコア速度識別モジュール305から取得される)コア速度を伴うCPUコア202(例えばCPUコア202B)にタグ設定され得る。結果として、そのような例において、非リレーショナルデータベースシステム102からストレージシステム103(例えば、ディスクボリューム105A)へ要求(例えば、読み取り要求)を送信するために使用されるパス選択ロジック306によってパス106Bが選択され、ここで、クエリの緊急性は、そのような選択されたパス106に沿ってストレージシステム103へ伝搬される。
【0139】
一実施形態において、緊急性の指定されたレベル(例えば、クリティカル)についての入力/出力アクセス要件を満たすパス106が識別されないシナリオにおいて、パス選択ロジック306は、緊急性の指定されたレベルについての入力/出力アクセス要件を最も近く満たし、緊急性の指定されたレベル(例えば、クリティカル)についてのCPUコア速度の必要とされる範囲を満たす又は最も近く満たすCPUコア202にタグ設定されるパスを選択する。
【0140】
動作608において、非リレーショナルデータベースシステム102は、選択された論理又は物理入力/出力接続106を通じて、要求(例えば、読み取り要求)をストレージシステム103へ送信する。すなわち、非リレーショナルデータベースシステム102は、適切なディスクボリューム105(要求されたオブジェクトのレコードから識別されるディスクボリューム105)に接続される、選択された論理又は物理入力/出力接続106を通じて要求を送信する。
【0141】
この方式において、本開示の実施形態は、非リレーショナルデータベース(例えば、NoSQLデータベース)が、多接続入力/出力伝送プロトコル(例えば、NVMe)において生成される複数の入力/出力接続を利用するための手段を提供し、ここで、クエリ緊急性は、これらの入力/出力接続の1つに沿ってストレージシステムに伝搬される。
【0142】
さらに、本開示の原理は、非リレーショナルデータベースを伴う技術又は技術分野を改善する。上で説明されたように、NVMe(登録商標)(不揮発性メモリエクスプレス)などの伝送プロトコルが、NoSQLデータベースなどの非リレーショナルデータベースに接続されているストレージシステムにおける不揮発性記憶媒体などの不揮発性記憶媒体にアクセスするために利用され得る。そのような技術を使用する結果、多くの入力/出力接続が単一の物理接続を通じて生成され得、入力/出力接続を並列化する利益を獲得する。結果として、NoSQLディスクボリュームは、複数のパス(「マルチパス」)を有し得、各パスは、ストレージシステムにおける非類似CPUコアにタグ設定された1又は複数の入力/出力キューを有し得る。そのようなシナリオにおいて、特定のパス上で要求されるときに入力/出力性能に影響を及ぼし得るCPUコア間のクロック速度差があり得る。残念ながら、NVMeベースの規格はマルチパスポリシーを有しない。結果として、NoSQLデータベースは、同一のディスクボリュームについて生成された複数の入力/出力接続についての情報を取得できない。さらに、AIアプリケーションなどのアプリケーションが、オブジェクト(例えば、JSONオブジェクト)をストレージシステムから緊急に取り出すことを望む(即時の取り出しを必要とする)クエリを発行する場合、NoSQLデータベース及びストレージシステムの間の動作の違いに起因して、これらの入力/出力接続の1つなどを介して、そのようなクエリ緊急性(例えば、取り出し緊急性)をストレージシステムへ伝搬するための手段は現在無い。
したがって、NoSQLデータベースが、多接続入力/出力伝送プロトコル(例えば、NVMe)において生成される複数の入力/出力接続を利用する、及び、これらの入力/出力接続の1つを介するなどしてクエリ緊急性をストレージシステムに伝搬するための手段は現在無い。
【0143】
本開示の実施形態は、非リレーショナルデータベースシステム(例えば、NoSQLデータベースシステム)のストレージシステムからオブジェクトを取り出すためのクエリをAIアプリケーションなどのアプリケーションから受信することによって、そのような技術を改善し、ここで、ストレージシステムは、ハイブリッドクラウド環境を介して非リレーショナルデータベースシステムに接続される。一実施形態において、ストレージシステムは、オブジェクトベースのストレージシステムであり、ここで、データは、その内容及び他の属性に基づいて、フラットアドレス空間上でストレージシステムにおいて「オブジェクト」の形態で記憶される。ストレージシステムのディスクボリュームは次に、そのようなディスクボリュームに関連付けられた識別子(例えば、ラベル)などの要求されたオブジェクトのレコードから識別される。ディスクボリュームを識別すると、非類似CPUコアにタグ設定された識別済みのディスクボリュームへの論理及び/又は物理入力/出力接続が、ストレージシステムの様々なディスクボリュームに接続された論理及び/又は物理入力/出力接続のリストを記憶するデータ構造を介するなどして識別される。一実施形態において、論理及び/又は物理入力/出力接続の各々は、ストレージシステムの中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む。ストレージシステムのCPUコアについてのCPUコア速度(例えば、クロック速度)が取得された後、識別済みのディスクボリュームに接続された識別済みの論理及び/又は物理入力/出力接続の1つが、識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、CPUコアについてのCPUコア速度、及び、オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて選択される。一実施形態において、そのような入力/出力アクセス特性(例えば、入力/出力レイテンシ、帯域幅、応答時間、パケットドロップ、輻輳など)及びCPUコアについてのCPUコア速度は、データ構造(例えばテーブル)から取得される。一実施形態において、オブジェクトの取り出しについての緊急性のレベルが、取り出すように要求されたオブジェクトのオブジェクトカテゴリ、及び/又は、オブジェクトを取り出すことを要求するアプリケーションのタイプに基づいて決定される。オブジェクトの取り出しについての緊急性の決定されたレベル(例えば、クリティカル)に基づいて、入力/出力接続についての必要な入力/出力アクセス特性、及び、オブジェクトを取り出すためにストレージシステムに要求を送信するのに利用される必要なCPUコア速度が、様々なレベルの緊急性に関連付けられたそのような要件を列挙するデータ構造などを介して決定される。そのような要件を両方満たす、又は、最も近く満たすCPUコアにタグ設定された識別済み入力/出力接続から入力/出力接続の1つを識別した後、非リレーショナルデータベースシステムは、ハイブリッドクラウド環境において、選択された入力/出力接続を通じて、要求(例えば読み取り要求)をストレージシステムへ送信する。この方式において、非リレーショナルデータベースシステムは、クエリの緊急性がこれらの入力/出力接続の1つに沿ってストレージシステムに伝搬される多接続入力/出力伝送プロトコル(例えばNVMe)によって確立される複数の入力/出力接続を利用することが可能である。さらに、この方式において、非リレーショナルデータベースを伴う技術分野における改善がある。
【0144】
本開示によって提供される技術的解決策は、人間の精神において、又はペン及び紙を使用する人間によって実行することができない。すなわち、本開示によって提供される技術的解決策は、コンピュータを使用することなく、任意の合理的な時間量において、及び任意の合理的な正確性の期待で、人間の精神において、又はペン及び紙を使用する人間によって実現することができない。
【0145】
本開示の様々な実施形態の説明は、例示の目的で提示されるが、網羅的であることも、開示される実施形態に限定されることも意図されていない。説明されている実施形態の範囲および主旨から逸脱することのない多くの修正および変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実用的な適用又は市場で見られる技術に対する技術的改善を最適に説明し、又は、本明細書において開示される実施形態を当技術分野の他の当業者が理解することを可能にするように選択された。
【手続補正書】
【提出日】2024-04-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
非リレーショナルデータベースに対するクエリを管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法は:
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する段階;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する段階;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する段階、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する段階;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する段階;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する段階
を備える、コンピュータ実装方法。
【請求項2】
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する段階を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する段階を更に備える、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、請求項
2に記載のコンピュータ実装方法。
【請求項5】
前記クエリに関する緊急性情報を取得する段階;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する段階
を更に備える、請求項
1に記載のコンピュータ実装方法。
【請求項6】
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記オブジェクトを取り出すための前記クエリは、人工知能アプリケーションから受信される、請求項
1に記載のコンピュータ実装方法。
【請求項8】
非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラ
ムであって、前記コンピュータプログラ
ムは、プログラムコー
ドを含み、前記プログラムコードは:
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順
のためのプログラミング命令を含む、コンピュータプログラ
ム。
【請求項9】
前記プログラムコードは更に:
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する手順
のための前記プログラミング命令を含む、請求項8に記載のコンピュータプログラ
ム。
【請求項10】
前記プログラムコードは、前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する手順
のための前記プログラミング命令を更に備える、請求項9に記載のコンピュータプログラ
ム。
【請求項11】
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、請求項
9に記載のコンピュータプログラ
ム。
【請求項12】
前記プログラムコードは更に、
前記クエリに関する緊急性情報を取得する手順;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する手順
のための前記プログラミング命令を含む、請求項
8に記載のコンピュータプログラ
ム。
【請求項13】
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、請求項12に記載のコンピュータプログラ
ム。
【請求項14】
前記オブジェクトを取り出すための前記クエリは人工知能アプリケーションから受信される、請求項
8に記載のコンピュータプログラ
ム。
【請求項15】
非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラムを記憶するためのメモリ;及び
前記メモリに接続されているプロセッサ
を備えるシステムであって、前記プロセッサは、
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順
を含む前記コンピュータプログラムのプログラム命令を実行するように構成されている、システム。
【請求項16】
前記コンピュータプログラムの前記プログラム命令は更に:
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する手順
を含む、請求項15に記載のシステム。
【請求項17】
前記コンピュータプログラムの前記プログラム命令は更に:
前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する手順
を含む、請求項16に記載のシステム。
【請求項18】
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、請求項1
6に記載のシステム。
【請求項19】
前記コンピュータプログラムの前記プログラム命令は更に:
前記クエリに関する緊急性情報を取得する手順;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する手順
を含む、請求項1
5に記載のシステム。
【請求項20】
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、請求項19に記載のシステム。
【請求項21】
プログラムがコンピュータ上で実行されるとき、請求項1から7のいずれか一項に記載のコンピュータ実装方法を実行するように適合されているプログラムコード手段を備えるコンピュータプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0145
【補正方法】変更
【補正の内容】
【0145】
本開示の様々な実施形態の説明は、例示の目的で提示されるが、網羅的であることも、開示される実施形態に限定されることも意図されていない。説明されている実施形態の範囲および主旨から逸脱することのない多くの修正および変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実用的な適用又は市場で見られる技術に対する技術的改善を最適に説明し、又は、本明細書において開示される実施形態を当技術分野の他の当業者が理解することを可能にするように選択された。
(他の可能な項目)
(項目1)
非リレーショナルデータベースに対するクエリを管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法は:
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する段階;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する段階;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する段階、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する段階;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する段階;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する段階
を備える、コンピュータ実装方法。
(項目2)
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する段階を更に備える、項目1に記載のコンピュータ実装方法。
(項目3)
前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する段階を更に備える、項目2に記載のコンピュータ実装方法。
(項目4)
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、項目2又は3に記載のコンピュータ実装方法。
(項目5)
前記クエリに関する緊急性情報を取得する段階;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する段階
を更に備える、項目1から4のいずれか一項に記載のコンピュータ実装方法。
(項目6)
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、項目5に記載のコンピュータ実装方法。
(項目7)
前記オブジェクトを取り出すための前記クエリは、人工知能アプリケーションから受信される、項目1から6のいずれか一項に記載のコンピュータ実装方法。
(項目8)
非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、それにより具現化されたプログラムコードを有する1又は複数のコンピュータ可読記憶媒体を含み、前記プログラムコードは:
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順
のためのプログラミング命令を含む、コンピュータプログラム製品。
(項目9)
前記プログラムコードは更に:
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する手順
のための前記プログラミング命令を含む、項目8に記載のコンピュータプログラム製品。
(項目10)
前記プログラムコードは、前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する手順
のための前記プログラミング命令を更に備える、項目9に記載のコンピュータプログラム製品。
(項目11)
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、項目9又は10に記載のコンピュータプログラム製品。
(項目12)
前記プログラムコードは更に、
前記クエリに関する緊急性情報を取得する手順;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する手順
のための前記プログラミング命令を含む、項目8から11のいずれか一項に記載のコンピュータプログラム製品。
(項目13)
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、項目12に記載のコンピュータプログラム製品。
(項目14)
前記オブジェクトを取り出すための前記クエリは人工知能アプリケーションから受信される、項目8から13のいずれか一項に記載のコンピュータプログラム製品。
(項目15)
非リレーショナルデータベースに対するクエリを管理するためのコンピュータプログラムを記憶するためのメモリ;及び
前記メモリに接続されているプロセッサ
を備えるシステムであって、前記プロセッサは、
オブジェクトを非リレーショナルデータベースシステムのストレージシステムから取り出すためのクエリを受信する手順;
前記ストレージシステムのディスクボリュームを前記オブジェクトのレコードから識別する手順;
前記ストレージシステムの前記ディスクボリュームへの論理及び/又は物理入力/出力接続を識別する手順、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記非リレーショナルデータベースから前記ストレージシステムの前記ディスクボリュームへのパスに対応し、ここで、前記論理及び/又は物理入力/出力接続の各々は、前記ストレージシステムの非類似中央処理装置(CPU)コアにタグ設定された1又は複数の入力/出力キューを含む;
前記ストレージシステムのCPUコアについてのCPUコア速度を取得する手順;
識別済みの論理及び/又は物理入力/出力接続の入力/出力アクセス特性、前記CPUコアについての前記CPUコア速度、及び、前記オブジェクトの取り出しについての緊急性の決定されたレベルに基づいて、前記オブジェクトを取り出すために要求を前記ストレージシステムへ送信するために使用される前記識別済みの論理及び/又は物理入力/出力接続の1つを選択する手順;及び
前記選択された論理又は物理入力/出力接続を通じて、前記要求を前記ストレージシステムへ送信する手順
を含む前記コンピュータプログラムのプログラム命令を実行するように構成されている、システム。
(項目16)
前記コンピュータプログラムの前記プログラム命令は更に:
前記非リレーショナルデータベースから前記ストレージシステムへの複数のパスの各々についての入力/出力統計を収集して、それぞれのパスの入力/出力ワークロード及びレイテンシを評価する手順
を含む、項目15に記載のシステム。
(項目17)
前記コンピュータプログラムの前記プログラム命令は更に:
前記収集された入力/出力統計を使用して、前記複数のパスの各々を通じて、入力/出力アクセス特性のパターンを構築する手順
を含む、項目16に記載のシステム。
(項目18)
前記複数のパスは、前記非リレーショナルデータベースシステム及び前記ストレージシステムの間に接続されるハイブリッドネットワーク環境を通じて発生する、項目16又は17に記載のシステム。
(項目19)
前記コンピュータプログラムの前記プログラム命令は更に:
前記クエリに関する緊急性情報を取得する手順;及び
前記取得された緊急性情報に基づいて、前記オブジェクトの取り出しについての緊急性の前記レベルを決定する手順
を含む、項目15から18のいずれか一項に記載のシステム。
(項目20)
前記取得された緊急性情報は、取り出されることが要求された前記オブジェクトのオブジェクトカテゴリ及び前記オブジェクトを取り出すことを要求するアプリケーションのタイプを含むグループから選択される、項目19に記載のシステム。
(項目21)
プログラムがコンピュータ上で実行されるとき、項目1から7のいずれか一項に記載のコンピュータ実装方法を実行するように適合されているプログラムコード手段を備えるコンピュータプログラム。
【国際調査報告】