本願の実施形態は、データ処理技術の分野に関し、特に、データ記憶方法、データ取得方法、及び機器に関する。
人工知能(artificial intelligence, AI)アプリケーション、ビッグデータアプリケーション、モノのインターネット(internet of things)アプリケーション等の新しいアプリケーションが成熟するにつれて、記憶する必要のあるデータが急激に増大する。記憶装置(storage device)の容量を増やすだけで急激に増大するデータを記憶する場合に、記憶装置の購入コスト及び管理コストは比較的高く、記憶装置は、比較的大きなスペースを占有し、且つ比較的高い電力を消費する。これは、企業に比較的重いコスト負担を生じさせる。従って、効果的なデータ記憶ソリューションが必要である。
本願の実施形態は、記憶オーバーヘッド(storage overheads)を低減するための、データ記憶方法、データ取得方法、及び機器を提供する。また、本願の実施形態は、圧縮(compression)又は解凍(decompression)時間を短縮するための、データ圧縮方法、データ解凍方法、及び機器をさらに提供する。
第1の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ記憶方法を提供し、この方法は、現在のデータ及び現在のデータの履歴データを取得するステップと;履歴データを用いて現在のデータを予測して、第1の予測データを取得するステップであって、第1の予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;現在のデータと第1の予測データとの間の第1のデルタを取得するステップと;第1のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される情報を記憶するステップであって、現在のデータを復元するために使用される情報は、第1のデルタ又は第1のデルタを圧縮して得た値を含む、記憶するステップと;を含み得る。
デルタが、現在のデータと現在のデータの予測データ(例えば、以下に説明する第1の予測データ又は第2の予測データ)との間の差を表すために使用されるパラメータである。例えば、デルタは、差、比、倍数、パーセンテージ等であり得る。履歴データは、少なくとも2つの記憶すべき(to-be-stored)データを含む、シーケンス内の現在のデータ以前の1つ又は複数のデータであり得る。記憶すべきデータは、記憶する必要のある元のデータである。現在のデータは、少なくとも2つの記憶すべきデータ内の現在の記憶すべきデータである。
この技術的解決策では、現在のデータについて、現在のデータを復元するために使用される情報、例えば、現在のデータと現在のデータの予測データとの間のデルタ、又はデルタを圧縮して得た値は、実際には記憶される。現在のデータを復元するために使用される記憶情報が占める記憶空間は、現在のデータを直接記憶する従来技術のものと比較して、現在のデータが占める記憶空間よりも小さいので、記憶オーバーヘッドを削減できる。
可能な設計では、予測を行うために使用されるアルゴリズムは、AIニューラルアルゴリズムを含む。例えば、AIニューラルアルゴリズムのタイプは、正規化最小平均二乗(normalized least mean square, NLMS)適応フィルタリングタイプ、単層パーセプトロン(single layer perceptron, SLP)タイプ、多層パーセプトロン(multi-layer perceptron, MLP)タイプ、又はリカレントニューラルネットワーク(recurrent neural networks, RNN)タイプのいずれか1つを含む。
可能な設計では、記憶装置は、現在のデータの予測データを記憶しない。このようにして、記憶オーバーヘッドを削減できる。これに基づいて、記憶装置は、履歴情報に基づいて現在のデータを予測して第1の予測データを取得し、次に、第1の予測データと現在のデータを復元するために使用される記憶情報とに基づいて、現在のデータを復元する。詳細については、次の第2の態様で提供される技術的解決策を参照されたい。
可能な設計では、圧縮を行うために使用されるアルゴリズムは、辞書(dictionary)圧縮アルゴリズム及び/又は重複排除アルゴリズムを含む。
可能な設計では、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書は少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この方法は、第1のデルタのヒット率を取得するステップと;第1のデルタのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するステップであって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、決定するステップと;をさらに含む。この技術的解決策では、記憶装置に含まれるマッピング関係が様々なセットに分類される。このようにして、圧縮すべき(to-be-compressed)データが位置するセットは、圧縮すべきデータのヒット率(すなわち、第1のデルタ)に基づいて直接決定され得る。これにより、圧縮すべきデータの検索範囲を狭めることができる。従って、圧縮時間が短縮される。
可能な設計では、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書が1つ又は複数のマッピング関係を含み、各マッピング関係は1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上である。この方法は、第1のデルタのヒット率を取得するステップと;第1のデルタのヒット率に基づいてターゲット記憶媒体を決定するステップであって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するステップであって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、決定するステップと;をさらに含む。この技術的解決策では、最高の読み取り/書き込み性能を有しており、且つ圧縮すべきデータが位置する記憶媒体は、圧縮すべきデータのヒット率(具体的には、第1のデルタ)と異なる記憶媒体に記憶されるマッピング関係のヒット率範囲とに基づいて直接決定でき、キャッシュの読み取り/書き込み性能は、メモリの読み取り/書き込み性能よりも高く、メモリの読み取り/書き込み性能は、ハードディスクの読み取り/書き込み性能よりも高い。これにより、圧縮すべきデータの検索範囲を狭めることができる。従って、圧縮時間が短縮される。
可能な設計では、この方法は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するステップをさらに含む。
可能な設計では、この方法は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に、識別子情報を記憶するステップをさらに含む。識別子情報は、現在のデータを復元するために使用される情報が第1のデルタ又は第1のデルタを圧縮して得た値であることを示すために使用される。オプションで、識別子情報は、現在のデータを復元するために使用される情報の識別子情報として使用され得るか、又は現在のデータを復元するために使用される情報に含まれる情報として使用され得る。この技術的解決策は、記憶装置が現在のデータを復元するために使用される記憶情報を識別(特定:identify)するのに役立つ。
第2の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ取得方法を提供し、この方法は、現在のデータを復元するために使用される情報を読み取るステップであって、現在のデータを復元するために使用される情報には、デルタ又はデルタを圧縮して得た値が含まれ、デルタは、現在のデータと現在のデータの予測データとの間のデルタであり、予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、読み取るステップと;履歴データを用いて現在のデータを予測して、予測データを取得するステップと;予測データと現在のデータを復元するために使用された情報とに基づいて、現在のデータを決定するステップと;を含み得る。例えば、履歴データは、1つ又は複数の取得データ(obtained data)である。
可能な設計では、解凍を行うために使用されるアルゴリズムは、辞書解凍アルゴリズム及び/又は重複排除アルゴリズムのうちの少なくとも1つを含む。
可能な設計では、現在のデータを復元するために使用される情報は、デルタを圧縮して得た値を含み、現在のデータの予測データと現在のデータを復元するために使用される情報とに基づいて現在のデータを決定するステップは、デルタを圧縮して得た値を解凍して、デルタを取得するステップと;デルタと現在のデータの予測データとに基づいて現在のデータを決定するステップと;を含む。
可能な設計では、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書が少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。デルタを圧縮して得た値を解凍して、デルタを取得するステップは、デルタを圧縮して得た値のヒット率を取得するステップと;デルタを圧縮して得た値のヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定するステップであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定するステップと;を含み得る。この技術的解決策では、記憶装置に含まれるマッピング関係が様々なセットに分類される。このようにして、解凍すべき(to-be-decompressed)データが位置するセットは、解凍すべきデータのヒット率(具体的には、デルタを圧縮して得た値)に基づいて直接決定することができる。これにより、解凍すべきデータの検索範囲を狭めることができる。従って、解凍時間が短縮される。
可能な設計では、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書が1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上である。この場合に、デルタを圧縮して得た値を解凍して、デルタを取得するステップは、デルタを圧縮して得た値のヒット率を取得するステップと;デルタを圧縮して得た値のヒット率に基づいてターゲット記憶媒体を決定するステップであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定するステップであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定するステップと;を含み得る。この技術的解決策では、最高の読み取り/書き込み性能を有しており、且つ解凍すべきデータが位置する記憶媒体は、解凍すべきデータのヒット率と異なる記憶媒体に記憶されるマッピング関係のヒット率とに基づいて直接決定され得る。これにより、解凍すべきデータの検索範囲を狭めることができる。従って、圧縮時間が短縮される。
可能な設計では、記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれない場合に、それは、現在のデータを復元するために使用される情報にはデルタ又はデルタを圧縮して得た値が含まれることを示す。識別子情報の関連する説明については、前述の第1の態様を参照されたい。
記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれる場合に、それは、現在のデータを復元するために使用される情報には現在のデータ又は現在のデータを圧縮し得た値が含まれることを示すと理解され得る。
これに基づいて、第2の態様で提供される技術的解決策は、以下の解決策1又は解決策2に置き換えることができる。
解決策1:現在のデータを復元するために使用される情報を読み取り、ここで、現在のデータを復元するために使用される情報に識別子情報が含まれ、現在のデータを復元するために使用される情報には現在のデータが含まれる。
解決策2:現在のデータを復元するために使用される情報を読み取り、ここで、現在のデータを復元するために使用される情報に識別子情報が含まれ、現在のデータを復元するために使用される情報には現在のデータを圧縮して得た値が含まれ、次に、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
第2の態様で提供される技術的解決策は、新しい技術的解決策を形成するために、解決策1/解決策2と組み合わせることができる。
第2の態様又は第2の態様の代替解決策は、第1の態様で提供される技術的解決策及び技術的解決策の対応する設計的解決策に対応する。従って、第2の態様又は第2の態様の代替解決策の特定の実施態様及び有利な効果については、第1の態様の説明を参照されたい。
第3の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ記憶方法を提供し、この方法は、現在のデータ及び現在のデータの履歴データを取得するステップと;履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するステップであって、予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;現在のデータと予測データとの間のデルタを取得するステップと;デルタの絶対値が予め設定した閾値以下の場合に、予め設定したデータを記憶するステップと;を含み得る。オプションで、予め設定したデータが占める記憶空間は、現在のデータが占める記憶空間よりも小さい。この技術的解決策では、従来技術の現在のデータを直接記憶する技術的解決策と比較して、予め設定したデータが占める記憶空間が現在のデータが占める記憶空間よりも小さいため、記憶オーバーヘッドを削減できる。
オプションで、予め設定したデータは、記憶装置によって予め規定される。オプションで、予め設定したデータは識別子であり得、識別子は、現在のデータの予測データが現在のデータとして使用され得る(又は略使用され得る)ことを示すために使用される。オプションで、予め設定したデータが占める記憶空間は、記憶すべきデータの殆ど又は全てが占める記憶空間よりも小さい。
デルタが差である例では、デルタの絶対値が0である場合に、この技術的解決策の圧縮プロセスは、具体的には可逆圧縮プロセスである。デルタの絶対値が0でない場合に、この技術的解決策の圧縮プロセスは、具体的には不可逆圧縮プロセスである。予め設定した閾値を適切に設定すると、データ損失率を特定の範囲内に制限するのに役立つ。換言すると、予め設定される閾値は、実際の要件(例えば、許容可能な非可逆圧縮率内の要件)に基づいて設定できる。この技術的解決策は、特定のデータ損失が許容されるシナリオ、例えば、ビデオ再生等のシナリオに適用することができる。
可能な設計では、この方法は、デルタの絶対値が予め設定した閾値よりも大きい場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するステップをさらに含む。圧縮を行うために使用されるアルゴリズムは、例えば、辞書圧縮アルゴリズム及び/又は重複排除アルゴリズムであり得るが、これらに限定されない。
可能な設計では、この方法は、デルタの絶対値が予め設定した閾値よりも大きい場合に識別子情報を記憶するステップをさらに含み、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用されるか、又は現在のデータが記憶される場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。識別子情報は、現在のデータを復元するために使用される情報の識別子情報として使用してもよく、又は現在のデータを復元するために使用される情報に含まれる情報として使用してもよい。この技術的解決策は、記憶装置が現在のデータを復元するために使用される記憶情報のタイプを識別するのに役立つ。タイプは、「予め設定したデータ」のタイプ又は「現在のデータ又は現在のデータを圧縮して得た値」のタイプであり得、これにより、データ取得手順の実装を支援する。
第1の態様又は第3の態様で提供される任意の技術的解決策に基づいて、以下では、いくつかの可能な設計が提供される。
可能な設計では、この方法は、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記憶するステップをさらに含む。これにより、現在のデータを正しく復元するのに役立つ。例えば、記憶装置は、AIニューラルアルゴリズムのパラメータが更新される度にスナップショット動作を実行して、現在のデータを復元するために使用される情報と予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記録する。
可能な設計では、現在のデータを復元するために使用される情報が記憶された後に、この方法は、アダプティブラーニング(adaptive learning)によってAIニューラルアルゴリズムのパラメータを更新するステップと;AIニューラルアルゴリズムの更新パラメータ(updated parameter)に基づいて、現在のデータを復元するために使用される情報を更新するステップと;をさらに含む。これにより、現在のデータを正しく復元するのに役立つ。
可能な設計では、予測を行うために使用されるAIニューラルアルゴリズムの前述のパラメータは、AIニューラルアルゴリズムの第1のパラメータとしてマークされ、AIニューラルアルゴリズムの第1のパラメータが更新された後に取得されるパラメータは、AIニューラルアルゴリズムの第2のパラメータとしてマークされる。これに基づいて、AIニューラルアルゴリズムの更新パラメータに基づいて、現在のデータを復元するために使用される情報を更新するステップは、現在のデータを復元するために使用される情報を読み取るステップと;AIニューラルアルゴリズムの第1のパラメータ(つまり、更新前のAIニューラルアルゴリズムのパラメータ)、現在のデータを復元するために使用される読み取り情報、及び現在のデータの履歴データに基づいて、現在のデータを復元するステップと;AIニューラルアルゴリズムの第2のパラメータ(つまり、AIニューラルアルゴリズムの更新パラメータ)と現在のデータの履歴データとに基づいて、現在のデータを予測して、第2の予測データを取得するステップであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの第2のパラメータに基づいて、履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;現在のデータと第2の予測データとの間の第2のデルタを取得するステップと;第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値に更新するステップと;を含む。
可能な設計では、記憶装置はAIコンピューティングカードを含み、履歴データを用いて現在のデータを予測して、第1の予測データを取得するステップは、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、第1の予測データを取得するステップを含む。
可能な設計では、記憶装置はメモリを含む。少なくとも2つの記憶すべきデータの中の現在のデータ及び現在のデータの履歴データを取得するステップは、少なくとも2つの記憶すべきデータの中の現在のデータ及び現在のデータの履歴データをメモリから取得するステップを含む。
可能な設計では、任意の記憶すべきデータについて、記憶すべきデータが他の記憶すべきデータの履歴データとして使用されない場合に、記憶すべきデータは、メモリの記憶オーバーヘッドを削減するように、メモリから削除される。
第4の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ取得方法を提供し、この方法は、現在のデータを復元するために使用される情報を読み取るステップと;現在のデータを復元するために使用される情報が予め設定したデータを含む場合に、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するステップであって、予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;予測データを現在のデータとして使用するステップと;を含み得る。例えば、履歴データは、1つ又は複数の取得データである。
可能な設計では、記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれない場合に、それは、現在のデータを復元するために使用される情報には予め設定したデータが含まれることを示す。識別子情報の関連する説明については、前述の第3の態様を参照されたい。詳細については、ここでは再び説明しない。
記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれる場合に、それは、現在のデータを復元するために使用される情報には現在のデータ又は現在のデータを圧縮し得た値が含まれることを示すと理解され得る。この場合に、第4の態様は、上記の解決策1又は解決策2に置き換えることができる。
第4の態様で提供される技術的解決策は、新しい技術的解決策を形成するように、解決策1/解決策2と組み合わせることができる。
第4の態様又は第4の態様の代替解決策は、第3の態様で提供される技術的解決策及び技術的解決策の対応する設計的解決策に対応する。従って、第4の態様又は第4の態様の代替解決策の特定の実施態様及び有利な効果については、第3の態様を参照されたい。
第2の態様又は第4の態様で提供される任意の技術的解決策に基づいて、以下では、いくつかの可能な設計が提供される。
可能な設計では、記憶装置はメモリを含み、履歴データを用いて現在のデータを予測する前に、現在のデータの予測データを取得するために、この方法は、メモリから履歴データを取得するステップをさらに含む。
可能な設計では、この方法は、記憶装置によって、現在のデータをメモリに記憶して、現在のデータを他の取得すべき(to-be-obtained)データの履歴データとして使用するステップをさらに含む。
可能な設計では、この方法は、取得データが取得すべきデータの履歴データとしてもはや使用されなくなった場合に、記憶装置が、メモリから取得データを削除して、メモリの記憶オーバーヘッドを削減するステップをさらに含む。
可能な設計では、この方法は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得するステップをさらに含み、履歴データを用いて現在のデータを予測して、予測データを取得するステップは、AIニューラルアルゴリズムの取得パラメータに基づいて履歴データを用いて現在のデータを予測して、予測データを取得するステップを含む。
可能な設計では、記憶装置はAIコンピューティングカードを含み、履歴データを用いて現在のデータを予測するステップは、AIコンピューティングカード及び履歴データを用いて現在のデータを予測するステップを含む。
第5の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ圧縮方法を提供し、記憶装置は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この方法は、圧縮すべきデータのヒット率を取得するステップと;圧縮すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用するステップと;を含み得る。
第6の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ解凍方法を提供し、記憶装置は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この方法は、解凍すべきデータのヒット率を取得するステップと;解凍すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第2のデータで解凍すべきデータを検索して、解凍すべきデータに対応する第1のデータを決定し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用するステップと;を含み得る。
第7の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ圧縮方法を提供し、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率がメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率がハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きい。この方法は、圧縮すべきデータのヒット率を取得するステップと;圧縮すべきデータのヒット率に基づいてターゲット記憶媒体を決定するステップであって、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用するステップと;を含む。
第8の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ解凍方法を提供し、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率がメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率がハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きい。この方法は、解凍すべきデータのヒット率を取得するステップと;解凍すべきデータのヒット率に基づいてターゲット記憶媒体を決定するステップであって、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第2のデータで解凍すべきデータに対応する第1のデータを検索し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用するステップと;を含み得る。
第5又は第7の態様で提供されるデータ圧縮方法で達成することができる有利な効果については、第1の態様の説明を参照すべきことに留意されたい。第6又は第8の態様で提供されるデータ解凍方法で達成できる有利な効果については、第2の態様の説明を参照されたい。一例では、第5の態様及び第7の態様で説明するマッピング関係は、辞書圧縮アルゴリズムの辞書に含まれるマッピング関係であり得る。
第9の態様によれば、本願の一実施形態は、記憶装置を提供し、この記憶装置は、第1の態様から第8の態様で提供される方法のいずれか1つを実行するように構成され得る。
可能な設計では、機能モジュール分割は、第1の態様から第8の態様で提供される方法のいずれか1つに従って、記憶装置上で実行され得る。例えば、各機能モジュールは、各機能による分割によって取得することができ、又は2つ以上の機能を1つの処理モジュールに統合することができる。
別の可能な設計では、記憶装置は、メモリ及びプロセッサを含み、メモリは、プログラムコードを記憶するように構成され、プロセッサは、プログラムコードを呼び出して、第1の態様から第8の態様で提供される方法のいずれか1つを実行するように構成される。
本願で説明するメモリ及びプロセッサは、1つのチップに統合され得るか、又は異なるチップに別々に配置され得ることに留意されたい。本願では、メモリのタイプ、メモリ及びプロセッサの配置方法に制限はない。
本願の一実施形態は、プログラムコードを含むコンピュータ可読記憶媒体をさらに提供し、プログラムコードは、第1の態様から第8の態様で提供される方法のいずれか1つのステップの一部又は全てを実行するために使用される命令を含む。
本願の一実施形態は、コンピュータ可読記憶媒体をさらに提供し、コンピュータ可読記憶媒体はコンピュータプログラムを記憶し、コンピュータプログラムがコンピュータ上で実行されるときに、コンピュータは、第1の態様から第8の態様で提供される可能な方法のいずれか1つを実行することができる。
本願の一実施形態は、コンピュータプログラム製品をさらに提供し、コンピュータプログラム製品がコンピュータ上で実行されるときに、第1の態様から第8の態様で提供される方法のいずれか1つが実行される。
上記で提供される任意の記憶装置、コンピュータ可読記憶媒体、又はコンピュータプログラム製品は、上記で提供される対応する方法を実行するように構成されることが理解され得る。従って、記憶装置、コンピュータ可読記憶媒体、又はコンピュータプログラム製品によって達成することができる有利な効果については、対応する方法における有利な効果を参照されたい。詳細については、ここでは再び説明しない。
本願の一実施形態に適用可能なシステムアーキテクチャの概略図である。
本願の一実施形態に適用可能な記憶装置のハードウェア構造の概略図である。
本願の別の実施形態に適用可能な記憶装置のハードウェア構造の概略図である。
本願の一実施形態に適用可能なAIニューラルアルゴリズムの概略図である。
本願の一実施形態によるデータ記憶方法の概略図1である。
本願の一実施形態による、記憶すべきデータ及び実際に記憶される情報の概略図である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態による、ある時点でメモリ及びハードディスクに記憶されている情報の概略図である。
本願の一実施形態によるデータ取得方法の概略図1である。
本願の一実施形態による、取得すべきデータ及び実際に記憶される情報の概略図である。
本願の一実施形態によるデータ取得方法の概略図2である。
本願の一実施形態によるデータ取得方法の概略図2である。
本願の一実施形態によるデータ取得方法の概略図2である。
本願の一実施形態によるデータ圧縮方法の概略図1である。
本願の一実施形態によるデータ解凍方法の概略図1である。
本願の一実施形態によるデータ圧縮方法の概略図2である。
本願の一実施形態によるデータ解凍方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図3である。
本願の一実施形態によるデータ取得方法の概略図3である。
本願の一実施形態による記憶装置の概略図1である。
本願の一実施形態による記憶装置の概略図2である。
本願の一実施形態による記憶装置の概略図3である。
本願の一実施形態による記憶装置の概略図4である。
本願の一実施形態による記憶装置の概略図5である。
本願の一実施形態による記憶装置の概略図6である。
図1は、本願の一実施形態に適用可能なシステムアーキテクチャの概略図である。図1に示されるシステムアーキテクチャは、クライアント100及び記憶装置200を含む。
データ書き込み手順では、クライアント100は、書き込み要求を記憶装置200に送信するように構成される。書き込み要求は、1つ又は複数の書き込むべき(to-be-written)データ及び各書き込むべきデータのアドレス情報を含む。書き込み要求を受信した後に、記憶装置200は、書き込むべきデータのアドレス情報によって示される記憶空間に、各書き込むべきデータを順次(successively:連続して)記憶するか、又は書き込むべきデータのアドレス情報によって示される記憶空間に、書き込むべきデータを処理した後に取得されるデータ(例えば、以下の1つ又は複数の予測、デルタ計算、及び圧縮)を記憶する。
データ読み取り手順では、クライアント100は、読み取り要求を記憶装置に送信するように構成される。読み取り要求は、1つ又は複数の読み取るべき(to-be-read)データのアドレス情報を含む。読み取り要求を受信した後に、記憶装置200は、各読み取るべきデータのアドレス情報によって示される記憶空間からデータを順次読み取り、読み取ったデータをクライアント100にフィードバックするか、又は読み取ったデータを処理(例えば、以下の1つ又は複数の予測、デルタ計算、及び解凍)した後に取得されたデータをクライアント100にフィードバックする。
図1に示されるシステムアーキテクチャは、本願のこの実施形態に適用可能なシステムアーキテクチャの単なる例であり、本願のこの実施形態に適用可能なシステムアーキテクチャに対する制限を構成するものではないことに留意されたい。例えば、本願のこの実施形態に適用可能なシステムアーキテクチャは、1つの記憶装置200及び複数のクライアント100を含んでもよく、又は1つのクライアント及び複数の記憶装置200を含んでもよい。
クライアント100は、論理機能モジュールであることが理解され得る。論理機能モジュールで実現できる機能の例については、前述の説明を参照されたい。図1では、クライアント100が記憶装置200から独立している例を、説明のために使用する。この場合に、ハードウェア実装において、クライアント100は、記憶装置200とは独立した装置に統合され得る。さらに、いくつかの実施形態では、例えば、ハイパーコンバージド(hyper-converged)シナリオにおいて、又は統合型ストレージ及びコンピューティング装置において、クライアント100は、記憶装置200内の論理機能モジュールとして機能し得る。この場合に、ハードウェア実装において、クライアント100は、記憶装置200内の記憶媒体(メモリ等)及びプロセッサ(中央処理ユニット(central processing unit, CPU)等)によって共同で実装され得る。具体的には、記憶媒体はプログラム命令を記憶する。プログラム命令がプロセッサによって呼び出されると、プロセッサは、クライアント100によって実装され得る機能を実行することが可能になる。確かに、クライアント100は、記憶装置200内の記憶媒体(メモリ等)、プロセッサ、及び他のハードウェアによって共同して、代替的に実装され得る。これは、本願のこの実施形態に限定されない。特に明記しない限り、以下では、本願の実施形態で提供される技術的解決策が、説明のために図1に示されるシステムアーキテクチャに適用される例を使用する。
図2は、本願の一実施形態に適用可能な記憶装置200のハードウェア構造の概略図である。図2に示される記憶装置は、インターフェイスカード201、プロセッサ202、メインメモリ(メモリ(memory)等)203、セカンダリメモリ(ハードディスク等)204、プロトコル変換モジュール205、及びバス206を含む。これらの構成要素同士の間の接続関係については、図2を参照されたい。本願のこの実施形態では、ハードディスクは、ハードディスクドライブ(hard disk drive, HDD)又はソリッドステートディスク(solid-state disk, SDS)等の記憶媒体を含むが、これに限定されない。以下では、説明のために、メインメモリ203がメモリ(メモリ203としてマークされる)であり、セカンダリメモリ204が具体的にはハードディスク(ハードディスク204としてマークされる)であり、及びプロトコル変換モジュール205が具体的にはハードディスクプロトコル変換モジュール(ハードディスクプロトコル変換モジュール205としてマークされる)である例を使用することに留意されたい。これは、本明細書で一律に説明している。詳細については、以下では再び説明しない。
インターフェイスカード201、プロセッサ202、メモリ203、ハードディスク204、及びハードディスクプロトコル変換モジュール205は、バス206を介して互いに接続され得る。バス206は、周辺機器相互接続(peripheral component interconnect, PCI)バス、PCIE(PCIエクスプレス)バス、シリアル接続SCSI(serial attached SCSI, SAS)バス、SATAシリアルポートハードディスク(serial advanced technology attachment, SATA)バス、及び拡張型産業標準構造(extended industry standard architecture, EISA)バスのうちの少なくとも1つを含み得る。SCSIは、英語で「スカジー(small computer system interface, SCSI)」の略である。バス206は、アドレスバス、データバス、制御バス等のうちの1つ又は複数を含み得る。表示を容易にするために、バス206は、図2で矢印線を用いて示されている。ただし、これは、バスが1つしかない、又はバスのタイプが1つしかないことを示すものではない。
インターフェイスカード201は、フロントエンドプロトコル変換モジュールとも呼ばれ、受信した情報に対して送信プロトコル変換を実行し、例えば、光ネットワーク通信プロトコル又はイーサネット通信プロトコルを用いてクライアント100から受信した情報を、PCIEプロトコルを使用する情報に変換するか、又は別の例として、PCIEプロトコルを用いてプロセッサ202から受信した情報を、光ネットワーク通信プロトコル又はイーサネット通信プロトコルを使用する情報に変換するように構成され得る。インターフェイスカード201は、ファイバーチャネル(fibre channel, FC)インターフェイスカード、ギガビットイーサネット(gigabit ethernet, GE)インターフェイスカード、インターフェイスバス(interface bus, IB)インターフェイスカード等のうちの少なくとも1つを含み得る。
プロセッサ202は、記憶装置200の制御センタであり、記憶装置200内のメモリ203、ハードディスク204、及びハードディスクプロトコル変換モジュール205等の他の構成要素を制御して、本願の一実施形態で提供される技術的解決策を実施するべく動作するように構成され得る。具体的な例については、以下の説明を参照されたい。
オプションで、プロセッサ202は、CPUを含み得、具体的には、1つ又は複数のCPUを含み得る。
オプションで、プロセッサ202は、CPU及びキャッシュ(すなわち、CPUキャッシュ)を含み得る。キャッシュは、CPUとメモリ203との間の高速メモリであり、且つ主に、記憶装置200の読み取り/書き込み性能を向上させるように構成される。例えば、キャッシュに記憶されるデータは、メモリ203に記憶されるいくつかのデータであり得る。キャッシュにアクセスすべき(to-be-accessed)データ(例えば、読み取るべきデータ又は読み取るべきデータを処理した後に取得されるデータ)が含まれる場合に、CPUは、メモリ203からアクセスすべきデータを取得する必要なしに、キャッシュからアクセスすべきデータを取得することができ、それによりデータ読み取り速度が増大する。
メモリ203は、インターフェイスカード201から情報(例えば、書き込み要求又は読み取り要求に含まれる(carried in)情報)をキャッシュするように構成され得、それによって、プロセッサ202は、メモリ203にキャッシュされた情報を呼び出して、本願の実施形態で提供される技術的解決策を実施する、又は、プロセッサ202から情報(例えば、読み取るべきデータ)をキャッシュするように構成され得、それによって、プロセッサ202は、メモリ203にキャッシュされた情報を呼び出し、その情報をインターフェイスカード201に送信して、インターフェイスカード201がキャッシュされた情報に対して送信プロトコル変換を順次実行できるようにする。また、メモリ203は、プロセッサ202とハードディスク204との間のメモリであり、且つ記憶装置200の読み取り/書き込み性能を向上させるように構成される。メモリ203に記憶されるデータは、ハードディスク203に記憶されるいくつかのデータであり得る。メモリにアクセスすべきデータが含まれる場合に、CPUは、ハードディスク204からアクセスすべきデータを取得する必要なしに、メモリ203からアクセスすべきデータを取得することができ、それにより、データ読み取り速度が増大する。
ハードディスク204は、データを記憶するように構成される。サポートされる送信プロトコルに基づく分類を通じて、ハードディスク204は、SASディスク(又はSAS拡張エンクロージャ)、PCIEディスク、SATAディスク等のうちの少なくとも1つを含み得る。
ハードディスクプロトコル変換モジュール205は、バックエンドプロトコル変換モジュールとも呼ばれ得、プロセッサ202とハードディスク204との間に配置され、及び受信した情報に対して送信プロトコル変換を実行して、例えば、PCIEプロトコルを用いてプロセッサ202から受信した情報を、ハードディスク204に適用可能なSASプロトコル又はSATAプロトコル等のプロトコルを使用する情報に変換する、又は別の例として、SASプロトコル、SATAプロトコル等を用いてハードディスク204から受信した情報を、プロセッサ202に適用可能なPCIEプロトコル等のプロトコルを使用する情報に変換するように構成される。ハードディスク204がSASディスクである例では、ハードディスクプロトコル変換モジュール205は、具体的には、SASプロトコル変換チップ、SASインターフェイスカード等であり得る。
図2に示される記憶装置200において、プロセッサ202は、以下に説明する予測、デルタ計算、圧縮、及び解凍等のステップを実行するように構成され得る。具体的な例については、以下の説明を参照されたい。この場合に、プロセッサ202は、プログラムを呼び出すことによって、予測、デルタ計算、圧縮、及び解凍等のステップを実行すると見なすことができる。
図2に示される記憶装置200は、本願のこの実施形態に適用可能な記憶装置の一例に過ぎず、本願のこの実施形態に適用可能な記憶装置に対する制限を構成するものではないことに留意されたい。本願のこの実施形態に適用可能な記憶装置は、代替的に、記憶装置200内の構成要素よりも多い又は少ない構成要素を含んでもよい。
例えば、プロセッサ202及びハードディスク204が同じプロトコルを使用する、例えば、両方がPCIEプロトコルを使用する場合に、記憶装置200は、ハードディスクプロトコル変換モジュール205を含まなくてもよい。
別の例として、図3に示されるように、図2に示される記憶装置200に基づいて、記憶装置200は、AIコンピューティングカード207をさらに含み得る。AIコンピューティングカード207は、プロセッサ202の制御下でAIコンピューティング機能を実現する、例えば、以下で説明する予測及びデルタ計算等のステップを実行するように構成される。具体的な例については、以下の説明を参照されたい。AIコンピューティングカードは、例えば、AIコンピューティングチップであってもよい。確かに、本願のこの実施形態はそれに限定されない。この例では、AIコンピューティングカードが予測及びデルタ計算等のステップを実行するように構成される場合に、プロセッサ202は、予測及びデルタ計算等のステップを実行する必要がない場合がある。
さらに別の例として、記憶装置200は、プロセッサ202の制御下で圧縮及び解凍等のステップを実行するように構成される圧縮/解凍モジュールをさらに含み得る。特定の例については、以下の説明を参照されたい。この例では、プロセッサ202は、圧縮及び解凍等のステップを実行する必要がない場合がある。本明細書で説明する圧縮/解凍モジュールは、チップ等のハードウェアであり得る。
衝突(collision)が発生しない場合に、前述の例のうちの任意の2つ以上を組み合わせて使用して、記憶装置200の新しいハードウェアアーキテクチャを形成することができることを理解されたい。例えば、記憶装置200は、AIコンピューティングカード207と圧縮/解凍モジュールとの両方を含み得る。
上記の記憶装置200のハードウェア構造について、図1に示されるシステムアーキテクチャを例として用いて説明する。クライアント100が記憶装置200内の論理機能モジュールである実施形態では、記憶装置200の提供される前述のハードウェア構造は、インターフェイスカード201、又はインターフェイスカード201とプロセッサ202との間のバス206を含まなくてもよい。クライアント100の機能を実現するように構成されるプロセッサ及び前述のプロセッサ202は、同じプロセッサであってもよく、又は異なるプロセッサであってもよい。
以下では、本願の実施形態における関連技術を簡単に説明する。
(1)AIニューラルアルゴリズム
図4は、本願の一実施形態に適用可能なAIニューラルアルゴリズムの概略図である。図4では、AIニューラルアルゴリズムは、入力層31、隠れ層32、及び出力層33を含み得る。
入力層31は、入力変数の値を受け取り、受け取った入力変数の値を隠れ層32に直接又は処理後に送信するように構成される。処理の機能(function:関数)は、隠れ層32によって識別され得る情報を取得することである。入力変数は、予測すべき(to-be-predicted)データ以前の1つ又は複数のデータである。入力層31における入力変数の量と、入力変数として使用され且つ予測すべきデータ以前の特定のデータは、予測精度要件に基づいて柔軟に調整され得る。例えば、予測すべきデータがn番目のデータであり、且つX(n)としてマークされる場合に、入力変数は、予測すべきデータX(n)以前のn−1個のデータ(X(1)、X(2)、・・・、及びX(n−1))としてマークされる)内の任意の1つ又は複数のデータである可能性があり、n>=1、nは整数である。
隠れ層32は、入力変数の値であり且つ入力層31から受け取った値に基づいて予測すべきデータを予測し、予測結果を出力層33に送信するように構成される。隠れ層32は、y個のニューラルネットワークを含み、ここで、y>=1であり、yは整数である。yの値は、予測精度要件に基づいて調整できる。各ニューラルネットワークは1つ又は複数のニューロンを含み、異なるニューラルネットワークに含まれるニューロンの量は同じでも異なっていてもよい。第1のニューラルネットワークに含まれるニューロンは、S11、S12、S13・・・として表され得る。第2のニューラルネットワークに含まれるニューロンは、S21、S22、S23・・・として表され得る。y番目のニューラルネットワークに含まれるニューロンは、Sy1、Sy2、Sy3・・・として表され得る。隠れ層に含まれる任意の2つのニューロンの間に接続線がある場合にとない場合がある。各接続線には重みがあり、i番目の接続線の重みはwiとして表され得、i>=1、iは整数である。一例では、記憶装置が起動されると、初期値が、y、wi、及び各ニューラルネットワークに含まれるニューロンの量等のパラメータに割り当てられ得る。割り当てられた初期値は、特定の予測精度要件に基づいて、オフラインマシンを用いて、記憶データ(stored data)(例えば、大量の記憶データ)をトレーニング及び検証することによって取得できる。さらに、データ記憶プロセスでは、実際のサービス要件に基づいてオンライン学習を選択的に有効にして、y、wi、各ニューラルネットワークに含まれるニューロンの量等の1つ又は複数のパラメータの値を調整することができ、それにより、予測精度が向上する。
出力層33は、隠れ層32の予測結果を直接又は処理後に出力するように構成される。処理の機能は、予測結果を受け取る構成要素/モジュールによって識別され得る情報を取得することである。予測結果には、予測すべきデータを予測した後に取得される予測データが含まれる。
本願のこの実施形態では、AIニューラルアルゴリズムのタイプは、NLMSタイプ、SLPタイプ、MLPタイプ、RNNタイプ等のいずれか1つを含み得る。RNNタイプのAIニューラルアルゴリズムは、Google(登録商標)の高速且つ正確な画像超解像(rapid and accurate image super-resolution, RAISR)アルゴリズム、又はインテリジェント運転における移動物体追跡予測技術及びアルゴリズム、例えばBaidu(登録商標)のインテリジェント運転アルゴリズムのアポロ(Apollo)を含み得る。以下では、AIニューラルアルゴリズムのアプリケーション例を説明するための2つのアルゴリズムについて簡単に説明する。
Google(登録商標)のRAISRアルゴリズムは、次のように説明することができる。画像の変化の固有の規則が、マシンを用いて画像を学習することによって取得され、ここで、固有の規則は、アルゴリズムにおいてパラメータの値(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量のうちの1つ又は複数)を用いて表され得る。次に、取得したパラメータの値及び画像内の既知のピクセル値を用いて、画像内の欠落している各ピクセルのピクセル値及び元の高解像度画像内のピクセル値を予測し、低解像度画像を高解像度画像に復元する。コンピュータの場合に、コンピュータ内のバイナリデータのグループに欠落部分がある場合に、Google(登録商標)のRAISRアルゴリズムの機能(関数)は、機械学習を通じて欠落部分を予測することである。
Baidu(登録商標)のApolloインテリジェント運転アルゴリズムは、次のように説明することができる。物体の運動パラメータは、マシンを用いて学習され、物体の運動パラメータの変化の固有の規則を取得し、ここで、固有の規則は、アルゴリズムにおいてパラメータの値(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量のうちの1つ又は複数)を用いて表され得る。次に、取得したパラメータの値と物体の現在の運動パラメータ及び/又は過去の運動パラメータとを用いて、物体の将来の運動パラメータを予測する。コンピュータの場合に、位置の変化又は特定の値の変化は、将来のバイナリデータ内の既知のバイナリデータのグループに対して予測される。
類推により、本願の実施形態で使用されるAIニューラルアルゴリズムは、次のように説明することができる。記憶データは、マシンを用いて学習され、記憶データの変化の固有の規則が取得され、ここで、固有の規則は、アルゴリズムにおいてパラメータの値(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量のうちの1つ又は複数)を用いて表され得る。次に、取得したパラメータの値及び既知の記憶データを用いて、未知の記憶データを予測する。コンピュータの場合に、既知のバイナリデータのグループを用いて、将来のバイナリデータの値を予測する。
(2)辞書(dictionary)圧縮技術(又はアルゴリズム)及び辞書解凍技術(又はアルゴリズム)
辞書圧縮技術は、現在業界で認められている高効率のストレージ技術である。辞書圧縮技術の基本原理は次の通りである。辞書は記憶装置に予め記憶され、ここで、辞書には少なくとも2つのマッピング関係が含まれ、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、各マッピング関係において第1のデータが占める記憶空間は、マッピング関係において第2のデータが占める記憶空間よりも大きい。換言すると、各マッピング関係は、複雑なシンボル(又は複雑なデータ)と単純なシンボル(又は単純なデータ)との間のマッピング関係である。一般に、辞書内の任意の2つの第1のデータは異なり、任意の2つの第2のデータも異なる。圧縮する必要のある圧縮すべきデータ(例えば、書き込むべきデータ)がある場合に、記憶装置は、圧縮すべきデータを辞書内の第1のデータと比較することができ、辞書内の第1のデータに圧縮すべきデータが含まれる場合に、圧縮すべきデータに対応する第2のデータを記憶する、又は辞書内の第1のデータに圧縮すべきデータが含まれない場合に、圧縮すべきデータを記憶する。
例えば、辞書に記憶される第1のデータと第2のデータとの間の対応関係が表1に示されていると想定する。
さらに、以下の圧縮すべきデータを圧縮する必要がある場合に、表1に示される辞書に基づいて辞書圧縮を行った後に、「私は中国人であり、中国出身である」という記憶装置に記憶されている情報(つまり、圧縮すべきデータを復元するために使用される情報)は、「私は00 01であり、02から来ました」であり得る。
辞書解凍技術の基本原理は以下の通りである。記憶装置は、解凍すべきデータ(例えば、記憶空間から読み取られるデータ)を辞書内の第2のデータと比較し、辞書内の第2のデータに解凍すべきデータが含まれる場合に、解凍すべきデータに対応する第1のデータを解凍データとして使用し、又は辞書内の第2のデータに解凍すべきデータが含まれない場合に、解凍すべきデータを解凍データとして使用する。
さらに、本願における「複数」という用語は、2つ以上を意味する。本願における「及び/又は」という用語は、関連するオブジェクトを説明するための関連関係のみを説明し、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、次の3つのケースを表し得る:Aのみが存在し、AとBとの両方が存在し、Bのみが存在する。さらに、本明細書の文字「/」は、通常、関連するオブジェクト同士の間の「又は」の関係を示す。数式で文字「/」が使用される場合に、その文字は、通常、関連するオブジェクト同士の間の「除算」関係を示す。例えば、式A/Bは、AがBで除算されることを示す。本願では、「第1」、「第2」等の用語は、異なるオブジェクトを区別することを目的としているが、オブジェクトの特定の順序を示すものではない。
添付の図面を参照して、以下では、本願の実施形態で提供されるデータ記憶方法及びデータ取得方法について説明する。
図5は、本願の一実施形態によるデータ記憶方法の概略図である。図5に示される方法は、以下のステップを含み得る。
S100:記憶装置は、現在のデータ及び現在のデータの履歴データを取得する。
例えば、記憶装置は、少なくとも2つの記憶すべきデータ内の現在のデータ(すなわち、現在の記憶すべきデータ)及び現在のデータの履歴データ(すなわち、記憶すべき履歴データ)を取得し、履歴データは、少なくとも2つの記憶すべきデータを含むシーケンス内の現在のデータ以前の1つ又は複数のデータである。
S101:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。
履歴データの変更規則は、具体的には、コンテンツ(content)の変更規則又は履歴データの値である。
例えば、シーケンス内の全てのデータ(すなわち、記憶すべきデータ)は、連続したX(1)、X(2)、X(3)、・・・、X(n)、・・・、及びX(N)であり、ここで、1<=n<=N、N>=2であり、nとNとの両方が整数である。この場合に、現在のデータがX(n)である場合に、履歴データは、X(n)以前の任意の1つ又は複数のデータであり得る。オプションで、履歴データは、X(n−1)から始まりX(n−1)以前の連続データの予め設定した量である。例えば、予め設定した量が10であり、n=50の場合に、履歴データは、データX(40)〜X(49)であり得、又はn=51の場合に、履歴データは、データX(41)〜X(50)であり得る。確かに、履歴データは、代替的に、X(n−1)から始まりX(n−1)以前の複数の非連続データである。
現在のデータ以前にあり、且つ現在のデータの履歴データとして使用される特定のデータは、S101で予測を行うために使用されるアルゴリズムに関連し得る。予測を行うために使用されるアルゴリズムは、本願のこの実施形態では限定されない。例えば、アルゴリズムはAIニューラルアルゴリズムを含み得る。この場合に、現在のデータ以前にあり、且つS101で使用される履歴データとして使用される特定のデータは、図4に示されるAIニューラルアルゴリズムの入力変数に基づいて決定され得る。例えば、図4に示されるAIニューラルアルゴリズムの入力変数が、X(n−1)から始まりX(n−1)以前の10個の連続データであり、現在のデータがX(n)であり、n=50の場合に、履歴データはX(40)〜X(49)である。別の例として、図4に示されるAIニューラルアルゴリズムの入力変数がX(n−2)、X(n−4)、X(n−6)、X(n−8)、及びX(n−10)であり、現在のデータがX(n)であり、n=50の場合に、履歴データは、X(48)、X(46)、X(44)、X(42)、及びX(40)である。
AIニューラルアルゴリズムの特定の実施態様については、前述の説明を参照されたい。詳細については、ここでは再び説明しない。S101を実行する前に、記憶装置は、AIニューラルアルゴリズムの全てのパラメータ(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量)の値を取得していることに留意されたい。AIニューラルアルゴリズムの全てのパラメータの値は、記憶データをオフライン及び/又はオンラインでトレーニングすることによって取得できる。S101を実行するときに、記憶装置は、履歴データとAIニューラルアルゴリズムの全てのパラメータの取得値とに基づいて現在のデータを予測して、現在のデータの予測データを取得することができる。
一例では、クライアントによって送信された1つ又は複数の書き込み要求を受信した後に、記憶装置は、1つ又は複数の書き込み要求に含まれる書き込むべきデータに基づいて、少なくとも2つの記憶すべきデータを取得することができる。1つ又は複数の書き込み要求に含まれる書き込むべきデータは、同じ対象物(subject)又は同じタイプの対象物のデータである。例えば、対象物は、同じ品目(article)、同じ画像、又は同じタイプの複数の画像であり得る。次に、少なくとも2つの記憶すべきデータがソートされて、少なくとも2つの記憶すべきデータを含むシーケンスが取得される。続いて、シーケンス内の一部又は全部の記憶すべきデータ内の全ての記憶すべきデータを現在のデータとして順次使用して、S100〜S105を実行する。
1つ又は複数の書き込み要求に含まれる書き込むべきデータに基づいて少なくとも2つの記憶すべきデータを取得するステップは、1つ又は複数の書き込み要求に含まれる各書き込むべきデータを1つの記憶すべきデータとして使用するステップ、或いは1つ又は複数の書き込み要求に含まれる書き込むべきデータを少なくとも2つの記憶すべきデータに再結合及び/又は分割するステップを含み得る。具体的には、記憶装置が受け取る書き込むべきデータの粒度は、記憶装置による処理(予測、デルタ計算、記憶等の1つ又は複数を含む)の粒度と同じでも異なっていてもよい。例えば、1つ又は複数の書き込み要求に含まれる各書き込むべきデータが8ビットであり、各記憶すべきデータが8ビットである場合に、各書き込むべきデータは1つの記憶すべきデータである;各記憶すべきデータが16ビットである場合に、2つの書き込むべきデータを組み合わせることにより、各記憶すべきデータを取得することができる;又は、各記憶すべきデータが4ビットである場合に、2つの記憶すべきデータは全て、1つの書き込むべきデータを分割することによって取得され得る。説明を容易にするために、以下では、説明のために、各書き込むべきデータが1つの記憶すべきデータとして使用される例を使用する。
この例における少なくとも2つの記憶すべきデータをソート(sorting:並べ替え)する特定の方法は、本願のこの実施形態では限定されない。通常、この例では、ソートを行うために使用されるソート規則は、予測を行うために使用されるAIニューラルアルゴリズム等の予測アルゴリズムに関連している。例えば、この例では、ソートを行うために使用されるソート規則は、記憶装置がAIニューラルアルゴリズムの全てのパラメータ(前述のy、wi、各ニューラルネットワークに含まれるニューロンの量等)の値を取得するプロセスにおいて、記憶データがトレーニングに関与するときに、記憶データが基づくソート規則と同じである。例えば、記憶データが、記憶データがトレーニングに関与するときの同じ品目である場合に、ソート規則は、品目内の全ての文字のシーケンス又はこのシーケンスの逆のシーケンスである可能性がある。別の例として、トレーニングに関与する記憶データが同じ画像に関するものである場合に、ソート規則は、画像内の全てのピクセルが行毎に又は列毎にソートされる規則、又は画像が複数の部分に分割される規則である可能性があり、同様の部分が結合された後に取得される新しい画像内の全てのピクセルは、行毎又は列毎にソートされる。
一例では、クライアントによって送信された1つ又は複数の書き込み要求を受信した後に、記憶装置は、書き込み要求に含まれる書き込むべきデータから少なくとも2つの記憶すべきデータを取得し、少なくとも2つの書き込むべきデータによって順番に構成されるシーケンスを、少なくとも2つの記憶すべきデータを含むシーケンスとして使用し、次に、シーケンス内の一部又は全ての記憶すべきデータ内の全ての記憶すべきデータを現在のデータとして順次使用して、S101〜S105を実行することができる。この例では、記憶装置は、書き込むべきデータをソートするステップを実行しない場合がある。この例のアプリケーションシナリオは次の通りであり得る。記憶装置がAIニューラルアルゴリズムの全てのパラメータ(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量)の値を取得するプロセスでは、トレーニングに関与する記憶データのシーケンスは、記憶装置によって受信され、且つクライアントによって送信される記憶データのシーケンスである。この例の関連パラメータの説明及び実施態様については、前述の説明を参照されたい。
予測ステップについて、本願のこの実施形態では、以下の技術的解決策がサポートされることに留意されたい。
解決策1:いくつかの記憶すべきデータについて、予測ステップはデフォルトであり得る。例えば、履歴データがX(n−1)から始まりX(n−1)以前の10個の連続データである場合に、1番目〜10番目までの記憶すべきデータについて、予測ステップはデフォルトであり得る。
解決策1に基づいて、記憶装置は、先行技術で提供される技術的解決策に従って記憶データを記憶し、例えば、記憶データを直接記憶し、又は辞書圧縮アルゴリズム及び/又は重複排除アルゴリズム等のアルゴリズムに基づく圧縮を行った後に記憶データを記憶し得る。この場合に、S102〜S104もデフォルトであり得ることが理解され得る。
解決策2:記憶装置が異なる記憶すべきデータを予測する場合に、使用される予測アルゴリズムの全てのパラメータは同じであっても異なっていてもよい。例えば、5番目〜10番目の記憶すべきデータについて、AIニューラルアルゴリズムの入力変数は、X(n−1)から始まりX(n−1)以前の5個の連続データである可能性がある。つまり、5個の入力変数がある。10番目の記憶すべきデータとそれに続く記憶すべきデータの場合に、AIニューラルアルゴリズムの入力変数は、X(n−1)から始まりX(n−1)以前の10個の連続データである可能性がある。換言すると、6つの入力変数がある。
S102:記憶装置は、現在のデータと現在のデータの予測データとの間のデルタを取得する。
デルタは、現在のデータと現在のデータの予測データとの間の差を表すために使用されるパラメータである。例えば、デルタは、差、比、倍数、パーセンテージ等であり得る。確かに、本願のこの実施形態はそれに限定されない。
例えば、デルタが差である場合に、差は、現在のデータから現在のデータの予測データを差し引くことによって得られる差、又は現在のデータの予測データから現在のデータを差し引くことによって得られる差であり得る。特定の差を予め規定してもよく、本願のこの実施形態はそれに限定されない。現在のデータの予測データが、現在のデータよりも大きい、等しい、又は小さい可能性があるため、差は、0より大きい、等しい、又はより小さい値である可能性があることが理解され得る。デルタが、比、倍数、又はパーセンテージ等である場合に、特定の実施態様の原理及びデルタの値は、上記のものと同様であり、本明細書では1つずつ列挙していない。
S103:記憶装置は、デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さいかどうかを判定する。デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、S104が実行される。デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さくない場合に、S105が実行される。
S103は、以下の方法のうちの1つで実施され得る。
方法1:記憶装置は、デルタのビット数量が現在のデータのビット数量よりも少ないかどうかを判定する。
方法2:記憶装置は、デルタ及び現在のデータを別々に圧縮し(例えば、辞書圧縮アルゴリズム又は重複排除アルゴリズムを用いてデルタ及び現在のデータを圧縮する)、デルタを圧縮して得た値のビット数量が、現在のデータを圧縮して得た値のビット数量よりも少なくなるかどうかを判定する。
方法1及び方法2のいずれかに基づいて、判定結果が「はい」である場合に、それは、デルタが占める記憶空間が、現在のデータが占める記憶空間よりも小さいことを示す、又は、判定結果が「いいえ」の場合に、デルタが占める記憶空間が、現在のデータが占める記憶空間以上であることを示す。
S104:記憶装置は、デルタを記憶するか、又はデルタを圧縮して得た値を記憶する。デルタを圧縮して得た値又はデルタが具体的に記憶されるかどうかは、予め規定することができる。確かに、本願のこの実施形態はそれに限定されない。
圧縮を行うために使用される圧縮アルゴリズムは、本願のこの実施形態では限定されない。例えば、圧縮アルゴリズムは、辞書圧縮アルゴリズム及び重複排除アルゴリズムのうちの少なくとも1つを含み得る。1つ又は複数の特定の使用アルゴリズムを予め規定することができる。確かに、本願のこの実施形態はそれに限定されない。
S104を実行した後に、現在のデータの記憶プロセスは終了する。
S105:記憶装置は、現在のデータを記憶するか、又は現在のデータを圧縮して得た値を記憶する。現在のデータを圧縮して得た値又は現在のデータが具体的に記憶されるかどうかは、予め規定することができる。確かに、本願のこの実施形態はそれに限定されない。
一例では、S105が実行される場合に、記憶装置によって使用される圧縮アルゴリズムは、S104の圧縮に使用される圧縮アルゴリズムと一致している。確かに、本願のこの実施形態はそれに限定されない。
S105を実行した後に、現在のデータの記憶プロセスは終了する。
記憶装置が、現在のデータを復元するために使用される記憶情報が「圧縮よって得た値又はデルタ」であるか、又は「圧縮によって得た値又は現在のデータ」であるかを区別し、データ読み取り手順で読み取るべきデータを決定するのを助けるために、オプションで、S105が実行される場合に、この方法は、以下のS105Aをさらに含み得る。
S105A:記憶装置は、第1の識別子情報を記憶し、ここで、第1の識別子情報は、現在のデータを復元するために使用される記憶情報がS105で記憶される情報(すなわち、現在のデータ又は現在のデータを圧縮して得た値)であることを示すために使用される。第1の識別子情報は、現在のデータを復元するために使用される情報の識別子情報として、又は現在のデータを復元するために使用される情報に含まれる情報として使用され得る。
S105Aは、以下のものと置き換えることができることが理解され得る。以下のS104Aは、S104を実行した後に実行される。あるいはまた、S105Aを実行する場合であって、S104を実行した後に、以下のS104Aをさらに実行してもよい。
S104A:記憶装置は、第2の識別子情報を記憶し、ここで、第2の識別子情報は、現在のデータを復元するために使用される記憶情報がS104で記憶される情報(すなわち、デルタ又はデルタを圧縮して得た値)であることを示すために使用される。
記憶すべきデータの予測データは、予測アルゴリズムのパラメータの値を調整することによって記憶すべきデータに近づけることができ、それによって、殆どの記憶すべきデータの予測データと記憶すべきデータとの間のデルタが占める記憶空間は、記憶すべきデータが占める記憶空間よりも小さい。従って、特定の実施態様では、S105Aが実行され、S104Aが実行されない場合に(換言すると、第1の識別子情報が記憶され、第2の識別子情報が記憶されない場合に)、記憶装置は、現在のデータを復元するために使用される記憶情報が、「デルタを圧縮して得た値又はデルタ」又は「現在のデータを圧縮して得た値又は現在のデータ」であるかどうかを区別することができ、記憶オーバーヘッドを削減できる。次の図6−1〜図6−4から図8A〜図8Cに示される実施形態は全て、データ記憶方式においてS105Aが実行され、S104Aが実行されない例に基づいて説明している。
本願のこの実施形態で提供されるデータ記憶方法では、現在のデータは履歴データを用いて予測され、現在のデータと現在のデータの予測データとの間のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、デルタ又はデルタを圧縮して得た値が記憶される。デルタが占める記憶空間が、現在のデータが占める記憶空間よりも小さいため、予測及びデルタ計算のプロセスは、データ圧縮プロセスと見なすことができる。このようにして、従来技術と比較して、デルタが直接記憶されるか、又はデルタを圧縮して得た値が記憶されるかに関係なく、記憶オーバーヘッドを削減できる。さらに、現在のデータの予測データが現在のデータに近くなるように、適切な予測アルゴリズムが使用されるか、予測アルゴリズムのパラメータが調整される。従って、デルタが占める記憶空間は、現在のデータが占める記憶空間よりもはるかに小さく、それにより記憶オーバーヘッドがより効果的に削減される。さらに、デルタを圧縮して得た値を記憶する技術的解決策において、記憶オーバーヘッドをさらに削減できる。
図5に示されるデルタを圧縮して得た値を記憶する技術的解決策は、次のように理解され得る。従来の圧縮アルゴリズムを用いてデータを処理する前に、予測アルゴリズムが導入され、ここで、予測アルゴリズムは、データのコンテンツ規則、開発動向、固有の関係等に基づいて構成される。記憶装置に入力されるデータのコンテンツは、予測アルゴリズムと、記憶装置に入力されたデータ(又は記憶装置に入力された複数のデータを含むシーケンス内の後者のデータは、以前のデータを用いて予測される)とを用いて予測される。次に、予測される正確なコンテンツ又は類似のコンテンツについて、従来のデータ圧縮アルゴリズムのみが呼び出されて、実際の値と予測値との間のデルタが圧縮されるが、予測される正確なコンテンツ又は類似のコンテンツは記憶されない。このようにして、圧縮率が増大し、従来の圧縮アルゴリズムにおける入力値の変動範囲が積極的に低減され、それにより、解凍率及び解凍速度に関して現在の圧縮アルゴリズムの最適化及びブレークスルーが達成される。
例えば、記憶装置の終了の場合に、記憶オブジェクトはバイナリシーケンスであるが、シーケンスが理解可能なセマンティクス(semantics)に復元されると、シーケンスにはいくつかの変更規則が含まれていることが分かる。例えば、バイナリシーケンスXn={10、101、1010、10001、11010、100101、110010、1000001、1010010、1100101、1111010、10010001、10101011}が10進シーケンスに変換された後に、Xn’={2、5、10、17、26、37、50、65、82、101、122、145、171}が得られる。解析によって、Xn'の最初の12個のデータが、以下の変更規則:x2+1及びx=1〜12を満たしていることが分かった。
これに基づいて、Xn’について、予測アルゴリズムx2+1及び図5に示される実施形態に基づいて記憶装置によって実際に記憶されるシーケンスは、{10、101、1010、0、0、0、0、0、0、0、0、0、01}となり得る。Xn’の最初の3つのデータでは、予測ステップがデフォルトである。S105Aを参照すると、その3つのデータについて、記憶装置は、第1の識別子情報をさらに別々に記憶し得ることが分かり得る。記憶される「01」は、記憶すべきデータ171と記憶すべきデータの予測データ170との間の差である。記憶のために圧縮する必要のあるデータの範囲が大幅に削減され、その範囲内のデータの繰り返し確率が明らかに増大することが分かり得る。従って、データ圧縮率及び圧縮効率を大幅に向上させることができる。
複数の記憶すべきデータについては、各記憶すべきデータが、図5に示されるデータ記憶方法に従って記憶され得るので、各記憶すべきデータが、記憶すべきデータの予測データと比較される場合に、完全に同じ、部分的に同じ、及び完全に異なるケースのいずれかが発生する可能性があることに留意されたい。記憶すべきデータ及び予測データが完全に同じ又は部分的に同じである場合に、記憶空間を節約できる。記憶すべきデータ及び予測データが完全に異なる場合に、その効果は、従来技術で使用されている対応する方法と同等である。従って、一般に、記憶空間を節約できる。さらに、圧縮によって得た値を記憶する技術的解決策では、データ圧縮率及び圧縮効率を大幅に向上させることができる。
図5Aは、本願の一実施形態による、記憶すべきデータ及び実際に記憶される情報(すなわち、記憶すべきデータを復元するために使用される情報)の概略図である。履歴データが、現在のデータ以前であって、記憶すべきデータから始まり現在のデータ以前の5個の連続する記憶すべきデータである例が、説明のために図5で使用される。従って、シーケンス内の最初の5個の記憶すべきデータについて、対応する実際に記憶される情報は、別個に記憶すべきデータ(又は記憶すべきデータを圧縮して得た値)及び第1の識別子情報である。各影付きの四角は、1つの記憶すべきデータに対応する実際に記憶される情報を表し、対応関係が破線の矢印で示される。「A」は第1の識別子情報を示す。
図2に示される記憶装置を参照すると、図5に示されるデータ記憶方法の例が、図6−1〜図6−4に示され得る。図6−1〜図6−4に示される方法は、以下のステップを含み得る。
S201:記憶装置は、インターフェイスカードを用いて、クライアントから送信された書き込み要求を受信し、ここで、書き込み要求には、少なくとも2つの書き込むべきデータと、少なくとも2つの書き込むべきデータのそれぞれのアドレス情報とが含まれる。
S202:インターフェイスカードは、少なくとも2つの書き込むべきデータ及び各書き込むべきデータのアドレス情報に対して送信プロトコル変換を実行し、例えば、イーサネット通信プロトコルを使用するこれらの情報を、PCIEプロトコルを使用する情報に変換する。
S203:インターフェイスカードは、送信プロトコル変換後に取得される少なくとも2つの書き込むべきデータ及び各書き込むべきデータのアドレス情報をプロセッサに送信する。
S204:プロセッサは、インターフェイスカードから受信した少なくとも2つの書き込むべきデータのそれぞれを1つの記憶すべきデータとして使用し、取得した少なくとも2つの記憶すべきデータをソートする。
S205:プロセッサは、ソート後に取得したシーケンス及び各記憶すべきデータ(すなわち、各書き込むべきデータ)のアドレス情報をメモリに記憶する。続いて、プロセッサは、シーケンス内の一部又は全ての記憶すべきデータ内の全ての記憶すべきデータを現在のデータとして順次使用して、以下のS206〜S219を実行することができる。シーケンス内の任意の2つの記憶すべきデータについて、シーケンスの前部(front position)に位置する記憶すべきデータは、後部(back position)に位置する記憶すべきデータの履歴データとして使用され得ることが理解され得る。
オプションで、S204及びS205は、以下のものと置き換えることができる。プロセッサは、インターフェイスカードから受信した少なくとも2つの書き込むべきデータを1つの記憶すべきデータとして使用し、取得した記憶すべきデータ及び記憶すべきデータのアドレス情報をメモリに書き込む。次に、プロセッサは、メモリに書き込まれた少なくとも2つの記憶すべきデータをソートするか、又はプロセッサは、インターフェイスカードによって送信されて受信された少なくとも2つの書き込むべきデータの順序を少なくとも2つの記憶すべきデータの順序として順次使用してシーケンスを形成することができ、シーケンス内の一部又は全部の記憶すべきデータ内の全ての記憶すべきデータを現在のデータとして順次使用して、以下のS206〜S219を実行することができる。
シーケンスの前部に位置する記憶すべきデータは、後部に位置する記憶すべきデータの履歴データとして使用され得ることが理解され得る。しかしながら、前述の説明に基づいて、記憶すべきデータ以前の全ての記憶すべきデータが、記憶すべきデータの履歴データとして使用されるわけではないことが分かり得る。これに基づいて、オプションで、任意の記憶すべきデータについて、記憶すべきデータが他の記憶すべきデータの履歴データとしてもはや使用されなくなったときに、プロセッサは、メモリから記憶すべきデータを削除して、メモリの記憶オーバーヘッドを削減することができる。
図6Aは、ある時点でメモリ及びハードディスクに記憶されている情報の概略図である。図6Aは、図5Aに基づいて描かれている。従って、図6Aの様々なグラフ、矢印等の説明については、図5Aを参照されたい。図6Aから、現時点では、メモリに記憶すべきデータを含むシーケンスは、現在のデータの履歴データ、現在のデータ、及び現在のデータの後の記憶すべきデータのみを含み得ることが分かり得る。このようにして、メモリの記憶オーバーヘッドを削減できる。
S206:プロセッサは、メモリから現在のデータ及び現在のデータの履歴データを取得する。
S207:プロセッサは、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。
S208:プロセッサは、現在のデータと現在のデータの予測データとの間のデルタを取得する。
S209:プロセッサは、デルタが占める記憶空間が、現在のデータが占める記憶空間よりも小さいかどうかを判定する。
デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、S210が実行される、又はデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さくない場合に、S215が実行される。
S210:プロセッサはデルタを圧縮する。
S211:プロセッサは、メモリから取得した現在のデータのアドレス情報と、デルタを圧縮して得た値とをハードディスクプロトコル変換モジュールに送信する。
S212:ハードディスクプロトコル変換モジュールは、現在のデータのアドレス情報及び受信したデルタを圧縮して得た値に対して送信プロトコル変換を実行し、例えば、PCIEプロトコルからSASプロトコルへの変換を実行する。
S213:ハードディスクプロトコル変換モジュールは、送信プロトコル変換後に取得される現在のデータのアドレス情報及びデルタを圧縮して得た値をSASディスク等のハードディスクに送信する。
S214:ハードディスクは、デルタを圧縮して得た値を、現在のデータのアドレス情報によって示される記憶空間に記憶する。S214を実行した後に、現在のデータの記憶プロセスは終了する。
S215:プロセッサは現在のデータを圧縮する。
S216:プロセッサは、第1の識別子情報、メモリから取得した現在のデータのアドレス情報、及び現在のデータを圧縮して得た値をハードディスクプロトコル変換モジュールに送信する。第1の識別子情報は、現在のデータを復元するために使用される記憶情報が、現在のデータを圧縮して得た値であることを示すために使用される。
S217:ハードディスクプロトコル変換モジュールは、受信した第1の識別子情報、現在のデータのアドレス情報、及び現在のデータを圧縮して得た値に対して送信プロトコル変換を実行し、例えば、PCIEプロトコルからSASプロトコルへの変換を実行する。
S218:ハードディスクプロトコル変換モジュールは、送信プロトコル変換後に取得される第1の識別子情報、現在のデータのアドレス情報、及び現在のデータを圧縮して得た値をハードディスク(SASディスク等)に送信する。
S219:ハードディスクは、第1の識別子情報及び現在のデータを圧縮して得た値を、現在のデータのアドレス情報によって示される記憶空間に記憶する。S219を実行した後に、現在のデータの記憶プロセスは終了する。
図3に示される記憶装置を参照すると、図5に示されるデータ記憶方法の例は、図6−1〜図6−4に示される実施形態が以下のいくつかの点で変更された後に得られる実施形態であり得る。1:前述のS207〜S209は、AIコンピューティングカードによって実行される。2:S206が実行された後であって、S207が実行される前に、この方法は、プロセッサが、メモリから取得した履歴データ及び現在のデータをAIコンピューティングカードに送信するステップをさらに含む。3:S209が実行された後であって、S210が実行される前に、この方法は、AIコンピューティングカードが、デルタをプロセッサに送信するステップをさらに含む。4:S209が実行された後であって、S215が実行される前に、この方法は、AIコンピューティングカードが、現在のデータをプロセッサに送信するステップをさらに含む。
図7は、本願の一実施形態によるデータ取得方法の概略図である。この実施形態は、図5に示されるデータ記憶方法に対応する。従って、この実施形態における関連する内容の説明については、図5に示される実施形態を参照されたい。図7に示される方法は、以下のステップを含み得る。
S301:記憶装置は、現在のデータ(つまり、現在取得すべきデータ)を復元するために使用される情報を読み取る。現在のデータを復元するために使用される情報には、「デルタ又はデルタを圧縮して得た値」又は「現在のデータ又は現在のデータを圧縮して得た値」が含まれる。デルタは、現在のデータと現在のデータの予測データとの間のデルタである。現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。
履歴データは、1つ又は複数の取得データである。
例えば、クライアントによって送信された1つ又は複数の読み取り要求を受信した後に、記憶装置は、1つ又は複数の読み取り要求を用いて要求された読み取るべきデータに基づいて、少なくとも2つの取得すべきデータのアドレス情報を取得し、次に、少なくとも2つの取得すべきデータのアドレス情報に基づいて、少なくとも2つの取得すべきデータを復元するために使用される情報を読み取るすることができる。1つ又は複数の読み取り要求を用いて要求されたデータは、同じサブジェクト(subject)のデータである。サブジェクトの関連する説明については、図5Aに示される実施形態を参照されたい。読み取るべきデータの粒度は、取得すべきデータの粒度と同じでも異なっていてもよい。例えば、1つの読み取るべきデータが8ビットである場合に、1つの取得すべきデータは、4ビット、8ビット、16ビット等であり得る。説明を容易にするために、以下では、説明のために、各読み取るべきデータが、1つの取得すべきデータである例を使用する。読み取るべきデータと取得すべきデータとの間の対応関係については、前述の書き込むべきデータと記憶すべきデータとの間の対応関係を参照されたい。詳細については、ここでは再び説明しない。記憶装置は、少なくとも2つの取得すべきデータのそれぞれを現在のデータとして使用して、S301〜S306を実行することができる。
現在のデータを復元するために使用される情報に「デルタ又はデルタを圧縮して得た値」が含まれる場合に、情報にデルタ又はデルタを圧縮して得た値が具体的に含まれるかどうかを予め規定することができる。確かに、本願はそれに限定されない。
現在のデータを復元するために使用される情報に「現在のデータ又は現在のデータを圧縮して得た値」が含まれる場合に、情報に現在のデータ又は現在のデータを圧縮して得た値が具体的に含まれるかどうかを予め規定することができる。確かに、本願はそれに限定されない。
S302:記憶装置は、現在のデータを復元するために使用される情報に第1の識別子情報が含まれるかどうかを判定する。
図5に示される実施形態の説明に基づいて、以下が分かり得る。
S302における判定結果が、現在のデータを復元するために使用される情報に第1の識別子情報が含まれないということである場合に、それは、現在のデータを復元するために使用される情報にはデルタ又はデルタを圧縮して得た値が含まれることを示す。これに基づいて、現在のデータを復元するために使用される情報がデルタを圧縮して得た値である場合に、S303が実行され、又は現在のデータを復元するために使用される情報がデルタである場合に、S304が実行される。
S302の判定結果が、現在のデータを復元するために使用される情報に第1の識別子情報が含まれるということである場合に、それは、現在のデータを復元するために使用される情報には現在のデータ又は現在のデータを圧縮して得た値が含まれることを示す。これに基づき、現在のデータを復元するために使用される情報が現在のデータを圧縮して得た値である場合に、S306が実行され、又は現在のデータを復元するために使用される情報が現在のデータである場合に、現在のデータの取得プロセスは終了する。
S303:記憶装置は、デルタを圧縮して得た値を解凍して、デルタを取得する。
S303において解凍を行うために使用される解凍アルゴリズムは、S104において圧縮を行うために使用される圧縮アルゴリズムに対応することが理解され得る。例えば、辞書圧縮アルゴリズムを使用してS104において圧縮を行う場合に、辞書解凍アルゴリズムを使用してS303で解凍を行う。別の例として、重複排除アルゴリズムを使用してS104において圧縮を行う場合に、重複排除アルゴリズムを使用してS303において解凍を行う。
S304:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。
履歴データは、記憶装置が取得した1つ又は複数のデータである。履歴データが1つ又は複数の取得データであるかどうか、及びどの1つ又は複数のデータが具体的に履歴データであるかどうかは、予測アルゴリズムに関連している。履歴データの特定の実施態様については、図5に示される実施形態を参照されたい。詳細については、ここでは再び説明しない。
図7Aは、本願の一実施形態による、取得すべきデータ及び実際に記憶される情報(すなわち、取得すべきデータを復元するために使用される情報)の概略図である。図7Aの実際に記憶される情報は、図5Aに示される実際に記憶される情報と同じである。従って、関連するグラフ、矢印等の説明については、図5Aを参照されたい。
S303及びS304の実行シーケンスは、本願のこの実施形態では限定されない。例えば、S303はS304の前に実行してもよく、S304はS303の前に実行してもよく、又はS303及びS304は同時に実行してもよい。
S305:記憶装置は、デルタと現在のデータの予測データとに基づいて現在のデータを決定する。
例えば、デルタが現在のデータから現在のデータの予測データを差し引くことによって得られた差である場合に、S305では、デルタと現在のデータの予測データとの合計が現在のデータとして使用される。例えば、デルタが現在のデータを現在のデータの予測データで除算することによって得られる比である場合に、S305では、デルタと現在のデータの予測データとの積が現在のデータとして使用される。他の例は1つずつ列挙していない。
S305を実行した後に、現在のデータの取得プロセスは終了する。
S306:記憶装置は、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
S306を実行した後に、現在のデータの取得プロセスは終了する。
この実施形態で提供されるデータ取得方法は、図5に示されるデータ記憶方法に対応する。従って、この実施形態における有利な効果については、図5に示される実施形態で説明した有利な効果を参照されたい。詳細については、ここでは再び説明しない。
図2に示される記憶装置を参照すると、図7に示されるデータ記憶方法の例が、図8A〜図8Cに示され得る。図8A〜図8Cに示される方法は、以下のステップを含み得る。
S401:記憶装置は、インターフェイスカードを用いて、クライアントから送信された読み取り要求を受信し、ここで、読み取り要求には、1つ又は複数の読み取るべきデータのアドレス情報が含まれる。
S402:インターフェイスカードは、1つ又は複数の読み取るべきデータのアドレス情報に対して送信プロトコル変換を実行し、例えば、イーサネット通信プロトコルを使用する1つ又は複数の読み取るべきデータのアドレス情報を、PCIEプロトコルを使用する情報に変換する。
S403:インターフェイスカードは、1つ又は複数の読み取るべきデータであり且つ送信プロトコルの変換後に取得されるアドレス情報をプロセッサに送信する。
S404:プロセッサは、受信した1つ又は複数の読み取るべきデータのアドレス情報内の各読み取るべきデータのアドレス情報を、1つの取得すべきデータのアドレス情報として使用する。
S405:プロセッサは、各取得すべきデータのアドレス情報をメモリに記憶する。
続いて、プロセッサは、一部又は全ての取得すべきデータ内の全ての取得すべきデータを現在のデータとして順次使用して、S406〜S415を実行することができる。さらに、各現在のデータを取得するときに、プロセッサは、現在のデータをメモリに記憶して、その後、現在のデータを他の現在のデータの履歴データとして使用することができる。
S406:プロセッサは、現在のデータを復元するために使用される情報を、ハードディスク内にあり且つ現在のデータのアドレス情報によって示される記憶空間から読み取り、現在のデータを復元するために使用される読み取った情報を、送信プロトコル変換のためにハードディスクプロトコル変換モジュールに送信し、例えば、現在のデータを復元するために使用され且つSASプロトコルを使用する情報からPCIEプロトコルを使用する情報へ変換する。
S407:プロセッサは、現在のデータを復元するために使用される情報に第1の識別子情報が含まれるかどうかを判定する。
現在のデータを復元するために使用される情報に第1の識別子情報が含まれない場合に、それは、現在のデータを復元するために使用される情報にはデルタ又はデルタを圧縮して得た値が含まれることを示す。これに基づいて、現在のデータを復元するために使用される情報がデルタを圧縮して得た値である場合に、S408が実行され、又は現在のデータを復元するために使用される情報がデルタである場合に、S409が実行される。
現在のデータを復元するために使用される情報に第1の識別子情報が含まれる場合に、それは、現在のデータを復元するために使用される情には現在のデータ又は現在のデータを圧縮して得た値が含まれることを示す。これに基づいて、現在のデータを復元するために使用される情報が現在のデータを圧縮して得た値である場合に、S412が実行され、又は現在のデータを復元するために使用される情報が現在のデータである場合に、S413が実行される。
S408:プロセッサは、デルタを圧縮して得た値を解凍して、デルタを取得する。
S409:プロセッサは、メモリから履歴データを取得する。
S410:プロセッサは、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。
S411:プロセッサは、デルタと現在のデータの予測データとに基づいて現在のデータを決定する。
S411を実行した後に、S413は実行される。
S412:プロセッサは、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
S413:プロセッサは、現在のデータをインターフェイスカードに送信する。
オプションで、プロセッサは、現在のデータを他の取得すべきデータの履歴データとして使用するために、現在のデータをメモリにさらに記憶することができる。さらに、オプションで、取得データが取得すべきデータの履歴データとしてもはや使用されなくなった場合に、プロセッサは、メモリから取得データを削除して、メモリの記憶オーバーヘッドを削減することができる。例えば、現在のデータがX(n)であり、履歴データがX(n−1)から始まりX(n−1)以前の10個の連続データ(つまり、X(n−10)〜X(n−1))である場合に、X(n−11)及びX(n−11)以前のデータは、取得すべきデータの履歴データとしてもはや使用されない。従って、プロセッサは、メモリから取得データを削除し得る。
S414:インターフェイスカードは、現在のデータに対して送信プロトコル変換を実行し、例えば、PCIEプロトコルからイーサネット通信プロトコルへの変換を実行する。
S415:インターフェイスカードは、イーサネット通信プロトコルを用いて現在のデータをクライアントにフィードバックする。
このようにして、現在のデータの取得プロセスは終了する。
図3に示される記憶装置を参照すると、図7に示されるデータ記憶方法の例は、図7は、図8A〜図8Cに示される実施形態が以下のいくつかの点で変更された後に得られる実施形態であり得る。1:前述のS410及びS411は、AIコンピューティングカードによって実行される。2:S409が実行された後であって、S410が実行される前に、この方法は、プロセッサが、メモリから取得した履歴データをAIコンピューティングカードに送信するステップをさらに含む。3:S411が実行された後であって、S413が実行される前に、この方法は、AIコンピューティングカードが、現在のデータをプロセッサに送信するステップをさらに含む。
現在、辞書圧縮(又は解凍)アルゴリズムの辞書における全てのマッピング関係は、ヒット率の降順で配置されている。通常、圧縮すべきデータを圧縮する必要がある場合に、圧縮すべきデータは、辞書の第1のデータ内でマッピング関係のヒット率の降順で検索され、圧縮すべきデータに対応する第2のデータが、圧縮すべきデータを圧縮した後に取得される値として使用される。解凍すべきデータを解凍する必要がある場合に、解凍すべきデータは、辞書の第2のデータ内でマッピング関係のヒット率の降順で検索され、圧縮すべきデータに対応する第1のデータは、解凍すべきデータを解凍した後に得られる値として使用される。このようにして、圧縮すべき又は解凍すべきデータが属するマッピング関係のヒット率が比較的低い場合に、圧縮/解凍を行うのに比較的長い時間がかかる。
従って、本願の一実施形態は、設計的解決策1を提供する。記憶装置は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、各マッピング関係において第1のデータが占める記憶空間は、マッピング関係において第2のデータが占める記憶空間よりも大きく、各セットは1つのヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応し、及び各セットのマッピング関係のヒット率は、そのセットに対応するヒット率範囲に属する。
記憶装置に含まれるセットの量及び各セットに対応するヒット率範囲は、予め規定され得るか、又は記憶データに基づいて更新され得る。さらに、マッピング関係も更新され得る。
例えば、各マッピング関係は、辞書圧縮アルゴリズムの辞書におけるマッピング関係であり得る。少なくとも2つのセットに含まれるマッピング関係は、辞書内の一部又は全てのマッピング関係であり得る。例えば、少なくとも2つのセットに含まれるマッピング関係は、記憶装置内の任意の記憶媒体(キャッシュ、メモリ、又はハードディスク等)に記憶されるマッピング関係であり得る。記憶媒体がキャッシュ又はメモリである場合に、少なくとも2つのセットに含まれるマッピング関係は、辞書内のいくつかのマッピング関係であり得る。記憶媒体がハードディスクである場合に、少なくとも2つのセットに含まれるマッピング関係は、辞書内の全てのマッピング関係であり得る。
例えば、辞書に記憶される各セット及びそのセットに対応するヒット率範囲が表2に示され得る。
いくつかの実施形態では、データ圧縮の場合に、各マッピング関係のヒット率は、マッピング関係における第1のデータのヒット率であり得る。例えば、第1のデータのヒット率は、予め設定した期間内の第1のデータに対する圧縮回数を総圧縮回数で除算した値であってもよい。データ解凍の場合に、各マッピング関係のヒット率は、マッピング関係における第2のデータのヒット率であり得る。例えば、第2のデータのヒット率は、予め設定した期間内の第2のデータに対する解凍回数を総解凍回数で除算した値であってもよい。
これらの実施形態では、設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、同じマッピング関係のヒット率が異なるメカニズムで取得される。従って、設計的解決策1をデータ圧縮シナリオ及びデータ解凍シナリオに適用する場合に、記憶装置に含まれるセットは同じでも異なっていてもよい。さらに、同じセットに対応するヒット率範囲は、同じでも異なっていてもよい。例えば、記憶装置に100個のマッピング関係が含まれていると想定される。設計的解決策1をデータ圧縮シナリオに適用すると、100個のマッピング関係のそれぞれがセットA1及びセットA2のいずれかに属し得る。設計的解決策1をデータ解凍シナリオに適用する場合に、100個のマッピング関係のそれぞれは、セットB1、セットB2、及びセットB3のいずれかに属し得る。
いくつかの他の実施形態では、データ圧縮及びデータ解凍について、各マッピング関係のヒット率は、マッピング関係における第1のデータのヒット率及びマッピング関係における第2のデータのヒット率に基づいて取得され得る。例えば、記憶装置のデータ書き込み時間とデータ読み取り時間との比が3:7である場合に、マッピング関係について、マッピング関係における第1のデータのヒット率は、データ書き込みプロセスで10%であり、マッピング関係における第2のデータのヒット率は、データ読み取りプロセスで50%であり、マッピング関係のヒット率は、0.3×10%+0.7×50%に従って取得することができる。確かに、本願のこの実施形態はそれに限定されない。
これらの実施形態では、設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、同じマッピング関係のヒット率は異なるメカニズムで取得される。従って、設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、記憶装置に含まれるセットは同じになり、同じセットに対応するヒット率範囲は同じになる。例えば、記憶装置に100個のマッピング関係が含まれていると想定される。設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、100個のマッピング関係のそれぞれが、セットA1及びセットA2のいずれかに属し得る。
前述の設計的解決策1に基づいて、図9は、本願の一実施形態によるデータ圧縮方法の概略図である。図9に示される方法は、以下のステップを含み得る。
S501:記憶装置は、圧縮すべきデータのヒット率を取得する。圧縮すべきデータのヒット率を取得する方法については、前述の第1のデータのヒット率を取得する方法を参照されたい。確かに、本願のこの実施形態はそれに限定されない。
例えば、圧縮すべきデータは、前述のデルタ又は現在のデータであり得る。確かに、本願のこの実施形態はそれに限定されない。
S502:記憶装置は、圧縮すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定する。圧縮すべきデータのヒット率は、圧縮すべきデータが位置するマッピング関係(以下、ターゲットマッピング関係と呼ばれる)のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。
前述の説明から、設計的解決策1がデータ圧縮シナリオに適用される場合に、マッピング関係のヒット率は、マッピング関係における第1のデータのヒット率であり得、且つマッピング関係における第1のデータのヒット率及びマッピング関係における第2のデータのヒット率等に基づいて、取得され得ることが分かり得る。説明を容易にするために、データ圧縮方法の以下の実施形態では、マッピング関係のヒット率がマッピング関係における第1のデータのヒット率であり得る例を、説明のために使用する。
例えば、圧縮すべきデータのヒット率が75%である場合に、圧縮すべきデータが属するターゲットマッピング関係のヒット率は75%であり得る。この場合に、表2を参照すると、ターゲットセットがセット2であることが分かり得る。
S503:記憶装置は、ターゲットセット内の第1のデータで圧縮すべきデータを検索し、圧縮すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用する。
例えば、S502の例に基づいて、記憶装置は、従来技術におけるマッピング関係のヒット率の降順での第1のデータでデルタを順次検索する代わりに、圧縮すべきデータを圧縮するために、セット2内の第1のデータで圧縮すべきデータを直接検索することができる。このようにして、圧縮時間を短縮することができる。
例えば、圧縮すべきデータが前述のデルタである場合に、圧縮すべきデータに対応する第2のデータは、デルタを圧縮して得た前述の値であり得る。例えば、圧縮すべきデータが前述の現在のデータである場合に、圧縮すべきデータに対応する第2のデータは、現在のデータを圧縮して得た前述の値であり得る。
この実施形態で提供されるデータ圧縮方法では、記憶装置に含まれるマッピング関係は、異なるセットに分類される。このようにして、圧縮すべきデータが位置するセットは、圧縮すべきデータのヒット率に基づいて直接決定され得る。従来技術と比較して、圧縮すべきデータの検索範囲が狭められる。従って、圧縮時間を短縮することができる。
前述の設計的解決策1に基づいて、図10は、本願の一実施形態によるデータ解凍方法の概略図である。図10に示される方法は、以下のステップを含み得る。
S601:記憶装置は、解凍すべきデータのヒット率を取得する。解凍すべきデータのヒット率を取得する方法については、前述の第2のデータのヒット率を取得する方法を参照されたい。確かに、本願のこの実施形態はそれに限定されない。
例えば、解凍すべきデータは、デルタを圧縮して得た前述の値、又は現在のデータを圧縮して得た値であり得る。確かに、本願のこの実施形態はそれに限定されない。
S602:記憶装置は、解凍すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定し、ここで、解凍すべきデータのヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。
前述の説明から、設計的解決策1がデータ解凍シナリオに適用される場合に、マッピング関係のヒット率は、マッピング関係における第2のデータのヒット率であり得、且つマッピング関係における第1のデータのヒット率及びマッピング関係における第2のデータのヒット率等に基づいて取得され得ることが分かり得る。説明を容易にするために、データ解凍方法の以下の実施形態では、マッピング関係のヒット率がマッピング関係における第2のデータのヒット率であり得る例を、説明のために使用する。
例えば、解凍すべきデータのヒット率が75%である場合に、解凍すべきデータが属するターゲットマッピング関係のヒット率は75%であり得る。この場合に、表2を参照すると、ターゲットセットがセット2であることが分かり得る。
S603:記憶装置は、ターゲットセット内の第2のデータで解凍すべきデータを検索して、解凍すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、解凍すべきデータに対応する第1のデータを決定し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用する。
例えば、解凍すべきデータがデルタを圧縮して得た前述の値である場合に、解凍すべきデータに対応する第1のデータは、前述のデルタであり得る。例えば、解凍すべきデータが現在のデータを圧縮して得た前述の値である場合に、解凍すべきデータに対応する第1のデータは、前述の現在のデータであり得る。
この実施形態で提供されるデータ解凍方法では、記憶装置に含まれるマッピング関係は、異なるセットに分類される。このようにして、解凍すべきデータが位置するセットは、解凍すべきデータのヒット率に基づいて直接決定され得る。従来技術と比較して、解凍すべきデータの検索範囲が狭められる。従って、データの解凍時間を短縮することができる。
図2から、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み得ることが分かり得る。キャッシュに記憶されているデータはメモリに記憶されているいくつかのデータであり、メモリに記憶されているデータはハードディスクに記憶されているいくつかのデータである。現在、CPUがデータを読み取るプロセスは、具体的には次の通りである。CPUは、最初にキャッシュでアクセスすべきデータを検索し、アクセスすべきデータが見つかった場合に、アクセスすべきデータを直接読み取る、又は、アクセスするデータが見つからない場合に、メモリでアクセスすべきデータを検索する。また、アクセスすべきデータが見つかった場合に、アクセスすべきデータは直接読み取られる、又はアクセスすべきデータが見つからない場合に、ハードディスクでアクセスすべきデータを検索する。ストレージ技術が辞書圧縮技術である例では、キャッシュ、メモリ、及びハードディスクに記憶されたデータは、辞書内のマッピング関係であり得る。このようにして、記憶媒体(例えば、キャッシュ又はメモリ)が比較的大量のマッピング関係を含み、圧縮すべき/解凍すべきデータが属するマッピング関係が記憶媒体内にない場合に、圧縮/解凍を行うために比較的長い時間がかかる。
従って、本願の一実施形態は、設計的解決策2を提供する。記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、及び第1のデータが占める記憶空間は、第2のデータが占める記憶空間よりも大きい。各記憶媒体におけるマッピング関係のヒット率が位置する範囲は、予め設定され得るか、又は記憶データに基づいて更新され得る。
例えば、各マッピング関係は、辞書圧縮アルゴリズムの辞書におけるマッピング関係であり得る。例えば、記憶装置の各記憶媒体及び記憶媒体に対応するヒット率範囲が表3に示され得る。
前述の設計的解決策2に基づいて、図11は、本願の一実施形態によるデータ圧縮方法の概略図である。図11に示される方法は、以下のステップを含み得る。
S701:記憶装置は、圧縮すべきデータのヒット率を取得する。
S702:記憶装置は、圧縮すべきデータのヒット率に基づいてターゲット記憶媒体を決定する。圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用される。ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。
例えば、圧縮すべきデータのヒット率が90%である場合に、圧縮すべきデータが属するターゲットマッピング関係のヒット率は90%であり得る。この場合に、表3を参照すると、ターゲット記憶媒体がキャッシュであることが分かり得る。同様に、圧縮すべきデータのヒット率が60%である場合に、ターゲット記憶媒体はメモリであり得、又は圧縮すべきデータのヒット率が30%である場合に、ターゲット記憶媒体はハードディスクであり得る。
S703:記憶装置は、ターゲット記憶媒体内の第1のデータで圧縮すべきデータを検索し、圧縮すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用する。
例えば、ターゲット記憶媒体に含まれるマッピング関係が前述の設計的解決策1に示されている場合に、S703の特定の実施プロセスについては、前述のS501〜S503を参照されたい。確かに、S703は、従来技術の方法に従って代替的に実施され得る。
この実施形態では、圧縮すべきデータ及び圧縮すべきデータを圧縮して得た値の例については、図9に示される実施形態を参照されたい。
記憶装置が、ターゲット記憶媒体の第1のデータにおいて圧縮すべきデータを見つけられない場合であって、ターゲット記憶媒体の次のレベルの記憶媒体が記憶装置に存在しない場合に、圧縮すべきデータは、圧縮すべきデータを圧縮して得た値として使用される、又は、ターゲット記憶媒体の次のレベルの記憶媒体が記憶装置に存在する場合に、ターゲット記憶媒体の次のレベルの記憶媒体は、圧縮すべきデータが見つかるか、又は圧縮すべきデータが記憶媒体の最後のレベルの記憶媒体の第1のデータで見つからなくなるまで、圧縮すべきデータを等検索する。キャッシュの次のレベルの記憶媒体はメモリであり、メモリの次のレベルの記憶媒体はハードディスクである。
この実施形態で提供されるデータ圧縮方法では、最高の読み取り/書き込み性能を有し、且つ圧縮すべきデータが位置する記憶媒体は、圧縮すべきデータのヒット率及び異なる記憶媒体に記憶されたマッピング関係のヒット率に基づいて直接決定され得、キャッシュの読み取り/書き込み性能はメモリの読み取り/書き込み性能よりも高く、メモリの読み取り/書き込み性能はハードディスクの読み取り/書き込み性能よりも高い。従来技術と比較して、圧縮すべきデータの検索範囲が狭められる。従って、データ圧縮時間を短縮することができる。
前述の設計的解決策2に基づいて、図12は、本願の一実施形態によるデータ解凍方法の概略図である。図12に示される方法は、以下のステップを含み得る。
S801:記憶装置は、解凍すべきデータのヒット率を取得する。
S802:記憶装置は、解凍すべきデータのヒット率に基づいてターゲット記憶媒体を決定する。解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用される。ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係のヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係のヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。
例えば、解凍すべきデータのヒット率が90%である場合に、解凍すべきデータが属するターゲットマッピング関係のヒット率は90%であり得る。この場合に、表3を参照すると、ターゲット記憶媒体がキャッシュであることが分かり得る。同様に、解凍すべきデータのヒット率が60%である場合に、ターゲット記憶媒体はメモリであり得、又は解凍すべきデータのヒット率が30%である場合に、ターゲット記憶媒体は、ハードディスクであり得る。
S803:記憶装置は、ターゲット記憶媒体内の第2のデータで解凍すべきデータを検索し、解凍すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、解凍すべきデータに対応する第1のデータを決定し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用する。
例えば、ターゲット記憶媒体に含まれるマッピング関係が前述の設計的解決策1に示されている場合に、S803の特定の実施プロセスについては、前述のS601〜S603を参照されたい。確かに、S803は、従来技術の方法に従って代替的に実施され得る。
この実施形態では、解凍すべきデータ及び解凍すべきデータを解凍して得た値の例については、図10に示される実施形態を参照されたい。
この実施形態で提供されるデータ解凍方法では、最高の読み取り/書き込み性能を有し、且つ解凍すべきデータが位置する記憶媒体は、解凍すべきデータのヒット率及び異なる記憶媒体に記憶されたマッピング関係のヒット率に基づいて直接決定され得、キャッシュの読み取り/書き込み性能はメモリの読み取り/書き込み性能よりも高く、メモリの読み取り/書き込み性能はハードディスクの読み取り/書き込み性能よりも高い。従来技術と比較して、解凍すべきデータの検索範囲が狭められる。従って、データの解凍時間を短縮することができる。
図13は、本願の一実施形態によるデータ記憶方法の概略図である。図13に示される方法は、以下のステップを含み得る。
S900:記憶装置は、少なくとも2つの記憶すべきデータの中の現在のデータ(すなわち、現在の記憶すべきデータ)及び現在のデータの履歴データ(すなわち、記憶すべき履歴データ)を取得し、ここで、履歴データは、少なくとも2つの記憶すべきデータを含むシーケンス内の現在のデータ以前の1つ又は複数のデータである。
S901:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。
S902:記憶装置は、現在のデータと現在のデータの予測データとの間のデルタを取得する。
S900〜S902の実施態様については、S100〜S102の実施態様の前述の説明を参照されたい。
S903:記憶装置は、デルタの絶対値が予め設定した閾値以下であるかどうかを判定する。例えば、デルタがaの場合に、デルタの絶対値は|a|として表すことができる。
デルタの絶対値が予め設定した閾値以下である場合に、S904が実行され、又はデルタの絶対値が予め設定した閾値以下でない場合に、S905が実行される。
S904:記憶装置は、予め設定したデータを記憶する。例えば、予め設定したデータが占める記憶空間は、現在のデータが占める記憶空間よりも小さい。
オプションで、予め設定したデータは、記憶装置によって予め規定される。オプションで、予め設定したデータは識別子であり得、識別子は、現在のデータの予測データを現在のデータとして使用し得る(又は略使用し得る)ことを示すために使用される。例えば、予め設定したデータは、「0」又は「1」等の2進数である。
オプションで、予め設定したデータが占める記憶空間は、記憶すべきデータの殆ど又は全てが占める記憶空間よりも小さい。
データ記憶手順を実行するときに、記憶装置は、予め設定したデータが占める記憶空間と現在のデータが占める記憶空間との間のサイズ関係を決定する必要がない場合があることに留意されたい。代わりに、予め設定したデータを予め規定するときに、記憶装置は、「予め設定したデータが占める記憶空間が、記憶すべきデータの殆ど又は全てが占める記憶空間よりも小さい」という原則に従って、予め設定したデータを比較的小さな記憶空間を占める識別子に設定することができる。このようにして、特定の現在のデータについて、「予め設定したデータが占める記憶空間が、現在のデータが占める記憶空間よりも小さい」ということが、複数の記憶すべきデータに対してデータ記憶手順を実行するという全体的な観点から満たされていなくても、「予め設定したデータが占める記憶空間は、記憶すべきデータの殆ど又は全てが占める記憶空間よりも小さい」という条件を依然として満たしている可能性がある。従って、従来技術と比較して、これは、記憶空間を節約するのに役立つ。
オプションで、記憶装置は、記憶オーバーヘッド等の要因に基づいて予め設定するデータを予め規定することができる。
デルタが差である例では、デルタの絶対値が0である場合に、この技術的解決策の圧縮プロセスは、具体的には可逆圧縮プロセスである。デルタの絶対値が0でない場合に、この技術的解決策の圧縮プロセスは、特に不可逆圧縮プロセスである。予め設定した閾値を適切に設定すると、データ損失率を特定の範囲内に制限するのに役立つ。換言すると、予め設定した閾値は、実際の要件(例えば、許容可能な非可逆圧縮率内の要件)に基づいて設定できる。
S904を実行した後に、現在のデータの記憶プロセスは終了する。
S905:記憶装置は、現在のデータを記憶するか、又は現在のデータを圧縮して得た値を記憶する。
S905の実施態様については、S105の実施態様の前述の説明を参照されたい。
S905を実行した後に、現在のデータの記憶プロセスは終了する。
現在のデータを復元するために使用される記憶情報が「予め設定したデータ」であるか「圧縮によって得た値又は現在のデータ」であるかを記憶装置が区別し、データ読み取り手順における読み取るべきデータを決定するのを助けるため、オプションで、S905が実行される場合に、この方法は、以下のS905Aをさらに含み得る。
S905A:デルタの絶対値が予め設定した閾値より大きい場合に識別子情報を記憶し、ここで、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用される。デルタの絶対値が予め設定した閾値より大きい場合に識別子情報を記憶し、ここで、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用される、又は現在のデータが記憶されている場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。識別子情報は、現在のデータを復元するために使用される情報の識別子情報、又は現在のデータを復元するために使用される情報に含まれる情報として使用され得る。
S905Aの交換可能な方法及び有利な効果の説明については、S105Aの交換可能な方法及び有利な効果の前述の説明を参照されたい。詳細については、ここでは再び説明しない。
本願のこの実施形態で提供されるデータ記憶方法では、履歴データを用いて現在のデータが予測され、予め設定したデータは、現在のデータと現在のデータの予測データとの間のデルタの絶対値が予め設定した閾値以下である場合に、記憶される。従来技術で現在のデータを直接記憶する技術的解決策と比較して、予め設定したデータが占める記憶空間が、現在のデータが占める記憶空間よりも小さいため、記憶オーバーヘッドを削減できる。この技術的解決策は、特定のデータ損失が許容されるシナリオ、例えば、ビデオ再生等のシナリオに適用することができる。
例えば、記憶すべきデータを含むシーケンスXn={2、5、10、17、26、37、50、65、82、101、122、145、171}について、具体的には、デルタが、記憶すべきデータと記憶すべきデータの予測データとの間の差であり、予め設定した閾値が2である場合に、予測アルゴリズムx2+1及び図13に示される実施形態に基づいて記憶装置によって実際に記憶されるデータを含むシーケンスは、{10、101、1010、α、α、α、α、α、α、α、α、α、α}であり得る。αは予め設定したデータである。Xn’の最初の3つのデータでは、予測ステップがデフォルトである。S905Aを参照すると、3つのデータについて、記憶装置は、第1の識別子情報をさらに別々に記憶し得ることが分かり得る。記憶のために圧縮する必要のあるデータの範囲が大幅に削減され、その範囲内のデータの繰り返し確率が明らかに増大することが分かり得る。従って、データ圧縮率及び圧縮効率を大幅に向上させることができる。
図14は、本願の一実施形態によるデータ取得方法の概略図である。図14に示される方法は、以下のステップを含み得る。
S1001:記憶装置は、現在のデータを復元するために使用される情報を読み取る。現在のデータを復元するために使用される情報には、「予め設定したデータ」又は「現在のデータ又は現在のデータを圧縮して得た値」が含まれる。
現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータであり、履歴データは、1つ又は複数の取得データである。
S1002:記憶装置は、現在のデータを復元するために使用される情報に識別子情報が含まれるかどうかを判定する。
図13に示される実施形態の説明に基づいて、S1002での判定結果が、現在のデータを復元するために使用される情報に識別子情報が含まれていないことを示す場合に、それは、現在のデータを復元するために使用される情報には予め設定したデータが含まれていることを示し、S1003が実行されることが分かり得る。S1002での判定結果が、現在のデータを復元するために使用される情報に識別子情報が含まれることを示す場合に、それは、現在のデータを復元するために使用される情報には、現在のデータ又は現在のデータを圧縮して得た値が含まれることを示す。現在のデータを復元するために使用される情報が現在のデータを圧縮して得た値である場合に、S1004が実行され、又は現在のデータを復元するために使用される情報が現在のデータである場合に、現在のデータの取得プロセスは終了する。
S1003:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得し、現在のデータの予測データを現在のデータとして使用し、ここで、履歴データは、1つ又は複数の取得データである。
S1003を実行した後に、現在のデータの取得プロセスは終了する。
S1004:記憶装置は、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
S1004を実行した後に、現在のデータの取得プロセスは終了する。
この実施形態で提供されるデータ取得方法は、図13に示されるデータ記憶方法に対応する。従って、この実施形態における有利な効果については、図13に示される実施形態で説明した有利な効果を参照されたい。詳細については、ここで再び説明しない。
同じデータについて、データ記憶手順を実行するプロセス及びデータ取得手順を実行するプロセスで予測を行う必要がある場合に、同じ予測アルゴリズム(具体的には、予測アルゴリズムのパラメータの値が同じである)が予測中に使用されることに留意されたい。予測アルゴリズムがAIニューラルアルゴリズムである場合に、AIニューラルアルゴリズムのパラメータの値を更新することができるため、データ取得手順においてデータを成功裏に取得するために、データ記憶手順において、本願のこの実施形態は以下のオプションの実施態様を提供する。
オプションの実施態様1:記憶装置は、AIニューラルアルゴリズムのパラメータの値と、データを復元するために使用される情報との間の対応関係をさらに記憶することができる。例えば、記憶装置は、AIニューラルアルゴリズムのパラメータが更新された後に、毎回スナップショット動作を実行して、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記録することができる。確かに、本願のこの実施形態はそれに限定されない。
例えば、初期モーメントがモーメントt1であり、モーメントt1におけるAIニューラルアルゴリズムのパラメータが第1のパラメータであり、モーメントt2におけるAIニューラルアルゴリズムのパラメータが、第1のパラメータから第2のパラメータに更新されると想定する。また、現在のデータを復元するために使用され、且つモーメントt1からモーメントt2までの期間とモーメントt2の後の期間とに記憶される情報は、それぞれ情報1〜100及び情報101〜500である。この場合に、記憶装置は、情報1〜100と第1のパラメータとの間の対応関係を記憶し、情報101〜500と第2のパラメータとの間の対応関係を記憶することができる。
オプションの実施態様2:AIニューラルアルゴリズムのパラメータは、現在のデータを復元するために使用される情報が記憶された後に、アダプティブラーニングによって更新され、現在のデータを復元するために使用される情報は、AIニューラルアルゴリズムの更新パラメータに基づいて更新される。
例えば、予測(例えば、S101又はS901における予測)を行うために使用されるAIニューラルアルゴリズムの前述のパラメータが、AIニューラルアルゴリズムの第1のパラメータとしてマークされ、AIニューラルアルゴリズムの第1のパラメータを更新した後に取得されるパラメータは、AIニューラルアルゴリズムの第2のパラメータとしてマークされる場合に、現在のデータを復元するために使用される情報が、AIニューラルアルゴリズムの更新パラメータに基づいて更新されることは、現在のデータを復元するために使用される情報を読み取ること;AIニューラルアルゴリズムの第1のパラメータ(つまり、更新前のAIニューラルアルゴリズムのパラメータ)、現在のデータを復元するために使用される読み取り情報、及び現在のデータの履歴データに基づいて、現在のデータを復元すること;AIニューラルアルゴリズムの第2のパラメータ(つまり、AIニューラルアルゴリズムの更新パラメータ)と現在のデータの履歴データとに基づいて、現在のデータを予測して、第2の予測データを取得することであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの第2のパラメータに基づいて、履歴データの変更規則に従って予測される後に取得されるデータである、取得すること;現在のデータと第2の予測データとの間の第2のデルタを取得すること;及び、第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを更新するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値(又は、現在のデータ、現在のデータを圧縮して得た値、予め設定したデータ等、ここで、特定の記憶情報については、図5又は図13に示される前述の方法を参照されたい)に更新すること;を含む。換言すると、データ取得手順が、AIニューラルアルゴリズムの更新前に存在するパラメータを用いて1回実行され、現在のデータを取得した後に、データ記憶手順は、AIニューラルアルゴリズムの更新パラメータを用いて1回実行される。このようにして、AIニューラルアルゴリズムであり、且つ現在のデータに対してデータ記憶手順が実行されるときに使用されるパラメータは、最新のパラメータである。
オプションの実施態様2に基づいて、記憶装置は、AIニューラルアルゴリズムの第2のパラメータをさらに記憶することができる。あるいはまた、記憶装置は、AIニューラルアルゴリズムの記憶した第1のパラメータを第2のパラメータに更新する。換言すると、記憶装置は、AIニューラルアルゴリズムの最新のパラメータを記憶する。
2つのオプションの実施態様は、図5又は図13に示される前述のデータ記憶手順に適用され得る。2つのオプションの実施態様を比較すると、オプションの実施態様1は、記憶装置が比較的大量のデータを記憶しているシナリオに適用でき、オプションの実施態様2は、記憶装置が比較的少量のデータを記憶しているシナリオに適用できる。さらに、AIニューラルアルゴリズムのパラメータが更新されるので、現在のデータの予測データが現在のデータに近くなる。従って、データ圧縮効率は、オプションの実施態様2でさらに改善することができる。特定の実施態様プロセスでは、前述のオプションの実施態様1及び2を組み合わせて使用して、新しい技術的解決策を形成することができる。例えば、いくつかの記憶データについて、記憶装置は、前述のオプションの実施態様1を実行することができ、他の記憶データについて、記憶装置は、前述の実施態様2を実行することができる。
前述のオプションの実施態様1に基づいて、データ取得手順において、記憶装置は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得することができる。この場合に、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得することは、AIニューラルアルゴリズムの取得したパラメータに基づく履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得することを含むことができる。
前述のオプションの実施態様1の説明に基づいて、対応関係内の「AIニューラルアルゴリズムのパラメータ」は、「現在のデータを復元するために使用される情報」を対応関係に記憶するプロセスで使用されるAIニューラルアルゴリズムのパラメータであることが分かり得る。取得した「現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータ」は、マッピング関係における「AIニューラルアルゴリズムのパラメータ」である。例えば、前述のオプションの実施態様1の例に基づいて、現在のデータを復元するために使用される情報が情報99である場合に、対応関係内の「AIニューラルアルゴリズムのパラメータ」が第1のパラメータである、又は現在のデータを復元するために使用される情報が情報200である場合に、対応関係内の「AIニューラルアルゴリズムのパラメータ」は第2のパラメータである。
さらに、前述のオプションの実施態様1が、図5に示されるデータ記憶手順に適用される場合に、データ取得手順において、記憶装置は、図7に示される前述の実施形態に従って、現在のデータを取得することができる。前述のオプションの実施態様1が図13に示されるデータ記憶手順に適用される場合に、データ取得手順において、記憶装置は、図14に示される前述の実施形態に従って、現在のデータを取得することができる。
前述のオプションの実施態様2に基づいて、データ取得手順において、記憶装置は、AIニューラルアルゴリズムの記憶した最新のパラメータに基づいて、図7又は図14に示される実施形態を実行することができる。
前述のものは、主に、方法の観点から、本願の実施形態で提供される解決策を説明する。前述の機能を実現するために、機能を実行するための対応するハードウェア構造及び/又はソフトウェアモジュールが含まれる。当業者は、本明細書に開示された実施形態で説明した例と組み合わせて、ユニット及びアルゴリズムステップが、本願におけるハードウェア又はハードウェアとコンピュータソフトウェアとの組合せによって実現され得ることを容易に認識すべきである。機能がハードウェア又はハードウェアを動かすコンピュータソフトウェアによって実行されるかは、特定の用途及び技術的解決策の設計上の制約によって異なる。当業者は、特定の用途毎に説明している機能を実現するために様々な方法を使用できるが、その実施態様が本願の範囲を超えているとみなすべきではない。
本願の実施形態では、機能モジュール分割は、前述の方法例に基づいて、記憶装置上で行われ得る。例えば、各機能モジュールは、各機能による分割によって取得してもよく、又は2つ以上の機能を1つの処理モジュールに統合してもよい。統合モジュールは、ハードウェアの形式で実装してもよく、又はソフトウェア機能モジュールの形式で実装してもよい。本願の実施形態におけるモジュール分割は一例であり、単なる論理的機能分割であることに留意されたい。実際の実施態様では、別の分割方法であってもよい。
図15は、本願の実施形態による記憶装置の概略構造図である。図15に示される記憶装置150は、図5又は図6−1〜図6−4に示されるデータ記憶方法を実行するように構成され得る。記憶装置150は、第1の取得ユニット1500、予測ユニット1501、第2の取得ユニット1502、及び記憶ユニット1503を含み得る。第1の取得ユニット1500は、現在のデータ及び現在のデータの履歴データを取得するように構成される。予測ユニット1501は、履歴データを用いて現在のデータを予測して、現在のデータの第1の予測データを取得するように構成される。第2の取得ユニット1502は、現在のデータと第1の予測データとの間の第1のデルタを取得するように構成される。記憶ユニット1503は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、第1のデルタ又は第1のデルタを圧縮して得た値を記憶するように構成される。例えば、図5を参照すると、第1の取得ユニット1500は、S100を実行するように構成され得、予測ユニット1501は、S101を実行するように構成され得、第2の取得ユニット1502は、S102を実行するように構成され得、及び記憶ユニット1503は、S104を実行するように構成され得る。
オプションで、第1の取得ユニット1500は、記憶装置150のメモリから現在のデータ及び履歴データを取得するように特に構成される。
オプションで、記憶ユニット1503は、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記憶するようにさらに構成される。
オプションで、記憶装置150は、アダプティブラーニングによってAIニューラルアルゴリズムのパラメータを更新し、AIニューラルアルゴリズムの更新パラメータに基づいて、現在のデータを復元するために使用される情報を更新するように構成される更新ユニット1504をさらに含む。
オプションで、更新ユニット1504は、現在のデータを復元するために使用される情報を読み取ること;予測を行うために使用されるAIニューラルアルゴリズムのパラメータ、現在のデータを復元するために使用される情報、及び現在のデータの履歴データに基づいて、現在のデータを復元すること;AIニューラルアルゴリズムの更新パラメータと現在のデータの履歴データとに基づいて現在のデータを予測して、第2の予測データを取得することであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの更新パラメータに基づいて、履歴データの変更規則に従って予測された後に取得されるデータである、取得すること;現在のデータと第2の予測データとの間の第2のデルタを取得すること;及び、第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値に更新すること;を行うように特に構成される。
オプションで、記憶装置150は、AIコンピューティングカードを含み、予測ユニット1501は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、第1の予測データを取得するように特に構成される。
オプションで、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書は少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応し、記憶装置150は、第1のデルタのヒット率を取得するように構成される第3の取得ユニット1505と;第1のデルタのヒット率に基づいて少なくとも2つのセットの中でターゲットセットを決定するように構成される決定ユニット1506であって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定ユニット1506と;ターゲットセット内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するように構成される圧縮ユニット1507であって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、圧縮ユニット1507と;をさらに含む。
オプションで、記憶装置150の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書は1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率は、メモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率は、ハードディスクにおけるマッピング関係のヒット率以上であり、記憶装置150は、第1のデルタのヒット率を取得するように構成される第3の取得ユニット1505と;第1のデルタのヒット率に基づいてターゲット記憶媒体を決定するように構成される決定ユニット1506であって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲属さない場合に、ハードディスクである、決定ユニット1506と;ターゲット記憶媒体内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するように構成される圧縮ユニット1507であって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、圧縮ユニット1507と;をさらに含む。
オプションで、記憶ユニット1503は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するようにさらに構成される。例えば、図5を参照すると、記憶ユニット1503は、S105を実行するように構成され得る。
オプションで、記憶ユニット1503は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に識別子情報を記憶するようにさらに構成され、ここで、現在のデータを圧縮して得た値が記憶されている場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用される、又は現在のデータが記憶されている場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。例えば、図5を参照すると、記憶ユニット1503は、S105Aを実行するように構成され得る。
例えば、図2を参照すると、第1の取得ユニット1500、予測ユニット1501、第2の取得ユニット1502、更新ユニット1504、第3の取得ユニット1505、決定ユニット1506、及び圧縮ユニット1507は全て、プロセッサ202を用いて実装され得、記憶ユニット1503は、ハードディスク204を用いて実装され得る。別の例では、図3を参照すると、予測ユニット1501は、AIコンピューティングカード207を用いて実装され得、第1の取得ユニット1500、第2の取得ユニット1502、更新ユニット1504、第3の取得ユニット1505、決定ユニット1506、及び圧縮ユニット1507は全て、プロセッサ202を用いて実装され得、記憶ユニット1503は、ハードディスク204を用いて実装され得る。
図16は、本願の一実施形態による記憶装置160の概略構造図である。図16に示される記憶装置160は、図7又は図8A〜図8Cに示されるデータ取得方法を実行するように構成され得る。記憶装置160は、読み取りユニット1601、予測ユニット1602、及び決定ユニット1603を含み得る。読み取りユニット1601は、現在のデータを復元するために使用される情報を読み取るように構成され、ここで、現在のデータを復元するために使用される情報は、デルタ又はデルタを圧縮して得た値であり、デルタは、現在のデータと現在のデータの予測データとの間のデルタであり、現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。予測ユニット1602は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように構成される。決定ユニット1603は、現在のデータの予測データと現在のデータを復元するために使用される情報とに基づいて、現在のデータを決定するように構成される。例えば、図7を参照すると、読み取りユニット1601は、S302を実行するように構成され得、予測ユニット1602は、S304を実行するように構成され得、及び決定ユニット1603は、S305を実行するように構成され得る。
オプションで、記憶装置160は、記憶装置150のメモリから履歴データを取得するように構成される取得ユニット1604をさらに含む。
オプションで、記憶装置160は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得するように構成される取得ユニット1604をさらに含む。予測ユニット1602は、AIニューラルアルゴリズムの取得パラメータに基づいて、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
オプションで、記憶装置160はAIコンピューティングカードを含み、予測ユニット1602は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
オプションで、現在のデータを復元するために使用される情報には、デルタを圧縮して得た値が含まれる。この場合に、決定ユニット1603は、デルタを圧縮して得た値を解凍して、デルタを取得するように構成される解凍モジュール1603−1と;デルタと現在のデータの予測データとに基づいて現在のデータを決定するように構成される決定モジュール1603−2と;を含む。例えば、図7を参照すると、解凍モジュール1603−1は、S303を実行するように構成され得、決定モジュール1603−2は、S304を実行するように構成され得る。
オプションで、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書は少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この場合に、解凍モジュール1603−1は、デルタを圧縮して得た値のヒット率を取得すること;デルタを圧縮して得た値のヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定することであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定すること;及び、ターゲットセット内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定することであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定すること;を行うように特に構成される。
オプションで、記憶装置160の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書は1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上である。この場合に、解凍モジュール1603−1は、デルタを圧縮して得た値のヒット率を取得すること;デルタを圧縮して得た値のヒット率に基づいてターゲット記憶媒体を決定することであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、メモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定すること;及び、ターゲット記憶媒体内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定することであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定すること;を行うように特に構成される。
例えば、図2を参照すると、読み取りユニット1601、予測ユニット1602、及び決定ユニット1603は全て、プロセッサ202を用いて実装され得る。別の例では、図3を参照すると、予測ユニット1501は、AIコンピューティングカード207を用いて実装され得、読み取りユニット1601と決定ユニット1603との両方は、プロセッサ202を用いて実装され得る。
図17は、本願の一実施形態による記憶装置170の概略構造図である。図17に示される記憶装置170は、図9又は図11に示されるデータ圧縮方法を実行するように構成され得る。記憶装置170は、取得ユニット1701、決定ユニット1702、及び圧縮ユニット1703を含み得る。
可能な設計では、記憶装置170は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。取得ユニット1701は、圧縮すべきデータのヒット率を取得するように構成される。決定ユニット1702は、圧縮すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するように構成され、ここで、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。圧縮ユニット1703は、ターゲットセット内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定すること;及び、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用すること;を行うように構成される。例えば、図9を参照すると、取得ユニット1701は、S501及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1702は、S502及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び圧縮ユニット1703は、S503及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
別の可能な設計では、記憶装置170の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、及び第1のデータが占める記憶空間は、第2のデータが占める記憶空間よりも大きい。取得ユニット1701は、圧縮すべきデータのヒット率を取得するように構成される。決定ユニット1702は、圧縮すべきデータのヒット率に基づいてターゲット記憶媒体を決定するように構成され、ここで、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。圧縮ユニット1703は、ターゲット記憶媒体内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定すること;及び、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用すること;を行うように構成される。例えば、図11を参照すると、取得ユニット1701は、S701及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1702は、S702及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び圧縮ユニット1703は、S703及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
例えば、図2又は図3を参照すると、取得ユニット1701、決定ユニット1702、及び圧縮ユニット1703は全て、プロセッサ202を用いて実装され得る。
図18は、本願の一実施形態による記憶装置180の概略構造図である。図18に示される記憶装置180は、図10又は図12に示されるデータ解凍方法を実行するように構成され得る。記憶装置180は、取得ユニット1801、決定ユニット1802、及び解凍ユニット1803を含み得る。
可能な設計では、記憶装置180は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。取得ユニット1801は、解凍すべきデータのヒット率を取得するように構成される。決定ユニット1802は、解凍すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するように構成され、ここで、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、及びターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。解凍ユニット1803は、ターゲットセット内の第2のデータで解凍すべきデータを検索して、解凍すべきデータに対応する第1のデータを決定すること;及び、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用すること;を行うように構成される。例えば、図10を参照すると、取得ユニット1801は、S601及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1802は、S602及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び解凍ユニット1803は、S603及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
別の可能な設計では、記憶装置180の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、及び第1のデータが占める記憶空間は、第2のデータが占める記憶空間よりも大きい。取得ユニット1801は、解凍すべきデータのヒット率を取得するように構成される。決定ユニット1802は、解凍すべきデータのヒット率に基づいてターゲット記憶媒体を決定するように構成され、ここで、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。解凍ユニット1803は、ターゲット記憶媒体内の第2のデータで解凍すべきデータに対応する第1のデータを検索すること;及び、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用すること;を行うように構成される。例えば、図12を参照すると、取得ユニット1801は、S801及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1802は、S802及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び解凍ユニット1803は、S803及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
例えば、図2又は図3を参照すると、取得ユニット1801、決定ユニット1802、及び解凍ユニット1803は全て、プロセッサ202を用いて実装され得る。
図19は、本願の一実施形態による記憶装置190の概略構造図である。図19に示される記憶装置190は、図13に示されるデータ記憶方法を実行するように構成され得る。記憶装置190は、予測ユニット1901、取得ユニット1902、及び記憶ユニット1903を含み得る。取得ユニット1902は、現在のデータ及び現在のデータの履歴データを取得するように構成される。予測ユニット1901は、履歴データを用いて現在のデータを予測して、現在のデータの第1の予測データを取得するように構成される。取得ユニット1902は、現在のデータと現在のデータの第1の予測データとの間の第1のデルタを取得するようにさらに構成される。記憶ユニット1903は、第1のデルタの絶対値が予め設定した閾値以下である場合に、予め設定したデータを記憶するように構成される。オプションで、予め設定したデータが占める記憶空間は、現在のデータが占める記憶空間よりも小さい。例えば、図13を参照すると、予測ユニット1901は、S901を実行するように構成され得、取得ユニット1902は、S901及びS902を実行するように構成され得、及び記憶ユニット1903は、S904を実行するように構成され得る。
オプションで、記憶ユニット1903は、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記憶するようにさらに構成される。
オプションで、記憶装置190は、アダプティブラーニングによってAIニューラルアルゴリズムのパラメータを更新し、AIニューラルアルゴリズムの更新パラメータに基づいて、現在のデータを復元するために使用される情報を更新するように構成される更新ユニット1904をさらに含む。
オプションで、更新ユニット1904は、現在のデータを復元するために使用される情報を読み取ること;予測を行うために使用されるAIニューラルアルゴリズムのパラメータ、現在のデータを復元するために使用される情報、及び現在のデータの履歴データに基づいて、現在のデータを復元すること;AIニューラルアルゴリズムの更新パラメータと現在のデータの履歴データとに基づいて現在のデータを予測して、第2の予測データを取得することであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの更新パラメータに基づいて、履歴データの変更規則に従って予測された後に取得されるデータである、取得すること;現在のデータと第2の予測データとの間の第2のデルタを取得すること;及び、第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値に更新すること;を行うように特に構成される。
オプションで、記憶装置150はAIコンピューティングカードを含み、予測ユニット1501は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、第1の予測データを取得するように特に構成される。
オプションで、記憶ユニット1903は、第1のデルタの絶対値が予め設定した閾値よりも大きい場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するようにさらに構成される。例えば、図13を参照すると、記憶ユニット1903は、S905を実行するように構成され得る。
オプションで、記憶ユニット1903は、第1のデルタの絶対値が予め設定した閾値よりも大きい場合に、識別子情報を記憶するようにさらに構成され、ここで、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用され、又は現在のデータが記憶されるときに、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。例えば、図13を参照すると、記憶ユニット1903は、S905Aを実行するように構成され得る。
例えば、図2を参照すると、予測ユニット1901と取得ユニット1902との両方は、プロセッサ202を用いて実装され得、記憶ユニット1903は、ハードディスク204を用いて実装され得る。別の例では、図3を参照すると、予測ユニット1901は、AIコンピューティングカード207を用いて実装され得、取得ユニット1902は、プロセッサ202を用いて実装され得、及び記憶ユニット1903は、ハードディスク204を用いて実装され得る。
図20は、本願の一実施形態による記憶装置210の概略構造図である。図20に示される記憶装置210は、図14に示されるデータ取得方法を実行するように構成され得る。記憶装置210は、読み取りユニット2101、予測ユニット2102、及び決定ユニット2103を含み得る。読み取りユニット2101は、現在のデータを復元するために使用される情報を読み取るように構成され、ここで、現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。予測ユニット2102は、現在のデータを復元するために使用される情報が予め設定したデータを含む場合に、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように構成される。決定ユニット2103は、現在のデータの予測データを現在のデータとして使用するように構成される。例えば、図14を参照すると、読み取りユニット2101は、S1001を実行するように構成され得、予測ユニット2102は、S1003において予測ステップを実行するように構成され得、及び決定ユニット2103は、S1003において現在のデータを決定するステップを実行するように構成され得る。
オプションで、記憶装置210は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得するように構成される取得ユニット2104をさらに含む。予測ユニット2102は、AIニューラルアルゴリズムの取得パラメータに基づいて、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
オプションで、記憶装置210はAIコンピューティングカードを含み、予測ユニット2102は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
例えば、図2を参照すると、読み取りユニット2101、予測ユニット2102、及び決定ユニット2103は全て、プロセッサ202を用いて実装され得る。別の例では、図3を参照すると、読み取りユニット2101と決定ユニット2103との両方は、プロセッサ202を用いて実装され得、予測ユニット2102は、AIコンピューティングカード207を用いて実装され得る。
図15〜図20に提供される任意の記憶装置の実施態様及び有利な効果の説明については、前述の対応する方法の実施形態を参照されたい。詳細については、ここでは再び説明しない。
前述の実施形態の全部又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せを用いて実施することができる。ソフトウェアプログラムを用いて実施形態を実施する場合に、実施形態は、コンピュータプログラム製品の形態で完全に又は部分的に実現され得る。コンピュータプログラム製品は、1つ又は複数のコンピュータ命令を含む。コンピュータ実行可能命令がコンピュータにロードされて実行されるときに、本発明の実施形態における手順又は機能の全部又は一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は別のプログラム可能な機器であり得る。コンピュータ命令は、コンピュータ可読記憶媒体に記憶され得るか、又はあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信され得る。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、又はデータセンタから別のウェブサイト、コンピュータ、サーバ、又はデータセンタに有線で(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線(digital subscriber line, DSL))又は無線で(例えば、赤外線、無線、又はマイクロ波)方式で送信され得る。コンピュータ可読記憶媒体は、コンピュータがアクセスできる任意の使用可能な媒体であり得るか、或いは1つ又は複数の使用可能な媒体を統合するサーバ又はデータセンタ等のデータ記憶装置であり得る。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、又は磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、ソリッドステートディスク(solid state disk, SSD))等であり得る。
本願は実施形態を参照して説明しているが、保護を主張する本願を実施する過程において、当業者は、添付の図面、開示された内容、及び添付の特許請求の範囲を参照して、開示された実施形態の別のバリエーションを理解し実現し得る。特許請求の範囲において、「備える、有する、含む(comprising)」は、別の構成要素又は別のステップを除外せず、「1つの(a, one)」は、「複数」の場合を除外しない。単一のプロセッサ又は別のユニットは、特許請求の範囲に列挙されたいくつかの機能を実現することができる。いくつかの手段が、互いに異なる従属請求に記録されているが、これは、これらの手段を組み合わせてより良い効果を生み出すことができないことを意味するものではない。
本願は、特定の特徴及びその実施形態を参照して説明しているが、明らかに、本願の精神及び範囲から逸脱することなく、本願に対して様々な修正及び組合せを行うことができる。同様に、明細書及び添付の図面は、添付の特許請求の範囲によって規定される本願の単なる例示的な説明であり、且つ本願の範囲をカバーする修正、変形、組合せ、又は同等物のいずれか又は全てと見なされる。明らかに、当業者は、本願の精神及び範囲から逸脱することなく、本願に様々な修正及び変更を加えることができる。このようにして、本願は、以下の特許請求の範囲及びそれらの同等の技術によって規定される保護の範囲内にあるという条件で、本願のこれらの変更及びバリエーションをカバーすることを意図している。
本願の実施形態は、データ処理技術の分野に関し、特に、データ記憶方法、データ取得方法、及び機器に関する。
人工知能(artificial intelligence, AI)アプリケーション、ビッグデータアプリケーション、モノのインターネット(internet of things)アプリケーション等の新しいアプリケーションが成熟するにつれて、記憶する必要のあるデータが急激に増大する。記憶装置(storage device)の容量を増やすだけで急激に増大するデータを記憶する場合に、記憶装置の購入コスト及び管理コストは比較的高く、記憶装置は、比較的大きなスペースを占有し、且つ比較的高い電力を消費する。これは、企業に比較的重いコスト負担を生じさせる。従って、効果的なデータ記憶ソリューションが必要である。
本願の実施形態は、記憶オーバーヘッド(storage overheads)を低減するための、データ記憶方法、データ取得方法、及び機器を提供する。また、本願の実施形態は、圧縮(compression)又は解凍(decompression)時間を短縮するための、データ圧縮方法、データ解凍方法、及び機器をさらに提供する。
第1の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ記憶方法を提供し、この方法は、現在のデータ及び現在のデータの履歴データを取得するステップと;履歴データを用いて現在のデータを予測して、第1の予測データを取得するステップであって、第1の予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;現在のデータと第1の予測データとの間の第1のデルタを取得するステップと;第1のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される情報を記憶するステップであって、現在のデータを復元するために使用される情報は、第1のデルタ又は第1のデルタを圧縮して得た値を含む、記憶するステップと;を含み得る。
デルタが、現在のデータと現在のデータの予測データ(例えば、以下に説明する第1の予測データ又は第2の予測データ)との間の差を表すために使用されるパラメータである。例えば、デルタは、差、比、倍数、パーセンテージ等であり得る。履歴データは、少なくとも2つの記憶すべき(to-be-stored)データを含む、シーケンス内の現在のデータ以前の1つ又は複数のデータであり得る。記憶すべきデータは、記憶する必要のある元のデータである。現在のデータは、少なくとも2つの記憶すべきデータ内の現在の記憶すべきデータである。
この技術的解決策では、現在のデータについて、現在のデータを復元するために使用される情報、例えば、現在のデータと現在のデータの予測データとの間のデルタ、又はデルタを圧縮して得た値は、実際には記憶される。現在のデータを復元するために使用される記憶情報が占める記憶空間は、現在のデータを直接記憶する従来技術のものと比較して、現在のデータが占める記憶空間よりも小さいので、記憶オーバーヘッドを削減できる。
可能な設計では、予測を行うために使用されるアルゴリズムは、AIニューラルアルゴリズムを含む。例えば、AIニューラルアルゴリズムのタイプは、正規化最小平均二乗(normalized least mean square, NLMS)タイプ、単層パーセプトロン(single layer perceptron, SLP)タイプ、多層パーセプトロン(multi-layer
perceptron, MLP)タイプ、又はリカレントニューラルネットワーク(recurrent neural
network, RNN)タイプのいずれか1つを含む。
可能な設計では、記憶装置は、現在のデータの予測データを記憶しない。このようにして、記憶オーバーヘッドを削減できる。これに基づいて、記憶装置は、履歴情報に基づいて現在のデータを予測して第1の予測データを取得し、次に、第1の予測データと現在のデータを復元するために使用される記憶情報とに基づいて、現在のデータを復元する。詳細については、次の第2の態様で提供される技術的解決策を参照されたい。
可能な設計では、圧縮を行うために使用されるアルゴリズムは、辞書(dictionary)圧縮アルゴリズム及び/又は重複排除アルゴリズムを含む。
可能な設計では、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書は少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この方法は、第1のデルタのヒット率を取得するステップと;第1のデルタのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するステップであって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、決定するステップと;をさらに含む。この技術的解決策では、記憶装置に含まれるマッピング関係が様々なセットに分類される。このようにして、圧縮すべき(to-be-compressed)データが位置するセットは、圧縮すべきデータのヒット率(すなわち、第1のデルタ)に基づいて直接決定され得る。これにより、圧縮すべきデータの検索範囲を狭めることができる。従って、圧縮時間が短縮される。
可能な設計では、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書が1つ又は複数のマッピング関係を含み、各マッピング関係は1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上である。この方法は、第1のデルタのヒット率を取得するステップと;第1のデルタのヒット率に基づいてターゲット記憶媒体を決定するステップであって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するステップであって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、決定するステップと;をさらに含む。この技術的解決策では、最高の読み取り/書き込み性能を有しており、且つ圧縮すべきデータが位置する記憶媒体は、圧縮すべきデータのヒット率(具体的には、第1のデルタ)と異なる記憶媒体に記憶されるマッピング関係のヒット率範囲とに基づいて直接決定でき、キャッシュの読み取り/書き込み性能は、メモリの読み取り/書き込み性能よりも高く、メモリの読み取り/書き込み性能は、ハードディスクの読み取り/書き込み性能よりも高い。これにより、圧縮すべきデータの検索範囲を狭めることができる。従って、圧縮時間が短縮される。
可能な設計では、この方法は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するステップをさらに含む。
可能な設計では、この方法は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に、識別子情報を記憶するステップをさらに含む。識別子情報は、現在のデータを復元するために使用される情報が現在のデータ又は現在のデータを圧縮して得た値であることを示すために使用される。オプションで、識別子情報は、現在のデータを復元するために使用される情報の識別子情報として使用され得るか、又は現在のデータを復元するために使用される情報に含まれる情報として使用され得る。この技術的解決策は、記憶装置が現在のデータを復元するために使用される記憶情報を識別(特定:identify)するのに役立つ。
第2の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ取得方法を提供し、この方法は、現在のデータを復元するために使用される情報を読み取るステップであって、現在のデータを復元するために使用される情報には、デルタ又はデルタを圧縮して得た値が含まれ、デルタは、現在のデータと現在のデータの予測データとの間のデルタであり、予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、読み取るステップと;履歴データを用いて現在のデータを予測して、予測データを取得するステップと;予測データと現在のデータを復元するために使用された情報とに基づいて、現在のデータを決定するステップと;を含み得る。例えば、履歴データは、1つ又は複数の取得データ(obtained data)である。
可能な設計では、解凍を行うために使用されるアルゴリズムは、辞書解凍アルゴリズム及び/又は重複排除アルゴリズムのうちの少なくとも1つを含む。
可能な設計では、現在のデータを復元するために使用される情報は、デルタを圧縮して得た値を含み、予測データと現在のデータを復元するために使用される情報とに基づいて現在のデータを決定するステップは、デルタを圧縮して得た値を解凍して、デルタを取得するステップと;デルタと現在のデータの予測データとに基づいて現在のデータを決定するステップと;を含む。
可能な設計では、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書が少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。デルタを圧縮して得た値を解凍して、デルタを取得するステップは、デルタを圧縮して得た値のヒット率を取得するステップと;デルタを圧縮して得た値のヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定するステップであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定するステップと;を含み得る。この技術的解決策では、記憶装置に含まれるマッピング関係が様々なセットに分類される。このようにして、解凍すべき(to-be-decompressed)データが位置するセットは、解凍すべきデータのヒット率(具体的には、デルタを圧縮して得た値)に基づいて直接決定することができる。これにより、解凍すべきデータの検索範囲を狭めることができる。従って、解凍時間が短縮される。
可能な設計では、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書が1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上である。この場合に、デルタを圧縮して得た値を解凍して、デルタを取得するステップは、デルタを圧縮して得た値のヒット率を取得するステップと;デルタを圧縮して得た値のヒット率に基づいてターゲット記憶媒体を決定するステップであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定するステップであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定するステップと;を含み得る。この技術的解決策では、最高の読み取り/書き込み性能を有しており、且つ解凍すべきデータが位置する記憶媒体は、解凍すべきデータのヒット率と異なる記憶媒体に記憶されるマッピング関係のヒット率範囲とに基づいて直接決定され得る。これにより、解凍すべきデータの検索範囲を狭めることができる。従って、解凍時間が短縮される。
可能な設計では、記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれない場合に、それは、現在のデータを復元するために使用される情報にはデルタ又はデルタを圧縮して得た値が含まれることを示す。識別子情報の関連する説明については、前述の第1の態様を参照されたい。
記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれる場合に、それは、現在のデータを復元するために使用される情報には現在のデータ又は現在のデータを圧縮し得た値が含まれることを示すと理解され得る。
これに基づいて、第2の態様で提供される技術的解決策は、以下の解決策1又は解決策2に置き換えることができる。
解決策1:現在のデータを復元するために使用される情報を読み取り、ここで、現在のデータを復元するために使用される情報に識別子情報が含まれ、現在のデータを復元するために使用される情報には現在のデータが含まれる。
解決策2:現在のデータを復元するために使用される情報を読み取り、ここで、現在のデータを復元するために使用される情報に識別子情報が含まれ、現在のデータを復元するために使用される情報には現在のデータを圧縮して得た値が含まれ、次に、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
第2の態様で提供される技術的解決策は、新しい技術的解決策を形成するために、解決策1/解決策2と組み合わせることができる。
第2の態様又は第2の態様の代替解決策は、第1の態様で提供される技術的解決策及び技術的解決策の対応する設計的解決策に対応する。従って、第2の態様又は第2の態様の代替解決策の特定の実施態様及び有利な効果については、第1の態様の説明を参照されたい。
第3の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ記憶方法を提供し、この方法は、現在のデータ及び現在のデータの履歴データを取得するステップと;履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するステップであって、予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;現在のデータと予測データとの間のデルタを取得するステップと;デルタの絶対値が予め設定した閾値以下の場合に、予め設定したデータを記憶するステップと;を含み得る。オプションで、予め設定したデータが占める記憶空間は、現在のデータが占める記憶空間よりも小さい。この技術的解決策では、従来技術の現在のデータを直接記憶する技術的解決策と比較して、予め設定したデータが占める記憶空間が現在のデータが占める記憶空間よりも小さいため、記憶オーバーヘッドを削減できる。
オプションで、予め設定したデータは、記憶装置によって予め規定される。オプションで、予め設定したデータは識別子であり得、識別子は、現在のデータの予測データが現在のデータとして使用され得る(又は略使用され得る)ことを示すために使用される。オプションで、予め設定したデータが占める記憶空間は、殆ど又は全ての記憶すべきデータのそれぞれが占める記憶空間よりも小さい。
デルタが差である例では、デルタの絶対値が0である場合に、この技術的解決策の圧縮プロセスは、具体的には可逆圧縮プロセスである。デルタの絶対値が0でない場合に、この技術的解決策の圧縮プロセスは、具体的には不可逆圧縮プロセスである。予め設定した閾値を適切に設定すると、データ損失率を特定の範囲内に制限するのに役立つ。換言すると、予め設定される閾値は、実際の要件(例えば、許容可能な非可逆圧縮率内の要件)に基づいて設定できる。この技術的解決策は、特定のデータ損失が許容されるシナリオ、例えば、ビデオ再生等のシナリオに適用することができる。
可能な設計では、この方法は、デルタの絶対値が予め設定した閾値よりも大きい場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するステップをさらに含む。圧縮を行うために使用されるアルゴリズムは、例えば、辞書圧縮アルゴリズム及び/又は重複排除アルゴリズムであり得るが、これらに限定されない。
可能な設計では、この方法は、デルタの絶対値が予め設定した閾値よりも大きい場合に識別子情報を記憶するステップをさらに含み、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用されるか、又は現在のデータが記憶される場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。識別子情報は、現在のデータを復元するために使用される情報の識別子情報として使用してもよく、又は現在のデータを復元するために使用される情報に含まれる情報として使用してもよい。この技術的解決策は、記憶装置が現在のデータを復元するために使用される記憶情報のタイプを識別するのに役立つ。タイプは、「予め設定したデータ」のタイプ又は「現在のデータ又は現在のデータを圧縮して得た値」のタイプであり得、これにより、データ取得手順の実装を支援する。
第1の態様又は第3の態様で提供される任意の技術的解決策に基づいて、以下では、いくつかの可能な設計が提供される。
可能な設計では、この方法は、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記憶するステップをさらに含む。これにより、現在のデータを正しく復元するのに役立つ。例えば、記憶装置は、AIニューラルアルゴリズムのパラメータが更新される度にスナップショット動作を実行して、現在のデータを復元するために使用される情報と予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記録する。
可能な設計では、現在のデータを復元するために使用される情報が記憶された後に、この方法は、アダプティブラーニング(adaptive learning)によってAIニューラルアルゴリズムのパラメータを更新するステップと;AIニューラルアルゴリズムの更新パラメータ(updated parameter)に基づいて、現在のデータを復元するために使用される情報を更新するステップと;をさらに含む。これにより、現在のデータを正しく復元するのに役立つ。
可能な設計では、予測を行うために使用されるAIニューラルアルゴリズムの前述のパラメータは、AIニューラルアルゴリズムの第1のパラメータとしてマークされ、AIニューラルアルゴリズムの第1のパラメータが更新された後に取得されるパラメータは、AIニューラルアルゴリズムの第2のパラメータとしてマークされる。これに基づいて、AIニューラルアルゴリズムの更新パラメータに基づいて、現在のデータを復元するために使用される情報を更新するステップは、現在のデータを復元するために使用される情報を読み取るステップと;AIニューラルアルゴリズムの第1のパラメータ(つまり、更新前のAIニューラルアルゴリズムのパラメータ)、現在のデータを復元するために使用される読み取り情報、及び現在のデータの履歴データに基づいて、現在のデータを復元するステップと;AIニューラルアルゴリズムの第2のパラメータ(つまり、AIニューラルアルゴリズムの更新パラメータ)と現在のデータの履歴データとに基づいて、現在のデータを予測して、第2の予測データを取得するステップであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの第2のパラメータに基づいて、履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;現在のデータと第2の予測データとの間の第2のデルタを取得するステップと;第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値に更新するステップと;を含む。
可能な設計では、記憶装置はAIコンピューティングカードを含み、履歴データを用いて現在のデータを予測して、第1の予測データを取得するステップは、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、第1の予測データを取得するステップを含む。
可能な設計では、記憶装置はメモリを含む。少なくとも2つの記憶すべきデータの中の現在のデータ及び現在のデータの履歴データを取得するステップは、少なくとも2つの記憶すべきデータの中の現在のデータ及び現在のデータの履歴データをメモリから取得するステップを含む。
可能な設計では、任意の記憶すべきデータについて、記憶すべきデータが他の記憶すべきデータの履歴データとして使用されない場合に、記憶すべきデータは、メモリの記憶オーバーヘッドを削減するように、メモリから削除される。
第4の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ取得方法を提供し、この方法は、現在のデータを復元するために使用される情報を読み取るステップと;現在のデータを復元するために使用される情報が予め設定したデータを含む場合に、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するステップであって、予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである、取得するステップと;予測データを現在のデータとして使用するステップと;を含み得る。例えば、履歴データは、1つ又は複数の取得データである。
可能な設計では、記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれない場合に、それは、現在のデータを復元するために使用される情報には予め設定したデータが含まれることを示す。識別子情報の関連する説明については、前述の第3の態様を参照されたい。詳細については、ここでは再び説明しない。
記憶装置によって読み取られ、且つ現在のデータを復元するために使用される情報に識別子情報が含まれる場合に、それは、現在のデータを復元するために使用される情報には現在のデータ又は現在のデータを圧縮し得た値が含まれることを示すと理解され得る。この場合に、第4の態様は、上記の解決策1又は解決策2に置き換えることができる。
第4の態様で提供される技術的解決策は、新しい技術的解決策を形成するように、解決策1/解決策2と組み合わせることができる。
第4の態様又は第4の態様の代替解決策は、第3の態様で提供される技術的解決策及び技術的解決策の対応する設計的解決策に対応する。従って、第4の態様又は第4の態様の代替解決策の特定の実施態様及び有利な効果については、第3の態様を参照されたい。
第2の態様又は第4の態様で提供される任意の技術的解決策に基づいて、以下では、いくつかの可能な設計が提供される。
可能な設計では、記憶装置はメモリを含み、履歴データを用いて現在のデータを予測する前に、現在のデータの予測データを取得するために、この方法は、メモリから履歴データを取得するステップをさらに含む。
可能な設計では、この方法は、記憶装置によって、現在のデータをメモリに記憶して、現在のデータを他の取得すべき(to-be-obtained)データの履歴データとして使用するステップをさらに含む。
可能な設計では、この方法は、取得データが取得すべきデータの履歴データとしてもはや使用されなくなった場合に、記憶装置が、メモリから取得データを削除して、メモリの記憶オーバーヘッドを削減するステップをさらに含む。
可能な設計では、この方法は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得するステップをさらに含み、履歴データを用いて現在のデータを予測して、予測データを取得するステップは、AIニューラルアルゴリズムの取得パラメータに基づいて履歴データを用いて現在のデータを予測して、予測データを取得するステップを含む。
可能な設計では、記憶装置はAIコンピューティングカードを含み、履歴データを用いて現在のデータを予測するステップは、AIコンピューティングカード及び履歴データを用いて現在のデータを予測するステップを含む。
第5の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ圧縮方法を提供し、記憶装置は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この方法は、圧縮すべきデータのヒット率を取得するステップと;圧縮すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用するステップと;を含み得る。
第6の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ解凍方法を提供し、記憶装置は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この方法は、解凍すべきデータのヒット率を取得するステップと;解凍すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するステップであって、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定するステップと;ターゲットセット内の第2のデータで解凍すべきデータを検索して、解凍すべきデータに対応する第1のデータを決定し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用するステップと;を含み得る。
第7の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ圧縮方法を提供し、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率がメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率がハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きい。この方法は、圧縮すべきデータのヒット率を取得するステップと;圧縮すべきデータのヒット率に基づいてターゲット記憶媒体を決定するステップであって、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用するステップと;を含む。
第8の態様によれば、本願の一実施形態は、記憶装置に適用されるデータ解凍方法を提供し、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率がメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率がハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きい。この方法は、解凍すべきデータのヒット率を取得するステップと;解凍すべきデータのヒット率に基づいてターゲット記憶媒体を決定するステップであって、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定するステップと;ターゲット記憶媒体内の第2のデータで解凍すべきデータに対応する第1のデータを検索し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用するステップと;を含み得る。
第5又は第7の態様で提供されるデータ圧縮方法で達成することができる有利な効果については、第1の態様の説明を参照すべきことに留意されたい。第6又は第8の態様で提供されるデータ解凍方法で達成できる有利な効果については、第2の態様の説明を参照されたい。一例では、第5の態様及び第7の態様で説明するマッピング関係は、辞書圧縮アルゴリズムの辞書に含まれるマッピング関係であり得る。
第9の態様によれば、本願の一実施形態は、記憶装置を提供し、この記憶装置は、第1の態様から第8の態様で提供される方法のいずれか1つを実行するように構成され得る。
可能な設計では、機能モジュール分割は、第1の態様から第8の態様で提供される方法のいずれか1つに従って、記憶装置上で実行され得る。例えば、各機能モジュールは、各機能による分割によって取得することができ、又は2つ以上の機能を1つの処理モジュールに統合することができる。
別の可能な設計では、記憶装置は、メモリ及びプロセッサを含み、メモリは、プログラムコードを記憶するように構成され、プロセッサは、プログラムコードを呼び出して、第1の態様から第8の態様で提供される方法のいずれか1つを実行するように構成される。
本願で説明するメモリ及びプロセッサは、1つのチップに統合され得るか、又は異なるチップに別々に配置され得ることに留意されたい。本願では、メモリのタイプ、メモリ及びプロセッサの配置方法に制限はない。
本願の一実施形態は、プログラムコードを含むコンピュータ可読記憶媒体をさらに提供し、プログラムコードは、第1の態様から第8の態様で提供される方法のいずれか1つのステップの一部又は全てを実行するために使用される命令を含む。
本願の一実施形態は、コンピュータ可読記憶媒体をさらに提供し、コンピュータ可読記憶媒体はコンピュータプログラムを記憶し、コンピュータプログラムがコンピュータ上で実行されるときに、コンピュータは、第1の態様から第8の態様で提供される可能な方法のいずれか1つを実行することができる。
本願の一実施形態は、コンピュータプログラム製品をさらに提供し、コンピュータプログラム製品がコンピュータ上で実行されるときに、第1の態様から第8の態様で提供される方法のいずれか1つが実行される。
上記で提供される任意の記憶装置、コンピュータ可読記憶媒体、又はコンピュータプログラム製品は、上記で提供される対応する方法を実行するように構成されることが理解され得る。従って、記憶装置、コンピュータ可読記憶媒体、又はコンピュータプログラム製品によって達成することができる有利な効果については、対応する方法における有利な効果を参照されたい。詳細については、ここでは再び説明しない。
本願の一実施形態に適用可能なシステムアーキテクチャの概略図である。
本願の一実施形態に適用可能な記憶装置のハードウェア構造の概略図である。
本願の別の実施形態に適用可能な記憶装置のハードウェア構造の概略図である。
本願の一実施形態に適用可能なAIニューラルアルゴリズムの概略図である。
本願の一実施形態によるデータ記憶方法の概略図1である。
本願の一実施形態による、記憶すべきデータ及び実際に記憶される情報の概略図である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図2である。
本願の一実施形態による、ある時点でメモリ及びハードディスクに記憶されている情報の概略図である。
本願の一実施形態によるデータ取得方法の概略図1である。
本願の一実施形態による、取得すべきデータ及び実際に記憶される情報の概略図である。
本願の一実施形態によるデータ取得方法の概略図2である。
本願の一実施形態によるデータ取得方法の概略図2である。
本願の一実施形態によるデータ取得方法の概略図2である。
本願の一実施形態によるデータ圧縮方法の概略図1である。
本願の一実施形態によるデータ解凍方法の概略図1である。
本願の一実施形態によるデータ圧縮方法の概略図2である。
本願の一実施形態によるデータ解凍方法の概略図2である。
本願の一実施形態によるデータ記憶方法の概略図3である。
本願の一実施形態によるデータ取得方法の概略図3である。
本願の一実施形態による記憶装置の概略図1である。
本願の一実施形態による記憶装置の概略図2である。
本願の一実施形態による記憶装置の概略図3である。
本願の一実施形態による記憶装置の概略図4である。
本願の一実施形態による記憶装置の概略図5である。
本願の一実施形態による記憶装置の概略図6である。
図1は、本願の一実施形態に適用可能なシステムアーキテクチャの概略図である。図1に示されるシステムアーキテクチャは、クライアント100及び記憶装置200を含む。
データ書き込み手順では、クライアント100は、書き込み要求を記憶装置200に送信するように構成される。書き込み要求は、1つ又は複数の書き込むべき(to-be-written)データ及び各書き込むべきデータのアドレス情報を含む。書き込み要求を受信した後に、記憶装置200は、書き込むべきデータのアドレス情報によって示される記憶空間に、各書き込むべきデータを順次(successively:連続して)記憶するか、又は書き込むべきデータのアドレス情報によって示される記憶空間に、書き込むべきデータを処理した後に取得されるデータ(例えば、以下の1つ又は複数の予測、デルタ計算、及び圧縮)を記憶する。
データ読み取り手順では、クライアント100は、読み取り要求を記憶装置200に送信するように構成される。読み取り要求は、1つ又は複数の読み取るべき(to-be-read)データのアドレス情報を含む。読み取り要求を受信した後に、記憶装置200は、各読み取るべきデータのアドレス情報によって示される記憶空間からデータを順次読み取り、読み取ったデータをクライアント100にフィードバックするか、又は読み取ったデータを処理(例えば、以下の1つ又は複数の予測、デルタ計算、及び解凍)した後に取得されたデータをクライアント100にフィードバックする。
図1に示されるシステムアーキテクチャは、本願のこの実施形態に適用可能なシステムアーキテクチャの単なる例であり、本願のこの実施形態に適用可能なシステムアーキテクチャに対する制限を構成するものではないことに留意されたい。例えば、本願のこの実施形態に適用可能なシステムアーキテクチャは、1つの記憶装置200及び複数のクライアント100を含んでもよく、又は1つのクライアント100及び複数の記憶装置200を含んでもよい。
クライアント100は、論理機能モジュールであることが理解され得る。論理機能モジュールで実現できる機能の例については、前述の説明を参照されたい。図1では、クライアント100が記憶装置200から独立している例を、説明のために使用する。この場合に、ハードウェア実装において、クライアント100は、記憶装置200とは独立した装置に統合され得る。さらに、いくつかの実施形態では、例えば、ハイパーコンバージド(hyper-converged)シナリオにおいて、又は統合型ストレージ及びコンピューティング装置において、クライアント100は、記憶装置200内の論理機能モジュールとして機能し得る。この場合に、ハードウェア実装において、クライアント100は、記憶装置200内の記憶媒体(メモリ等)及びプロセッサ(中央処理ユニット(central processing unit, CPU)等)によって共同で実装され得る。具体的には、記憶媒体はプログラム命令を記憶する。プログラム命令がプロセッサによって呼び出されると、プロセッサは、クライアント100によって実装され得る機能を実行することが可能になる。確かに、クライアント100は、記憶装置200内の記憶媒体(メモリ等)、プロセッサ、及び他のハードウェアによって共同して、代替的に実装され得る。これは、本願のこの実施形態に限定されない。特に明記しない限り、以下では、本願の実施形態で提供される技術的解決策が、説明のために図1に示されるシステムアーキテクチャに適用される例を使用する。
図2は、本願の一実施形態に適用可能な記憶装置200のハードウェア構造の概略図である。図2に示される記憶装置200は、インターフェイスカード201、プロセッサ202、メインメモリ(メモリ(memory)等)203、セカンダリメモリ(ハードディスク等)204、プロトコル変換モジュール205、及びバス206を含む。これらの構成要素同士の間の接続関係については、図2を参照されたい。本願のこの実施形態では、ハードディスクは、ハードディスクドライブ(hard disk drive, HDD)又はソリッドステートディスク(solid-state
disk, SDS)等の記憶媒体を含むが、これに限定されない。以下では、説明のために、メインメモリ203がメモリ(メモリ203としてマークされる)であり、セカンダリメモリ204が具体的にはハードディスク(ハードディスク204としてマークされる)であり、及びプロトコル変換モジュール205が具体的にはハードディスクプロトコル変換モジュール(ハードディスクプロトコル変換モジュール205としてマークされる)である例を使用することに留意されたい。これは、本明細書で一律に説明している。詳細については、以下では再び説明しない。
インターフェイスカード201、プロセッサ202、メモリ203、ハードディスク204、及びハードディスクプロトコル変換モジュール205は、バス206を介して互いに接続され得る。バス206は、周辺機器相互接続(peripheral component interconnect, PCI)バス、PCIE(PCIエクスプレス)バス、シリアル接続SCSI(serial attached SCSI, SAS)バス、SATA(serial
advanced technology attachment, SATA)バス、及び拡張型産業標準構造(extended
industry standard architecture, EISA)バスのうちの少なくとも1つを含み得る。SCSIは、英語で「スカジー(small computer system interface, SCSI)」の略である。バス206は、アドレスバス、データバス、制御バス等のうちの1つ又は複数を含み得る。表示を容易にするために、バス206は、図2で矢印線を用いて示されている。ただし、これは、バスが1つしかない、又はバスのタイプが1つしかないことを示すものではない。
インターフェイスカード201は、フロントエンドプロトコル変換モジュールとも呼ばれ、受信した情報に対して送信プロトコル変換を実行し、例えば、光ネットワーク通信プロトコル又はイーサネット通信プロトコルを用いてクライアント100から受信した情報を、PCIEプロトコルを使用する情報に変換するか、又は別の例として、PCIEプロトコルを用いてプロセッサ202から受信した情報を、光ネットワーク通信プロトコル又はイーサネット通信プロトコルを使用する情報に変換するように構成され得る。インターフェイスカード201は、ファイバーチャネル(fibre channel, FC)インターフェイスカード、ギガビットイーサネット(gigabit
ethernet, GE)インターフェイスカード、インターフェイスバス(interface bus, IB)インターフェイスカード等のうちの少なくとも1つを含み得る。
プロセッサ202は、記憶装置200の制御センタであり、記憶装置200内のメモリ203、ハードディスク204、及びハードディスクプロトコル変換モジュール205等の他の構成要素を制御して、本願の一実施形態で提供される技術的解決策を実施するべく動作するように構成され得る。具体的な例については、以下の説明を参照されたい。
オプションで、プロセッサ202は、CPUを含み得、具体的には、1つ又は複数のCPUを含み得る。
オプションで、プロセッサ202は、CPU及びキャッシュ(すなわち、CPUキャッシュ)を含み得る。キャッシュは、CPUとメモリ203との間の高速メモリであり、且つ主に、記憶装置200の読み取り/書き込み性能を向上させるように構成される。例えば、キャッシュに記憶されるデータは、メモリ203に記憶されるいくつかのデータであり得る。キャッシュにアクセスすべき(to-be-accessed)データ(例えば、読み取るべきデータ又は読み取るべきデータを処理した後に取得されるデータ)が含まれる場合に、CPUは、メモリ203からアクセスすべきデータを取得する必要なしに、キャッシュからアクセスすべきデータを取得することができ、それによりデータ読み取り速度が増大する。
メモリ203は、インターフェイスカード201から情報(例えば、書き込み要求又は読み取り要求に含まれる(carried in)情報)をキャッシュするように構成され得、それによって、プロセッサ202は、メモリ203にキャッシュされた情報を呼び出して、本願の実施形態で提供される技術的解決策を実施する、又は、プロセッサ202から情報(例えば、読み取るべきデータ)をキャッシュするように構成され得、それによって、プロセッサ202は、メモリ203にキャッシュされた情報を呼び出し、その情報をインターフェイスカード201に送信して、インターフェイスカード201がキャッシュされた情報に対して送信プロトコル変換を順次実行できるようにする。また、メモリ203は、プロセッサ202とハードディスク204との間のメモリであり、且つ記憶装置200の読み取り/書き込み性能を向上させるように構成される。メモリ203に記憶されるデータは、ハードディスク204に記憶されるいくつかのデータであり得る。メモリにアクセスすべきデータが含まれる場合に、CPUは、ハードディスク204からアクセスすべきデータを取得する必要なしに、メモリ203からアクセスすべきデータを取得することができ、それにより、データ読み取り速度が増大する。
ハードディスク204は、データを記憶するように構成される。サポートされる送信プロトコルに基づく分類を通じて、ハードディスク204は、SASディスク(又はSAS拡張エンクロージャ)、PCIEディスク、SATAディスク等のうちの少なくとも1つを含み得る。
ハードディスクプロトコル変換モジュール205は、バックエンドプロトコル変換モジュールとも呼ばれ得、プロセッサ202とハードディスク204との間に配置され、及び受信した情報に対して送信プロトコル変換を実行して、例えば、PCIEプロトコルを用いてプロセッサ202から受信した情報を、ハードディスク204に適用可能なSASプロトコル又はSATAプロトコル等のプロトコルを使用する情報に変換する、又は別の例として、SASプロトコル、SATAプロトコル等を用いてハードディスク204から受信した情報を、プロセッサ202に適用可能なPCIEプロトコル等のプロトコルを使用する情報に変換するように構成される。ハードディスク204がSASディスクである例では、ハードディスクプロトコル変換モジュール205は、具体的には、SASプロトコル変換チップ、SASインターフェイスカード等であり得る。
図2に示される記憶装置200において、プロセッサ202は、以下に説明する予測、デルタ計算、圧縮、及び解凍等のステップを実行するように構成され得る。具体的な例については、以下の説明を参照されたい。この場合に、プロセッサ202は、プログラムを呼び出すことによって、予測、デルタ計算、圧縮、及び解凍等のステップを実行すると見なすことができる。
図2に示される記憶装置200は、本願のこの実施形態に適用可能な記憶装置の一例に過ぎず、本願のこの実施形態に適用可能な記憶装置に対する制限を構成するものではないことに留意されたい。本願のこの実施形態に適用可能な記憶装置は、代替的に、記憶装置200内の構成要素よりも多い又は少ない構成要素を含んでもよい。
例えば、プロセッサ202及びハードディスク204が同じプロトコルを使用する、例えば、両方がPCIEプロトコルを使用する場合に、記憶装置200は、ハードディスクプロトコル変換モジュール205を含まなくてもよい。
別の例として、図3に示されるように、図2に示される記憶装置200に基づいて、記憶装置200は、AIコンピューティングカード207をさらに含み得る。AIコンピューティングカード207は、プロセッサ202の制御下でAIコンピューティング機能を実現する、例えば、以下で説明する予測及びデルタ計算等のステップを実行するように構成される。具体的な例については、以下の説明を参照されたい。AIコンピューティングカードは、例えば、AIコンピューティングチップであってもよい。確かに、本願のこの実施形態はそれに限定されない。この例では、AIコンピューティングカードが予測及びデルタ計算等のステップを実行するように構成される場合に、プロセッサ202は、予測及びデルタ計算等のステップを実行する必要がない場合がある。
さらに別の例として、記憶装置200は、プロセッサ202の制御下で圧縮及び解凍等のステップを実行するように構成される圧縮/解凍モジュールをさらに含み得る。特定の例については、以下の説明を参照されたい。この例では、プロセッサ202は、圧縮及び解凍等のステップを実行する必要がない場合がある。本明細書で説明する圧縮/解凍モジュールは、チップ等のハードウェアであり得る。
衝突(collision)が発生しない場合に、前述の例のうちの任意の2つ以上を組み合わせて使用して、記憶装置200の新しいハードウェアアーキテクチャを形成することができることを理解されたい。例えば、記憶装置200は、AIコンピューティングカード207と圧縮/解凍モジュールとの両方を含み得る。
上記の記憶装置200のハードウェア構造について、図1に示されるシステムアーキテクチャを例として用いて説明する。クライアント100が記憶装置200内の論理機能モジュールである実施形態では、記憶装置200の提供される前述のハードウェア構造は、インターフェイスカード201、又はインターフェイスカード201とプロセッサ202との間のバス206を含まなくてもよい。クライアント100の機能を実現するように構成されるプロセッサ及び前述のプロセッサ202は、同じプロセッサであってもよく、又は異なるプロセッサであってもよい。
以下では、本願の実施形態における関連技術を簡単に説明する。
(1)AIニューラルアルゴリズム
図4は、本願の一実施形態に適用可能なAIニューラルアルゴリズムの概略図である。図4では、AIニューラルアルゴリズムは、入力層31、隠れ層32、及び出力層33を含み得る。
入力層31は、入力変数の値を受け取り、受け取った入力変数の値を隠れ層32に直接又は処理後に送信するように構成される。処理の機能(function:関数)は、隠れ層32によって識別され得る情報を取得することである。入力変数は、予測すべき(to-be-predicted)データ以前の1つ又は複数のデータである。入力層31における入力変数の量と、入力変数として使用され且つ予測すべきデータ以前の特定のデータは、予測精度要件に基づいて柔軟に調整され得る。例えば、予測すべきデータがn番目のデータであり、且つX(n)としてマークされる場合に、入力変数は、予測すべきデータX(n)以前のn−1個のデータ(X(1)、X(2)、・・・、及びX(n−1))としてマークされる)内の任意の1つ又は複数のデータである可能性があり、n>=1、nは整数である。
隠れ層32は、入力変数の値であり且つ入力層31から受け取った値に基づいて予測すべきデータを予測し、予測結果を出力層33に送信するように構成される。隠れ層32は、y個のニューラルネットワークを含み、ここで、y>=1であり、yは整数である。yの値は、予測精度要件に基づいて調整できる。各ニューラルネットワークは1つ又は複数のニューロンを含み、異なるニューラルネットワークに含まれるニューロンの量は同じでも異なっていてもよい。第1のニューラルネットワークに含まれるニューロンは、S11、S12、S13・・・として表され得る。第2のニューラルネットワークに含まれるニューロンは、S21、S22、S23・・・として表され得る。y番目のニューラルネットワークに含まれるニューロンは、Sy1、Sy2、Sy3・・・として表され得る。隠れ層に含まれる任意の2つのニューロンの間に接続線がある場合にとない場合がある。各接続線には重みがあり、i番目の接続線の重みはwiとして表され得、i>=1、iは整数である。一例では、記憶装置が起動されると、初期値が、y、wi、及び各ニューラルネットワークに含まれるニューロンの量等のパラメータに割り当てられ得る。割り当てられた初期値は、特定の予測精度要件に基づいて、オフラインマシンを用いて、記憶データ(stored data)(例えば、大量の記憶データ)をトレーニング及び検証することによって取得できる。さらに、データ記憶プロセスでは、実際のサービス要件に基づいてオンライン学習を選択的に有効にして、y、wi、各ニューラルネットワークに含まれるニューロンの量等の1つ又は複数のパラメータの値を調整することができ、それにより、予測精度が向上する。
出力層33は、隠れ層32の予測結果を直接又は処理後に出力するように構成される。処理の機能は、予測結果を受け取る構成要素/モジュールによって識別され得る情報を取得することである。予測結果には、予測すべきデータを予測した後に取得される予測データが含まれる。
本願のこの実施形態では、AIニューラルアルゴリズムのタイプは、NLMSタイプ、SLPタイプ、MLPタイプ、RNNタイプ等のいずれか1つを含み得る。RNNタイプのAIニューラルアルゴリズムは、Google(登録商標)の高速且つ正確な画像超解像(rapid and accurate image super-resolution, RAISR)アルゴリズム、又はインテリジェント運転における移動物体追跡予測技術及びアルゴリズム、例えばBaidu(登録商標)のインテリジェント運転アルゴリズムのアポロ(Apollo)を含み得る。以下では、AIニューラルアルゴリズムのアプリケーション例を説明するための2つのアルゴリズムについて簡単に説明する。
Google(登録商標)のRAISRアルゴリズムは、次のように説明することができる。画像の変化の固有の規則が、マシンを用いて画像を学習することによって取得され、ここで、固有の規則は、アルゴリズムにおいてパラメータの値(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量のうちの1つ又は複数)を用いて表され得る。次に、取得したパラメータの値及び画像内の既知のピクセル値を用いて、画像内の欠落している各ピクセルのピクセル値及び元の高解像度画像内のピクセル値を予測し、低解像度画像を高解像度画像に復元する。コンピュータの場合に、コンピュータ内のバイナリデータのグループに欠落部分がある場合に、Google(登録商標)のRAISRアルゴリズムの機能(関数)は、機械学習を通じて欠落部分を予測することである。
Baidu(登録商標)のApolloインテリジェント運転アルゴリズムは、次のように説明することができる。物体の運動パラメータは、マシンを用いて学習され、物体の運動パラメータの変化の固有の規則を取得し、ここで、固有の規則は、アルゴリズムにおいてパラメータの値(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量のうちの1つ又は複数)を用いて表され得る。次に、取得したパラメータの値と物体の現在の運動パラメータ及び/又は過去の運動パラメータとを用いて、物体の将来の運動パラメータを予測する。コンピュータの場合に、位置の変化又は特定の値の変化は、将来のバイナリデータ内の既知のバイナリデータのグループに対して予測される。
類推により、本願の実施形態で使用されるAIニューラルアルゴリズムは、次のように説明することができる。記憶データは、マシンを用いて学習され、記憶データの変化の固有の規則が取得され、ここで、固有の規則は、アルゴリズムにおいてパラメータの値(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量のうちの1つ又は複数)を用いて表され得る。次に、取得したパラメータの値及び既知の記憶データを用いて、未知の記憶データを予測する。コンピュータの場合に、既知のバイナリデータのグループを用いて、将来のバイナリデータの値を予測する。
(2)辞書(dictionary)圧縮技術(又はアルゴリズム)及び辞書解凍技術(又はアルゴリズム)
辞書圧縮技術は、現在業界で認められている高効率のストレージ技術である。辞書圧縮技術の基本原理は次の通りである。辞書は記憶装置に予め記憶され、ここで、辞書には少なくとも2つのマッピング関係が含まれ、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、各マッピング関係において第1のデータが占める記憶空間は、マッピング関係において第2のデータが占める記憶空間よりも大きい。換言すると、各マッピング関係は、複雑なシンボル(又は複雑なデータ)と単純なシンボル(又は単純なデータ)との間のマッピング関係である。一般に、辞書内の任意の2つの第1のデータは異なり、任意の2つの第2のデータも異なる。圧縮する必要のある圧縮すべきデータ(例えば、書き込むべきデータ)がある場合に、記憶装置は、圧縮すべきデータを辞書内の第1のデータと比較することができ、辞書内の第1のデータに圧縮すべきデータが含まれる場合に、圧縮すべきデータに対応する第2のデータを記憶する、又は辞書内の第1のデータに圧縮すべきデータが含まれない場合に、圧縮すべきデータを記憶する。
例えば、辞書に記憶される第1のデータと第2のデータとの間の対応関係が表1に示されていると想定する。
さらに、以下の圧縮すべきデータを圧縮する必要がある場合に、表1に示される辞書に基づいて辞書圧縮を行った後に、「中国人であり、中国出身である」という記憶装置に記憶されている情報(つまり、圧縮すべきデータを復元するために使用される情報)は、「00 01であり、02から来ました」であり得る。
辞書解凍技術の基本原理は以下の通りである。記憶装置は、解凍すべきデータ(例えば、記憶空間から読み取られるデータ)を辞書内の第2のデータと比較し、辞書内の第2のデータに解凍すべきデータが含まれる場合に、解凍すべきデータに対応する第1のデータを解凍データとして使用し、又は辞書内の第2のデータに解凍すべきデータが含まれない場合に、解凍すべきデータを解凍データとして使用する。
さらに、本願における「複数」という用語は、2つ以上を意味する。本願における「及び/又は」という用語は、関連するオブジェクトを説明するための関連関係のみを説明し、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、次の3つのケースを表し得る:Aのみが存在し、AとBとの両方が存在し、Bのみが存在する。さらに、本明細書の文字「/」は、通常、関連するオブジェクト同士の間の「又は」の関係を示す。数式で文字「/」が使用される場合に、その文字は、通常、関連するオブジェクト同士の間の「除算」関係を示す。例えば、式A/Bは、AがBで除算されることを示す。本願では、「第1」、「第2」等の用語は、異なるオブジェクトを区別することを目的としているが、オブジェクトの特定の順序を示すものではない。
添付の図面を参照して、以下では、本願の実施形態で提供されるデータ記憶方法及びデータ取得方法について説明する。
図5は、本願の一実施形態によるデータ記憶方法の概略図である。図5に示される方法は、以下のステップを含み得る。
S100:記憶装置は、現在のデータ及び現在のデータの履歴データを取得する。
例えば、記憶装置は、少なくとも2つの記憶すべきデータ内の現在のデータ(すなわち、現在の記憶すべきデータ)及び現在のデータの履歴データ(すなわち、記憶すべき履歴データ)を取得し、履歴データは、少なくとも2つの記憶すべきデータを含むシーケンス内の現在のデータ以前の1つ又は複数のデータである。
S101:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。
履歴データの変更規則は、具体的には、コンテンツ(content)の変更規則又は履歴データの値である。
例えば、シーケンス内の全てのデータ(すなわち、記憶すべきデータ)は、連続したX(1)、X(2)、X(3)、・・・、X(n)、・・・、及びX(N)であり、ここで、1<=n<=N、N>=2であり、nとNとの両方が整数である。この場合に、現在のデータがX(n)である場合に、履歴データは、X(n)以前の任意の1つ又は複数のデータであり得る。オプションで、履歴データは、X(n−1)から始まりX(n−1)以前の連続データの予め設定した量である。例えば、予め設定した量が10であり、n=50の場合に、履歴データは、データX(40)〜X(49)であり得、又はn=51の場合に、履歴データは、データX(41)〜X(50)であり得る。確かに、履歴データは、代替的に、X(n−1)から始まりX(n−1)以前の複数の非連続データである。
現在のデータ以前にあり、且つ現在のデータの履歴データとして使用される特定のデータは、S101で予測を行うために使用されるアルゴリズムに関連し得る。予測を行うために使用されるアルゴリズムは、本願のこの実施形態では限定されない。例えば、アルゴリズムはAIニューラルアルゴリズムを含み得る。この場合に、現在のデータ以前にあり、且つS101で使用される履歴データとして使用される特定のデータは、図4に示されるAIニューラルアルゴリズムの入力変数に基づいて決定され得る。例えば、図4に示されるAIニューラルアルゴリズムの入力変数が、X(n−1)から始まりX(n−1)以前の10個の連続データであり、現在のデータがX(n)であり、n=50の場合に、履歴データはX(40)〜X(49)である。別の例として、図4に示されるAIニューラルアルゴリズムの入力変数がX(n−2)、X(n−4)、X(n−6)、X(n−8)、及びX(n−10)であり、現在のデータがX(n)であり、n=50の場合に、履歴データは、X(48)、X(46)、X(44)、X(42)、及びX(40)である。
AIニューラルアルゴリズムの特定の実施態様については、前述の説明を参照されたい。詳細については、ここでは再び説明しない。S101を実行する前に、記憶装置は、AIニューラルアルゴリズムの全てのパラメータ(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量)の値を取得していることに留意されたい。AIニューラルアルゴリズムの全てのパラメータの値は、記憶データをオフライン及び/又はオンラインでトレーニングすることによって取得できる。S101を実行するときに、記憶装置は、履歴データとAIニューラルアルゴリズムの全てのパラメータの取得値とに基づいて現在のデータを予測して、現在のデータの予測データを取得することができる。
一例では、クライアントによって送信された1つ又は複数の書き込み要求を受信した後に、記憶装置は、1つ又は複数の書き込み要求に含まれる書き込むべきデータに基づいて、少なくとも2つの記憶すべきデータを取得することができる。1つ又は複数の書き込み要求に含まれる書き込むべきデータは、同じ対象物(subject)又は同じタイプの対象物のデータである。例えば、対象物は、同じ品目(article)、同じ画像、又は同じタイプの複数の画像であり得る。次に、少なくとも2つの記憶すべきデータがソートされて、少なくとも2つの記憶すべきデータを含むシーケンスが取得される。続いて、シーケンス内の一部又は全部の記憶すべきデータを現在のデータとして使用して、S101〜S105を実行する。
1つ又は複数の書き込み要求に含まれる書き込むべきデータに基づいて少なくとも2つの記憶すべきデータを取得するステップは、1つ又は複数の書き込み要求に含まれる各書き込むべきデータを1つの記憶すべきデータとして使用するステップ、或いは1つ又は複数の書き込み要求に含まれる書き込むべきデータを少なくとも2つの記憶すべきデータに再結合及び/又は分割するステップを含み得る。具体的には、記憶装置が受け取る書き込むべきデータの粒度は、記憶装置による処理(予測、デルタ計算、記憶等の1つ又は複数を含む)の粒度と同じでも異なっていてもよい。例えば、1つ又は複数の書き込み要求に含まれる各書き込むべきデータが8ビットであり、各記憶すべきデータが8ビットである場合に、各書き込むべきデータは1つの記憶すべきデータである;各記憶すべきデータが16ビットである場合に、2つの書き込むべきデータを組み合わせることにより、各記憶すべきデータを取得することができる;又は、各記憶すべきデータが4ビットである場合に、2つの記憶すべきデータは全て、1つの書き込むべきデータを分割することによって取得され得る。説明を容易にするために、以下では、説明のために、各書き込むべきデータが1つの記憶すべきデータとして使用される例を使用する。
この例における少なくとも2つの記憶すべきデータをソート(sorting:並べ替え)する特定の方法は、本願のこの実施形態では限定されない。通常、この例では、ソートを行うために使用されるソート規則は、予測を行うために使用されるAIニューラルアルゴリズム等の予測アルゴリズムに関連している。例えば、この例では、ソートを行うために使用されるソート規則は、記憶装置がAIニューラルアルゴリズムの全てのパラメータ(前述のy、wi、各ニューラルネットワークに含まれるニューロンの量等)の値を取得するプロセスにおいて、記憶データがトレーニングに関与するときに、記憶データが基づくソート規則と同じである。例えば、記憶データが、記憶データがトレーニングに関与するときの同じ品目である場合に、ソート規則は、品目内の全ての文字のシーケンス又はこのシーケンスの逆のシーケンスである可能性がある。別の例として、トレーニングに関与する記憶データが同じ画像に関するものである場合に、ソート規則は、画像内の全てのピクセルが行毎に又は列毎にソートされる規則、又は画像が複数の部分に分割される規則である可能性があり、同様の部分が結合された後に取得される新しい画像内の全てのピクセルは、行毎又は列毎にソートされる。
一例では、クライアントによって送信された1つ又は複数の書き込み要求を受信した後に、記憶装置は、1つ又は複数の書き込み要求に含まれる書き込むべきデータから少なくとも2つの記憶すべきデータを取得し、書き込むべきデータによって順番に構成されるシーケンスを、少なくとも2つの記憶すべきデータを含むシーケンスとして使用し、次に、シーケンス内の一部又は全ての記憶すべきデータを現在のデータとして使用して、S101〜S105を実行することができる。この例では、記憶装置は、記憶すべきデータをソートするステップを実行しない場合がある。この例のアプリケーションシナリオは次の通りであり得る。記憶装置がAIニューラルアルゴリズムの全てのパラメータ(例えば、前述のy、wi、及び各ニューラルネットワークに含まれるニューロンの量)の値を取得するプロセスでは、トレーニングに関与する記憶データのシーケンスは、記憶装置によって受信され、且つクライアントによって送信される記憶すべきデータのシーケンスである。この例の関連パラメータの説明及び実施態様については、前述の説明を参照されたい。
予測ステップについて、本願のこの実施形態では、以下の技術的解決策がサポートされることに留意されたい。
解決策1:いくつかの記憶すべきデータについて、予測ステップはデフォルトであり得る。例えば、履歴データがX(n−1)から始まりX(n−1)以前の10個の連続データである場合に、1番目〜10番目までの記憶すべきデータについて、予測ステップはデフォルトであり得る。
解決策1に基づいて、記憶装置は、先行技術で提供される技術的解決策に従って記憶すべきデータを記憶し、例えば、記憶すべきデータを直接記憶し、又は辞書圧縮アルゴリズム及び/又は重複排除アルゴリズム等のアルゴリズムに基づく圧縮を行った後に記憶すべきデータを記憶し得る。この場合に、S102〜S104もデフォルトであり得ることが理解され得る。
解決策2:記憶装置が異なる記憶すべきデータを予測する場合に、使用される予測アルゴリズムの全てのパラメータは同じであっても異なっていてもよい。例えば、5番目〜10番目の記憶すべきデータについて、AIニューラルアルゴリズムの入力変数は、X(n−1)から始まりX(n−1)以前の5個の連続データである可能性がある。つまり、5個の入力変数がある。10番目の記憶すべきデータとそれに続く記憶すべきデータの場合に、AIニューラルアルゴリズムの入力変数は、X(n−1)から始まりX(n−1)以前の10個の連続データである可能性がある。換言すると、10個の入力変数がある。
S102:記憶装置は、現在のデータと現在のデータの予測データとの間のデルタを取得する。
デルタは、現在のデータと現在のデータの予測データとの間の差を表すために使用されるパラメータである。例えば、デルタは、差、比、倍数、パーセンテージ等であり得る。確かに、本願のこの実施形態はそれに限定されない。
例えば、デルタが差である場合に、差は、現在のデータから現在のデータの予測データを差し引くことによって得られる差、又は現在のデータの予測データから現在のデータを差し引くことによって得られる差であり得る。特定の差を予め規定してもよく、本願のこの実施形態はそれに限定されない。現在のデータの予測データが、現在のデータよりも大きい、等しい、又は小さい可能性があるため、差は、0より大きい、等しい、又はより小さい値である可能性があることが理解され得る。デルタが、比、倍数、又はパーセンテージ等である場合に、特定の実施態様の原理及びデルタの値は、上記のものと同様であり、本明細書では1つずつ列挙していない。
S103:記憶装置は、デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さいかどうかを判定する。デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、S104が実行される。デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さくない場合に、S105が実行される。
S103は、以下の方法のうちの1つで実施され得る。
方法1:記憶装置は、デルタのビット数量が現在のデータのビット数量よりも少ないかどうかを判定する。
方法2:記憶装置は、デルタ及び現在のデータを別々に圧縮し(例えば、辞書圧縮アルゴリズム又は重複排除アルゴリズムを用いてデルタ及び現在のデータを圧縮する)、デルタを圧縮して得た値のビット数量が、現在のデータを圧縮して得た値のビット数量よりも少なくなるかどうかを判定する。
方法1及び方法2のいずれかに基づいて、判定結果が「はい」である場合に、それは、デルタが占める記憶空間が、現在のデータが占める記憶空間よりも小さいことを示す、又は、判定結果が「いいえ」の場合に、デルタが占める記憶空間が、現在のデータが占める記憶空間以上であることを示す。
S104:記憶装置は、デルタを記憶するか、又はデルタを圧縮して得た値を記憶する。デルタを圧縮して得た値又はデルタが具体的に記憶されるかどうかは、予め規定することができる。確かに、本願のこの実施形態はそれに限定されない。
圧縮を行うために使用される圧縮アルゴリズムは、本願のこの実施形態では限定されない。例えば、圧縮アルゴリズムは、辞書圧縮アルゴリズム及び重複排除アルゴリズムのうちの少なくとも1つを含み得る。1つ又は複数の特定の使用アルゴリズムを予め規定することができる。確かに、本願のこの実施形態はそれに限定されない。
S104を実行した後に、現在のデータの記憶プロセスは終了する。
S105:記憶装置は、現在のデータを記憶するか、又は現在のデータを圧縮して得た値を記憶する。現在のデータを圧縮して得た値又は現在のデータが具体的に記憶されるかどうかは、予め規定することができる。確かに、本願のこの実施形態はそれに限定されない。
一例では、S105が実行される場合に、記憶装置によって使用される圧縮アルゴリズムは、S104の圧縮に使用される圧縮アルゴリズムと一致している。確かに、本願のこの実施形態はそれに限定されない。
S105を実行した後に、現在のデータの記憶プロセスは終了する。
記憶装置が、現在のデータを復元するために使用される記憶情報が「圧縮よって得た値又はデルタ」であるか、又は「圧縮によって得た値又は現在のデータ」であるかを区別し、データ読み取り手順で読み取るべきデータを決定するのを助けるために、オプションで、S105が実行される場合に、この方法は、以下のS105Aをさらに含み得る。
S105A:記憶装置は、第1の識別子情報を記憶し、ここで、第1の識別子情報は、現在のデータを復元するために使用される記憶情報がS105で記憶される情報(すなわち、現在のデータ又は現在のデータを圧縮して得た値)であることを示すために使用される。第1の識別子情報は、現在のデータを復元するために使用される情報の識別子情報として、又は現在のデータを復元するために使用される情報に含まれる情報として使用され得る。
S105Aは、以下のものと置き換えることができることが理解され得る。以下のS104Aは、S104を実行した後に実行される。あるいはまた、S105Aを実行する場合であって、S104を実行した後に、以下のS104Aをさらに実行してもよい。
S104A:記憶装置は、第2の識別子情報を記憶し、ここで、第2の識別子情報は、現在のデータを復元するために使用される記憶情報がS104で記憶される情報(すなわち、デルタ又はデルタを圧縮して得た値)であることを示すために使用される。
記憶すべきデータの予測データは、予測アルゴリズムのパラメータの値を調整することによって記憶すべきデータに近づけることができ、それによって、殆どの記憶すべきデータのそれぞれの予測データと記憶すべきデータとの間のデルタが占める記憶空間は、記憶すべきデータが占める記憶空間よりも小さい。従って、特定の実施態様では、S105Aが実行され、S104Aが実行されない場合に(換言すると、第1の識別子情報が記憶され、第2の識別子情報が記憶されない場合に)、記憶装置は、現在のデータを復元するために使用される記憶情報が、「デルタを圧縮して得た値又はデルタ」又は「現在のデータを圧縮して得た値又は現在のデータ」であるかどうかを区別することができ、記憶オーバーヘッドを削減できる。次の図6−1〜図6−4から図8A〜図8Cに示される実施形態は全て、データ記憶方式においてS105Aが実行され、S104Aが実行されない例に基づいて説明している。
本願のこの実施形態で提供されるデータ記憶方法では、現在のデータは履歴データを用いて予測され、現在のデータと現在のデータの予測データとの間のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、デルタ又はデルタを圧縮して得た値が記憶される。デルタが占める記憶空間が、現在のデータが占める記憶空間よりも小さいため、予測及びデルタ計算のプロセスは、データ圧縮プロセスと見なすことができる。このようにして、従来技術と比較して、デルタが直接記憶されるか、又はデルタを圧縮して得た値が記憶されるかに関係なく、記憶オーバーヘッドを削減できる。さらに、現在のデータの予測データが現在のデータに近くなるように、適切な予測アルゴリズムが使用されるか、予測アルゴリズムのパラメータが調整される。従って、デルタが占める記憶空間は、現在のデータが占める記憶空間よりもはるかに小さく、それにより記憶オーバーヘッドがより効果的に削減される。さらに、デルタを圧縮して得た値を記憶する技術的解決策において、記憶オーバーヘッドをさらに削減できる。
図5に示されるデルタを圧縮して得た値を記憶する技術的解決策は、次のように理解され得る。従来の圧縮アルゴリズムを用いてデータを処理する前に、予測アルゴリズムが導入され、ここで、予測アルゴリズムは、データのコンテンツ規則、開発動向、固有の関係等に基づいて構成される。記憶装置に入力されるデータのコンテンツは、予測アルゴリズムと、記憶装置に入力されたデータ(又は記憶装置に入力された複数のデータを含むシーケンス内の後者のデータは、以前のデータを用いて予測される)とを用いて予測される。次に、予測される正確なコンテンツ又は類似のコンテンツについて、従来のデータ圧縮アルゴリズムのみが呼び出されて、実際の値と予測値との間のデルタが圧縮されるが、予測される正確なコンテンツ又は類似のコンテンツは記憶されない。このようにして、圧縮率が増大し、従来の圧縮アルゴリズムにおける入力値の変動範囲が積極的に低減され、それにより、解凍率及び解凍速度に関して現在の圧縮アルゴリズムの最適化及びブレークスルーが達成される。
例えば、記憶装置の終了の場合に、記憶オブジェクトはバイナリシーケンスであるが、シーケンスが理解可能なセマンティクス(semantics)に復元されると、シーケンスにはいくつかの変更規則が含まれていることが分かる。例えば、バイナリシーケンスXn={10、101、1010、10001、11010、100101、110010、1000001、1010010、1100101、1111010、10010001、10101011}が10進シーケンスに変換された後に、Xn’={2、5、10、17、26、37、50、65、82、101、122、145、171}が得られる。解析によって、Xn'の最初の12個のデータが、以下の変更規則:x2+1及びx=1〜12を満たしていることが分かった。
これに基づいて、Xn’について、予測アルゴリズムx2+1及び図5に示される実施形態に基づいて記憶装置によって実際に記憶されるシーケンスは、{10、101、1010、0、0、0、0、0、0、0、0、0、01}となり得る。Xn’の最初の3つのデータでは、予測ステップがデフォルトである。S105Aを参照すると、その3つのデータについて、記憶装置は、第1の識別子情報をさらに別々に記憶し得ることが分かり得る。記憶される「01」は、記憶すべきデータ171と記憶すべきデータの予測データ170との間の差である。記憶のために圧縮する必要のあるデータの範囲が大幅に削減され、その範囲内のデータの繰り返し確率が明らかに増大することが分かり得る。従って、データ圧縮率及び圧縮効率を大幅に向上させることができる。
複数の記憶すべきデータについては、各記憶すべきデータが、図5に示されるデータ記憶方法に従って記憶され得るので、各記憶すべきデータが、記憶すべきデータの予測データと比較される場合に、完全に同じ、部分的に同じ、及び完全に異なるケースのいずれかが発生する可能性があることに留意されたい。記憶すべきデータ及び予測データが完全に同じ又は部分的に同じである場合に、記憶空間を節約できる。記憶すべきデータ及び予測データが完全に異なる場合に、その効果は、従来技術で使用されている対応する方法と同等である。従って、一般に、記憶空間を節約できる。さらに、圧縮によって得た値を記憶する技術的解決策では、データ圧縮率及び圧縮効率を大幅に向上させることができる。
図5Aは、本願の一実施形態による、記憶すべきデータ及び実際に記憶される情報(すなわち、記憶すべきデータを復元するために使用される情報)の概略図である。履歴データが、現在のデータ以前であって、記憶すべきデータから始まり現在のデータ以前の5個の連続する記憶すべきデータである例が、説明のために図5で使用される。従って、シーケンス内の最初の5個の記憶すべきデータについて、対応する実際に記憶される情報は、別個に記憶すべきデータ(又は記憶すべきデータを圧縮して得た値)及び第1の識別子情報である。各影付きの四角は、1つの記憶すべきデータに対応する実際に記憶される情報を表し、対応関係が破線の矢印で示される。「A」は第1の識別子情報を示す。
図2に示される記憶装置200を参照すると、図5に示されるデータ記憶方法の例が、図6−1〜図6−4に示され得る。図6−1〜図6−4に示される方法は、以下のステップを含み得る。
S201:記憶装置は、インターフェイスカードを用いて、クライアントから送信された書き込み要求を受信し、ここで、書き込み要求には、少なくとも2つの書き込むべきデータと、少なくとも2つの書き込むべきデータのそれぞれのアドレス情報とが含まれる。
S202:インターフェイスカードは、少なくとも2つの書き込むべきデータ及び各書き込むべきデータのアドレス情報に対して送信プロトコル変換を実行し、例えば、イーサネット通信プロトコルを使用するこれらの情報を、PCIEプロトコルを使用する情報に変換する。
S203:インターフェイスカードは、送信プロトコル変換後に取得される少なくとも2つの書き込むべきデータ及び各書き込むべきデータのアドレス情報をプロセッサに送信する。
S204:プロセッサは、インターフェイスカードから受信した少なくとも2つの書き込むべきデータのそれぞれを1つの記憶すべきデータとして使用し、取得した少なくとも2つの記憶すべきデータをソートする。
S205:プロセッサは、ソート後に取得したシーケンス及び各記憶すべきデータ(すなわち、各書き込むべきデータ)のアドレス情報をメモリに記憶する。続いて、プロセッサは、シーケンス内の一部又は全ての記憶すべきデータを現在のデータとして使用して、以下のS206〜S219を実行することができる。シーケンス内の任意の2つの記憶すべきデータについて、シーケンスの前に位置する記憶すべきデータは、後に位置する記憶すべきデータの履歴データとして使用され得ることが理解され得る。
オプションで、S204及びS205は、以下のものと置き換えることができる。プロセッサは、インターフェイスカードから受信した少なくとも2つの書き込むべきデータのそれぞれを1つの記憶すべきデータとして使用し、取得した記憶すべきデータ及び記憶すべきデータのアドレス情報をメモリに書き込む。次に、プロセッサは、メモリに書き込まれた少なくとも2つの記憶すべきデータをソートするか、又はプロセッサは、インターフェイスカードによって送信されて受信された少なくとも2つの書き込むべきデータの順序を少なくとも2つの記憶すべきデータの順序として使用してシーケンスを形成することができ、シーケンス内の一部又は全部の記憶すべきデータを現在のデータとして使用して、以下のS206〜S219を実行することができる。
シーケンスの前に位置する記憶すべきデータは、後に位置する記憶すべきデータの履歴データとして使用され得ることが理解され得る。しかしながら、前述の説明に基づいて、記憶すべきデータ以前の全ての記憶すべきデータが、記憶すべきデータの履歴データとして使用されるわけではないことが分かり得る。これに基づいて、オプションで、任意の記憶すべきデータについて、記憶すべきデータが他の記憶すべきデータの履歴データとしてもはや使用されなくなったときに、プロセッサは、メモリから記憶すべきデータを削除して、メモリの記憶オーバーヘッドを削減することができる。
図6Aは、ある時点でメモリ及びハードディスクに記憶されている情報の概略図である。図6Aは、図5Aに基づいて描かれている。従って、図6Aの様々なグラフ、矢印等の説明については、図5Aを参照されたい。図6Aから、現時点では、メモリに記憶すべきデータを含むシーケンスは、現在のデータの履歴データ、現在のデータ、及び現在のデータの後の記憶すべきデータのみを含み得ることが分かり得る。このようにして、メモリの記憶オーバーヘッドを削減できる。
S206:プロセッサは、メモリから現在のデータ及び現在のデータの履歴データを取得する。
S207:プロセッサは、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。
S208:プロセッサは、現在のデータと現在のデータの予測データとの間のデルタを取得する。
S209:プロセッサは、デルタが占める記憶空間が、現在のデータが占める記憶空間よりも小さいかどうかを判定する。
デルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、S210が実行される、又はデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さくない場合に、S215が実行される。
S210:プロセッサはデルタを圧縮する。
S211:プロセッサは、メモリから取得した現在のデータのアドレス情報と、デルタを圧縮して得た値とをハードディスクプロトコル変換モジュールに送信する。
S212:ハードディスクプロトコル変換モジュールは、現在のデータのアドレス情報及び受信したデルタを圧縮して得た値に対して送信プロトコル変換を実行し、例えば、PCIEプロトコルからSASプロトコルへの変換を実行する。
S213:ハードディスクプロトコル変換モジュールは、送信プロトコル変換後に取得される現在のデータのアドレス情報及びデルタを圧縮して得た値をSASディスク等のハードディスクに送信する。
S214:ハードディスクは、デルタを圧縮して得た値を、現在のデータのアドレス情報によって示される記憶空間に記憶する。S214を実行した後に、現在のデータの記憶プロセスは終了する。
S215:プロセッサは現在のデータを圧縮する。
S216:プロセッサは、第1の識別子情報、メモリから取得した現在のデータのアドレス情報、及び現在のデータを圧縮して得た値をハードディスクプロトコル変換モジュールに送信する。第1の識別子情報は、現在のデータを復元するために使用される記憶情報が、現在のデータを圧縮して得た値であることを示すために使用される。
S217:ハードディスクプロトコル変換モジュールは、受信した第1の識別子情報、現在のデータのアドレス情報、及び現在のデータを圧縮して得た値に対して送信プロトコル変換を実行し、例えば、PCIEプロトコルからSASプロトコルへの変換を実行する。
S218:ハードディスクプロトコル変換モジュールは、送信プロトコル変換後に取得される第1の識別子情報、現在のデータのアドレス情報、及び現在のデータを圧縮して得た値をハードディスク(SASディスク等)に送信する。
S219:ハードディスクは、第1の識別子情報及び現在のデータを圧縮して得た値を、現在のデータのアドレス情報によって示される記憶空間に記憶する。S219を実行した後に、現在のデータの記憶プロセスは終了する。
図3に示される記憶装置を参照すると、図5に示されるデータ記憶方法の例は、図6−1〜図6−4に示される実施形態が以下のいくつかの点で変更された後に得られる実施形態であり得る。1:前述のS207〜S209は、AIコンピューティングカードによって実行される。2:S206が実行された後であって、S207が実行される前に、この方法は、プロセッサが、メモリから取得した履歴データ及び現在のデータをAIコンピューティングカードに送信するステップをさらに含む。3:S209が実行された後であって、S210が実行される前に、この方法は、AIコンピューティングカードが、デルタをプロセッサに送信するステップをさらに含む。4:S209が実行された後であって、S215が実行される前に、この方法は、AIコンピューティングカードが、現在のデータをプロセッサに送信するステップをさらに含む。
図7は、本願の一実施形態によるデータ取得方法の概略図である。この実施形態は、図5に示されるデータ記憶方法に対応する。従って、この実施形態における関連する内容の説明については、図5に示される実施形態を参照されたい。図7に示される方法は、以下のステップを含み得る。
S301:記憶装置は、現在のデータ(つまり、現在取得すべきデータ)を復元するために使用される情報を読み取る。現在のデータを復元するために使用される情報には、「デルタ又はデルタを圧縮して得た値」又は「現在のデータ又は現在のデータを圧縮して得た値」が含まれる。デルタは、現在のデータと現在のデータの予測データとの間のデルタである。現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。
履歴データは、1つ又は複数の取得データである。
例えば、クライアントによって送信された1つ又は複数の読み取り要求を受信した後に、記憶装置は、1つ又は複数の読み取り要求を用いて要求された読み取るべきデータに基づいて、少なくとも2つの取得すべきデータのアドレス情報を取得し、次に、少なくとも2つの取得すべきデータのアドレス情報に基づいて、少なくとも2つの取得すべきデータを復元するために使用される情報を読み取るすることができる。1つ又は複数の読み取り要求を用いて要求されたデータは、同じサブジェクト(subject)のデータである。サブジェクトの関連する説明については、図5Aに示される実施形態を参照されたい。読み取るべきデータの粒度は、取得すべきデータの粒度と同じでも異なっていてもよい。例えば、1つの読み取るべきデータが8ビットである場合に、1つの取得すべきデータは、4ビット、8ビット、16ビット等であり得る。説明を容易にするために、以下では、説明のために、各読み取るべきデータが、1つの取得すべきデータである例を使用する。読み取るべきデータと取得すべきデータとの間の対応関係については、前述の書き込むべきデータと記憶すべきデータとの間の対応関係を参照されたい。詳細については、ここでは再び説明しない。記憶装置は、少なくとも2つの取得すべきデータのそれぞれを現在のデータとして使用して、S301〜S306を実行することができる。
現在のデータを復元するために使用される情報に「デルタ又はデルタを圧縮して得た値」が含まれる場合に、情報にデルタ又はデルタを圧縮して得た値が具体的に含まれるかどうかを予め規定することができる。確かに、本願はそれに限定されない。
現在のデータを復元するために使用される情報に「現在のデータ又は現在のデータを圧縮して得た値」が含まれる場合に、情報に現在のデータ又は現在のデータを圧縮して得た値が具体的に含まれるかどうかを予め規定することができる。確かに、本願はそれに限定されない。
S302:記憶装置は、現在のデータを復元するために使用される情報に第1の識別子情報が含まれるかどうかを判定する。
図5に示される実施形態の説明に基づいて、以下が分かり得る。
S302における判定結果が、現在のデータを復元するために使用される情報に第1の識別子情報が含まれないということである場合に、それは、現在のデータを復元するために使用される情報にはデルタ又はデルタを圧縮して得た値が含まれることを示す。これに基づいて、現在のデータを復元するために使用される情報がデルタを圧縮して得た値である場合に、S303が実行され、又は現在のデータを復元するために使用される情報がデルタである場合に、S304が実行される。
S302の判定結果が、現在のデータを復元するために使用される情報に第1の識別子情報が含まれるということである場合に、それは、現在のデータを復元するために使用される情報には現在のデータ又は現在のデータを圧縮して得た値が含まれることを示す。これに基づき、現在のデータを復元するために使用される情報が現在のデータを圧縮して得た値である場合に、S306が実行され、又は現在のデータを復元するために使用される情報が現在のデータである場合に、現在のデータの取得プロセスは終了する。
S303:記憶装置は、デルタを圧縮して得た値を解凍して、デルタを取得する。
S303において解凍を行うために使用される解凍アルゴリズムは、S104において圧縮を行うために使用される圧縮アルゴリズムに対応することが理解され得る。例えば、辞書圧縮アルゴリズムを使用してS104において圧縮を行う場合に、辞書解凍アルゴリズムを使用してS303で解凍を行う。別の例として、重複排除アルゴリズムを使用してS104において圧縮を行う場合に、逆重複排除(inverse deduplication)アルゴリズムを使用してS303において解凍を行う。
S304:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。
履歴データは、記憶装置が取得した1つ又は複数のデータである。履歴データが1つ又は複数の取得データであるかどうか、及びどの1つ又は複数のデータが具体的に履歴データであるかどうかは、予測アルゴリズムに関連している。履歴データの特定の実施態様については、図5に示される実施形態を参照されたい。詳細については、ここでは再び説明しない。
図7Aは、本願の一実施形態による、取得すべきデータ及び実際に記憶される情報(すなわち、取得すべきデータを復元するために使用される情報)の概略図である。図7Aの実際に記憶される情報は、図5Aに示される実際に記憶される情報と同じである。従って、関連するグラフ、矢印等の説明については、図5Aを参照されたい。
S303及びS304の実行シーケンスは、本願のこの実施形態では限定されない。例えば、S303はS304の前に実行してもよく、S304はS303の前に実行してもよく、又はS303及びS304は同時に実行してもよい。
S305:記憶装置は、デルタと現在のデータの予測データとに基づいて現在のデータを決定する。
例えば、デルタが現在のデータから現在のデータの予測データを差し引くことによって得られた差である場合に、S305では、デルタと現在のデータの予測データとの合計が現在のデータとして使用される。例えば、デルタが現在のデータを現在のデータの予測データで除算することによって得られる比である場合に、S305では、デルタと現在のデータの予測データとの積が現在のデータとして使用される。他の例は1つずつ列挙していない。
S305を実行した後に、現在のデータの取得プロセスは終了する。
S306:記憶装置は、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
S306を実行した後に、現在のデータの取得プロセスは終了する。
この実施形態で提供されるデータ取得方法は、図5に示されるデータ記憶方法に対応する。従って、この実施形態における有利な効果については、図5に示される実施形態で説明した有利な効果を参照されたい。詳細については、ここでは再び説明しない。
図2に示される記憶装置200を参照すると、図7に示されるデータ取得方法の例が、図8A〜図8Cに示され得る。図8A〜図8Cに示される方法は、以下のステップを含み得る。
S401:記憶装置は、インターフェイスカードを用いて、クライアントから送信された読み取り要求を受信し、ここで、読み取り要求には、1つ又は複数の読み取るべきデータのアドレス情報が含まれる。
S402:インターフェイスカードは、1つ又は複数の読み取るべきデータのアドレス情報に対して送信プロトコル変換を実行し、例えば、イーサネット通信プロトコルを使用する1つ又は複数の読み取るべきデータのアドレス情報を、PCIEプロトコルを使用する情報に変換する。
S403:インターフェイスカードは、1つ又は複数の読み取るべきデータであり且つ送信プロトコルの変換後に取得されるアドレス情報をプロセッサに送信する。
S404:プロセッサは、受信した1つ又は複数の読み取るべきデータのアドレス情報内の各読み取るべきデータのアドレス情報を、1つの取得すべきデータのアドレス情報として使用する。
S405:プロセッサは、各取得すべきデータのアドレス情報をメモリに記憶する。
続いて、プロセッサは、一部又は全ての取得すべきデータを現在のデータとして使用して、S406〜S415を実行することができる。さらに、各現在のデータを取得するときに、プロセッサは、現在のデータをメモリに記憶して、その後、現在のデータを他の現在のデータの履歴データとして使用することができる。
S406:プロセッサは、現在のデータを復元するために使用される情報を、ハードディスク内にあり且つ現在のデータのアドレス情報によって示される記憶空間から読み取り、現在のデータを復元するために使用される読み取った情報を、送信プロトコル変換のためにハードディスクプロトコル変換モジュールに送信し、例えば、現在のデータを復元するために使用され且つSASプロトコルを使用する情報からPCIEプロトコルを使用する情報へ変換する。
S407:プロセッサは、現在のデータを復元するために使用される情報に第1の識別子情報が含まれるかどうかを判定する。
現在のデータを復元するために使用される情報に第1の識別子情報が含まれない場合に、それは、現在のデータを復元するために使用される情報にはデルタ又はデルタを圧縮して得た値が含まれることを示す。これに基づいて、現在のデータを復元するために使用される情報がデルタを圧縮して得た値である場合に、S408が実行され、又は現在のデータを復元するために使用される情報がデルタである場合に、S409が実行される。
現在のデータを復元するために使用される情報に第1の識別子情報が含まれる場合に、それは、現在のデータを復元するために使用される情には現在のデータ又は現在のデータを圧縮して得た値が含まれることを示す。これに基づいて、現在のデータを復元するために使用される情報が現在のデータを圧縮して得た値である場合に、S412が実行され、又は現在のデータを復元するために使用される情報が現在のデータである場合に、S413が実行される。
S408:プロセッサは、デルタを圧縮して得た値を解凍して、デルタを取得する。
S409:プロセッサは、メモリから履歴データを取得する。
S410:プロセッサは、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。
S411:プロセッサは、デルタと現在のデータの予測データとに基づいて現在のデータを決定する。
S411を実行した後に、S413は実行される。
S412:プロセッサは、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
S413:プロセッサは、現在のデータをインターフェイスカードに送信する。
オプションで、プロセッサは、現在のデータを他の取得すべきデータの履歴データとして使用するために、現在のデータをメモリにさらに記憶することができる。さらに、オプションで、取得データが取得すべきデータの履歴データとしてもはや使用されなくなった場合に、プロセッサは、メモリから取得データを削除して、メモリの記憶オーバーヘッドを削減することができる。例えば、現在のデータがX(n)であり、履歴データがX(n−1)から始まりX(n−1)以前の10個の連続データ(つまり、X(n−10)〜X(n−1))である場合に、X(n−11)及びX(n−11)以前のデータは、取得すべきデータの履歴データとしてもはや使用されない。従って、プロセッサは、メモリから取得データを削除し得る。
S414:インターフェイスカードは、現在のデータに対して送信プロトコル変換を実行し、例えば、PCIEプロトコルからイーサネット通信プロトコルへの変換を実行する。
S415:インターフェイスカードは、イーサネット通信プロトコルを用いて現在のデータをクライアントにフィードバックする。
このようにして、現在のデータの取得プロセスは終了する。
図3に示される記憶装置を参照すると、図7に示されるデータ取得方法の例は、図7は、図8A〜図8Cに示される実施形態が以下のいくつかの点で変更された後に得られる実施形態であり得る。1:前述のS410及びS411は、AIコンピューティングカードによって実行される。2:S409が実行された後であって、S410が実行される前に、この方法は、プロセッサが、メモリから取得した履歴データをAIコンピューティングカードに送信するステップをさらに含む。3:S411が実行された後であって、S413が実行される前に、この方法は、AIコンピューティングカードが、現在のデータをプロセッサに送信するステップをさらに含む。
現在、辞書圧縮(又は解凍)アルゴリズムの辞書における全てのマッピング関係は、ヒット率の降順で配置されている。通常、圧縮すべきデータを圧縮する必要がある場合に、圧縮すべきデータは、辞書の第1のデータ内でマッピング関係のヒット率の降順で検索され、圧縮すべきデータに対応する第2のデータが、圧縮すべきデータを圧縮した後に取得される値として使用される。解凍すべきデータを解凍する必要がある場合に、解凍すべきデータは、辞書の第2のデータ内でマッピング関係のヒット率の降順で検索され、圧縮すべきデータに対応する第1のデータは、解凍すべきデータを解凍した後に得られる値として使用される。このようにして、圧縮すべき又は解凍すべきデータが属するマッピング関係のヒット率が比較的低い場合に、圧縮/解凍を行うのに比較的長い時間がかかる。
従って、本願の一実施形態は、設計的解決策1を提供する。記憶装置は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、各マッピング関係において第1のデータが占める記憶空間は、マッピング関係において第2のデータが占める記憶空間よりも大きく、各セットは1つのヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応し、及び各セットのマッピング関係のヒット率は、そのセットに対応するヒット率範囲に属する。
記憶装置に含まれるセットの量及び各セットに対応するヒット率範囲は、予め規定され得るか、又は記憶データに基づいて更新され得る。さらに、マッピング関係も更新され得る。
例えば、各マッピング関係は、辞書圧縮アルゴリズムの辞書におけるマッピング関係であり得る。少なくとも2つのセットに含まれるマッピング関係は、辞書内の一部又は全てのマッピング関係であり得る。例えば、少なくとも2つのセットに含まれるマッピング関係は、記憶装置内の任意の記憶媒体(キャッシュ、メモリ、又はハードディスク等)に記憶されるマッピング関係であり得る。記憶媒体がキャッシュ又はメモリである場合に、少なくとも2つのセットに含まれるマッピング関係は、辞書内のいくつかのマッピング関係であり得る。記憶媒体がハードディスクである場合に、少なくとも2つのセットに含まれるマッピング関係は、辞書内の全てのマッピング関係であり得る。
例えば、辞書に記憶される各セット及びそのセットに対応するヒット率範囲が表2に示され得る。
いくつかの実施形態では、データ圧縮の場合に、各マッピング関係のヒット率は、マッピング関係における第1のデータのヒット率であり得る。例えば、第1のデータのヒット率は、予め設定した期間内の第1のデータに対する圧縮回数を総圧縮回数で除算した値であってもよい。データ解凍の場合に、各マッピング関係のヒット率は、マッピング関係における第2のデータのヒット率であり得る。例えば、第2のデータのヒット率は、予め設定した期間内の第2のデータに対する解凍回数を総解凍回数で除算した値であってもよい。
これらの実施形態では、設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、同じマッピング関係のヒット率が異なるメカニズムで取得される。従って、設計的解決策1をデータ圧縮シナリオ及びデータ解凍シナリオに適用する場合に、記憶装置に含まれるセットは同じでも異なっていてもよい。さらに、同じセットに対応するヒット率範囲は、同じでも異なっていてもよい。例えば、記憶装置に100個のマッピング関係が含まれていると想定される。設計的解決策1をデータ圧縮シナリオに適用すると、100個のマッピング関係のそれぞれがセットA1及びセットA2のいずれかに属し得る。設計的解決策1をデータ解凍シナリオに適用する場合に、100個のマッピング関係のそれぞれは、セットB1、セットB2、及びセットB3のいずれかに属し得る。
いくつかの他の実施形態では、データ圧縮及びデータ解凍について、各マッピング関係のヒット率は、マッピング関係における第1のデータのヒット率及びマッピング関係における第2のデータのヒット率に基づいて取得され得る。例えば、記憶装置のデータ書き込み時間とデータ読み取り時間との比が3:7である場合に、マッピング関係について、マッピング関係における第1のデータのヒット率は、データ書き込みプロセスで10%であり、マッピング関係における第2のデータのヒット率は、データ読み取りプロセスで50%であり、マッピング関係のヒット率は、0.3×10%+0.7×50%に従って取得することができる。確かに、本願のこの実施形態はそれに限定されない。
これらの実施形態では、設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、同じマッピング関係のヒット率は異なるメカニズムで取得される。従って、設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、記憶装置に含まれるセットは同じになり、同じセットに対応するヒット率範囲は同じになる。例えば、記憶装置に100個のマッピング関係が含まれていると想定される。設計的解決策1がデータ圧縮シナリオ及びデータ解凍シナリオに適用される場合に、100個のマッピング関係のそれぞれが、セットA1及びセットA2のいずれかに属し得る。
前述の設計的解決策1に基づいて、図9は、本願の一実施形態によるデータ圧縮方法の概略図である。図9に示される方法は、以下のステップを含み得る。
S501:記憶装置は、圧縮すべきデータのヒット率を取得する。圧縮すべきデータのヒット率を取得する方法については、前述の第1のデータのヒット率を取得する方法を参照されたい。確かに、本願のこの実施形態はそれに限定されない。
例えば、圧縮すべきデータは、前述のデルタ又は現在のデータであり得る。確かに、本願のこの実施形態はそれに限定されない。
S502:記憶装置は、圧縮すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定する。圧縮すべきデータのヒット率は、圧縮すべきデータが位置するマッピング関係(以下、ターゲットマッピング関係と呼ばれる)のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。
前述の説明から、設計的解決策1がデータ圧縮シナリオに適用される場合に、マッピング関係のヒット率は、マッピング関係における第1のデータのヒット率であり得、且つマッピング関係における第1のデータのヒット率及びマッピング関係における第2のデータのヒット率等に基づいて、取得され得ることが分かり得る。説明を容易にするために、データ圧縮方法の以下の実施形態では、マッピング関係のヒット率がマッピング関係における第1のデータのヒット率であり得る例を、説明のために使用する。
例えば、圧縮すべきデータのヒット率が75%である場合に、圧縮すべきデータが属するターゲットマッピング関係のヒット率は75%であり得る。この場合に、表2を参照すると、ターゲットセットがセット2であることが分かり得る。
S503:記憶装置は、ターゲットセット内の第1のデータで圧縮すべきデータを検索し、圧縮すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用する。
例えば、S502の例に基づいて、記憶装置は、従来技術におけるマッピング関係のヒット率範囲の降順での第1のデータでデルタを順次検索する代わりに、圧縮すべきデータを圧縮するために、セット2内の第1のデータで圧縮すべきデータを直接検索することができる。このようにして、圧縮時間を短縮することができる。
例えば、圧縮すべきデータが前述のデルタである場合に、圧縮すべきデータに対応する第2のデータは、デルタを圧縮して得た前述の値であり得る。例えば、圧縮すべきデータが前述の現在のデータである場合に、圧縮すべきデータに対応する第2のデータは、現在のデータを圧縮して得た前述の値であり得る。
この実施形態で提供されるデータ圧縮方法では、記憶装置に含まれるマッピング関係は、異なるセットに分類される。このようにして、圧縮すべきデータが位置するセットは、圧縮すべきデータのヒット率に基づいて直接決定され得る。従来技術と比較して、圧縮すべきデータの検索範囲が狭められる。従って、圧縮時間を短縮することができる。
前述の設計的解決策1に基づいて、図10は、本願の一実施形態によるデータ解凍方法の概略図である。図10に示される方法は、以下のステップを含み得る。
S601:記憶装置は、解凍すべきデータのヒット率を取得する。解凍すべきデータのヒット率を取得する方法については、前述の第2のデータのヒット率を取得する方法を参照されたい。確かに、本願のこの実施形態はそれに限定されない。
例えば、解凍すべきデータは、デルタを圧縮して得た前述の値、又は現在のデータを圧縮して得た値であり得る。確かに、本願のこの実施形態はそれに限定されない。
S602:記憶装置は、解凍すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定し、ここで、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。
前述の説明から、設計的解決策1がデータ解凍シナリオに適用される場合に、マッピング関係のヒット率は、マッピング関係における第2のデータのヒット率であり得、且つマッピング関係における第1のデータのヒット率及びマッピング関係における第2のデータのヒット率等に基づいて取得され得ることが分かり得る。説明を容易にするために、データ解凍方法の以下の実施形態では、マッピング関係のヒット率がマッピング関係における第2のデータのヒット率であり得る例を、説明のために使用する。
例えば、解凍すべきデータのヒット率が75%である場合に、解凍すべきデータが属するターゲットマッピング関係のヒット率は75%であり得る。この場合に、表2を参照すると、ターゲットセットがセット2であることが分かり得る。
S603:記憶装置は、ターゲットセット内の第2のデータで解凍すべきデータを検索して、解凍すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、解凍すべきデータに対応する第1のデータを決定し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用する。
例えば、解凍すべきデータがデルタを圧縮して得た前述の値である場合に、解凍すべきデータに対応する第1のデータは、前述のデルタであり得る。例えば、解凍すべきデータが現在のデータを圧縮して得た前述の値である場合に、解凍すべきデータに対応する第1のデータは、前述の現在のデータであり得る。
この実施形態で提供されるデータ解凍方法では、記憶装置に含まれるマッピング関係は、異なるセットに分類される。このようにして、解凍すべきデータが位置するセットは、解凍すべきデータのヒット率に基づいて直接決定され得る。従来技術と比較して、解凍すべきデータの検索範囲が狭められる。従って、データの解凍時間を短縮することができる。
図2から、記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み得ることが分かり得る。キャッシュに記憶されているデータはメモリに記憶されているいくつかのデータであり、メモリに記憶されているデータはハードディスクに記憶されているいくつかのデータである。現在、CPUがデータを読み取るプロセスは、具体的には次の通りである。CPUは、最初にキャッシュでアクセスすべきデータを検索し、アクセスすべきデータが見つかった場合に、アクセスすべきデータを直接読み取る、又は、アクセスするデータが見つからない場合に、メモリでアクセスすべきデータを検索する。また、アクセスすべきデータが見つかった場合に、アクセスすべきデータは直接読み取られる、又はアクセスすべきデータが見つからない場合に、ハードディスクでアクセスすべきデータを検索する。ストレージ技術が辞書圧縮技術である例では、キャッシュ、メモリ、及びハードディスクに記憶されたデータは、辞書内のマッピング関係であり得る。このようにして、記憶媒体(例えば、キャッシュ又はメモリ)が比較的大量のマッピング関係を含み、圧縮すべき/解凍すべきデータが属するマッピング関係が記憶媒体内にない場合に、圧縮/解凍を行うために比較的長い時間がかかる。
従って、本願の一実施形態は、設計的解決策2を提供する。記憶装置の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、及び第1のデータが占める記憶空間は、第2のデータが占める記憶空間よりも大きい。各記憶媒体におけるマッピング関係のヒット率が位置する範囲は、予め設定され得るか、又は記憶データに基づいて更新され得る。
例えば、各マッピング関係は、辞書圧縮アルゴリズムの辞書におけるマッピング関係であり得る。例えば、記憶装置の各記憶媒体及び記憶媒体に対応するヒット率範囲が表3に示され得る。
前述の設計的解決策2に基づいて、図11は、本願の一実施形態によるデータ圧縮方法の概略図である。図11に示される方法は、以下のステップを含み得る。
S701:記憶装置は、圧縮すべきデータのヒット率を取得する。
S702:記憶装置は、圧縮すべきデータのヒット率に基づいてターゲット記憶媒体を決定する。圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用される。ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。
例えば、圧縮すべきデータのヒット率が90%である場合に、圧縮すべきデータが属するターゲットマッピング関係のヒット率は90%であり得る。この場合に、表3を参照すると、ターゲット記憶媒体がキャッシュであることが分かり得る。同様に、圧縮すべきデータのヒット率が60%である場合に、ターゲット記憶媒体はメモリであり得、又は圧縮すべきデータのヒット率が30%である場合に、ターゲット記憶媒体はハードディスクであり得る。
S703:記憶装置は、ターゲット記憶媒体内の第1のデータで圧縮すべきデータを検索し、圧縮すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、圧縮すべきデータに対応する第2のデータを決定し、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用する。
例えば、ターゲット記憶媒体に含まれるマッピング関係が前述の設計的解決策1に示されている場合に、S703の特定の実施プロセスについては、前述のS501〜S503を参照されたい。確かに、S703は、従来技術の方法に従って代替的に実施され得る。
この実施形態では、圧縮すべきデータ及び圧縮すべきデータを圧縮して得た値の例については、図9に示される実施形態を参照されたい。
記憶装置が、ターゲット記憶媒体の第1のデータにおいて圧縮すべきデータを見つけられない場合であって、ターゲット記憶媒体の次のレベルの記憶媒体が記憶装置に存在しない場合に、圧縮すべきデータは、圧縮すべきデータを圧縮して得た値として使用される、又は、ターゲット記憶媒体の次のレベルの記憶媒体が記憶装置に存在する場合に、ターゲット記憶媒体の次のレベルの記憶媒体は、圧縮すべきデータが見つかるか、又は圧縮すべきデータが最後のレベルの記憶媒体の第1のデータで見つからなくなるまで、圧縮すべきデータを等検索する。キャッシュの次のレベルの記憶媒体はメモリであり、メモリの次のレベルの記憶媒体はハードディスクである。
この実施形態で提供されるデータ圧縮方法では、最高の読み取り/書き込み性能を有し、且つ圧縮すべきデータが位置する記憶媒体は、圧縮すべきデータのヒット率及び異なる記憶媒体に記憶されたマッピング関係のヒット率範囲に基づいて直接決定され得、キャッシュの読み取り/書き込み性能はメモリの読み取り/書き込み性能よりも高く、メモリの読み取り/書き込み性能はハードディスクの読み取り/書き込み性能よりも高い。従来技術と比較して、圧縮すべきデータの検索範囲が狭められる。従って、データ圧縮時間を短縮することができる。
前述の設計的解決策2に基づいて、図12は、本願の一実施形態によるデータ解凍方法の概略図である。図12に示される方法は、以下のステップを含み得る。
S801:記憶装置は、解凍すべきデータのヒット率を取得する。
S802:記憶装置は、解凍すべきデータのヒット率に基づいてターゲット記憶媒体を決定する。解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用される。ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係のヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係のヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。
例えば、解凍すべきデータのヒット率が90%である場合に、解凍すべきデータが属するターゲットマッピング関係のヒット率は90%であり得る。この場合に、表3を参照すると、ターゲット記憶媒体がキャッシュであることが分かり得る。同様に、解凍すべきデータのヒット率が60%である場合に、ターゲット記憶媒体はメモリであり得、又は解凍すべきデータのヒット率が30%である場合に、ターゲット記憶媒体は、ハードディスクであり得る。
S803:記憶装置は、ターゲット記憶媒体内の第2のデータで解凍すべきデータを検索し、解凍すべきデータが属するマッピング関係を検索し、マッピング関係に基づいて、解凍すべきデータに対応する第1のデータを決定し、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用する。
例えば、ターゲット記憶媒体に含まれるマッピング関係が前述の設計的解決策1に示されている場合に、S803の特定の実施プロセスについては、前述のS601〜S603を参照されたい。確かに、S803は、従来技術の方法に従って代替的に実施され得る。
この実施形態では、解凍すべきデータ及び解凍すべきデータを解凍して得た値の例については、図10に示される実施形態を参照されたい。
この実施形態で提供されるデータ解凍方法では、最高の読み取り/書き込み性能を有し、且つ解凍すべきデータが位置する記憶媒体は、解凍すべきデータのヒット率及び異なる記憶媒体に記憶されたマッピング関係のヒット率範囲に基づいて直接決定され得、キャッシュの読み取り/書き込み性能はメモリの読み取り/書き込み性能よりも高く、メモリの読み取り/書き込み性能はハードディスクの読み取り/書き込み性能よりも高い。従来技術と比較して、解凍すべきデータの検索範囲が狭められる。従って、データの解凍時間を短縮することができる。
図13は、本願の一実施形態によるデータ記憶方法の概略図である。図13に示される方法は、以下のステップを含み得る。
S900:記憶装置は、少なくとも2つの記憶すべきデータの中の現在のデータ(すなわち、現在の記憶すべきデータ)及び現在のデータの履歴データ(すなわち、記憶すべき履歴データ)を取得し、ここで、履歴データは、少なくとも2つの記憶すべきデータを含むシーケンス内の現在のデータ以前の1つ又は複数のデータである。
S901:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得する。現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。
S902:記憶装置は、現在のデータと現在のデータの予測データとの間のデルタを取得する。
S900〜S902の実施態様については、S100〜S102の実施態様の前述の説明を参照されたい。
S903:記憶装置は、デルタの絶対値が予め設定した閾値以下であるかどうかを判定する。例えば、デルタがaの場合に、デルタの絶対値は|a|として表すことができる。
デルタの絶対値が予め設定した閾値以下である場合に、S904が実行され、又はデルタの絶対値が予め設定した閾値以下でない場合に、S905が実行される。
S904:記憶装置は、予め設定したデータを記憶する。例えば、予め設定したデータが占める記憶空間は、現在のデータが占める記憶空間よりも小さい。
オプションで、予め設定したデータは、記憶装置によって予め規定される。オプションで、予め設定したデータは識別子であり得、識別子は、現在のデータの予測データを現在のデータとして使用し得る(又は略使用し得る)ことを示すために使用される。例えば、予め設定したデータは、「0」又は「1」等の2進数である。
オプションで、予め設定したデータが占める記憶空間は、殆ど又は全ての記憶すべきデータのそれぞれが占める記憶空間よりも小さい。
データ記憶手順を実行するときに、記憶装置は、予め設定したデータが占める記憶空間と現在のデータが占める記憶空間との間のサイズ関係を決定する必要がない場合があることに留意されたい。代わりに、予め設定したデータを予め規定するときに、記憶装置は、「予め設定したデータが占める記憶空間が、殆ど又は全ての記憶すべきデータのそれぞれが占める記憶空間よりも小さい」という原則に従って、予め設定したデータを比較的小さな記憶空間を占める識別子に設定することができる。このようにして、特定の現在のデータについて、「予め設定したデータが占める記憶空間が、現在のデータが占める記憶空間よりも小さい」ということが、複数の記憶すべきデータに対してデータ記憶手順を実行するという全体的な観点から満たされていなくても、「予め設定したデータが占める記憶空間は、殆ど又は全ての記憶すべきデータのそれぞれが占める記憶空間よりも小さい」という条件を依然として満たしている可能性がある。従って、従来技術と比較して、これは、記憶空間を節約するのに役立つ。
オプションで、記憶装置は、記憶オーバーヘッド等の要因に基づいて予め設定するデータを予め規定することができる。
デルタが差である例では、デルタの絶対値が0である場合に、この技術的解決策の圧縮プロセスは、具体的には可逆圧縮プロセスである。デルタの絶対値が0でない場合に、この技術的解決策の圧縮プロセスは、特に不可逆圧縮プロセスである。予め設定した閾値を適切に設定すると、データ損失率を特定の範囲内に制限するのに役立つ。換言すると、予め設定した閾値は、実際の要件(例えば、許容可能な非可逆圧縮率内の要件)に基づいて設定できる。
S904を実行した後に、現在のデータの記憶プロセスは終了する。
S905:記憶装置は、現在のデータを記憶するか、又は現在のデータを圧縮して得た値を記憶する。
S905の実施態様については、S105の実施態様の前述の説明を参照されたい。
S905を実行した後に、現在のデータの記憶プロセスは終了する。
現在のデータを復元するために使用される記憶情報が「予め設定したデータ」であるか「圧縮によって得た値又は現在のデータ」であるかを記憶装置が区別し、データ読み取り手順における読み取るべきデータを決定するのを助けるため、オプションで、S905が実行される場合に、この方法は、以下のS905Aをさらに含み得る。
S905A:デルタの絶対値が予め設定した閾値より大きい場合に識別子情報を記憶し、ここで、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用される、又は現在のデータが記憶されている場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。識別子情報は、現在のデータを復元するために使用される情報の識別子情報、又は現在のデータを復元するために使用される情報に含まれる情報として使用され得る。
S905Aの交換可能な方法及び有利な効果の説明については、S105Aの交換可能な方法及び有利な効果の前述の説明を参照されたい。詳細については、ここでは再び説明しない。
本願のこの実施形態で提供されるデータ記憶方法では、履歴データを用いて現在のデータが予測され、予め設定したデータは、現在のデータと現在のデータの予測データとの間のデルタの絶対値が予め設定した閾値以下である場合に、記憶される。従来技術で現在のデータを直接記憶する技術的解決策と比較して、予め設定したデータが占める記憶空間が、現在のデータが占める記憶空間よりも小さいため、記憶オーバーヘッドを削減できる。この技術的解決策は、特定のデータ損失が許容されるシナリオ、例えば、ビデオ再生等のシナリオに適用することができる。
例えば、記憶すべきデータを含むシーケンスXn={2、5、10、17、26、37、50、65、82、101、122、145、171}について、具体的には、デルタが、記憶すべきデータと記憶すべきデータの予測データとの間の差であり、予め設定した閾値が2である場合に、予測アルゴリズムx2+1及び図13に示される実施形態に基づいて記憶装置によって実際に記憶されるデータを含むシーケンスは、{10、101、1010、α、α、α、α、α、α、α、α、α、α}であり得る。αは予め設定したデータである。Xn’の最初の3つのデータでは、予測ステップがデフォルトである。S905Aを参照すると、3つのデータについて、記憶装置は、第1の識別子情報をさらに別々に記憶し得ることが分かり得る。記憶のために圧縮する必要のあるデータの範囲が大幅に削減され、その範囲内のデータの繰り返し確率が明らかに増大することが分かり得る。従って、データ圧縮率及び圧縮効率を大幅に向上させることができる。
図14は、本願の一実施形態によるデータ取得方法の概略図である。図14に示される方法は、以下のステップを含み得る。
S1001:記憶装置は、現在のデータを復元するために使用される情報を読み取る。現在のデータを復元するために使用される情報には、「予め設定したデータ」又は「現在のデータ又は現在のデータを圧縮して得た値」が含まれる。
現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータであり、履歴データは、1つ又は複数の取得データである。
S1002:記憶装置は、現在のデータを復元するために使用される情報に識別子情報が含まれるかどうかを判定する。
図13に示される実施形態の説明に基づいて、S1002での判定結果が、現在のデータを復元するために使用される情報に識別子情報が含まれていないことを示す場合に、それは、現在のデータを復元するために使用される情報には予め設定したデータが含まれていることを示し、S1003が実行されることが分かり得る。S1002での判定結果が、現在のデータを復元するために使用される情報に識別子情報が含まれることを示す場合に、それは、現在のデータを復元するために使用される情報には、現在のデータ又は現在のデータを圧縮して得た値が含まれることを示す。現在のデータを復元するために使用される情報が現在のデータを圧縮して得た値である場合に、S1004が実行され、又は現在のデータを復元するために使用される情報が現在のデータである場合に、現在のデータの取得プロセスは終了する。
S1003:記憶装置は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得し、現在のデータの予測データを現在のデータとして使用し、ここで、履歴データは、1つ又は複数の取得データである。
S1003を実行した後に、現在のデータの取得プロセスは終了する。
S1004:記憶装置は、現在のデータを圧縮して得た値を解凍して、現在のデータを取得する。
S1004を実行した後に、現在のデータの取得プロセスは終了する。
この実施形態で提供されるデータ取得方法は、図13に示されるデータ記憶方法に対応する。従って、この実施形態における有利な効果については、図13に示される実施形態で説明した有利な効果を参照されたい。詳細については、ここで再び説明しない。
同じデータについて、データ記憶手順を実行するプロセス及びデータ取得手順を実行するプロセスで予測を行う必要がある場合に、同じ予測アルゴリズム(具体的には、予測アルゴリズムのパラメータの値が同じである)が予測中に使用されることに留意されたい。予測アルゴリズムがAIニューラルアルゴリズムである場合に、AIニューラルアルゴリズムのパラメータの値を更新することができるため、データ取得手順においてデータを成功裏に取得するために、データ記憶手順において、本願のこの実施形態は以下のオプションの実施態様を提供する。
オプションの実施態様1:記憶装置は、AIニューラルアルゴリズムのパラメータの値と、データを復元するために使用される情報との間の対応関係をさらに記憶することができる。例えば、記憶装置は、AIニューラルアルゴリズムのパラメータが更新された後に、毎回スナップショット動作を実行して、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記録することができる。確かに、本願のこの実施形態はそれに限定されない。
例えば、初期モーメントがモーメントt1であり、モーメントt1におけるAIニューラルアルゴリズムのパラメータが第1のパラメータであり、モーメントt2におけるAIニューラルアルゴリズムのパラメータが、第1のパラメータから第2のパラメータに更新されると想定する。また、現在のデータを復元するために使用され、且つモーメントt1からモーメントt2までの期間とモーメントt2の後の期間とに記憶される情報は、それぞれ情報1〜100及び情報101〜500である。この場合に、記憶装置は、情報1〜100と第1のパラメータとの間の対応関係を記憶し、情報101〜500と第2のパラメータとの間の対応関係を記憶することができる。
オプションの実施態様2:AIニューラルアルゴリズムのパラメータは、現在のデータを復元するために使用される情報が記憶された後に、アダプティブラーニングによって更新され、現在のデータを復元するために使用される情報は、AIニューラルアルゴリズムの更新パラメータに基づいて更新される。
例えば、予測(例えば、S101又はS901における予測)を行うために使用されるAIニューラルアルゴリズムの前述のパラメータが、AIニューラルアルゴリズムの第1のパラメータとしてマークされ、AIニューラルアルゴリズムの第1のパラメータを更新した後に取得されるパラメータは、AIニューラルアルゴリズムの第2のパラメータとしてマークされる場合に、現在のデータを復元するために使用される情報が、AIニューラルアルゴリズムの更新パラメータに基づいて更新されることは、現在のデータを復元するために使用される情報を読み取ること;AIニューラルアルゴリズムの第1のパラメータ(つまり、更新前のAIニューラルアルゴリズムのパラメータ)、現在のデータを復元するために使用される読み取り情報、及び現在のデータの履歴データに基づいて、現在のデータを復元すること;AIニューラルアルゴリズムの第2のパラメータ(つまり、AIニューラルアルゴリズムの更新パラメータ)と現在のデータの履歴データとに基づいて、現在のデータを予測して、第2の予測データを取得することであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの第2のパラメータに基づいて、履歴データの変更規則に従って予測される後に取得されるデータである、取得すること;現在のデータと第2の予測データとの間の第2のデルタを取得すること;及び、第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを更新するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値(又は、現在のデータ、現在のデータを圧縮して得た値、予め設定したデータ等、ここで、特定の記憶情報については、図5又は図13に示される前述の方法を参照されたい)に更新すること;を含む。換言すると、データ取得手順が、AIニューラルアルゴリズムの更新前に存在するパラメータを用いて1回実行され、現在のデータを取得した後に、データ記憶手順は、AIニューラルアルゴリズムの更新パラメータを用いて1回実行される。このようにして、AIニューラルアルゴリズムであり、且つ現在のデータに対してデータ記憶手順が実行されるときに使用されるパラメータは、最新のパラメータである。
オプションの実施態様2に基づいて、記憶装置は、AIニューラルアルゴリズムの第2のパラメータをさらに記憶することができる。あるいはまた、記憶装置は、AIニューラルアルゴリズムの記憶した第1のパラメータを第2のパラメータに更新する。換言すると、記憶装置は、AIニューラルアルゴリズムの最新のパラメータを記憶する。
2つのオプションの実施態様は、図5又は図13に示される前述のデータ記憶手順に適用され得る。2つのオプションの実施態様を比較すると、オプションの実施態様1は、記憶装置が比較的大量のデータを記憶しているシナリオに適用でき、オプションの実施態様2は、記憶装置が比較的少量のデータを記憶しているシナリオに適用できる。さらに、AIニューラルアルゴリズムのパラメータが更新されるので、現在のデータの予測データが現在のデータに近くなる。従って、データ圧縮効率は、オプションの実施態様2でさらに改善することができる。特定の実施態様プロセスでは、前述のオプションの実施態様1及び2を組み合わせて使用して、新しい技術的解決策を形成することができる。例えば、いくつかの記憶データについて、記憶装置は、前述のオプションの実施態様1を実行することができ、他の記憶データについて、記憶装置は、前述の実施態様2を実行することができる。
前述のオプションの実施態様1に基づいて、データ取得手順において、記憶装置は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得することができる。この場合に、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得することは、AIニューラルアルゴリズムの取得したパラメータに基づく履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得することを含むことができる。
前述のオプションの実施態様1の説明に基づいて、対応関係内の「AIニューラルアルゴリズムのパラメータ」は、「現在のデータを復元するために使用される情報」を対応関係に記憶するプロセスで使用されるAIニューラルアルゴリズムのパラメータであることが分かり得る。取得した「現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータ」は、対応関係における「AIニューラルアルゴリズムのパラメータ」である。例えば、前述のオプションの実施態様1の例に基づいて、現在のデータを復元するために使用される情報が情報99である場合に、対応関係内の「AIニューラルアルゴリズムのパラメータ」が第1のパラメータである、又は現在のデータを復元するために使用される情報が情報200である場合に、対応関係内の「AIニューラルアルゴリズムのパラメータ」は第2のパラメータである。
さらに、前述のオプションの実施態様1が、図5に示されるデータ記憶手順に適用される場合に、データ取得手順において、記憶装置は、図7に示される前述の実施形態に従って、現在のデータを取得することができる。前述のオプションの実施態様1が図13に示されるデータ記憶手順に適用される場合に、データ取得手順において、記憶装置は、図14に示される前述の実施形態に従って、現在のデータを取得することができる。
前述のオプションの実施態様2に基づいて、データ取得手順において、記憶装置は、AIニューラルアルゴリズムの記憶した最新のパラメータに基づいて、図7又は図14に示される実施形態を実行することができる。
前述のものは、主に、方法の観点から、本願の実施形態で提供される解決策を説明する。前述の機能を実現するために、機能を実行するための対応するハードウェア構造及び/又はソフトウェアモジュールが含まれる。当業者は、本明細書に開示された実施形態で説明した例と組み合わせて、ユニット及びアルゴリズムステップが、本願におけるハードウェア又はハードウェアとコンピュータソフトウェアとの組合せによって実現され得ることを容易に認識すべきである。機能がハードウェア又はハードウェアを動かすコンピュータソフトウェアによって実行されるかは、特定の用途及び技術的解決策の設計上の制約によって異なる。当業者は、特定の用途毎に説明している機能を実現するために様々な方法を使用できるが、その実施態様が本願の範囲を超えているとみなすべきではない。
本願の実施形態では、機能モジュール分割は、前述の方法例に基づいて、記憶装置上で行われ得る。例えば、各機能モジュールは、各機能による分割によって取得してもよく、又は2つ以上の機能を1つの処理モジュールに統合してもよい。統合モジュールは、ハードウェアの形式で実装してもよく、又はソフトウェア機能モジュールの形式で実装してもよい。本願の実施形態におけるモジュール分割は一例であり、単なる論理的機能分割であることに留意されたい。実際の実施態様では、別の分割方法であってもよい。
図15は、本願の実施形態による記憶装置150の概略構造図である。図15に示される記憶装置150は、図5又は図6−1〜図6−4に示されるデータ記憶方法を実行するように構成され得る。記憶装置150は、第1の取得ユニット1500、予測ユニット1501、第2の取得ユニット1502、及び記憶ユニット1503を含み得る。第1の取得ユニット1500は、現在のデータ及び現在のデータの履歴データを取得するように構成される。予測ユニット1501は、履歴データを用いて現在のデータを予測して、現在のデータの第1の予測データを取得するように構成される。第2の取得ユニット1502は、現在のデータと第1の予測データとの間の第1のデルタを取得するように構成される。記憶ユニット1503は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、第1のデルタ又は第1のデルタを圧縮して得た値を記憶するように構成される。例えば、図5を参照すると、第1の取得ユニット1500は、S100を実行するように構成され得、予測ユニット1501は、S101を実行するように構成され得、第2の取得ユニット1502は、S102を実行するように構成され得、及び記憶ユニット1503は、S104を実行するように構成され得る。
オプションで、第1の取得ユニット1500は、記憶装置150のメモリから現在のデータ及び履歴データを取得するように特に構成される。
オプションで、記憶ユニット1503は、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記憶するようにさらに構成される。
オプションで、記憶装置150は、アダプティブラーニングによってAIニューラルアルゴリズムのパラメータを更新し、AIニューラルアルゴリズムの更新パラメータに基づいて、現在のデータを復元するために使用される情報を更新するように構成される更新ユニット1504をさらに含む。
オプションで、更新ユニット1504は、現在のデータを復元するために使用される情報を読み取ること;予測を行うために使用されるAIニューラルアルゴリズムのパラメータ、現在のデータを復元するために使用される情報、及び現在のデータの履歴データに基づいて、現在のデータを復元すること;AIニューラルアルゴリズムの更新パラメータと現在のデータの履歴データとに基づいて現在のデータを予測して、第2の予測データを取得することであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの更新パラメータに基づいて、履歴データの変更規則に従って予測された後に取得されるデータである、取得すること;現在のデータと第2の予測データとの間の第2のデルタを取得すること;及び、第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値に更新すること;を行うように特に構成される。
オプションで、記憶装置150は、AIコンピューティングカードを含み、予測ユニット1501は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、第1の予測データを取得するように特に構成される。
オプションで、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書は少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応し、記憶装置150は、第1のデルタのヒット率を取得するように構成される第3の取得ユニット1505と;第1のデルタのヒット率に基づいて少なくとも2つのセットの中でターゲットセットを決定するように構成される決定ユニット1506であって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定ユニット1506と;ターゲットセット内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するように構成される圧縮ユニット1507であって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、圧縮ユニット1507と;をさらに含む。
オプションで、記憶装置150の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、圧縮を行うために使用されるアルゴリズムは辞書圧縮アルゴリズムを含み、辞書圧縮アルゴリズムの辞書は1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率は、メモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率は、ハードディスクにおけるマッピング関係のヒット率以上であり、記憶装置150は、第1のデルタのヒット率を取得するように構成される第3の取得ユニット1505と;第1のデルタのヒット率に基づいてターゲット記憶媒体を決定するように構成される決定ユニット1506であって、第1のデルタのヒット率は、第1のデルタが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲属さない場合に、ハードディスクである、決定ユニット1506と;ターゲット記憶媒体内の第1のデータで第1のデルタを検索して、第1のデルタに対応する第2のデータを決定するように構成される圧縮ユニット1507であって、第1のデルタに対応する第2のデータは、第1のデルタを圧縮して得た値である、圧縮ユニット1507と;をさらに含む。
オプションで、記憶ユニット1503は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するようにさらに構成される。例えば、図5を参照すると、記憶ユニット1503は、S105を実行するように構成され得る。
オプションで、記憶ユニット1503は、第1のデルタが占める記憶空間が現在のデータが占める記憶空間以上である場合に識別子情報を記憶するようにさらに構成され、ここで、現在のデータを圧縮して得た値が記憶されている場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用される、又は現在のデータが記憶されている場合に、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。例えば、図5を参照すると、記憶ユニット1503は、S105Aを実行するように構成され得る。
例えば、図2を参照すると、第1の取得ユニット1500、予測ユニット1501、第2の取得ユニット1502、更新ユニット1504、第3の取得ユニット1505、決定ユニット1506、及び圧縮ユニット1507は全て、プロセッサ202を用いて実装され得、記憶ユニット1503は、ハードディスク204を用いて実装され得る。別の例では、図3を参照すると、予測ユニット1501は、AIコンピューティングカード207を用いて実装され得、第1の取得ユニット1500、第2の取得ユニット1502、更新ユニット1504、第3の取得ユニット1505、決定ユニット1506、及び圧縮ユニット1507は全て、プロセッサ202を用いて実装され得、記憶ユニット1503は、ハードディスク204を用いて実装され得る。
図16は、本願の一実施形態による記憶装置160の概略構造図である。図16に示される記憶装置160は、図7又は図8A〜図8Cに示されるデータ取得方法を実行するように構成され得る。記憶装置160は、読み取りユニット1601、予測ユニット1602、及び決定ユニット1603を含み得る。読み取りユニット1601は、現在のデータを復元するために使用される情報を読み取るように構成され、ここで、現在のデータを復元するために使用される情報は、デルタ又はデルタを圧縮して得た値であり、デルタは、現在のデータと現在のデータの予測データとの間のデルタであり、現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。予測ユニット1602は、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように構成される。決定ユニット1603は、現在のデータの予測データと現在のデータを復元するために使用される情報とに基づいて、現在のデータを決定するように構成される。例えば、図7を参照すると、読み取りユニット1601は、S302を実行するように構成され得、予測ユニット1602は、S304を実行するように構成され得、及び決定ユニット1603は、S305を実行するように構成され得る。
オプションで、記憶装置160は、記憶装置160のメモリから履歴データを取得するように構成される取得ユニット1604をさらに含む。
オプションで、記憶装置160は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得するように構成される取得ユニット1604をさらに含む。予測ユニット1602は、AIニューラルアルゴリズムの取得パラメータに基づいて、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
オプションで、記憶装置160はAIコンピューティングカードを含み、予測ユニット1602は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
オプションで、現在のデータを復元するために使用される情報には、デルタを圧縮して得た値が含まれる。この場合に、決定ユニット1603は、デルタを圧縮して得た値を解凍して、デルタを取得するように構成される解凍モジュール1603−1と;デルタと現在のデータの予測データとに基づいて現在のデータを決定するように構成される決定モジュール1603−2と;を含む。例えば、図7を参照すると、解凍モジュール1603−1は、S303を実行するように構成され得、決定モジュール1603−2は、S305を実行するように構成され得る。
オプションで、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書は少なくとも2つのセットを含み、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。この場合に、解凍モジュール1603−1は、デルタを圧縮して得た値のヒット率を取得すること;デルタを圧縮して得た値のヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定することであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する、決定すること;及び、ターゲットセット内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定することであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定すること;を行うように特に構成される。
オプションで、記憶装置160の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、解凍を行うために使用されるアルゴリズムは辞書解凍アルゴリズムを含み、辞書解凍アルゴリズムの辞書は1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上である。この場合に、解凍モジュール1603−1は、デルタを圧縮して得た値のヒット率を取得すること;デルタを圧縮して得た値のヒット率に基づいてターゲット記憶媒体を決定することであって、デルタを圧縮して得た値のヒット率は、デルタを圧縮して得た値が属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、メモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである、決定すること;及び、ターゲット記憶媒体内の第2のデータでデルタを圧縮して得た値を検索して、デルタを圧縮して得た値に対応する第1のデータを決定することであって、デルタを圧縮して得た値に対応する第1のデータはデルタである、決定すること;を行うように特に構成される。
例えば、図2を参照すると、読み取りユニット1601、予測ユニット1602、及び決定ユニット1603は全て、プロセッサ202を用いて実装され得る。別の例では、図3を参照すると、予測ユニット1602は、AIコンピューティングカード207を用いて実装され得、読み取りユニット1601と決定ユニット1603との両方は、プロセッサ202を用いて実装され得る。
図17は、本願の一実施形態による記憶装置170の概略構造図である。図17に示される記憶装置170は、図9又は図11に示されるデータ圧縮方法を実行するように構成され得る。記憶装置170は、取得ユニット1701、決定ユニット1702、及び圧縮ユニット1703を含み得る。
可能な設計では、記憶装置170は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。取得ユニット1701は、圧縮すべきデータのヒット率を取得するように構成される。決定ユニット1702は、圧縮すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するように構成され、ここで、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。圧縮ユニット1703は、ターゲットセット内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定すること;及び、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用すること;を行うように構成される。例えば、図9を参照すると、取得ユニット1701は、S501及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1702は、S502及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び圧縮ユニット1703は、S503及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
別の可能な設計では、記憶装置170の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、及び第1のデータが占める記憶空間は、第2のデータが占める記憶空間よりも大きい。取得ユニット1701は、圧縮すべきデータのヒット率を取得するように構成される。決定ユニット1702は、圧縮すべきデータのヒット率に基づいてターゲット記憶媒体を決定するように構成され、ここで、圧縮すべきデータのヒット率は、圧縮すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。圧縮ユニット1703は、ターゲット記憶媒体内の第1のデータで圧縮すべきデータを検索して、圧縮すべきデータに対応する第2のデータを決定すること;及び、圧縮すべきデータに対応する第2のデータを、圧縮すべきデータを圧縮して得た値として使用すること;を行うように構成される。例えば、図11を参照すると、取得ユニット1701は、S701及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1702は、S702及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び圧縮ユニット1703は、S703及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
例えば、図2又は図3を参照すると、取得ユニット1701、決定ユニット1702、及び圧縮ユニット1703は全て、プロセッサ202を用いて実装され得る。
図18は、本願の一実施形態による記憶装置180の概略構造図である。図18に示される記憶装置180は、図10又は図12に示されるデータ解凍方法を実行するように構成され得る。記憶装置180は、取得ユニット1801、決定ユニット1802、及び解凍ユニット1803を含み得る。
可能な設計では、記憶装置180は少なくとも2つのセットを記憶し、各セットは1つ又は複数のマッピング関係を含み、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、第1のデータが占める記憶空間は第2のデータが占める記憶空間よりも大きく、各セットはヒット率範囲に対応し、異なるセットは異なるヒット率範囲に対応する。取得ユニット1801は、解凍すべきデータのヒット率を取得するように構成される。決定ユニット1802は、解凍すべきデータのヒット率に基づいて、少なくとも2つのセットの中でターゲットセットを決定するように構成され、ここで、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、及びターゲットマッピング関係の決定したヒット率は、ターゲットセットに対応するヒット率範囲に属する。解凍ユニット1803は、ターゲットセット内の第2のデータで解凍すべきデータを検索して、解凍すべきデータに対応する第1のデータを決定すること;及び、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用すること;を行うように構成される。例えば、図10を参照すると、取得ユニット1801は、S601及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1802は、S602及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び解凍ユニット1803は、S603及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
別の可能な設計では、記憶装置180の記憶媒体は、キャッシュ、メモリ、及びハードディスクを含み、キャッシュにおけるマッピング関係のヒット率はメモリにおけるマッピング関係のヒット率以上であり、メモリにおけるマッピング関係のヒット率はハードディスクにおけるマッピング関係のヒット率以上であり、各マッピング関係は、1つの第1のデータと1つの第2のデータとの間のマッピング関係であり、及び第1のデータが占める記憶空間は、第2のデータが占める記憶空間よりも大きい。取得ユニット1801は、解凍すべきデータのヒット率を取得するように構成される。決定ユニット1802は、解凍すべきデータのヒット率に基づいてターゲット記憶媒体を決定するように構成され、ここで、解凍すべきデータのヒット率は、解凍すべきデータが属するターゲットマッピング関係のヒット率を決定するために使用され、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がキャッシュにおけるマッピング関係のヒット率範囲に属する場合に、キャッシュであり、ターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率が、キャッシュにおけるマッピング関係のヒット率範囲に属さないが、メモリにおけるマッピング関係のヒット率範囲に属する場合に、メモリであり、又はターゲット記憶媒体は、ターゲットマッピング関係の決定したヒット率がメモリにおけるマッピング関係のヒット率範囲に属さない場合に、ハードディスクである。解凍ユニット1803は、ターゲット記憶媒体内の第2のデータで解凍すべきデータに対応する第1のデータを検索すること;及び、解凍すべきデータに対応する第1のデータを、解凍すべきデータを解凍して得た値として使用すること;を行うように構成される。例えば、図12を参照すると、取得ユニット1801は、S801及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、決定ユニット1802は、S802及び/又は本願の実施形態で提供される別のステップを実行するように構成され得、及び解凍ユニット1803は、S803及び/又は本願の実施形態で提供される別のステップを実行するように構成され得る。
例えば、図2又は図3を参照すると、取得ユニット1801、決定ユニット1802、及び解凍ユニット1803は全て、プロセッサ202を用いて実装され得る。
図19は、本願の一実施形態による記憶装置190の概略構造図である。図19に示される記憶装置190は、図13に示されるデータ記憶方法を実行するように構成され得る。記憶装置190は、予測ユニット1901、取得ユニット1902、及び記憶ユニット1903を含み得る。取得ユニット1902は、現在のデータ及び現在のデータの履歴データを取得するように構成される。予測ユニット1901は、履歴データを用いて現在のデータを予測して、現在のデータの第1の予測データを取得するように構成される。取得ユニット1902は、現在のデータと現在のデータの第1の予測データとの間の第1のデルタを取得するようにさらに構成される。記憶ユニット1903は、第1のデルタの絶対値が予め設定した閾値以下である場合に、予め設定したデータを記憶するように構成される。オプションで、予め設定したデータが占める記憶空間は、現在のデータが占める記憶空間よりも小さい。例えば、図13を参照すると、予測ユニット1901は、S901を実行するように構成され得、取得ユニット1902は、S900及びS902を実行するように構成され得、及び記憶ユニット1903は、S904を実行するように構成され得る。
オプションで、記憶ユニット1903は、現在のデータを復元するために使用される情報と、予測を行うために使用されるAIニューラルアルゴリズムのパラメータとの間の対応関係を記憶するようにさらに構成される。
オプションで、記憶装置190は、アダプティブラーニングによってAIニューラルアルゴリズムのパラメータを更新し、AIニューラルアルゴリズムの更新パラメータに基づいて、現在のデータを復元するために使用される情報を更新するように構成される更新ユニット1904をさらに含む。
オプションで、更新ユニット1904は、現在のデータを復元するために使用される情報を読み取ること;予測を行うために使用されるAIニューラルアルゴリズムのパラメータ、現在のデータを復元するために使用される情報、及び現在のデータの履歴データに基づいて、現在のデータを復元すること;AIニューラルアルゴリズムの更新パラメータと現在のデータの履歴データとに基づいて現在のデータを予測して、第2の予測データを取得することであって、第2の予測データは、現在のデータが、AIニューラルアルゴリズムの更新パラメータに基づいて、履歴データの変更規則に従って予測された後に取得されるデータである、取得すること;現在のデータと第2の予測データとの間の第2のデルタを取得すること;及び、第2のデルタが占める記憶空間が現在のデータが占める記憶空間よりも小さい場合に、現在のデータを復元するために使用される記憶情報を、第2のデルタ又は第2のデルタを圧縮して得た値に更新すること;を行うように特に構成される。
オプションで、記憶装置190はAIコンピューティングカードを含み、予測ユニット1901は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、第1の予測データを取得するように特に構成される。
オプションで、記憶ユニット1903は、第1のデルタの絶対値が予め設定した閾値よりも大きい場合に、現在のデータ又は現在のデータを圧縮して得た値を記憶するようにさらに構成される。例えば、図13を参照すると、記憶ユニット1903は、S905を実行するように構成され得る。
オプションで、記憶ユニット1903は、第1のデルタの絶対値が予め設定した閾値よりも大きい場合に、識別子情報を記憶するようにさらに構成され、ここで、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータを圧縮して得た値であることを示すために使用され、又は現在のデータが記憶されるときに、識別子情報は、現在のデータを復元するために使用される記憶情報が現在のデータであることを示すために使用される。例えば、図13を参照すると、記憶ユニット1903は、S905Aを実行するように構成され得る。
例えば、図2を参照すると、予測ユニット1901と取得ユニット1902との両方は、プロセッサ202を用いて実装され得、記憶ユニット1903は、ハードディスク204を用いて実装され得る。別の例では、図3を参照すると、予測ユニット1901は、AIコンピューティングカード207を用いて実装され得、取得ユニット1902は、プロセッサ202を用いて実装され得、及び記憶ユニット1903は、ハードディスク204を用いて実装され得る。
図20は、本願の一実施形態による記憶装置210の概略構造図である。図20に示される記憶装置210は、図14に示されるデータ取得方法を実行するように構成され得る。記憶装置210は、読み取りユニット2101、予測ユニット2102、及び決定ユニット2103を含み得る。読み取りユニット2101は、現在のデータを復元するために使用される情報を読み取るように構成され、ここで、現在のデータの予測データは、現在のデータが履歴データの変更規則に従って予測された後に取得されるデータである。予測ユニット2102は、現在のデータを復元するために使用される情報が予め設定したデータを含む場合に、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように構成される。決定ユニット2103は、現在のデータの予測データを現在のデータとして使用するように構成される。例えば、図14を参照すると、読み取りユニット2101は、S1001を実行するように構成され得、予測ユニット2102は、S1003において予測ステップを実行するように構成され得、及び決定ユニット2103は、S1003において現在のデータを決定するステップを実行するように構成され得る。
オプションで、記憶装置210は、現在のデータを復元するために使用される情報とAIニューラルアルゴリズムのパラメータとの間の対応関係に基づいて、現在のデータを予測するために使用されるAIニューラルアルゴリズムのパラメータを取得するように構成される取得ユニット2104をさらに含む。予測ユニット2102は、AIニューラルアルゴリズムの取得パラメータに基づいて、履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
オプションで、記憶装置210はAIコンピューティングカードを含み、予測ユニット2102は、AIコンピューティングカード及び履歴データを用いて現在のデータを予測して、現在のデータの予測データを取得するように特に構成される。
例えば、図2を参照すると、読み取りユニット2101、予測ユニット2102、及び決定ユニット2103は全て、プロセッサ202を用いて実装され得る。別の例では、図3を参照すると、読み取りユニット2101と決定ユニット2103との両方は、プロセッサ202を用いて実装され得、予測ユニット2102は、AIコンピューティングカード207を用いて実装され得る。
図15〜図20に提供される任意の記憶装置の実施態様及び有利な効果の説明については、前述の対応する方法の実施形態を参照されたい。詳細については、ここでは再び説明しない。
前述の実施形態の全部又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せを用いて実施することができる。ソフトウェアプログラムを用いて実施形態を実施する場合に、実施形態は、コンピュータプログラム製品の形態で完全に又は部分的に実現され得る。コンピュータプログラム製品は、1つ又は複数のコンピュータ命令を含む。コンピュータ実行可能命令がコンピュータにロードされて実行されるときに、本発明の実施形態における手順又は機能の全部又は一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は別のプログラム可能な機器であり得る。コンピュータ命令は、コンピュータ可読記憶媒体に記憶され得るか、又はあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信され得る。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、又はデータセンタから別のウェブサイト、コンピュータ、サーバ、又はデータセンタに有線で(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線(digital subscriber line, DSL))又は無線で(例えば、赤外線、無線、又はマイクロ波)方式で送信され得る。コンピュータ可読記憶媒体は、コンピュータがアクセスできる任意の使用可能な媒体であり得るか、或いは1つ又は複数の使用可能な媒体を統合するサーバ又はデータセンタ等のデータ記憶装置であり得る。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、又は磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、ソリッドステートディスク(solid state disk, SSD))等であり得る。
本願は実施形態を参照して説明しているが、保護を主張する本願を実施する過程において、当業者は、添付の図面、開示された内容、及び添付の特許請求の範囲を参照して、開示された実施形態の別のバリエーションを理解し実現し得る。特許請求の範囲において、「備える、有する、含む(comprising)」は、別の構成要素又は別のステップを除外せず、「1つの(a,
one)」は、「複数」の場合を除外しない。単一のプロセッサ又は別のユニットは、特許請求の範囲に列挙されたいくつかの機能を実現することができる。いくつかの手段が、互いに異なる従属請求に記録されているが、これは、これらの手段を組み合わせてより良い効果を生み出すことができないことを意味するものではない。
本願は、特定の特徴及びその実施形態を参照して説明しているが、明らかに、本願の精神及び範囲から逸脱することなく、本願に対して様々な修正及び組合せを行うことができる。同様に、明細書及び添付の図面は、添付の特許請求の範囲によって規定される本願の単なる例示的な説明であり、且つ本願の範囲をカバーする修正、変形、組合せ、又は同等物のいずれか又は全てと見なされる。明らかに、当業者は、本願の精神及び範囲から逸脱することなく、本願に様々な修正及び変更を加えることができる。このようにして、本願は、以下の特許請求の範囲及びそれらの同等の技術によって規定される保護の範囲内にあるという条件で、本願のこれらの変更及びバリエーションをカバーすることを意図している。