(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-31
(54)【発明の名称】データベースにおけるインデックス利用可能性の向上
(51)【国際特許分類】
G06F 16/22 20190101AFI20240524BHJP
【FI】
G06F16/22
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023561112
(86)(22)【出願日】2022-06-07
(85)【翻訳文提出日】2023-10-03
(86)【国際出願番号】 IB2022055293
(87)【国際公開番号】W WO2022269396
(87)【国際公開日】2022-12-29
(32)【優先日】2021-06-21
(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ターム(参考)】
5B175KA08
(57)【要約】
データベースにおけるインデックス検索の効率及び利用可能性を向上させるために技術は、各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させることを含む。複数のミニインデックスのミニインデックスは、ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、ミニインデックスへのアクセスを停止させることなく、非同期的に統合される。トランザクションに対応するデータ動作は、ミニインデックスへのアクセスを停止させることなく、ミニインデックスの統合中にインデックス空間行列を使用して実行される。
【特許請求の範囲】
【請求項1】
コンピュータが、各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる段階;
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する段階;及び
前記コンピュータが、前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する段階
を備える、コンピュータ実装方法。
【請求項2】
前記コンピュータが、前記データベースのテーブル空間に対応する空間マップページに基づいて、前記データベースに格納されたデータの複数の論理セグメントを生成する段階;及び
前記コンピュータが、前記複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列で構築することで、前記データベースの前記テーブル空間に対応する前記複数のミニインデックスを形成する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記コンピュータが、前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する境界値を識別する段階;及び
前記コンピュータが、前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序することで、前記順序付けられた境界値を形成する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量に対応する前記複数の統合ポリシーの前記特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスの前記ミニインデックスの統合を開始する段階;
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量がゼロであるかどうかを決定する段階;及び
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであると前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って前記ミニインデックスを統合する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記ミニインデックス間の識別されたキー値重複の前記量がゼロではないと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量が規定量の重複よりも少ないかどうかを決定する段階;
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少ないと前記コンピュータが決定したことに応答して、前記コンピュータが、第2統合ポリシーに従って重複キー値をソースミニインデックスから前記ミニインデックスのターゲットミニインデックスに再配分して、前記ミニインデックス間のキー値重複を除去する段階;及び
前記ミニインデックス間の前記キー値重複を除去したことに応答して、前記コンピュータが、前記ソースミニインデックスのルートページ及びリーフページを前記ターゲットミニインデックスのルートページ及びリーフページとマージすることによって、前記ミニインデックスを統合する段階
をさらに備える、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少なくないと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量は前記規定量の重複よりも大きい又はそれに等しいと決定する段階;及び
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する段階
をさらに備える、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記コンピュータが、前記ミニインデックスの統合中にキー値をソースミニインデックスからターゲットミニインデックスにコピーする段階;及び
前記コンピュータが前記キー値を前記ソースミニインデックスから前記ターゲットミニインデックスにコピーしたことに応答して、前記コンピュータが、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされたキー値を、前記ソースミニインデックスにおける将来の削除フラグでマークする段階とともに、前記コンピュータが、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされた前記キー値を、前記ターゲットミニインデックスにおけるハイバネートフラッグでマークする段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記コンピュータが、前記ソースミニインデックス及び前記ターゲットミニインデックスに対して既存のトランザクションを実行する段階;及び
前記コンピュータが、前記ソースミニインデックスに対してドレインアクションを実行することで、前記将来の削除フラグでマーク付けされたキー値を、前記ソースミニインデックスに対する前記既存のトランザクションが完了したことに応答して前記ソースミニインデックスから除去する段階
をさらに備える、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記コンピュータが、前記ソースミニインデックスに対して前記ドレインアクションを実行したことに応答して、前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされたキー値に対してウェイクアップアクションを実行し、ミニインデックスアクセスを停止させることなくインデックス切り替えを実装する段階;及び
前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされた前記キー値に対して前記ウェイクアップアクションを実行したことに応答して、前記コンピュータが、前記ターゲットミニインデックスに対して新たな着信トランザクションを実行する段階
をさらに備える、請求項8に記載のコンピュータ実装方法。
【請求項10】
バスシステム;
前記バスシステムに接続されたストレージデバイス、ここで、前記ストレージデバイスはプログラム命令を格納する;及び
前記バスシステムに接続されたプロセッサ
を備え、ここで、前記プロセッサは:
各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる手順;
前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する手順;及び
前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する手順
を行うための前記プログラム命令を実行する
コンピュータシステム。
【請求項11】
前記プロセッサはさらに:
前記データベースのテーブル空間に対応する空間マップページに基づいて、前記データベースに格納されたデータの複数の論理セグメントを生成する手順;及び
前記複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列で構築することで、前記データベースの前記テーブル空間に対応する前記複数のミニインデックスを形成する手順 を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項12】
前記プロセッサはさらに:
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する境界値を識別する手順;及び
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序することで、前記順序付けられた境界値を形成する手順
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項13】
前記プロセッサはさらに:
前記ミニインデックス間の識別されたキー値重複の前記量に対応する前記複数の統合ポリシーの前記特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスの前記ミニインデックスの統合を開始する手順;
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであるかどうかを決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであると決定したことに応答して、前記ミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って前記ミニインデックスを統合する手順
を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項14】
前記プロセッサはさらに:
前記ミニインデックス間の識別されたキー値重複の前記量がゼロではないと決定したことに応答して、前記ミニインデックス間の識別されたキー値重複の前記量が規定量の重複よりも少ないかどうかを決定する手順;
第2統合ポリシーに従って重複キー値をソースミニインデックスから前記ミニインデックスのターゲットミニインデックスに再配分して、前記ミニインデックス間のキー値重複を除去することとともに、前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少ないと決定したことに応答して、前記ソースミニインデックスのルートページ及びリーフページを前記ターゲットミニインデックスのルートページ及びリーフページとマージすることによって、前記ミニインデックスを統合する手順;
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少なくないと決定したことに応答して、前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと決定したことに応答して、前記ミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する手順
を行うための前記プログラム命令を実行する、請求項13に記載のコンピュータシステム。
【請求項15】
プログラム命令が具現化されたコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記プログラム命令は、コンピュータによって実行可能であり、以下の手順、すなわち:
コンピュータが、各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる手順;
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する手順;及び
前記コンピュータが、前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する手順
を行う方法を前記コンピュータに実行させる、コンピュータプログラム製品。
【請求項16】
前記コンピュータが、前記データベースのテーブル空間に対応する空間マップページに基づいて、前記データベースに格納されたデータの複数の論理セグメントを生成する手順;及び
前記コンピュータが、前記複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列で構築することで、前記データベースの前記テーブル空間に対応する前記複数のミニインデックスを形成する手順
をさらに備える、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記コンピュータが、前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する境界値を識別する手順;及び
前記コンピュータが、前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序することで、前記順序付けられた境界値を形成する手順
をさらに備える、請求項15に記載のコンピュータプログラム製品。
【請求項18】
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量に対応する前記複数の統合ポリシーの前記特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスの前記ミニインデックスの統合を開始する手順;
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量がゼロであるかどうかを決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであると前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って前記ミニインデックスを統合する手順
をさらに備える、請求項15に記載のコンピュータプログラム製品。
【請求項19】
前記ミニインデックス間の識別されたキー値重複の前記量がゼロではないと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量が規定量の重複よりも少ないかどうかを決定する手順;
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少ないと前記コンピュータが決定したことに応答して、前記コンピュータが、第2統合ポリシーに従って重複キー値をソースミニインデックスから前記ミニインデックスのターゲットミニインデックスに再配分して、前記ミニインデックス間のキー値重複を除去する手順;及び
前記ミニインデックス間の前記キー値重複を除去したことに応答して、前記コンピュータが、前記ソースミニインデックスのルートページ及びリーフページを前記ターゲットミニインデックスのルートページ及びリーフページとマージすることによって、前記ミニインデックスを統合する手順
をさらに備える、請求項18に記載のコンピュータプログラム製品。
【請求項20】
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少なくないと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量は前記規定量の重複よりも大きい又はそれに等しいと決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する手順
をさらに備える、請求項19に記載のコンピュータプログラム製品。
【請求項21】
前記コンピュータが、前記ミニインデックスの統合中にキー値をソースミニインデックスからターゲットミニインデックスにコピーする手順;及び
前記コンピュータが前記キー値を前記ソースミニインデックスから前記ターゲットミニインデックスにコピーしたことに応答して、前記コンピュータが、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされたキー値を、前記ソースミニインデックスにおける将来の削除フラグでマークする手順とともに、前記コンピュータが、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされた前記キー値を、前記ターゲットミニインデックスにおけるハイバネートフラッグでマークする手順
をさらに備える、請求項15に記載のコンピュータプログラム製品。
【請求項22】
前記コンピュータが、前記ソースミニインデックス及び前記ターゲットミニインデックスに対して既存のトランザクションを実行する手順;及び
前記コンピュータが、前記ソースミニインデックスに対してドレインアクションを実行することで、前記将来の削除フラグでマーク付けされたキー値を、前記ソースミニインデックスに対する前記既存のトランザクションが完了したことに応答して前記ソースミニインデックスから除去する手順
をさらに備える、請求項21に記載のコンピュータプログラム製品。
【請求項23】
前記コンピュータが、前記ソースミニインデックスに対して前記ドレインアクションを実行したことに応答して、前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされたキー値に対してウェイクアップアクションを実行し、ミニインデックスアクセスを停止させることなくインデックス切り替えを実装する手順;及び
前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされた前記キー値に対して前記ウェイクアップアクションを実行したことに応答して、前記コンピュータが、前記ターゲットミニインデックスに対して新たな着信トランザクションを実行する手順
をさらに備える、請求項22に記載のコンピュータプログラム製品。
【請求項24】
データベースの複数のミニインデックスのそれぞれのミニインデックスのキー値範囲に対応する境界値を識別する段階;
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序付けて、順序付けられた境界値を形成する段階;及び
各それぞれのミニインデックスのキー値範囲に対応する前記順序付けられた境界値を使用することで前記データベースの前記複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる段階
を備える、コンピュータ実装方法。
【請求項25】
前記ミニインデックス間の識別されたキー値重複の量に対応する統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを統合する段階;及び
前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する段階
をさらに備える、請求項24に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般的に、データベースインデックス、より具体的には、データベースにおけるインデックス利用可能性及びシステム性能を向上させることに関する。
【背景技術】
【0002】
データベースは、デジタルデータの編成された集合であり、一般的にはコンピュータによって格納され、電子的にアクセスされる。リレーショナルデータベースは、リレーショナルデータモデル(例えば、列及び行で構成されたテーブル)に基づくデジタルデータベースである。リレーショナルデータベースを維持するために使用されているソフトウェアコンポーネントは通常、リレーショナルデータベース管理システムである。多くのリレーショナルデータベースシステムは、データベースをクエリ及び維持するために、構造化クエリ言語(SQL)を利用する。
【0003】
データベースインデックスは、インデックスデータ構造を維持するべく、追加の書き込み及びストレージ空間のコストで、データベース上のデータ動作の速度及び効率を向上させるデータ構造である。インデックスを使用することで、データベーステーブルがアクセスされる度にデータベーステーブル内のあらゆる行を検索する必要なく、データを早急に特定する。インデックスは、データ記録の迅速なルックアップ及び効率的なアクセスの両方のための基礎を提供するデータベーステーブルの1又は複数の列を使用して作成され得る。インデックスは、特定のテーブルに対応しており、キーのセットから成る。キーは、インデックスにおける値であり、テーブルの列に基づいている。
【0004】
テーブル空間マップは、テーブル空間におけるページ位置の論理的変換から物理的変換を説明する、テーブル空間のデータベースマネージャの内部表現である。パーティション化されたデータベースにおいて、テーブル空間におけるページは0から(N-1)までの数で論理的に番号付けされており、ここでNは、テーブル空間における使用可能なページの数である。
【0005】
テーブル空間内のデータルックアップのための適切なインデックスが存在しない場合、次に、データを特定すべく、インデックススキャンの代わりにテーブル空間スキャンが使用される。換言すれば、適切なインデックスが存在しないとき、次に、テーブル空間のすべてのページはスキャンされる必要があり、これは、データルックアップ時間を増やし、システム性能を低くする。加えて、特定の状況下では、インデックスは再構築される必要があり、これは、例えば、大きなテーブル再編成が発生したとき、大量のデータがインポートされたとき、又は、大量の同期された入力/出力を回避すべく、集約的データの挿入の前にインデックスを削除するためにSQL drop indexコマンドが使用されたときには、完了するためにかなりの時間がかかる。結果として、インデックス再構築に起因してインデックスが利用不可になったとき、SQLクエリ性能は、悪影響を受ける。例えば、顧客トランザクションはインデックス再構築プロセス中に停止される必要があり、これは性能に悪影響を及ぼす。
【0006】
いくつかの現在の解決手法は、複数のパーティションを使用してテーブル空間を生成又は修正することで、各パーティション内の並列性によってインデックス再構築プロセス全体を加速させる。しかしながら、既存のテーブル空間内のパーティションを追加又は変更することは時間を要し、システム性能及びインデックス利用可能性を減らす多数のシステムリソースを要する。加えて、各パーティション内のデータに対するインデックス再構築はまた、データ規模が大きいときに多くの時間及びリソースを必要とする。
【発明の概要】
【0007】
1つの例示的な実施形態によると、データベースにおけるインデックス検索の効率及び利用可能性を向上させるコンピュータ実装方法が提供されている。コンピュータは、各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することで前記データベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる。前記コンピュータは、前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する。コンピュータは、インデックス空間行列を使用して、ミニインデックスへのアクセスを停止させることなくミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する。他の例示的な実施形態によると、データベースにおけるインデックス検索の効率及び利用可能性を向上させるためのコンピュータシステム及びコンピュータプログラム製品が提供されている。
【0008】
結果として、例示的な実施形態は、インデックスを複数のミニインデックスに論理的に分割することによってデータベースにおけるインデックス利用可能性を向上させ、次に、ミニインデックスの統合中にデータベース上のトランザクションに対応するデータ動作を継続して可能にしながらミニインデックスを統合し、それによって、システム性能を向上させる。
【0009】
別の例示的な実施形態によると、データベースにおけるインデックス検索の効率を向上させるための方法が提供されている。データベースの複数のミニインデックスのそれぞれのミニインデックスのキー値範囲に対応する境界値が識別されている。複数のミニインデックスの各それぞれのミニインデックスのキー値範囲に対応する境界値は、順序付けられた境界値を形成すべく、昇順に順序付けられる。データベースの複数のミニインデックスに対応するインデックス空間行列は、各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することで構築され、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる。結果として、例示的な実施形態は、データベースにおけるインデックス検索の効率を向上させ、従って、システム性能を向上させる。
【0010】
例示的な実施形態はまた、ミニインデックスの統合中にソースミニインデックスからターゲットミニインデックスにキー値を任意選択的にコピーし、ソースミニインデックスからターゲットミニインデックスにコピーされたキー値を、ソースミニインデックスにおける将来の削除フラグ及びターゲットミニインデックスにおけるハイバネートフラッグでマーク付けする。加えて、例示的な実施形態は、ソースミニインデックス及びターゲットミニインデックスに対する既存のトランザクションを任意選択的に実行し、次に、ソースミニインデックスに対してドレインアクションを実行することで、将来削除フラグでマーク付けされたキー値を、ソースミニインデックスに対する既存のトランザクションが完了したことに応答してソースミニインデックスから除去する。さらに、例示的な実施形態は、ソースミニインデックスに対してドレインアクションを実行したことに応答して、ターゲットミニインデックスにおけるハイバネートフラッグでマーク付けされたキー値に対してウェイクアップアクションを任意選択的に実行し、ミニインデックスアクセスを停止させることなくインデックス切り替えを実装し、ターゲットミニインデックスにおけるハイバネートフラッグでマーク付けされたキー値に対してウェイクアップアクションを実行したことに応答して、ターゲットミニインデックスに対して新たな着信トランザクションを実行する。結果として、例示的な実施形態は、データベースのミニインデックスの統合中にデータベースに対するトランザクションに対応する継続的なデータ動作を可能にする。
【0011】
したがって、本発明の実施形態は、インデックスを複数のミニインデックスに論理的に分割して次にそのミニインデックスを統合することによってリレーショナルデータベースのためのインデックスが再編成、低下又はインポートされたときにリレーショナルデータベースにおけるインデックス利用可能性及びシステム性能を向上させようとし、その一方、ミニインデックスの統合中に、リレーショナルデータベースのテーブル空間に対して、顧客トランザクションに対応するデータ更新、削除及び挿入動作を行うことを継続的に可能にする。
【図面の簡単な説明】
【0012】
【
図1】例示的な実施形態が実装され得るデータ処理システムのネットワークの絵図表現である。
【0013】
【
図2】例示的な実施形態が実装され得るデータ処理システムの図である。
【0014】
【
図3】例示的な実施形態に係る、リレーショナルデータベースのテーブル空間に対応するミニインデックスを示す図である。
【0015】
【
図4】例示的な実施形態に係る、テーブル空間のミニインデックスに対応するインデックス空間行列の例を示す図である。
【0016】
【
図5】例示的な実施形態に係る、統合されたミニインデックスの例を示す図である。
【0017】
【
図6】例示的な実施形態に係る、テーブル空間に対する更新、削除及び挿入動作の例を示す図である。
【0018】
【
図7】例示的な実施形態に係る、論理セグメント生成プロセスの例を示す図である。
【0019】
【
図8】例示的な実施形態に係る、キー値範囲識別プロセスの例を示す図である。
【0020】
【
図9】例示的な実施形態に係る、インデックス空間行列構築プロセスの例を示す図である。
【0021】
【
図10】例示的な実施形態に係る、統合ポリシーの例を示す図である。
【0022】
【
図11A】例示的な実施形態に係る、重複プロセスがない統合の例を示す図である。
【0023】
【
図11B】例示的な実施形態に係る、
図11Aに示された重複プロセスがない統合の継続を示す図である。
【0024】
【
図12A】例示的な実施形態に係る、所定の量よりも少ない重複プロセスを用いた統合の例を示す図である。
【0025】
【
図12B】例示的な実施形態に係る、
図12Aに示された所定の量よりも少ない重複プロセスを用いた統合の継続を示す図である。
【0026】
【
図13A】例示的な実施形態に係る、所定の量よりも多い重複プロセスを用いた統合の例を示す図である。
【0027】
【
図13B】例示的な実施形態に係る、
図13Aに示された所定の量よりも多い重複プロセスを用いた統合の継続を示す図である。
【0028】
【
図14】例示的な実施形態に係る、ページ分割プロセスの例を示す図である。
【0029】
【
図15】例示的な実施形態に係る、インデックス空間行列更新プロセスの例を示す図である。
【0030】
【
図16】例示的な実施形態に係る、統合プロセスなしのデータ動作の例を示す図である。
【0031】
【
図17】例示的な実施形態に係る、統合プロセス中のデータ挿入動作の例を示す図である。
【0032】
【
図18】例示的な実施形態に係る、統合プロセス中のデータ削除及び更新動作の例を示す図である。
【0033】
【
図19】例示的な実施形態に係る、インデックス検索の効率及び利用可能性を向上させるためのプロセスを示すフローチャートである。
【0034】
【
図20】例示的な実施形態に係る、統合ポリシーに従ってミニインデックスを統合するプロセスを示すフローチャートである。
【0035】
【
図21】例示的な実施形態に係る、ミニインデックス統合中のミニインデックス利用可能性を維持するプロセスを示すフローチャートである。
【発明を実施するための形態】
【0036】
本発明は、任意の可能な技術的詳細レベルで統合化されたシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(又は複数の媒体)を含み得る。
【0037】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び格納できる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述の任意の適切な組み合わせであってもよいがこれらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、その上に命令が記録されたパンチカード又は溝に浮き彫りされた構造などの機械的にエンコードされたデバイス、及び前述の任意の適切な組み合わせも含まれ得る。コンピュータ可読記憶媒体は、本明細書で用いられるとき、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを介して送信される電気信号等、それ自体が一時的信号であるとして解釈されるべきでない。
【0038】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへダウンロードされてもよく、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワーク又はその組み合わせを介して、外部コンピュータ又は外部ストレージデバイスへダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又は、エッジサーバを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0039】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)の命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又は、Smalltalk(登録商標)もしくはC++などといったオブジェクト指向プログラミング言語、及び「C」プログラミング言語もしくは同様のプログラミング言語などの手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的かつリモートコンピュータ上で部分的に、又は、リモートコンピュータもしくはサーバ上で全体的に実行し得る。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、又はその接続が、(例えば、インターネットサービスプロバイダを用いたインターネットを介して)外部コンピュータに対して行われてよい。いくつかの実施形態において、本発明の態様を実行するべく、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラマブルロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
【0040】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック及びフローチャート図及び/又はブロック図内のブロックの組み合わせが、コンピュータ可読プログラム命令によって実装されてよいことを理解されたい。
【0041】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、又は機械を生成する他のプログラマブルデータ処理装置に提供されてよく、その結果、コンピュータのプロセッサ又は他のプログラマブルデータ処理装置を介して実行される命令は、フローチャートもしくはブロック図又はその両方の1つのブロックもしくは複数のブロックにおいて指定される機能/動作を実装するための手段を作成する。これらのコンピュータ可読プログラム命令はまたコンピュータ可読記憶媒体内に格納されてよく、当該命令は、コンピュータ、プログラム可能データ処理装置及び/又は他のデバイスに対し、特定の態様で機能するよう命令し得、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図のブロック(複数可)に指定された機能/動作の態様を実装する命令を含む製品を備えるようになる。
【0042】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされて、当該コンピュータ、当該他のプログラム可能装置又は他のデバイス上で一連の動作ステップが実行されて、コンピュータ実装プロセスを生成してよく、その結果、当該コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される当該命令が、フローチャートもしくはブロック図又はその両方のブロック(複数可)に指定された機能/動作を実装する。
【0043】
図面におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、及び動作を示している。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてよく、同時に、実質的に同時に、部分的に又は全体的に時間が重複する方式で実行されてよく、又は、ブロックは、場合によっては、関与する機能に応じて逆の順序で実行されてよい。また、ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は行動を実行する、又は専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースシステムによって実装できることにも留意されたい。
【0044】
ここで図面を参照すると、特に、
図1及び
図2を参照すると、例示的な実施形態が実装され得るデータ処理環境の図が提供されている。
図1及び
図2は単なる例を意味しており、異なる実施形態が実装され得る環境に関しての任意の限定を主張又は示唆することを意図するものではないことを理解されたい。示された環境に対して、多くの修正が成され得る。
【0045】
図1は、例示的な実施形態が実装され得るデータ処理システムのネットワークの絵図表現を示す。ネットワークデータ処理システム100は、例示的な実施形態が実装され得るコンピュータ、データ処理システム、及び他のデバイスのネットワークである。ネットワークデータ処理システム100はネットワーク102を含み、ネットワーク102は、ネットワークデータ処理システム100内でともに接続されたコンピュータ、データ処理システム、及び他のデバイス間の通信リンクを提供するために使用されている媒体である。ネットワーク102は、例えば、有線通信リンク、無線通信リンク、及び光ファイバケーブル等といった接続を含み得る。
【0046】
示されている例において、サーバ104及びサーバ106は、ストレージ108とともにネットワーク102に接続される。サーバ104及びサーバ106は、例えば、ネットワーク102への高速接続を有するサーバコンピュータであり得る。加えて、サーバ104及びサーバ106は、顧客エンティティのトランザクションを処理し、リレーショナルデータベースのテーブル空間に格納する。顧客エンティティは、例えば、企業、会社、ビジネス、組織、機関、又はエージェンシー等であり得る。テーブル空間は、顧客エンティティのトランザクションデータを含む列及び行で構成されている。トランザクションデータは、例えば、銀行トランザクション、金融トランザクション、ヘルスケアトランザクション、保険トランザクション等といった任意のタイプのトランザクションに対応し得る。さらに、サーバ104及びサーバ106は、インデックスを複数のミニインデックスに論理的に分割して次にそのミニインデックスを統合することによってリレーショナルデータベースのためのインデックスが再編成、低下又はインポートされたときにリレーショナルデータベースのインデックス利用可能性を向上させ、その一方、ミニインデックスの統合中に、リレーショナルデータベースのテーブル空間に対して、顧客エンティティのトランザクションに対応するデータ更新、削除及び挿入動作を行うことを継続的に可能にし、それによって、システム性能を向上させる。
【0047】
また、サーバ104及びサーバ106は、1又は複数のデータセンター内のサーバのクラスタを各々が表し得ることに留意されたい。代替的に、サーバ104及びサーバ106は、1又は複数のクラウド環境内の複数のコンピューティングノードを各々が表し得る。さらに、サーバ104及びサーバ106は、複数の異なるエンティティのためのトランザクションデータを処理及び格納し得る。
【0048】
クライアント110、クライアント112、及びクライアント114も、ネットワーク102に接続されている。クライアント110、112及び114は、サーバ104及びサーバ106のクライアントである。本例において、クライアント110、112及び114は、ネットワーク102への有線通信リンクを有するデスクトップ又はパーソナルコンピュータとして示されている。しかしながら、クライアント110、112及び114は単なる例であり、例えば、ネットワーク102への有線又は無線通信リンクを有するネットワークコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、スマートフォン、スマートウォッチ、スマートテレビ、ゲーミングデバイス、及びキオスク等といった他のタイプのデータ処理システムを表し得ることに留意されたい。クライアント110、112及び114のユーザは、クライアント110、112及び114を利用して、サーバ104及びサーバ106に対応する顧客エンティティに関連付けられたトランザクションを実行し得る。
【0049】
ストレージ108は、任意のタイプのデータを構造化フォーマット又は非構造化フォーマットで格納することが可能なネットワークストレージデバイスである。加えて、ストレージ108は、複数のネットワークストレージデバイスを表し得る。さらに、ストレージ108は、複数のサーバのための識別子及びネットワークアドレス、複数のクライアントデバイスのための識別子及びネットワークアドレス、複数の異なるユーザのための識別子、及びトランザクションデータ等を格納し得る。さらに、ストレージ108は、例えば、クライアントデバイスのユーザ及びシステム管理者に関連付けられたユーザ名及びパスワード等を含み得る認証又は認証情報データ等の他のタイプのデータを格納し得る。
【0050】
加えて、ネットワークデータ処理システム100は、図示されていない任意の数の追加のサーバ、クライアント、ストレージデバイス、及び他のデバイスを含み得ることに留意されたい。ネットワークデータ処理システム100に位置付けられたプログラムコードは、コンピュータ可読記憶媒体又はコンピュータ可読記憶媒体のセット上に格納され、使用のためにコンピュータ又は他のデータ処理デバイスにダウンロードされ得る。例えば、プログラムコードは、サーバ104上のコンピュータ可読記憶媒体に格納され、クライアント110上での使用のために、ネットワーク102を介してクライアント110にダウンロードされ得る。
【0051】
示されている例では、ネットワークデータ処理システム100は、例えば、インターネット、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、電気通信ネットワーク、又はそれらの任意の組み合わせ等の、いくつかの異なるタイプの通信ネットワークとして実装され得る。
図1は単なる例を意図しており、異なる例示的な実施形態に対するアーキテクチャ上の限定を意図していない。
【0052】
本明細書において使用される「いくつかの(a number of)」は、項目を参照して使用されたとき、1又は複数の項目を意味する。例えば、「いくつかの異なるタイプの通信ネットワーク」は、1又は複数の異なるタイプの通信ネットワークである。同様に、「セット(a set of)」は、項目を参照して使用されたとき、1又は複数の項目を意味する。
【0053】
さらに、「の少なくとも1つ」という用語は、項目のリストとともに使用される場合、1又は複数のリストされた項目の異なる組み合わせが使用され得ることを意味し、リスト中の各項目のうち1つのみが必要である可能性がある。言い換えると、「少なくとも1つ」は、リストの項目及び項目の数の任意の組み合わせが使用され得るが、リスト内のすべての項目が必要なわけではないということを意味する。項目は、特定のオブジェクト、物又はカテゴリであり得る。
【0054】
例えば、制限することなく、「項目A、項目B又は項目Cの少なくとも1つ」は、項目A、項目A及び項目B、又は項目Bを含み得る。この例はまた、項目A、項目B及び項目C、又は、項目B及び項目Cを含み得る。もちろん、これらの項目の任意の組み合わが存在し得る。いくつかの例示的な例において、「少なくとも1つ」は、制限することなく、例えば、項目Aのうち2個、項目Bのうち1個、項目Cのうち10個、項目Bのうち4個及び項目Cのうち7個、又は、他の適切な組み合わせであり得る。
【0055】
ここで
図2を参照すると、データ処理システムの図が例示的な実施形態に従って示されている。データ処理システム200は、
図1におけるサーバ104等のコンピュータの例であり、そこには、例示的な実施形態のリレーショナルデータベース管理プロセスを実装するコンピュータ可読プログラムコード又は命令が位置付けられ得る。本例において、データ処理システム200は通信ファブリック202を含み、通信ファブリック202は、プロセッサユニット204、メモリ206、永続ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212、及びディスプレイ214の間の通信を提供する。
【0056】
プロセッサユニット204は、メモリ206にロードされ得るソフトウェアアプリケーション及びプログラムのための命令を実行するように機能する。プロセッサユニット204は、1又は複数のハードウェアプロセッサデバイスのセットであってもよく、又は、特定の実装に応じて、マルチコアプロセッサであってもよい。
【0057】
メモリ206及び永続ストレージ208は、ストレージデバイス216の例である。本明細書において使用されるように、コンピュータ可読記憶デバイス又はコンピュータ可読記憶媒体は、例えば、限定することなく、データ、機能的形式のコンピュータ可読プログラムコード、及び/又は、一過性をベースとした又は永続性をベースとした他の適切な情報等の情報を格納することが可能ないずれかのハードウェアである。さらに、コンピュータ可読記憶デバイス又はコンピュータ可読記憶媒体は、一時的な信号等の伝搬媒体を除外する。さらに、コンピュータ可読記憶デバイス又はコンピュータ可読記憶媒体は、コンピュータ可読記憶デバイスのセット又はコンピュータ可読記憶媒体のセットを表し得る。これらの例において、メモリ206は、例えば、ランダムアクセスメモリ(RAM)、又は、フラッシュメモリ等の任意の他の適切な揮発性又は不揮発性ストレージデバイスであり得る。
永続ストレージ208は、特定の実装に応じて、様々な形態を取ってよい。例えば、永続ストレージ208は、1又は複数のデバイスを含み得る。例えば、永続ストレージ208は、ディスクドライブ、ソリッドステートドライブ、書き換え可能な光ディスク、書き換え可能な磁気テープ、又は、上記のいくつかの組み合わせであり得る。永続ストレージ208によって使用される媒体は、リムーバブルであり得る。例えば、リムーバブルなハードドライブが永続ストレージ208に使用され得る。
【0058】
本例において、永続ストレージ208は、データベースマネージャ218を格納する。しかしながら、データベースマネージャ218が永続ストレージ208に存在するものと示されているとしても、代替の例示的な実施形態では、データベースマネージャ218は、データ処理システム200の個別のコンポーネントであり得ることに留意されたい。例えば、データベースマネージャ218は、通信ファブリック202に結合されたハードウェアコンポーネント、又は、ハードウェア及びソフトウェアコンポーネントの組み合わせであり得る。
【0059】
データベースマネージャ218は、リレーショナルデータベース220に対応するインデックスを複数のミニインデックスに論理的に分割して、次に、複数のミニインデックスを統合し、その一方、ミニインデックスの統合中に、リレーショナルデータベース220のテーブル空間上の顧客トランザクションに対応するデータ動作(例えば、更新、削除、及び挿入等)を継続的に可能にするプロセスを制御して、インデックスルックアップの効率及び利用可能性を向上させる。データベースマネージャ218は、例えば、リレーショナルデータベース管理システムであり得る。リレーショナルデータベース220は、各々が列及び行で構成されたテーブルのセットに、顧客エンティティのトランザクションデータを格納する。
【0060】
結果として、データ処理システム200は、データ処理システム200内のデータベースマネージャ218が、インデックスの再構築中にインデックス利用可能性及びシステム性能を向上させることが可能な専用コンピュータシステムとして動作する。特に、データベースマネージャ218は、データベースマネージャ218を有しない現在利用可能な一般的なコンピュータシステムと比べて、データ処理システム200を専用コンピュータシステムに変換する。
【0061】
通信ユニット210は、本例において、
図1におけるネットワーク102等のネットワークを介して、他のコンピュータ、データ処理システム及びデバイスとの通信を提供する。通信ユニット210は、物理及び無線通信リンクの両方の使用を介して通信を提供し得る。物理通信リンクは、例えば、有線、ケーブル、ユニバーサルシリアルバス、又は、データ処理システム200のための物理通信リンクを確立するための任意の他の物理的技術を利用し得る。無線通信リンクは、例えば、短波、高周波数、超高周波数、マイクロ波、ワイヤレスフィデリティ(Wi-Fi(登録商標))、Bluetooth(登録商標)技術、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標))、符号分割多元接続(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロングタームエボリューション(LTE)、LTEアドバンスト、第5世代(5G)、又は、データ処理システム200のための無線通信リンクを確立する任意の他の無線通信技術又は規格を利用し得る。
【0062】
入力/出力ユニット212は、データ処理システム200に接続され得る他のデバイスを用いてデータの入力及び出力を可能にする。例えば、入力/出力ユニット212は、キーパッド、キーボード、マウス、マイク、及び/又は、いくつかの他の適切な入力デバイスを介してユーザ入力のための接続を提供し得る。ディスプレイ214は、ユーザに情報を表示するメカニズムを提供しており、例えば、ユーザインタフェース又は入力データを介したオンスクリーン選択をユーザが行うことを可能にするように、タッチスクリーン能力を含み得る。
【0063】
システム、アプリケーション及び/又はプログラムを動作させるための命令は、通信ファブリック202を介してプロセッサユニット204と通信中であるストレージデバイス216内に位置付けられ得る。この例示的な例において、命令は、永続ストレージ208の機能的形式である。これらの命令は、プロセッサユニット204によって実行されるために、メモリ206にロードされ得る。異なる実施形態のプロセスは、メモリ206等のメモリ内に位置付けられ得るコンピュータ実装命令を使用してプロセッサユニット204によって実行され得る。これらのプログラム命令は、プロセッサユニット204内のプロセッサによって読み取られ実行され得るプログラムコード、コンピュータ使用可能プログラムコード、又はコンピュータ可読プログラムコードと言及されている。プログラム命令は、異なる実施形態において、メモリ206又は永続ストレージ208等の異なる物理的コンピュータ可読記憶デバイス上に具現化され得る。
【0064】
プログラムコード222は、選択的にリムーバブルなコンピュータ可読媒体224上に機能的形式で位置付けられており、プロセッサユニット204によって実行されるためにデータ処理システム200にロード又は転送され得る。プログラムコード222及びコンピュータ可読媒体224は、コンピュータプログラム製品226を形成する。1つの例において、コンピュータ可読媒体224は、コンピュータ可読記憶媒体228又はコンピュータ可読信号媒体230であり得る。
【0065】
これらの例示的な例では、コンピュータ可読記憶媒体228は、プログラムコード222を伝搬又は伝送する媒体ではなくプログラムコード222を記憶するのに使用される物理的又は有形記憶デバイスである。コンピュータ可読記憶媒体228は、例えば、永続ストレージ208の一部であるハードドライブ等のストレージデバイスに転送するために、永続ストレージ208の一部であるドライブ又は他のデバイスに挿入される又は配置される光ディスク又は磁気ディスクを含んでよい。コンピュータ可読記憶媒体228はまた、ハードドライブ、サムドライブ、又は、データ処理システム200に接続されたフラッシュメモリ等の永続ストレージの形式を取ってよい。
【0066】
代替的に、プログラムコード222は、コンピュータ可読信号媒体230を使用してデータ処理システム200に転送され得る。コンピュータ可読信号媒体230は、例えば、プログラムコード222を含む伝搬されたデータ信号であり得る。例えば、コンピュータ可読信号媒体230は、電磁信号、光学信号もしくは任意の他の適切なタイプの信号又はこれらの組み合わせであってよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、有線もしくは任意の他の適切なタイプの通信リンク又はこれらの組み合わせ等の通信リンクを経由して送信されてよい。
【0067】
さらに、本明細書において使用される場合、「コンピュータ可読媒体224」は、単数又は複数であり得る。例えば、プログラムコード222は、コンピュータ可読媒体224に、単一ストレージデバイス又はシステムの形式で位置付けられ得る。別の例において、プログラムコード222は、複数のデータ処理システムに分散されたコンピュータ可読媒体224内に位置付けられ得る。換言すれば、プログラムコード222におけるいくつかの命令は、1つのデータ処理システム内に位置付けられ得、その一方、プログラムコード222における他の命令は、1又は複数の他のデータ処理システム内に位置付けられ得る。例えば、プログラムコード222のある部分は、サーバコンピュータのコンピュータ可読媒体224内に位置付けられ得、その一方、プログラムコード222の別の部分は、クライアントコンピュータのセット内に位置付けられたコンピュータ可読媒体224内に位置付けられ得る。
【0068】
データ処理システム200用に示されている異なるコンポーネントは、異なる実施形態が実装され得る方式に対するアーキテクチャ上の制限を設けるようには意図されていない。いくつかの例示的な例において、コンポーネントのうちの1又は複数は、別のコンポーネントに組み込まれてもよく、そうでなければ、別のコンポーネントの一部を形成してもよい。例えば、メモリ206は、又はその部分は、幾つかの例示的な例ではプロセッサユニット204に組み込まれてよい。異なる例示的な実施形態は、データ処理システム200用に示されているものに加えて、又はそれらの代わりにコンポーネントを含むデータ処理システムに実装され得る。
図2に示される他のコンポーネントは、示される例示的な例から変更され得る。異なる実施形態は、プログラムコード222を実行することが可能である任意のハードウェアデバイス又はシステムを使用して実装され得る。
【0069】
別の例において、バスシステムは、通信ファブリック202を実装するために使用され得、システムバス又は入力/出力バス等の1又は複数のバスで構成され得る。もちろん、バスシステムは、異なるコンポーネント又はバスシステムに取り付けられたデバイスの間のデータの転送を提供する任意の適切なタイプのアーキテクチャを使用して実装され得る。
【0070】
リレーショナルデータベースシステムにおいて、インデックスは、データアクセスのために幅広く使用されている。インデックスは、クエリ(例えば、SQL)実行の際の速度を促進する効率的な方式である。システム性能は、データにアクセスするための適切なインデックスが存在しないときに、テーブル空間スキャンがインデックススキャンの代わりに使用されるとき等の、特定の状況下で減少する。換言すれば、適切なインデックスが存在しないとき、次に、テーブル空間のすべてのページはスキャンされる必要があり、これは、データルックアップ時間を増やし、システム性能を低減する。多くの場合、インデックスは再構築される必要があり、これは、大きなテーブル再編成が発生したとき、大量のデータがインポートされたとき、又は、大量の同期された入力/出力を回避すべく、集約的データの挿入の前にインデックスを削除するためにSQL drop indexコマンドが使用されたようなとき等には、完了するためにかなりの時間がかかる。結果として、インデックス再構築プロセスに起因してインデックスが利用不可になったとき、SQL性能は、悪影響を受ける。例えば、顧客トランザクションはインデックス再構築プロセス中に停止される必要があり、これは性能に悪影響を及ぼす。
【0071】
現在の解決手法は、増加した数のパーティションを使用してリレーショナルデータベーステーブル空間を生成又は修正することで、各パーティション内の並列性によってインデックス再構築プロセス全体を加速させる。しかしながら、既存のテーブル空間内のパーティションを追加又は変更することは時間を要し、システム性能及びインデックス利用可能性を減らす多数のシステムリソースを要する。加えて、各パーティション内のデータに対するインデックス再構築はまた、データ規模が大きいときに多くの時間及びリソースがかかる。
【0072】
例示的な実施形態は、大きなリレーショナルデータベースのためのインデックスが再編成され、低下し、又は、ミニインデックスの統合中にテーブル空間上のデータ動作(例えば、データ更新、削除及び挿入等)を継続的に可能にしながら、インデックスを複数のミニインデックスに論理的に分割して、複数のミニインデックスを統合(例えば、組み合わせ、マージ、又は集約等)する例示的な実施形態によってインポートされたときの、システム性能及びインデックス利用可能性の問題を考慮しそれに対処する。例示的な実施形態は、テーブル空間のテーブル空間マップページに対応する論理セグメントに基づいて、リレーショナルデータベースの単純なテーブル空間又はパーティション化されたテーブル空間に対して、複数のミニインデックスを構築する。加えて、例示的な実施形態は、冗長ミニインデックスアクセスを除去又は剪定することによって、複数のミニインデックスに対応するインデックス空間行列を構築する。さらに、例示的な実施形態は、ミニインデックス間のキー値重複の量に対応する特定の統合ポリシーを使用して、ミニインデックスアクセスを停止させることなくバックグラウンドにおいてミニインデックスを非同期的に統合する。さらに、例示的な実施形態は、ミニインデックスの統合を実行しながら、顧客エンティティ(例えば、企業)のトランザクションに対応するデータ更新、削除及び挿入動作のデータ整合性を維持する。結果として、例示的な実施形態は、インデックスの再構築中にシステム性能及びインデックス利用可能性を向上させる。
【0073】
したがって、例示的な実施形態は、インデックスの再構築によって生じたシステムダウンタイムに関連付けられた技術的問題を克服する1又は複数の技術的解決手段を提供する。結果として、これらの1又は複数の技術的解決手段は、インデックス再構築中にインデックス利用可能性及びシステム性能を向上させることによって、リレーショナルデータベース分野における技術的効果及び実際の適用を提供する。
【0074】
ここで
図3を参照すると、リレーショナルデータベースのテーブル空間に対応するミニインデックスの例を示す図が、例示的な実施形態に従って示されている。ミニインデックス300は、単純なテーブル空間302に対応しており、ミニインデックス304は、パーティション化されたテーブル空間306に対応している。単純なテーブル空間302又はパーティション化されたテーブル空間306は、例えば、
図2におけるリレーショナルデータベース220等のリレーショナルデータベース内で実装され得る。例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャは、単純なテーブル空間302又はパーティション化されたテーブル空間306のいずれかに対して例示的な実施形態のプロセスを実行し得る。
【0075】
単純なテーブル空間302に格納されたトランザクションデータは、テーブル空間全体の下で完全に乱れることに留意されたい。同様に、パーティション化されたテーブル空間306に格納されたトランザクションデータは、パーティション化されたテーブル空間全体のパーティション308等の各それぞれのパーティション内で乱れる。
【0076】
本例において、ミニインデックス300及びミニインデックス304の各それぞれのミニインデックスは、三角形状で表されている。データベースマネージャは、テーブル空間の所定の論理セグメントに対応する各それぞれのミニインデックスを並列に構築する。各論理セグメントは、テーブル空間のテーブル空間マップページに対応する。
【0077】
ここで
図4を参照すると、テーブル空間のミニインデックスに対応するインデックス空間行列の例を示す図が、例示的な実施形態に従って示されている。本例において、インデックス空間行列400は、例えば、
図3における単純なテーブル空間302等の単純なテーブル空間402に対応する。しかしながら、インデックス空間行列400は、例えば、
図3におけるパーティション化されたテーブル空間306等のパーティション化されたテーブル空間にも同様に対応し得ることに留意されたい。
【0078】
ミニインデックス404は、単純なテーブル空間402に対応しており、複数のミニインデックスを表す。ミニインデックス404は、例えば、
図3におけるミニインデックス300であり得る。例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャは、インデックスの再構築中に単純なテーブル空間402に格納されたトランザクションデータを効率的に特定して、それに対してデータ動作を実行するように、ミニインデックス404を利用する。インデックス空間行列400は、ミニインデックス404のインデックスである。データベースマネージャは、インデックス空間行列400を構築して、ミニインデックス404にわたる冗長キー値アクセスを剪定することによってインデックス検索の効率を最適化する。
【0079】
ここで
図5を参照すると、統合されたミニインデックスの例を示す図が、例示的な実施形態に従って示されている。本例において、統合されたミニインデックス500の各々は、単純なテーブル空間504に対応するミニインデックス502から、2つのミニインデックスをマージする又は組み合わせることを表している。ミニインデックス502及び単純なテーブル空間504は、例えば、
図4におけるミニインデックス404及び単純なテーブル空間402であり得る。
【0080】
加えて、本例は、2つのレベルのミニインデックス統合のみを示している。しかしながら、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャは、最後にインデックス506を生成するように、任意の数の異なるレベルのミニインデックスを統合することを継続し得ることに留意されたい。インデックス506は、例示的な実施形態のミニインデックス統合プロセスが完了した後の最終インデックスを表している。
【0081】
例示的な実施形態のデータベースマネージャは、統合されているミニインデックス間の識別済みキー値重複の量に対応する特定の統合ポリシーを使用して、ミニインデックスへのアクセスを停止させることなくミニインデックスをバックグラウンドにおいて非同期的に統合する。また、データベースマネージャがより多くのミニインデックスを統合するにつれて、データベースマネージャはスキャンするべきミニインデックスが少ないので、システム性能が向上するであろうことに留意されたい。
【0082】
ここで
図6を参照すると、テーブル空間に対する更新、削除及び挿入動作の例を示す図が、例示的な実施形態に従って示されている。更新、削除及び挿入動作600は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。更新、削除及び挿入動作600は、単純なテーブル空間602に格納された顧客エンティティ(例えば、企業)のトランザクションに対応する。データベースマネージャは、例示的な実施形態の統合ポリシーを使用することによって、更新、削除及び挿入動作600のためのミニインデックス統合中にトランザクションデータの整合性を維持する。
【0083】
ここで
図7を参照すると、論理セグメント生成プロセスの例を示す図が、例示的な実施形態に従って示されている。論理セグメント生成プロセス700は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。論理セグメント生成プロセス700は、テーブル空間702、論理セグメント704、及びミニインデックス706を含む。テーブル空間702は、例えば、
図2におけるリレーショナルデータベース220等のリレーショナルデータベースに対応しており、例えば、
図6における単純なテーブル空間602であり得る。加えて、テーブル空間702は、例えば、ヘッダページ、テーブル空間マップページ、及びデータページ等といった複数のページで構成されている。テーブル空間マップページは、データページを編成及び管理する。1つのテーブル空間マップページは、複数のデータページに対応する。
【0084】
708において、データベースマネージャは、テーブル空間702のテーブル空間マップページに基づいて、論理セグメント704を生成する。データベースマネージャは、テーブル空間マップページを利用することによって、トランザクションデータセットを管理する。論理セグメント704は、論理セグメント#1、論理セグメント#2、から論理セグメント#N等の複数の論理セグメントを含んでおり、ここで、本例では、「N」は、2よりも大きい任意の整数を表す。各それぞれの論理セグメントは、1つのテーブル空間マップページ710及び複数のデータページ712を含む。
【0085】
714において、論理セグメント704を生成した後、データベースマネージャは、論理セグメント704に基づいてミニインデックス706を並列に構築する。換言すれば、データベースマネージャは、論理セグメント704の各それぞれの論理セグメントのミニインデックスを並列に構築する。例えば、データベースマネージャは、論理セグメント#1のミニインデックス#1 716、論理セグメント#2のミニインデックス#2 718、から論理セグメント#Nのミニインデックス#N 720を並列に構築する。
【0086】
ここで
図8を参照すると、キー値範囲識別プロセスの例を示す図が、例示的な実施形態に従って示されている。キー値範囲識別プロセス800は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。キー値範囲識別プロセス800は、キー値範囲802、ミニインデックス#1 804、ミニインデックス#2 806、及びミニインデックス#3 808を含む。しかしながら、キー値範囲識別プロセス800は、単なる例を意味しており、例示的な実施形態の限定は意味していない。換言すれば、キー値範囲識別プロセス800は、例えば、任意の数のミニインデックスを含み得る。
【0087】
トランザクションデータはテーブル空間の各論理セグメント内で乱れ、各論理セグメントは、ミニインデックス#1 804、ミニインデックス#2 806、及びミニインデックス#3 808等のミニインデックスに対応することに留意されたい。データベースマネージャは、ミニインデックス#1 804、ミニインデックス#2 806、及びミニインデックス#3 808の各々のキー値範囲802を識別する。キー値範囲802は、ミニインデックス#1 804、ミニインデックス#2 806、及びミニインデックス#3 808の各々に対応するキー値の範囲又はスパンを表す。本例において、データベースマネージャは、ミニインデックス#1 804のキー値範囲を5から40として、ミニインデックス#2 806のキー値範囲を20から60として、ミニインデックス#3 808のキー値範囲を10から30として識別する。したがって、ミニインデックス#1 804、ミニインデックス#2 806、及びミニインデックス#3 808の間にはキー値重複が存在する。
【0088】
ここで
図9を参照すると、インデックス空間行列構築プロセスの例を示す図が、例示的な実施形態に従って示されている。インデックス空間行列構築プロセス900は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。インデックス空間行列構築プロセス900は、インデックス空間行列902、キー値範囲904、ミニインデックス#1 906、ミニインデックス#2 908、ミニインデックス#3 910、及びミニインデックス#4 912を含む。しかしながら、インデックス空間行列構築プロセス900は、単なる例を意図しており、例えば、任意の数のミニインデックスを含み得ることに留意されたい。
【0089】
データベースマネージャは、ミニインデックス#1 906、ミニインデックス#2 908、ミニインデックス#3 910、及びミニインデックス#4 912のキー値範囲904を識別する。キー値範囲904を識別した後、データベースマネージャは、境界線914に対応する境界キー値を決定する。本例において、境界線914は、7個の境界線を含み、境界線914の各々に対応する境界キー値はそれぞれ、10、16、22、35、40、55及び60である。さらに、データベースマネージャは、それぞれのミニインデックスのキー値範囲904の境界線914に対応する境界キー値を昇順に順序付けて、順序付けられた境界値を形成する。
【0090】
データベースマネージャは、ミニインデックス#1 906、ミニインデックス#2 908、ミニインデックス#3 910、及びミニインデックス#4 912に対応する順序付けられた境界キー値10、16、22、35、40、55及び60に基づいてインデックス空間行列902を構築することで、冗長インデックスアクセスを剪定することによってインデックス検索の効率を向上させる。データベースマネージャは次に、10、16、22、35、40、55及び60の境界キー値の各々を、ミニインデックス916内のミニインデックスのセットと関連付ける。例えば、境界キー値10はミニインデックス#1に対応し、境界キー値16はミニインデックス#1及びミニインデックス#3に対応し、境界キー値22はミニインデックス#1、ミニインデックス#3、及びミニインデックス#4に対応し、以下同様である。ミニインデックス#1 906、ミニインデックス#2 908、ミニインデックス#3 910、及びミニインデックス#4 912は、ミニインデックス916の対応するミニインデックス#1、#2、#3、及び#4を含むことに留意されたい。
【0091】
ここで
図10を参照すると、統合ポリシーの例を示す図が、例示的な実施形態に従って示されている。統合ポリシー1000は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。本例において、統合ポリシー1000は、統合ポリシー#1 1002、統合ポリシー#2 1004、及び統合ポリシー#3 1006を含む。
【0092】
データベースマネージャは、ミニインデックス間の識別された量のキー値重複に基づいて統合ポリシー1000の特定の統合ポリシーを使用して、ミニインデックスへのアクセスを停止させることなく、例えば、ミニインデックス#1及びミニインデックス#2等の2つのミニインデックスをバックグラウンドにおいて非同期的に統合する。例えば、データベースマネージャは、2つのミニインデックス間にキー値重複が存在しないときに統合ポリシー#1 1002を利用し、識別された量のキー値重複が規定量のキー値重複よりも少ないときに統合ポリシー#2 1004を利用し、識別された量のキー値重複が規定量のキー値重複よりも大きい又はそれに等しいときに統合ポリシー#3 1006を利用する。規定量のキー値重複は、例えば、15%であり得る。
【0093】
統合ポリシー#1 1002の例に示されるように、ミニインデックス#1及びミニインデックス#2は、重複キー値を有しないものと識別される。結果として、データベースマネージャは、ミニインデックス#1及びミニインデックス#2を直接統合する。統合ポリシー#2 1004の例に示されるように、ミニインデックス#1及びミニインデックス#2は、所定の量のキー値重複よりも少ない(例えば、15%キー値重複よりも少ない)キー値重複の量を有するものとして識別される。結果として、データベースマネージャは、ミニインデックス#1及びミニインデックス#2の間にキー値重複が存在しなくなるように、ミニインデックス#1及びミニインデックス#2を変換し、次に、変換済みのミニインデックス#1及びミニインデックス#2を統合ポリシー#1 1002に従って統合する。統合ポリシー#3 1006の例に示されるように、ミニインデックス#1及びミニインデックス#2は、所定の量のキー値重複よりも大きい又はそれに等しい(例えば、15%キー値重複よりも大きい又はそれに等しい)キー値重複の量を有するものとして識別される。結果として、データベースマネージャは、ミニインデックス#1及びミニインデックス#2から新たなミニインデックスを構築し、これは、2つのミニインデックスを統合することは、キー値重複の量が原因で、過度な時間及び過度に多いシステムリソースを要するからである。
【0094】
さらに、データベースマネージャは、重複キー値を有しないすべてのミニインデックスを見つけて、次にそれらのミニインデックスを統合することによって開始されることに留意されたい。その後、データベースマネージャは、所定の量のキー値重複よりも少ない識別された量のキー値重複を有するそれらのミニインデックスを統合する。最後に、データベースマネージャは、所定の量のキー値重複よりも大きい又はそれに等しい識別された量のキー値重複を有するそれらのミニインデックスから新たなミニインデックスを構築する。
【0095】
ここで
図11Aを参照すると、重複プロセスがない統合の例を示す図が、例示的な実施形態に従って示されている。重複プロセス1100がない統合は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって、例えば、
図10における統合ポリシー#1 1002等の第1統合ポリシーに従って、実装され得る。本例において、重複プロセス1100がない統合は、ミニインデックス#1 1102及びミニインデックス#2 1104を含んでおり、これらは識別済みの重複キー値を有しない。ミニインデックス#1 1102は、ルートページ1106及びリーフページ1108を含む。ミニインデックス#2 1104は、ルートページ1110及びリーフページ1112を含む。
【0096】
統合前に、ルートページ1106は、キー値5、11及び20を含む。リーフページ1108は、キー値1から5、6から11及び12から20を含む。ルートページ1110は、キー値25及び45を含む。リーフページ1112は、キー値21から25及び26から45を含む。
【0097】
統合中であるが切り替えアクションの実行前に、1114において、データベースマネージャは、キー値25及び45をルートページ1110からルートページ1106にコピーする。加えて、データベースマネージャは、将来の削除フラグを有するルートページ1110内のキー値25及び45をマークする。さらに、データベースマネージャは、ハイバネートフラッグを有するルートページ1106内のキー値25及び45をマークする。換言すれば、キー値25及び45は、ハイバネートフラッグが理由で、現在、ルートページ1106において見ることができない。
【0098】
ここで
図11Bを参照すると、
図11Aに示された重複プロセスがない統合の継続を示す図が、例示的な実施形態に従って示されている。任意のトランザクション停止を回避すべく、データベースマネージャはまず、ソースミニインデックス(すなわち、ミニインデックス#2 1104)に対してドレインアクションを実行し、次に、ミニインデックス#2 1104に対して以前から存在しているすべてのトランザクションが実行されたとき、ターゲットミニインデックス(すなわち、ミニインデックス#1 1102)に対して切り替えアクションを実行する。
【0099】
例えば、1116において、データベースマネージャは、既存のトランザクション#1及び#2をミニインデックス#1 1102に対して実行し、1118において、データベースマネージャは、既存のトランザクション#3及び#4をミニインデックス#2 1104に対して実行する。既存のトランザクション#1、#2、#3、及び#4は、統合プロセス中であるがドレイン及び切り替えアクションの前に受信される。データベースマネージャがミニインデックス#2 1104に対する既存のトランザクション#3及び#4を完了した後、データベースマネージャは、1120においてミニインデックス#2 1104に対してドレインアクションを実行する。データベースマネージャは、例えば、ミニインデックス#1 1102への切り替えの準備においてミニインデックス#2 1104からミニインデックス#1 1102にコピーされたキー値25及び45を削除することによって、ドレインアクションを実行する。加えて、データベースマネージャは、ミニインデックス#2 1104に対するドレインアクションが完了した後、ミニインデックス#1 1102上のキー値25及び45からハイバネートフラッグを除去する。データベースマネージャは、ハイバネートフラッグが除去されたときのタイムスタンプを利用して、ミニインデックス#1 1102上のキー値25及び45の可視性を決定する(すなわち、ミニインデックス#2 1104に対するドレインが完了した後のミニインデックス#1 1102上のキー値25及び45のウェイクアップ)ことに留意されたい。ここで、1122では、データベースマネージャは、ミニインデックス#2 1104に対するドレインが完了した後、ミニインデックス#1 1102に対して新たな着信トランザクション#5及び#6を実行する。換言すれば、ミニインデックス#2 1104に対するドレインアクションが完了したことに応答して、データベースマネージャは、ミニインデックス#1 1102に対してすべての新たな着信トランザクションを実行する。データベースマネージャがミニインデックス#1 1102に対する切り替えアクションを完了した後、ルートページ1106は、キー値5、11、20、25及び45を含み、リーフページ1108は、キー値1から5、6から11、12から20、21から25及び26から45を含む。
【0100】
ここで
図12Aを参照すると、所定の量よりも少ない重複プロセスを用いた統合の例を示す図が、例示的な実施形態に従って示されている。所定の量よりも少ない重複プロセス1200を用いた統合は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって、例えば、
図10における統合ポリシー#2 1004等の第2統合ポリシーに従って、実装され得る。本例において、所定の量よりも少ない重複プロセス1200を用いた統合は、ミニインデックス#1 1202及びミニインデックス#2 1204を含む。キー値重複1206は、キー値15からキー値25のミニインデックス#1 1202及びミニインデックス#2 1204の間に存在する。キー値重複1206は、規定量のキー値重複(例えば、15%)よりも少ない。キー値重複1206は規定量のキー値重複よりも少ないので、データベースマネージャは、リーフページのキー値重複をミニインデックス#2 1204からミニインデックス#1 1202に再配分して、その結果、キー値重複は、ミニインデックス#1 1202及びミニインデックス#2 1204の間に存在しなくなる。その後、データベースマネージャは、ミニインデックス#1 1202及びミニインデックス#2 1204を統合する。
【0101】
ここで
図12Bを参照すると、
図12Aに示された所定の量よりも少ない重複プロセスを用いた統合の継続を示す図が、例示的な実施形態に従って示されている。1208において、データベースマネージャは、キー値30及び45をミニインデックス#2 1204のルートページからミニインデックス#1 1202のルートページにコピーする。加えて、1210において、データベースマネージャは、キー値15から18及びキー値19から25を、ミニインデックス#2 1204のリーフページからミニインデックス#1 1202のリーフページにコピーする。ミニインデックス#2 1204に対するすべての既存のトランザクションの実行に応答して、データベースマネージャは、1212において、ミニインデックス#2 1204に対してドレインアクションを実行し、将来の削除フラグでマーク付けされたキー値を、ミニインデックス#2 1204のページから除去する。ミニインデックス#2 1204に対するドレインアクションの実行に応答して、データベースマネージャは、ミニインデックス#1 1202のページ上のハイバネートキー値をウェイクアップさせるとともに切り替えアクションを実行することで、ミニインデックス#1 1202に対してすべての新たな着信トランザクションを実行する。
【0102】
ここで
図13Aを参照すると、所定の量よりも多い重複プロセスを用いた統合の例を示す図が、例示的な実施形態に従って示されている。所定の量よりも多い重複プロセス1300を用いた統合は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって、例えば、
図10における統合ポリシー#3 1006等の第3統合ポリシーに従って、実装され得る。本例において、所定の量よりも多い重複プロセス1300を用いた統合は、ミニインデックス#1 1302及びミニインデックス#2 1304を含む。キー値重複1306は、キー値15からキー値40のミニインデックス#1 1302及びミニインデックス#2 1304の間に存在する。キー値重複1306は、規定量のキー値重複(例えば、15%)よりも大きい又はそれに等しい。キー値重複1306は規定量のキー値重複よりも大きい又はそれに等しいので、1308において、データベースマネージャは、ミニインデックス#1 1302及びミニインデックス#2 1304から新たなミニインデックス#1、2 1310を構築すべく、スキャンリーフ及びマージソートプロセスを実行する。
【0103】
ここで
図13Bを参照すると、
図13Aに示された所定の量よりも多い重複プロセスを用いた統合の継続を示す図が、例示的な実施形態に従って示されている。ミニインデックス#1 1302及びミニインデックス#2 1304から新たなミニインデックス#1、2 1310を構築すべく、スキャンリーフ及びマージソートプロセス1308を実行したことに応答して、データベースマネージャは、1312において、ミニインデックス#1 1302及びミニインデックス#2 1304に対するすべての既存のトランザクションを完了すると、ミニインデックス#1 1302及びミニインデックス#2 1304の両方に対してドレインアクションを実行する。1314において、データベースマネージャがミニインデックス#1 1302及びミニインデックス#2 1304に対するドレインアクションを完了したことに応答して、データベースマネージャは、新たなミニインデックス#1、2 1310に対して切り替えアクションを実行することで、新たなミニインデックス#1、2 1310に対してすべての新たな着信トランザクションを実行する。
【0104】
ここで
図14を参照すると、ページ分割プロセスの例を示す図が、例示的な実施形態に従って示されている。ページ分割プロセス1400は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。本例において、ページ分割プロセス1400は、ミニインデックス#1 1402及びミニインデックス#2 1404を含む。1406において、データベースマネージャは、キー値25をミニインデックス#2 1404のルートページからミニインデックス#1 1402のルートページにコピーする。加えて、データベースマネージャは、キー値8から15をミニインデックス#2 1404のリーフページからミニインデックス#1 1402のリーフページにコピーする。1408において、キー値6から16を含むリーフページがミニインデックス#1 1402において満杯(full)であることをデータベースマネージャが決定したことに応答して、データベースマネージャは、統合プロセス中にそのリーフページのページ分割を実行することで、それぞれキー値6から11及び12から16を含む2つの新たなリーフページを形成する。ミニインデックス#1 1402及びミニインデックス#2 1404に対してすべての既存のトランザクションを実行した後、データベースマネージャは、将来の削除のためにマーク付けされていたすべてのページを除去して、ハイバネートとしてマーク付けされていたすべてのキー値及びページをウェイクアップさせる。したがって、例示的な実施形態は、2つのミニインデックスの統合中に、ミニインデックスアクセスを停止させることなくページ分割動作を可能にする。
【0105】
ここで
図15を参照すると、インデックス空間行列更新プロセスの例を示す図が、例示的な実施形態に従って示されている。インデックス空間行列更新プロセス1500は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。データベースマネージャは、2つのミニインデックスの各統合の後、インデックス空間行列更新プロセス1500を実行する。
【0106】
本例において、インデックス空間行列更新プロセス1500は、ミニインデックス統合前のインデックス空間行列を表すインデックス空間行列1504に対応するミニインデックスキー値範囲1502、及び、ミニインデックス統合後のインデックス空間行列を表すインデックス空間行列1508に対応するミニインデックスキー値範囲1506を含む。ミニインデックス統合前のミニインデックスキー値範囲1502は、ミニインデックス#1 1510の場合は5から40であり、ミニインデックス#2 1512の場合は22から60であり、ミニインデックス#3 1514の場合は10から35であり、ミニインデックス#4 1516の場合は16から55である。本例において、データベースマネージャは、ミニインデックス#1 1510及びミニインデックス#3 1514を統合する。結果として、ミニインデックス統合後のミニインデックスキー値範囲1506は、ミニインデックス#1、3 1518の場合は5から40であり、ミニインデックス#2 1512の場合は22から60であり、ミニインデックス#4 1516の場合は16から55である。
【0107】
ここで
図16を参照すると、統合プロセスなしのデータ動作の例を示す図が、例示的な実施形態に従って示されている。統合プロセスなしのデータ動作1600は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。本例において、統合プロセスなしのデータ動作1600は、ミニインデックス#1 1602、ミニインデックス#2 1604、ミニインデックス#3 1606、及びキー値範囲1608を含む。キー値範囲1608は、ミニインデックス#1 1602の場合は5から40であり、ミニインデックス#2 1604の場合は22から60であり、ミニインデックス#3 1606の場合は16から55である。
【0108】
1610において、データベースマネージャは、着信トランザクションに対応するキー値35に関連付けられた更新、挿入、又は削除動作のうち1つを実行する。データベースマネージャは、データ整合性を維持すべく、ミニインデックスアクセス中にテーブル空間に対してデータの更新、削除及び挿入動作を実行する。本例において、データベースマネージャは、ミニインデックス統合が実行されていないとき(例えば、ミニインデックス#1 1602、ミニインデックス#2 1604、又はミニインデックス#3 1606のうちいずれにも統合が現在実行されていないとき)、データの更新、削除又は挿入動作のうち1つを実行する。
【0109】
非固有ミニインデックスに対するデータ挿入動作の場合、データベースマネージャは、キー値35を挿入するためにミニインデックスリーフページが利用可能であるかどうかに応じて、ミニインデックス#1 1602、ミニインデックス#2 1604、又はミニインデックス#3 1606のいずれかにキー値35を挿入し得る。固有ミニインデックスに対するデータ挿入動作の場合、データベースマネージャは、ミニインデックス#1 1602、ミニインデックス#2 1604、及びミニインデックス#3 1606の各々を検索することで、複製キー値35が存在しないことを確実にし、複製キー値35が存在しない場合には、次に、データベースマネージャは、キー値35を挿入するためにミニインデックスリーフページが利用可能であるかどうかに応じて、ミニインデックス#1 1602、ミニインデックス#2 1604、又はミニインデックス#3 1606のいずれかにキー値35を挿入する。固有ミニインデックスは、複製(すなわち、重複した)キー値を許容しないことに留意されたい。これに対して、非固有ミニインデックスは、複製されたキー値を含み得る。非固有又は固有ミニインデックスのいずれかに対するデータの削除動作の場合、データ削除動作のためのキー値35及び対応する行識別子が見つかるまで、データベースマネージャは、ミニインデックス#1 1602、ミニインデックス#2 1604、及びミニインデックス#3 1606を検索する。データ更新動作の場合、データベースマネージャはまず、古い値を削除して、次に、データ更新動作に対応する新たな値を挿入する。
【0110】
ここで
図17を参照すると、統合プロセス中のデータ挿入動作の例を示す図が、例示的な実施形態に従って示されている。統合プロセス中のデータ挿入動作1700は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。本例において、統合プロセス中のデータ挿入動作1700は、ミニインデックス#1 1702、ミニインデックス#2 1704、ミニインデックス#3 1706、及びキー値範囲1708を含む。キー値範囲1708は、ミニインデックス#1 1702の場合は5から40であり、ミニインデックス#2 1704の場合は22から60であり、ミニインデックス#3 1706の場合は16から55である。
【0111】
1710において、データベースマネージャは、ミニインデックス#3 1706をミニインデックス#1 1702に統合している中の着信トランザクションに対応するキー値20に関連付けられた挿入動作を実行する。データベースマネージャは、データ整合性を維持すべく、ミニインデックスアクセス中にテーブル空間に対してデータ挿入動作を実行する。ミニインデックスの統合中の挿入動作の場合、データベースマネージャは、上記の
図16の例において説明されたような固有及び非固有ミニインデックスのために同じ挿入ルールに従い、キー値20のデータ挿入動作のための候補ミニインデックス及びリーフページを特定する。加えて、データベースマネージャは、候補ミニインデックス(すなわち、ミニインデックス#1 1702)がターゲットミニインデックスであることを保証する。
【0112】
ここで
図18を参照すると、統合プロセス中のデータ削除及び更新動作の例を示す図が、例示的な実施形態に従って示されている。統合プロセス中のデータ削除及び更新動作1800は、例えば、
図2におけるデータベースマネージャ218等のデータベースマネージャによって実装され得る。本例において、統合プロセス中のデータ削除及び更新動作1800は、ミニインデックス#1 1802、ミニインデックス#2 1804、ミニインデックス#3 1806、及びキー値範囲1808を含む。キー値範囲1808は、ミニインデックス#1 1802の場合は5から40であり、ミニインデックス#2 1804の場合は22から60であり、ミニインデックス#3 1806の場合は16から55である。
【0113】
1810において、データベースマネージャは、ミニインデックス#3 1806をミニインデックス#1 1802に統合している中の着信トランザクションに対応するキー値20に関連付けられたデータの削除又は更新動作のうち1つを実行する。データベースマネージャは、データ整合性を維持すべく、ミニインデックスアクセス中にテーブル空間に対してデータ削除及び更新動作を実行する。
【0114】
ミニインデックスの統合中のデータ削除動作の場合、1812において、キー値20がまだミニインデックス#3 1806からミニインデックス#1 1802にコピーされていない場合、次に、データベースマネージャは、ソースミニインデックス#3 1806からキー値20のみを削除する。しかしながら、キー値20がミニインデックス#3 1806からミニインデックス#1 1802に既にコピーされた場合、次に、データベースマネージャは、ターゲットミニインデックス#1 1802及びミニインデックス#3 1806の両方からキー値20を削除する。データベースマネージャは、「削除予定の(to be deleted)」キー値がソースミニインデックス(例えば、ミニインデックス#3 1806)からターゲットミニインデックス(例えば、ミニインデックス#1 1802)に既にコピーされているかどうかを決定するべく、将来の削除フラグを利用することに留意されたい。ミニインデックスの統合中の更新動作の場合、データベースマネージャはまず古い値を削除し、次に新たな値を挿入する。
【0115】
ここで
図19を参照すると、インデックス検索の効率及び利用可能性を向上させるためのプロセスを示すフローチャートが、例示的な実施形態に従って示されている。
図19に示されているプロセスは、例えば、
図1におけるサーバ104又は
図2におけるデータ処理システム200等のコンピュータにおいて実装され得る。例えば、
図19に示されたプロセスは、
図2におけるデータベースマネージャ218において実装され得る。
【0116】
プロセスは、コンピュータが、リレーショナルデータベースのテーブル空間に対応する空間マップページに基づいて、リレーショナルデータベースに格納されたデータの複数の論理セグメントを生成したときに開始される(段階1902)。加えて、コンピュータは、複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列に構築することで、テーブル空間に対応する複数のミニインデックスを形成する(段階1904)。さらに、コンピュータは、複数のミニインデックスの各それぞれのミニインデックスのそれぞれのキー値範囲に対応する境界値を識別する(段階1906)。
【0117】
その後、コンピュータは、複数のミニインデックスの各それぞれのミニインデックスのそれぞれのキー値範囲に対応する境界値を昇順に順序付けて、順序付けられた境界値を形成する(段階1908)。コンピュータは、各それぞれのミニインデックスのそれぞれのキー値範囲に対応する順序付けられた境界値を使用することで複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる(段階1910)。
【0118】
コンピュータは、ミニインデックス間における識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、ミニインデックスへのアクセスを停止させることなく複数のミニインデックスのミニインデックスをバックグラウンドにおいて非同期的に統合する(段階1912)。コンピュータは、インデックス空間行列を使用して、ミニインデックスへのアクセスを停止させることなくミニインデックスの統合中において顧客トランザクションに対応するデータ更新、削除及び挿入動作を実行する(段階1914)。その後、プロセスは終了する。
【0119】
ここで
図20を参照すると、統合ポリシーに従ってミニインデックスを統合するプロセスを示すフローチャートが、例示的な実施形態に従って示されている。
図20に示されているプロセスは、例えば、
図1におけるサーバ104又は
図2におけるデータ処理システム200等のコンピュータにおいて実装され得る。例えば、
図20に示されたプロセスは、
図2におけるデータベースマネージャ218において実装され得る。
【0120】
上記プロセスは、コンピュータが、2つのミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、2つのミニインデックスへのアクセスを停止することなく複数のミニインデックスのうち2つのミニインデックスを統合するプロセスを開始したときに開始される(段階2002)。2つのミニインデックスを統合するプロセスを開始したことに応答して、コンピュータは、2つのミニインデックス間の識別されたキー値重複の量がゼロ(nil)であるかどうかを決定する(段階2004)。2つのミニインデックス間の識別されたキー値重複の量がゼロであり、段階2004のyes出力であるとコンピュータが決定した場合、次に、コンピュータは、2つのミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って2つのミニインデックスを統合する(段階2006)。その後、プロセスは終了する。2つのミニインデックス間の識別されたキー値重複の量がゼロではなく、段階2004のno出力であるとコンピュータが決定した場合、次に、コンピュータは、2つのミニインデックス間の識別されたキー値重複の量が、規定量の重複よりも少ないかどうかを決定する(段階2008)。
【0121】
2つのミニインデックス間の識別されたキー値重複の量が規定量の重複よりも少なく、段階2008のyes出力であるとコンピュータが決定した場合、次に、コンピュータは、第2統合ポリシーに従って重複キー値を2つのミニインデックスのソースミニインデックスからターゲットミニインデックスに再配分して、2つのミニインデックス間のキー値重複を除去する(段階2010)。2つのミニインデックス間のキー値重複を除去した後、コンピュータは、ソースミニインデックスのルートページ及びリーフページをターゲットミニインデックスのルートページ及びリーフページとマージすることによって、2つのミニインデックスを統合する(段階2012)。その後、プロセスは終了する。
【0122】
再び段階2008に戻ると、2つのミニインデックス間の識別されたキー値重複の量が重複の規定量よりも少なくなく、段階2008のno出力であるとコンピュータが決定した場合、次に、コンピュータは、2つのミニインデックス間の識別されたキー値重複の量が重複の規定量よりも大きい又はそれに等しいと決定する(段階2014)。2つのミニインデックス間の識別されたキー値重複の量が重複の規定量よりも大きい又はそれに等しいと決定したことに応答して、コンピュータは、2つのミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する(段階2016)。その後、プロセスは終了する。
【0123】
ここで
図21を参照すると、ミニインデックス統合中のミニインデックス利用可能性を維持するプロセスを示すフローチャートが、例示的な実施形態に従って示されている。
図21に示されているプロセスは、例えば、
図1におけるサーバ104又は
図2におけるデータ処理システム200等のコンピュータにおいて実装され得る。例えば、
図21に示されたプロセスは、
図2におけるデータベースマネージャ218において実装され得る。
【0124】
上記プロセスは、コンピュータが、2つのミニインデックスの統合中に、キー値をソースミニインデックスからターゲットミニインデックスにコピーしたときに開始される(段階2102)。ソースミニインデックスからターゲットミニインデックスにキー値をコピーした後、コンピュータは、ソースミニインデックスからターゲットミニインデックスにコピーされたキー値を、ソースミニインデックスにおける将来の削除フラグでマークする(段階2104)。加えて、コンピュータは、ソースミニインデックスからターゲットミニインデックスにコピーされたキー値を、ターゲットミニインデックスにおけるハイバネートフラッグでマークする(段階2106)。さらに、コンピュータは、ソースミニインデックス及びターゲットミニインデックスに対して既存のトランザクションを実行する(段階2108)。
【0125】
その後、コンピュータは、ソースミニインデックスに対するすべての既存のトランザクションが完了した後、ソースミニインデックスに対してドレインアクションを実行することで、将来の削除フラグでマーク付けされたすべてのキー値を、ソースミニインデックスから除去する(段階2110)。また、コンピュータは、ソースミニインデックスに対するドレインアクションを実行した後、ターゲットミニインデックスにおいてハイバネートフラッグでマーク付けされたすべてのキー値に対してウェイクアップアクションを実行することで、ミニインデックスアクセスを停止させることなくインデックス切り替えを実装する(段階2112)。また、コンピュータは、ターゲットミニインデックスに対してすべての新たな着信トランザクションを実行する(段階2114)。その後、プロセスは終了する。
【0126】
したがって、本発明の例示的な実施形態は、インデックスを複数のミニインデックスに論理的に分割して次にそのミニインデックスを統合することによってリレーショナルデータベースのためのインデックスが再編成、低下又はインポートされたときにリレーショナルデータベースにおけるインデックス利用可能性及びシステム性能を向上させようとし、その一方、ミニインデックスの統合中に、リレーショナルデータベースのテーブル空間に対して、顧客トランザクションに対応するデータ更新、削除及び挿入動作を行うことを継続的に可能にするためのコンピュータ実装方法、コンピュータシステム、及びコンピュータプログラム製品を提供する。本発明の様々な実施形態の説明は、例示の目的で提示されてきたが、包括的であること、又は、開示される実施形態に限定されることを意図するものではない。説明された実施形態の範囲から逸脱することなく、当業者には多くの修正及び変形が明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実際の適用又は市場で見られる技術に対する技術的改善を最適に説明し、又は、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択された。
【手続補正書】
【提出日】2024-01-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータが、各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる段階;
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する段階;及び
前記コンピュータが、前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する段階
を備える、コンピュータ実装方法。
【請求項2】
前記コンピュータが、前記データベースのテーブル空間に対応する空間マップページに基づいて、前記データベースに格納されたデータの複数の論理セグメントを生成する段階;及び
前記コンピュータが、前記複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列で構築することで、前記データベースの前記テーブル空間に対応する前記複数のミニインデックスを形成する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記コンピュータが、前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する境界値を識別する段階;及び
前記コンピュータが、前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序することで、前記順序付けられた境界値を形成する段階
をさらに備える、請求項
1又は2に記載のコンピュータ実装方法。
【請求項4】
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量に対応する前記複数の統合ポリシーの前記特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスの前記ミニインデックスの統合を開始する段階;
前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量がゼロであるかどうかを決定する段階;及び
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであると前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って前記ミニインデックスを統合する段階
をさらに備える、請求項
1又は2に記載のコンピュータ実装方法。
【請求項5】
前記ミニインデックス間の識別されたキー値重複の前記量がゼロではないと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量が規定量の重複よりも少ないかどうかを決定する段階;
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少ないと前記コンピュータが決定したことに応答して、前記コンピュータが、第2統合ポリシーに従って重複キー値をソースミニインデックスから前記ミニインデックスのターゲットミニインデックスに再配分して、前記ミニインデックス間のキー値重複を除去する段階;及び
前記ミニインデックス間の前記キー値重複を除去したことに応答して、前記コンピュータが、前記ソースミニインデックスのルートページ及びリーフページを前記ターゲットミニインデックスのルートページ及びリーフページとマージすることによって、前記ミニインデックスを統合する段階
をさらに備える、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少なくないと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックス間の識別されたキー値重複の前記量は前記規定量の重複よりも大きい又はそれに等しいと決定する段階;及び
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと前記コンピュータが決定したことに応答して、前記コンピュータが、前記ミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する段階
をさらに備える、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記コンピュータが、前記ミニインデックスの統合中にキー値をソースミニインデックスからターゲットミニインデックスにコピーする段階;及び
前記コンピュータが前記キー値を前記ソースミニインデックスから前記ターゲットミニインデックスにコピーしたことに応答して、前記コンピュータが、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされたキー値を、前記ソースミニインデックスにおける将来の削除フラグでマークする段階とともに、前記コンピュータが、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされた前記キー値を、前記ターゲットミニインデックスにおけるハイバネートフラッグでマークする段階
をさらに備える、請求項
1又は2に記載のコンピュータ実装方法。
【請求項8】
前記コンピュータが、前記ソースミニインデックス及び前記ターゲットミニインデックスに対して既存のトランザクションを実行する段階;及び
前記コンピュータが、前記ソースミニインデックスに対してドレインアクションを実行することで、前記将来の削除フラグでマーク付けされたキー値を、前記ソースミニインデックスに対する前記既存のトランザクションが完了したことに応答して前記ソースミニインデックスから除去する段階
をさらに備える、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記コンピュータが、前記ソースミニインデックスに対して前記ドレインアクションを実行したことに応答して、前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされたキー値に対してウェイクアップアクションを実行し、ミニインデックスアクセスを停止させることなくインデックス切り替えを実装する段階;及び
前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされた前記キー値に対して前記ウェイクアップアクションを実行したことに応答して、前記コンピュータが、前記ターゲットミニインデックスに対して新たな着信トランザクションを実行する段階
をさらに備える、請求項8に記載のコンピュータ実装方法。
【請求項10】
バスシステム;
前記バスシステムに接続されたストレージデバイス、ここで、前記ストレージデバイスはプログラム命令を格納する;及び
前記バスシステムに接続されたプロセッサ
を備え、ここで、前記プロセッサは:
各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる手順;
前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する手順;及び
前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する手順
を行うための前記プログラム命令を実行する
コンピュータシステム。
【請求項11】
前記プロセッサはさらに:
前記データベースのテーブル空間に対応する空間マップページに基づいて、前記データベースに格納されたデータの複数の論理セグメントを生成する手順;及び
前記複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列で構築することで、前記データベースの前記テーブル空間に対応する前記複数のミニインデックスを形成する手順 を行うための前記プログラム命令を実行する、請求項10に記載のコンピュータシステム。
【請求項12】
前記プロセッサはさらに:
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する境界値を識別する手順;及び
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序することで、前記順序付けられた境界値を形成する手順
を行うための前記プログラム命令を実行する、請求項1
0又は11に記載のコンピュータシステム。
【請求項13】
前記プロセッサはさらに:
前記ミニインデックス間の識別されたキー値重複の前記量に対応する前記複数の統合ポリシーの前記特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスの前記ミニインデックスの統合を開始する手順;
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであるかどうかを決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであると決定したことに応答して、前記ミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って前記ミニインデックスを統合する手順
を行うための前記プログラム命令を実行する、請求項1
0又は11に記載のコンピュータシステム。
【請求項14】
前記プロセッサはさらに:
前記ミニインデックス間の識別されたキー値重複の前記量がゼロではないと決定したことに応答して、前記ミニインデックス間の識別されたキー値重複の前記量が規定量の重複よりも少ないかどうかを決定する手順;
第2統合ポリシーに従って重複キー値をソースミニインデックスから前記ミニインデックスのターゲットミニインデックスに再配分して、前記ミニインデックス間のキー値重複を除去することとともに、前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少ないと決定したことに応答して、前記ソースミニインデックスのルートページ及びリーフページを前記ターゲットミニインデックスのルートページ及びリーフページとマージすることによって、前記ミニインデックスを統合する手順;
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少なくないと決定したことに応答して、前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと決定したことに応答して、前記ミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する手順
を行うための前記プログラム命令を実行する、請求項13に記載のコンピュータシステム。
【請求項15】
コンピュータ
に、
各それぞれのミニインデックスのキー値範囲に対応する順序付けられた境界値を使用することでデータベースの複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる手順
;
前記ミニインデックス間の識別されたキー値重複の量に対応する複数の統合ポリシーのうちの特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを非同期的に統合する手順;及
び
前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する手順
を実行させる、コンピュータプログラ
ム。
【請求項16】
前記コンピュータに、
前記データベースのテーブル空間に対応する空間マップページに基づいて、前記データベースに格納されたデータの複数の論理セグメントを生成する手順;及
び
前記複数の論理セグメントの各それぞれの論理セグメントに対してミニインデックスを並列で構築することで、前記データベースの前記テーブル空間に対応する前記複数のミニインデックスを形成する手順
をさら
に実行させる、請求項15に記載のコンピュータプログラ
ム。
【請求項17】
前記コンピュータに、
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する境界値を識別する手順;及
び
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序することで、前記順序付けられた境界値を形成する手順
をさら
に実行させる、請求項1
5又は16に記載のコンピュータプログラ
ム。
【請求項18】
前記コンピュータに、
前記ミニインデックス間の識別されたキー値重複の前記量に対応する前記複数の統合ポリシーの前記特定の統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスの前記ミニインデックスの統合を開始する手順
;
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであるかどうかを決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量がゼロであると前記コンピュータが決定したことに応答して
、前記ミニインデックスのルートページ及びリーフページを直接マージすることによって、第1統合ポリシーに従って前記ミニインデックスを統合する手順
をさら
に実行させる、請求項15又は16に記載のコンピュータプログラム。
【請求項19】
前記コンピュータに、
前記ミニインデックス間の識別されたキー値重複の前記量がゼロではないと前記コンピュータが決定したことに応答して
、前記ミニインデックス間の識別されたキー値重複の前記量が規定量の重複よりも少ないかどうかを決定する手順;
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少ないと前記コンピュータが決定したことに応答して
、第2統合ポリシーに従って重複キー値をソースミニインデックスから前記ミニインデックスのターゲットミニインデックスに再配分して、前記ミニインデックス間のキー値重複を除去する手順;及び
前記ミニインデックス間の前記キー値重複を除去したことに応答して
、前記ソースミニインデックスのルートページ及びリーフページを前記ターゲットミニインデックスのルートページ及びリーフページとマージすることによって、前記ミニインデックスを統合する手順
をさら
に実行させる、請求項18に記載のコンピュータプログラ
ム。
【請求項20】
前記コンピュータに、
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも少なくないと前記コンピュータが決定したことに応答して
、前記ミニインデックス間の識別されたキー値重複の前記量は前記規定量の重複よりも大きい又はそれに等しいと決定する手順;及び
前記ミニインデックス間の識別されたキー値重複の前記量が前記規定量の重複よりも大きい又はそれに等しいと前記コンピュータが決定したことに応答して
、前記ミニインデックスのすべてのリーフページのリーフスキャン及びマージソートを実行することによって、第3統合ポリシーに従って新たなミニインデックスを構築する手順
をさら
に実行させる、請求項19に記載のコンピュータプログラ
ム。
【請求項21】
前記コンピュータに、
前記ミニインデックスの統合中にキー値をソースミニインデックスからターゲットミニインデックスにコピーする手順;及び
前記コンピュータが前記キー値を前記ソースミニインデックスから前記ターゲットミニインデックスにコピーしたことに応答して
、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされたキー値を、前記ソースミニインデックスにおける将来の削除フラグでマークする手順とともに
、前記ソースミニインデックスから前記ターゲットミニインデックスにコピーされた前記キー値を、前記ターゲットミニインデックスにおけるハイバネートフラッグでマークする手順
をさら
に実行させる、請求項1
5又は16に記載のコンピュータプログラ
ム。
【請求項22】
前記コンピュータに、
前記ソースミニインデックス及び前記ターゲットミニインデックスに対して既存のトランザクションを実行する手順;及
び
前記ソースミニインデックスに対してドレインアクションを実行することで、前記将来の削除フラグでマーク付けされたキー値を、前記ソースミニインデックスに対する前記既存のトランザクションが完了したことに応答して前記ソースミニインデックスから除去する手順
をさら
に実行させる、請求項21に記載のコンピュータプログラ
ム。
【請求項23】
前記コンピュータに、
前記ソースミニインデックスに対して前記ドレインアクションを実行したことに応答して、前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされたキー値に対してウェイクアップアクションを実行し、ミニインデックスアクセスを停止させることなくインデックス切り替えを実装する手順;及び
前記ターゲットミニインデックスにおける前記ハイバネートフラッグでマーク付けされた前記キー値に対して前記ウェイクアップアクションを実行したことに応答して
、前記ターゲットミニインデックスに対して新たな着信トランザクションを実行する手順
をさら
に実行させる、請求項22に記載のコンピュータプログラ
ム。
【請求項24】
データベースの複数のミニインデックスのそれぞれのミニインデックスのキー値範囲に対応する境界値を識別する段階;
前記複数のミニインデックスの各それぞれのミニインデックスの前記キー値範囲に対応する前記境界値を昇順に順序付けて、順序付けられた境界値を形成する段階;及び
各それぞれのミニインデックスのキー値範囲に対応する前記順序付けられた境界値を使用することで前記データベースの前記複数のミニインデックスに対応するインデックス空間行列を構築し、冗長ミニインデックスアクセスを除去することによってインデックス検索の効率を向上させる段階
を備える、コンピュータ実装方法。
【請求項25】
前記ミニインデックス間の識別されたキー値重複の量に対応する統合ポリシーを使用して、前記ミニインデックスへのアクセスを停止させることなく前記複数のミニインデックスのミニインデックスを統合する段階;及び
前記インデックス空間行列を使用して、前記ミニインデックスへのアクセスを停止させることなく前記ミニインデックスの統合中においてトランザクションに対応するデータ動作を実行する段階
をさらに備える、請求項24に記載のコンピュータ実装方法。
【国際調査報告】