(57)【要約】  本出願は、一般に、データ処理方法および装置に関する。本明細書で開示する１つのデータ処理方法は：データ変更に基づいて書込み可能スナップショットを作成すること；書込み可能スナップショットを別個の所定の作成時間に複製することによって複数の読取り専用（「ＲＯ」）スナップショットを作成すること；データ照会要求を受信すること；および最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通してデータ照会を実施することを含む。このアプローチは、データ変更とデータ照会の分離を達成して、効率的なリアルタイム更新を可能にする。さらに、高速インデックス化および逆インデックス化により、照会効率がさらに改善される。追加として、データがデータ列内に格納され、各列は、固定のブロックサイズに従って複数のデータブロックに分割され得、各データブロックは、同じ長さを有する。データを変更する場合、変更の影響は、他のデータブロックに影響を及ぼすことなく、変更されているデータブロックに制限され得、それは、データ変更によって被る資源消費を減らす。【選択図】図１
2018538596.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶システムによって実行されるデータ処理方法であって、
データ変更に基づいて書込み可能スナップショットを作成することと、
前記書込み可能スナップショットを別個の所定の作成時間に複製することによって複数の読取り専用（「ＲＯ」）スナップショットを作成することと、
データ照会要求を受信することと、
最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通して前記データ照会を実施することと
を含む、方法。
【請求項２】
前記ＲＯスナップショットが、前記書込み可能スナップショットと同じデータ構造を共有し、前記データ構造がデータをデータ列内に格納し、各データ列は、１つ以上のデータブロックを含み、各データブロックは同じ数のデータサブブロックを含む、請求項１に記載の方法。
【請求項３】
データ変更に基づいて書込み可能スナップショットを作成するステップが、
前記最新の作成時間をもつ前記ＲＯスナップショットを決定することと、
前記決定されたＲＯスナップショットと関連付けられたデータ情報を予め設定されたスナップショット内に複製することと、
前記予め設定されたスナップショット内で対象データの位置を決定することと、
前記対象データを変更することと、
前記変更された対象データに基づいて、前記予め設定されたスナップショットと関連付けられたデータ情報を更新することと、
前記更新されたデータ情報に基づいて、前記書込み可能スナップショットを作成することと
を含む、請求項１または請求項２に記載の方法。
【請求項４】
前記データ変更がデータを挿入することを含み、かつ
前記方法は、
前記対象データが前記予め設定されたスナップショット内で格納されるデータサブブロックを決定することと、
データ記憶空間内の前記決定されたデータサブブロックに対応する位置に前記対象データを挿入することと、
前記挿入されたデータのデータ情報に基づいて前記予め設定されたスナップショットと関連付けられた前記データ情報を更新することと
をさらに含む、請求項３に記載の方法。
【請求項５】
前記データ変更がデータを削除することを含み、かつ
前記方法は、
前記対象データが前記予め設定されたスナップショット内で格納されるデータサブブロックを決定することと、
データ記憶空間内の前記決定されたデータサブブロックに対応する位置内の前記対象データを削除することと、
削除すべき前記予め設定されたスナップショット内の前記決定されたデータサブブロックに対応するデータラベルを変更することと
をさらに含む、請求項３に記載の方法。
【請求項６】
前記データ変更がデータを更新することを含み、かつ
前記方法は、
前記対象データが前記予め設定されたスナップショット内で格納されるデータブロックを決定することと、
前記決定されたデータブロックを複製することと、
前記対象データが前記複製されたデータブロック内で格納されるデータサブブロックを決定することと、
データ記憶空間内の前記決定されたデータサブブロックに対応する位置内の前記対象データを更新することと、
更新されたデータブロックを作成することと、
前記予め設定されたスナップショット内の対応するデータブロックを前記更新されたデータブロックで置き換えることと
をさらに含む、請求項３に記載の方法。
【請求項７】
前記データブロック内に格納された複数のデータ項目が数値を含み、かつ
前記データ照会をインデックス化を通して実施することが
前記データ照会要求に基づいて、照会されているデータの数値を決定することと、
前記最新の作成時間をもつ前記ＲＯスナップショットを決定することと、
前記決定されたＲＯスナップショット内の各データブロックの数値範囲を決定することと、
照会されている前記データの前記数値が前記数値範囲内であるかどうかの決定に基づいて、各データブロックをスクリーニングすることと、
前記スクリーニングされたデータブロックをスキャンし、データ照合を実行して、データ照会を完了することと
をさらに含む、請求項２に記載の方法。
【請求項８】
前記データブロック内に格納された複数のデータ項目が数値を含み、かつ
前記データ照会を実施することが、
前記データ照会要求に基づいて、照会されているデータの数値を決定することと、
データが数値順になっている、各データブロック内のデータのデータシーケンスを作成することと、
二分探索および照会されている前記データの前記数値を使用して、前記データシーケンス内で探索して、前記データ照会を完了することと
をさらに含む、請求項２に記載の方法。
【請求項９】
データシーケンスを作成することが、
各データブロック内の前記データを逆インデックス化することにより、データが数値昇順になっているデータシーケンスを作成すること
をさらに含む、請求項８に記載の方法。
【請求項１０】
データ記憶システムに対して使用されるデータ処理装置であって、
データ変更に基づいて書込み可能スナップショットを作成するために使用される、第１の作成モジュールと、
前記書込み可能スナップショットを別個の所定の作成時間に複製することによって複数のＲＯスナップショットを作成するために使用される、第２の作成モジュールと、
データ照会要求を受信することと、最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通して前記データ照会を実施することとのために使用される、照会モジュールと
を備える、データ処理装置。
【請求項１１】
前記ＲＯスナップショットが、前記書込み可能スナップショットと同じデータ構造を共有し、前記データ構造がデータをデータ列内に格納し、各データ列は、１つ以上のデータブロックを含み、各データブロックは同じ数のデータサブブロックを含む、請求項１０に記載の装置。
【請求項１２】
前記第１の作成モジュールが、
前記最新の作成時間をもつ前記ＲＯスナップショットを決定することと、
前記決定されたＲＯスナップショットと関連付けられたデータ情報を予め設定されたスナップショット内に複製することと、
前記予め設定されたスナップショット内で対象データの位置を決定することと、
前記対象データを変更することと、
前記変更された対象データに基づいて、前記予め設定されたスナップショットと関連付けられたデータ情報を更新することと、
前記更新されたデータ情報に基づいて、前記書込み可能スナップショットを作成することと
を行うために使用される、請求項１０または請求項１１に記載の装置。
【請求項１３】
前記データ変更がデータを挿入することを含み、かつ
前記第１の作成モジュールが、
前記対象データが前記予め設定されたスナップショット内で格納されるデータサブブロックを決定することと、
データ記憶空間内の前記決定されたデータサブブロックに対応する位置に前記対象データを挿入することと、
前記挿入されたデータのデータ情報に基づいて前記予め設定されたスナップショットと関連付けられた前記データ情報を更新することと
を行うためにさらに使用される、請求項１２に記載の装置。
【請求項１４】
前記データ変更がデータを削除することを含み、かつ
前記第１の作成モジュールが、
前記対象データが前記予め設定されたスナップショット内で格納されるデータサブブロックを決定することと、
データ記憶空間内の前記決定されたデータサブブロックに対応する位置内の前記対象データを削除することと、
削除される前記予め設定されたスナップショット内の前記決定されたデータサブブロックに対応するデータラベルを変更することと
を行うためにさらに使用される、請求項１２に記載の装置。
【請求項１５】
前記データ変更がデータを更新することを含み、かつ
前記第１の作成モジュールが、
前記対象データが前記予め設定されたスナップショット内で格納されるデータブロックを決定することと、
前記決定されたデータブロックを複製することと、
前記対象データが前記複製されたデータブロック内で格納されるデータサブブロックを決定することと、
データ記憶空間内の前記決定されたデータサブブロックに対応する位置内の前記対象データを更新することと、
更新されたデータブロックを作成することと、
前記予め設定されたスナップショット内の対応するデータブロックを前記更新されたデータブロックで置き換えることと
を行うためにさらに使用される、請求項１２に記載の装置。
【請求項１６】
前記データブロック内に格納された複数のデータ項目が数値を含み、かつ
前記照会モジュールが、
前記データ照会要求に基づいて、照会されているデータの数値を決定することと、
前記最新の作成時間をもつ前記ＲＯスナップショットを決定することと、
前記決定されたＲＯスナップショット内の各データブロックの数値範囲を決定することと、
照会されている前記データの前記数値が前記数値範囲内であるかどうかの決定に基づいて、各データブロックをスクリーニングすることと、
前記スクリーニングされたデータブロックをスキャンし、データ照合を実行して、データ照会を完了することと
を行うためにさらに使用される、請求項１１に記載の装置。
【請求項１７】
前記データブロック内に格納された複数のデータ項目が数値を含み、かつ
前記照会モジュールが、
前記データ照会要求に基づいて、照会されているデータの数値を決定することと、
データが数値順になっている、各データブロック内のデータのデータシーケンスを作成することと、
二分探索および照会されている前記データの前記数値を使用して、前記データシーケンス内で探索して、前記データ照会を完了することと
を行うためにさらに使用される、請求項１１に記載の装置。
【請求項１８】
データシーケンスを作成することが、
各データブロック内の前記データを逆インデックス化することにより、データが数値昇順になっているデータシーケンスを作成すること
をさらに含む、請求項１７に記載の装置。
【請求項１９】
命令のセットを格納する非一時的コンピュータ可読媒体であって、前記命令のセットは、データ記憶システムにデータ処理のための方法を実行させるために、前記データ記憶システムの少なくとも１つのプロセッサによって実行可能であり、前記方法が、
データ変更に基づいて書込み可能スナップショットを作成することと、
前記書込み可能スナップショットを別個の所定の作成時間に複製することによって複数の読取り専用（「ＲＯ」）スナップショットを作成することと、
データ照会要求を受信することと、
最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通して前記データ照会を実施することと
を含む、非一時的コンピュータ可読媒体。
【請求項２０】
データ変更に基づいて書込み可能スナップショットを作成するステップが、
前記最新の作成時間をもつ前記ＲＯスナップショットを決定することと、
前記決定されたＲＯスナップショットと関連付けられたデータ情報を予め設定されたスナップショット内に複製することと、
前記予め設定されたスナップショット内で対象データの位置を決定することと、
前記対象データを変更することと、
前記変更された対象データに基づいて、前記予め設定されたスナップショットと関連付けられたデータ情報を更新することと、
前記更新されたデータ情報に基づいて、前記書込み可能スナップショットを作成することと
を含む、請求項１９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
［0001］  本特許出願は、２０１５年１１月４日に出願された、中国特許出願第２０１５１０７４２５６１．３号に対する優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【０００２】
［0002］  本開示は、一般に、データ処理の分野に関し、より詳細には、データ処理の方法およびデータ処理装置に関する。
【背景技術】
【０００３】
［0003］  多くの既存のデータ処理方法は、ＯＬＴＰ（オンライントランザクション処理）データベース、ＯＬＡＰ（オンライン分析処理）データベース、およびＩｎｆｏｂｒｉｇｈｔデータベースに基づく。最も一般的に使用されるＯＬＴＰデータベースは、レコードの挿入、更新、および削除の一貫性を維持するために、トランザクションログ方法を使用する。具体的には、期間（一日、一週間、または１か月）毎の初めに、新しいデータシートが作成される。取得されたデータがこの新しいデータシートにインポートされて、新しい静的インデックスが作成される。新しい静的インデックスの作成後、効率的な照会がサポートされ得るが、リアルタイムのデータ更新はサポートされない可能性がある。ＯＬＡＰデータベースは、バッチデータインポートモード（ｉｍｐｏｒｔａｔｉｏｎ  ｍｏｄｅ）を使用し、それはリアルタイムデータ照会をサポートしない。Ｉｎｆｏｂｒｉｇｈｔデータベースに関して、データ照会は、バッチデータ更新が完了した後にのみ実施でき、更新速度は従って遅い。その上、Ｉｎｆｏｂｒｉｇｈｔデータベースは、履歴バージョンデータ照会をサポートせず、従って、拡張も、分散データベースシステムで使用することもできない。
【０００４】
［0004］  これらのことから、高速なデータ更新およびデータ照会をサポートするデータ処理方法に対する必要性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
［0005］  前述した既存の技術の欠点を考慮して、本発明は、複数の読取り専用スナップショット（「ＲＯスナップショット」）および１つの書込み可能スナップショットを含み、ＲＯスナップショットの作成時間が異なっている、データ記憶システムに適用できるデータ処理方法を開示する。本明細書で開示するデータ処理方法は、以下を含む：
【０００６】
［0006］  データ変更に基づいて書込み可能スナップショットを作成すること；
【０００７】
［0007］  書込み可能スナップショットを別個の所定の作成時間に複製することによって複数の読取り専用（「ＲＯ」）スナップショットを作成すること；
【０００８】
［0008］  データ照会要求を受信すること；および
【０００９】
［0009］  最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通してデータ照会を実施すること。
【００１０】
［0010］  本発明は、データ処理装置をさらに提供する。本明細書で開示するデータ処理装置は、以下を備える：
【００１１】
［0011］  データ変更に基づいて書込み可能スナップショットを作成するために使用される、第１の作成モジュール；
【００１２】
［0012］  書込み可能スナップショットを別個の所定の作成時間に複製することによって複数の読取り専用（「ＲＯ」）スナップショットを作成するために使用される、第２の作成モジュール；ならびに
【００１３】
［0013］  データ照会要求を受信すること、および最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通してデータ照会を実施することのために使用される、照会モジュール。
【発明の効果】
【００１４】
［0014］  既存の技術と比較すると、本発明は、データ変更に基づいて書込み可能スナップショットを作成すること；書込み可能スナップショットを別個の所定の作成時間に複製することによって複数の読取り専用（「ＲＯ」）スナップショットを作成すること；データ照会要求を受信すること；および最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通してデータ照会を実施することを開示する。このようにして、データ変更とデータ照会が分離され、それは、高速なリアルタイム更新を可能にする。さらに、高速インデックス化および逆インデックス化（ｉｎｖｅｒｔ  ｉｎｄｅｘｉｎｇ）に基づいて、本発明は、照会効率を改善する。追加として、カラムにデータを格納し、各カラムが、固定ブロックサイズに基づいて複数のデータブロックに分割され得、各データブロックは同じ長さを有し得、従って、データを変更する場合、変更の影響が、他のデータブロックに影響を及ぼすことなく、変更が実行される特定のブロックに制限できる。これは、変更プロセスで生じる資源消費を減らし得る。
【００１５】
［0015］  本明細書に組み込まれて、本明細書の一部を構成する、添付の図面は、本発明と一致する実施形態を例示しており、記述と共に、本発明の原理を説明するのに役立つ。
【図面の簡単な説明】
【００１６】
【図１】［0016］例示的な実施形態に従った、データ処理方法の流れ図である。
【図２】［0017］例示的な実施形態に従った、書込み可能スナップショットの作成プロセスを例示する概略図である。
【図３】［0018］例示的な実施形態に従った、スナップショットの構造を例示する概略図である。
【図４】［0019］例示的な実施形態に従った、データ挿入後の書込み可能スナップショットの構造を例示する概略図である。
【図５】［0020］例示的な実施形態に従った、データ削除後の書込み可能スナップショットの構造を例示する概略図である。
【図６】［0021］例示的な実施形態に従った、データ更新後の書込み可能スナップショットの構造を例示する概略図である。
【図７】［0022］例示的な実施形態に従った、逆インデックスを例示する概略図である。
【図８】［0023］例示的な実施形態に従った、データ処理装置のブロック図である。
【発明を実施するための形態】
【００１７】
［0024］  以下の説明では添付の図面を参照し、図面中、異なる図面における同じ番号は、別段の指示がない限り、同じか、または類似の要素を表す。以下の例示的な実施形態の説明で記載されている実施態様は、本発明と一致する全ての実施態様を表しているわけではない。むしろ、それらは、添付の請求項で列挙されているような本発明に関連した態様と一致する装置および方法の例にすぎない。
【００１８】
［0025］  本発明は、複数のＲＯスナップショットおよび１つの書込み可能スナップショットを有し、ＲＯスナップショットの作成時間が異なっている、データ記憶システムに適用できるデータ処理方法を提供する。ＲＯスナップショットおよび書込み可能スナップショットは、データ自体ではなく、データのデータ情報（データの記述情報、および位置情報を含む）を格納する。データは、常に更新されるので、時間間隔毎に、ＲＯスナップショットが現在のデータの記述情報および位置情報に基づいて作成され、他方、書込み可能スナップショットが、データに対する現在の変更に基づいて作成される。
【００１９】
［0026］  図１を参照すると、例示的な実施形態に従った方法は、以下を含む：
【００２０】
［0027］  ステップ１０１、データ変更に基づいて書込み可能スナップショットを作成すること。
【００２１】
［0028］  具体的には、書込み可能スナップショットを作成することは、以下を含む：
【００２２】
［0029］  ステップＡ、最新の作成時間をもつＲＯスナップショットを決定すること；
【００２３】
［0030］  ステップＢ、決定されたＲＯスナップショット内のデータ情報を予め設定されたスナップショットに複製すること；
【００２４】
［0031］  ステップＣ、予め設定されたスナップショット内で変更すべきデータの位置を決定して、データを変更し、データ変更に基づいて予め設定されたスナップショット内のデータ情報を更新すること；および
【００２５】
［0032］  ステップＤ、予め設定されたスナップショット内の更新されたデータ情報に基づいて書込み可能スナップショットを作成すること。
【００２６】
［0033］  説明のための例として、初めは１つのクラス内に３０人の学生がおり、各学生はデータ項目に対応する。学生情報（記述情報および位置情報を含む）に基づいてＲＯスナップショットが作成される。最新の作成時間をもつＲＯスナップショット、例えば、ＲＯスナップショット１は、例えば、名前、性別、年齢、民族、およびクラス内での彼らの位置情報を含む、３０人の学生の記述情報を格納する。例えば、位置情報は行２、座席２であり得る。
【００２７】
［0034］  クラスに加わる新しい学生がいる場合、ＲＯスナップショット１内のデータ（３０人の学生の情報を有する）が、予め設定された空のスナップショットに複製される。複製後、新しい学生の位置が、予め設定されたスナップショットに基づいて決定され、その決定された位置に基づいて新しい学生が配置される。実際には、データが変更されるので、書込み可能スナップショットが変わる。書込み可能スナップショットは、最新の作成時間をもつＲＯスナップショットを複製した後の予め設定されたスナップショットである。予め設定されたスナップショットに基づいて３１番目の学生の位置を決定し、次いで３１番目の学生を配置した後、予め設定されたスナップショットがそれに応じて変更されて、最終的な書込み可能スナップショットは、３１人の学生の記述情報および彼らの対応する位置を含む。書込み可能スナップショット内に格納されたデータ情報は、最新のデータに対応する。
【００２８】
［0035］  後続のデータ照会では、全ての照会が、ＲＯスナップショット（例えば、図２に示すような、ＲＯ−ＳＮＡＰ１、ＲＯ−ＳＮＡＰ２、およびＲＯ−ＳＮＡＰ３）の任意の１つに関して実行できる。異なるＲＯスナップショットは異なる時間のデータに対応するので、ＲＯスナップショットを用いると、最新のデータの状態または履歴データの状態が、他のＲＯスナップショットにおける照会、または書込み可能スナップショットの作成に影響を及ぼすことなく、照会され得る。さらに、１つ以上のデータ照会が実施されている間に、データが変更でき、従って、効率的なデータ照会および変更を可能にする。
【００２９】
［0036］  現在のデータの情報が照会される場合、照会は、好ましくは、最新のＲＯスナップショット（新しいほど、その中のデータが新しい）に基づき得る。１つの書込み可能スナップショットしかなく、それは、全てのリアルタイムデータ変更に基づいて更新される。図２に示すように、最新のＲＯスナップショットＲＯ−ＳＮＡＰ３に基づいて、新しいデータ項目４を挿入する必要がある場合、最終的な書込み可能スナップショットが作成され、ＷＲ−ＤＡＴＡは、ＲＯ−ＳＮＡＰ３内の３つのデータ項目、および新しいデータ項目４を含む。前述の説明に制限されない、ＲＯスナップショットおよび書込み可能スナップショットを指定する他の方法があることが予期される。全てのスナップショットはその中に、以前のスナップショット内のデータのデータ情報（記述情報および位置情報を含む）、および以前のスナップショットと比較して追加されたデータを格納する。実際のデータが１セットしかなく、そのため、記憶空間が効率的に削減できる。予め設定された時間間隔（例えば、６０秒毎）で、現在の書込み可能スナップショットを複製することによりＲＯスナップショットが自動的に作成され得、例えば、ＲＯ−ＳＮＡＰ４が、書込み可能スナップショットＷＲ−ＤＡＴＡを複製することによって作成され得る。データ照会要求が受信されると、照会が、ＲＯスナップショットにだけ基づいて実施され得、それは、最新の作成時間をもつＲＯスナップショットまたは、他の履歴時間に作成された他のＲＯスナップショットであり得る。
【００３０】
［0037］  具体的には、ＲＯスナップショットの構造は、データがデータ列に格納される、書込み可能スナップショットの構造と一致し得る。全ての列は、１つ以上のデータブロックを含み得、各データブロックは、２列（ｉｄおよびｎａｍｅ）をもつテーブルの記憶構造である、図３に示すような、同じ数のデータサブブロックを有する。全ての列は、３つのブロックを有する。「削除ビットセット」は、対応する行内のデータが削除されているかどうかを表すラベルである。特定の適用シナリオでは。対応するデータの状態を表すために、実際の必要性に従って、他のデータラベルが設定され得ることが予期される。図３では、スナップショット内に４レコードがある（１，“ｏｎｅ”）、（２，“ｔｗｏ”）、（３，“ｔｈｒｅｅ”）、（４，“ｆｏｕｒ”）。確かに、前述したもの以外に、例えば、学生数、対応する学生の名前、身長、体重など、他のデータレコードがあり得る。
【００３１】
［0038］  具体的には、データ変更は：挿入、更新、および削除を含み得る。これを考慮して、ステップＣ−予め設定されたスナップショット内で変更すべきデータの位置を決定して、データを変更し、データ変更に基づいて予め設定されたスナップショット内のデータ情報を更新すること−は、以下を含み得る：
【００３２】
［0039］  （１）データを挿入する必要がある場合、予め設定されたスナップショット内でデータを挿入すべきデータサブブロックを決定して、記憶空間内のその決定されたデータサブブロックに対応する位置にデータを挿入し、挿入されたデータのデータ情報に基づいて予め設定されたスナップショット内のデータ情報を更新すること。
【００３３】
［0040］  データ「挿入」プロセス中、「テーブル（ｉｄ，ｎａｍｅ）への値（５，”ｆｉｖｅ”）のＳＱＬ挿入」を実行した後、すなわち、データ項目５の挿入後、スナップショットの記憶構造が変更され得る。図４は、スナップショットの記憶構造内でのかかる変更を示す。予め設定されたスナップショット、すなわち、初期書込み可能スナップショットが、データが挿入されるデータサブブロックの位置を決定するために使用され、例えば、それは、データサブブロック１内の位置１と決定され得る。実際のデータの挿入プロセスでは、プロセッサは、実際のデータがデータ記憶空間内で格納される位置を見つけ得る。位置は、書込み可能スナップショット内の決定された位置（例えば、データサブブロック１内の位置１）に対応する。プロセッサは、次いで、実際のデータが格納される決定された位置内にデータを挿入し得る。同時に、書込み可能スナップショットが、データ挿入に基づき、それに応じて更新され得る。他のデータ変更プロセスもこれと同様である。
【００３４】
［0041］  （２）データを削除する必要がある場合、削除すべきデータが存在するデータサブブロックを決定し、データ記憶空間内の決定されたデータサブブロックの位置に対応する位置内のデータを削除して、削除すべきデータが存在する決定されたデータサブブロックのデータラベルを、予め設定されたスナップショット内で「削除」と変更すること。
【００３５】
［0042］  データ「削除」のプロセス中、「ｉｄ＝２のテーブルからのＳＱＬ削除」、すなわち、データ項目２の削除、を実行することは、データ項目２を実際に削除することなく、ビットマップの２番目の行を１と印を付けるだけで行われ得、このようにして、他のデータに影響を及ぼすのを回避する。作成された書込み可能スナップショットの構造は図５に示す通りである。
【００３６】
［0043］  （３）データを更新する必要がある場合、更新すべきデータが存在するデータブロックを決定して、決定されたデータブロックを複製し、複製されたデータブロック内で更新すべきデータが存在するデータサブブロックを決定して、データ記憶空間内の決定されたデータサブブロックに対応する位置内のデータを更新し、更新されたデータブロックを作成して、予め設定されたスナップショット内の対応するデータブロックを更新されたデータブロックで置き換えること。
【００３７】
［0044］  データ「更新」のプロセス中、「ｉｄ＝３のテーブルセットｎａｍｅ＝“ｓａｎ”のＳＱＬ更新」、すなわち、データ項目３の更新、を実行する場合、プロセッサは、データ項目３がデータブロック１（それぞれ、ｏｎｅ、ｔｗｏ、ｔｈｒｅｅに対応する、データ１、データ２、およびデータ３を含む）内にあると判断して、データブロック１をコピーし、新しくコピーしたデータブロックの３番目の行を「ｓａｎ」と設定して、データブロック１を更新されたデータブロック１で置き換え得る。作成された書込み可能スナップショットの記憶構造が図６に示されている。
【００３８】
［0045］  ステップ１０２：書込み可能スナップショットを所定の時間に複製することによって新しいＲＯスナップショットを作成すること。
【００３９】
［0046］  特定のプロセスは、図２に示す通りであり得、すなわち、複製によってコピーを作成する。
【００４０】
［0047］  ステップ１０３：データ照会要求を受信すると、最新の作成時間をもつスナップショットにおいて、インデックス化を通してデータ照会を実施すること。
【００４１】
［0048］  具体的には、データ照会は、データ照会要求が受信された場合に実施され得るか、または前述のようなデータ処理中に、処理が必要な位置を見つける場合にデータ照会を実施する。データブロック内に格納された複数のデータ項目が数値を含む場合、照会は次の２つの方法で実施され得る：
【００４２】
［0049］  方法１：
【００４３】
［0050］  データ照会要求を受信すると、データ照会要求に基づいて、照会されているデータの数値を決定すること；
【００４４】
［0051］  最新の作成時間をもつＲＯスナップショット、および決定されたＲＯスナップショット内のデータブロックを決定し、各データブロック内のデータの数値範囲を決定すること；
【００４５】
［0052］  照会されているデータの数値が数値範囲内に含まれるかどうかの決定に基づいて、各データブロックをスクリーニングすること；
【００４６】
［0053］  スクリーニングされたデータブロックをスキャンして、数値照合を実施することにより、データ照会を完了すること。
【００４７】
［0054］  具体的には、各データブロックに関して、データブロックの最大値および最小値を記録して、等価および範囲（equivalence and range）照会を実施する。等価および範囲がデータブロックの最大値および最大値と重なり合う場合に限り、データブロックがスキャンされ；重なり合いがない場合、それぞれのデータブロックはスキップされ得、従って、照会効率が向上する。
【００４８】
［0055］  例えば、列「ｉｄ」内の第１のデータブロックの最大値は３であり、最小値は１である。照会ＳＱＬが「ｉｄ＝２の場合テーブルから＊を選択する」の場合、２は範囲［１，３］内であるので、このデータブロックがスキャンされて、探索結果は（２，“ｔｗｏ”）であろう；
【００４９】
［0056］  別の例について、照会ＳＱＬが「ｉｄ＝４の場合テーブルから＊を選択する」の場合、４は範囲［１，３］内ではないので、このデータブロックは要件を満足していないと判断され得、スキップできる；
【００５０】
［0057］  さらに、照会ＳＱＬが「ｉｄが２〜４の間の場合テーブルから＊を選択する」の場合、［２，４］と［１，３］との間に重なり合いがあるので、データブロック［１，３］がスキャンされて、探索結果は（２，“ｔｗｏ”）、（３，“ｔｈｒｅｅ”）であろう；
【００５１】
［0058］  照会ＳＱＬが「ｉｄが４〜５の間の場合テーブルから＊を選択する」の場合、［４，５］と［１，３］との間に重なり合いがないので、このデータブロックは要件を満足していないと判断され得、スキップされ得る。
【００５２】
［0059］  方法２：
【００５３】
［0060］  データ照会要求を受信すると、データ照会要求に基づいて、照会されているデータの数値を決定すること；
【００５４】
［0061］  各データブロック内のデータの数値に基づいて、データが数値順になっているデータシーケンスを作成すること；
【００５５】
［0062］  二分探索および照会されているデータの数値を使用してデータシーケンス内を探索することにより、データ照会を完了すること。
【００５６】
［0063］  具体的には、方法２では、「各データブロック内のデータの数値に基づいて、データが数値順になっているデータシーケンスを作成すること」は、以下を含み得る：
【００５７】
［0064］  各データブロック内のデータに対して逆インデックスを作成することにより、データが数値昇順になっているデータシーケンスを作成すること；
【００５８】
［0065］  具体的には、頻繁に探索されるデータ列に関して、方法１における高速インデックス化を使用すると、全てのデータブロックを除外するとは限らない可能性があり、各データブロックに対して高速逆インデックスを作成する必要があり得る。逆インデックスは、ブロックサイズの長さをもつ数値配列である。配列の「ｉ」番目の値は、昇順に配列されたブロック内の要素の位置を表す。
【００５９】
［0066］  図７に示すように、データブロック内に格納されたデータは、順に、１３、１６、１４、１、１２である。順番に配列されて、１３が最初の位置をとって、位置０に配置され、残りはそれぞれ、１６−１、１４−２、１−３、１２−４である。最小数値はブロック内でデータ項目１であり、それは、位置３に対応し、第２のものはデータ項目１２（位置４に対応する）、第３はデータ項目１３（位置０に対応する）、第４はデータ項目１４（位置２に対応する）、および最大値は１６である（位置１に対応する）。逆インデックスが前述に基づいて作成される。逆インデックス内の各要素を調べ、要素をインデックスとして使用してブロック値を読み取ると、順序付けされたシーケンスが取得される。図７に示すように、逆インデックス内の１番目の値は３である。１をブロック内の（０から始まる）３番目の要素から読み取ることができる。同様に、逆インデックス内の２番目の値は４である。従って、１２をブロック内の４番目の要素から読み取ることができる。残りも同じ方法で取得され得る。順序付けされたシーケンスが、その結果、取得され得る：１、１２、１３、１４、１６。順序付けされたシーケンスに対して、二分探索が使用され得、等価または範囲照会が実施され得る。
【００６０】
［0067］  具体的には、二分探索に関して、例えば、データ１〜１００がデータブロック内に格納されていて、照会されているデータは２３である。まず、１〜１００の中央値−５０が探索され得る。中央値５０が２３と比較され得る。５０は２３よりも大きいので、探索が継続され得、１〜５０の中央値が２３と比較され得る。これは探索効率を向上し得る。
【００６１】
［0068］  本発明をさらに説明するため、本出願は、複数のＲＯスナップショットおよび１つの書込み可能スナップショットを有し、ＲＯスナップショットの作成時間が異なっている、データ記憶システムに対して使用されるデータ処理装置も提供する。図８に示すように、本明細書で開示する１つのデータ処理装置は、以下を備える：
【００６２】
［0069］  第１の作成モジュール８０１：データ変更に基づいて書込み可能スナップショットを作成するために使用される；
【００６３】
［0070］  第２の作成モジュール８０２：書込み可能スナップショットを所定の時間に複製することによって複数の新しいＲＯスナップショットを作成するために使用される；および
【００６４】
［0071］  照会モジュール８０３：データ照会要求を受信すると、最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通してデータ照会を実施するために使用される。
【００６５】
［0072］  具体的には、ＲＯスナップショットの構造は、書込み可能スナップショットの構造と一致し得、データがデータ列に格納されて、各列は、１つ以上のデータブロックを含み、各データブロックは、同じ数のデータサブブロックを含む。
【００６６】
［0073］  任意選択として、第１の作成モジュール８０１は、以下のために使用され得る：
【００６７】
［0074］  最新の作成時間をもつＲＯスナップショットを決定すること；
【００６８】
［0075］  決定されたＲＯスナップショット内のデータ情報を予め設定されたスナップショットに複製すること；
【００６９】
［0076］  予め設定されたスナップショット内で変更すべきデータの位置を決定して、データを変更し、データ変更に基づいて予め設定されたスナップショット内のデータ情報を更新すること；および
【００７０】
［0077］  予め設定されたスナップショット内の更新されたデータ情報に基づいて書込み可能スナップショットを作成すること。
【００７１】
［0078］  具体的には、データ変更は：データを挿入すること、データを削除すること、およびデータを更新することを含む。
【００７２】
［0079］  第１の作成モジュール８０１による「予め設定されたスナップショット内で変更すべきデータの位置を決定して、データを変更し、データ変更に基づいて予め設定されたスナップショット内のデータ情報を更新すること」のステップは、以下を含む：
【００７３】
［0080］  データを挿入する必要がある場合、挿入すべきデータが予め設定されたスナップショット内で格納されるデータサブブロックを決定して、データ記憶空間内のその決定されたデータサブブロックに対応する位置にデータを挿入し、挿入されたデータのデータ情報に基づいて予め設定されたスナップショット内のデータ情報を更新すること；
【００７４】
［0081］  データを削除する必要がある場合、削除すべきデータが存在するデータサブブロックを決定し、データ記憶空間内の決定されたデータサブブロックに対応する位置内のデータを削除して、削除すべきデータが存在する決定されたデータサブブロックを、予め設定されたスナップショット内で「削除」とラベル付けすること；
【００７５】
［0082］  データを更新する必要がある場合、更新すべきデータが存在するデータブロックを決定して、決定されたデータブロックを複製し、複製されたデータブロック内で更新すべきデータが存在するデータサブブロックを決定して、データ記憶空間内の決定されたデータサブブロックに対応する位置内のデータを更新し、更新されたデータブロックを作成して、予め設定されたスナップショット内の対応するデータブロックを、更新されたデータブロックで置き換えること。
【００７６】
［0083］  具体的には、データブロック内に格納された複数のデータ項目は数値を含み得る。
【００７７】
［0084］  照会モジュール８０３は以下のために使用され得る：
【００７８】
［0085］  データ照会要求を受信すると、データ照会要求に基づいて、照会されているデータの数値を決定すること；
【００７９】
［0086］  最新の作成時間をもつＲＯスナップショット、および予め設定されたスナップショット内のデータブロックを決定し、各データブロック内のデータの数値範囲を決定すること；
【００８０】
［0087］  照会されているデータの数値が数値範囲内に含まれるかどうかの決定に基づいて、各データブロックをスクリーニングすること；ならびに
【００８１】
［0088］  スクリーニングされたデータブロックをスキャンして、数値照合を実施することにより、データ照会を完了すること。
【００８２】
［0089］  代替として、データブロック内に格納された複数のデータ項目は、数値を含み得る。
【００８３】
［0090］  照会モジュール８０３は、以下のために使用され得る：
【００８４】
［0091］  データ照会要求を受信すると、データ照会要求に基づいて、照会されているデータの数値を決定すること；
【００８５】
［0092］  各データブロック内のデータの数値に基づいて、データが数値順になっているデータシーケンスを作成すること；
【００８６】
［0093］  二分探索および照会されているデータの数値を使用してデータシーケンス内で探索して、データ照会を完了すること。
【００８７】
［0094］  任意選択として、照会モジュール８０３による「各データブロック内のデータの数値に基づいて、データが数値順になっているデータシーケンスを作成すること」のステップは、以下を含み得る：
【００８８】
［0095］  各データブロック内のデータに対して逆インデックスを作成することにより、データが数値昇順になっているデータシーケンスを作成すること。
【００８９】
［0096］  本出願のいくつかの実施形態は：データ変更に基づいて書込み可能スナップショットを作成すること；書込み可能スナップショットを所定の時間に複製することによって新しいＲＯスナップショットを作成すること；およびデータ照会要求を受信すると、最新の作成時間をもつＲＯスナップショットにおいて、インデックス化を通してデータ照会を実施することを提供する。このアプローチは、データ変更とデータ照会の分離を達成し、それは、効率的なリアルタイム更新を改善する。さらに、高速インデックス化および逆インデックス化を利用することにより、照会効率がさらに改善される。
【００９０】
［0097］  本出願の実施態様は、専用装置が前述の機能を実行できるようにするために、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せを使用して、実装され得る。本明細書で説明する１つ以上のステップ、操作、機能、およびモジュールは、１つ以上のメモリ装置内に格納されたソフトウェア命令またはコードによって実装されて、１つ以上のハードウェアプロセッサ装置によって実行され得る。例示的なハードウェアプロセッサ装置は、データ処理および／または論理演算を実行するために構成または作成された論理ゲート回路、特定の機能を実行するために設計および作成された集積回路（ＩＣ）、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを含む。
【００９１】
［0098］  さらに、１つ以上のコンピュータ可読記憶媒体が、本開示と一致する実施形態の実装において利用され得る。コンピュータ可読記憶媒体は、プロセッサによって可読な情報またはデータがその上に格納され得る、任意のタイプの物理および／または非一時的メモリを指す。従って、コンピュータ可読記憶媒体は、本明細書で説明する実施形態と一致するステップまたはステージをプロセッサ（複数可）に実行させるための命令を含む、１つ以上のプロセッサによって実行するための命令を格納し得る。用語「コンピュータ可読媒体」は、有形品目を含み、搬送波および過渡信号を除外する、すなわち、持続的であると理解すべきである。例には、ＲＡＭ、ＲＯＭ、揮発性メモリ、不揮発性メモリ、ハードドライブ、ＣＤ  ＲＯＭ、ＤＶＤ、フラッシュドライブ、フラッシュメモリ、キャッシュ、レジスタ、ディスク、および任意の他の既知の記憶媒体を含む。
【００９２】
［0099］  当業者は、図面はいくつかの例示的および説明的な実施形態を説明するだけであること、ならびに図面中のモジュール／プロセスは実際の実施態様において任意選択であり得ることを理解し得る。
【００９３】
［0100］  当業者は、例示的な実施形態におけるモジュールは、前述したような方法で構成され得るか、または変更されて、１つ以上の装置内にインストールされ得ることを理解し得る。例えば、複数の機能モジュールが単一の物理装置に組み込まれ得るか、または別個の物理装置で提供され得る。当業者は、前述した複数のモジュールが１つのモジュールとして組み合わされ得、前述したモジュールの各々が複数のサブモジュールにさらに分割され得ることも理解するであろう。
【００９４】
［0101］  前述した例示的な実施形態の順番は、説明のために過ぎず、ある実施形態の優位性を表していない。
【００９５】
［0102］  本発明は、上で説明して、添付の図面に示す、正確な構造に制限されないこと、および様々な修正および変更を、その範囲から逸脱することなく、行うことができると考えられる。本発明の範囲は、添付の請求項によってのみ制限されることを意図する。
【図１】
2018538596.tif 000003
【図２】
2018538596.tif 000004
【図３】
2018538596.tif 000005
【図４】
2018538596.tif 000006
【図５】
2018538596.tif 000007
【図６】
2018538596.tif 000008
【図７】
2018538596.tif 000009
【図８】
2018538596.tif 000010
【国際調査報告】
2018538596.tif 000011