IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フォッシド アーベーの特許一覧

特許7540830データセットのためのデータ記憶方法およびシステム
<>
  • 特許-データセットのためのデータ記憶方法およびシステム 図1
  • 特許-データセットのためのデータ記憶方法およびシステム 図2
  • 特許-データセットのためのデータ記憶方法およびシステム 図3
  • 特許-データセットのためのデータ記憶方法およびシステム 図4
  • 特許-データセットのためのデータ記憶方法およびシステム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】データセットのためのデータ記憶方法およびシステム
(51)【国際特許分類】
   G06F 16/22 20190101AFI20240820BHJP
   G06F 16/17 20190101ALI20240820BHJP
【FI】
G06F16/22
G06F16/17 100
【請求項の数】 6
【外国語出願】
(21)【出願番号】P 2020003494
(22)【出願日】2020-01-14
(65)【公開番号】P2020115345
(43)【公開日】2020-07-30
【審査請求日】2023-01-12
(31)【優先権主張番号】16/250,859
(32)【優先日】2019-01-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519338223
【氏名又は名称】スニーク スウェーデン アーベー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ユリアン コッチャ
(72)【発明者】
【氏名】ダニエル オーケルード
【審査官】早川 学
(56)【参考文献】
【文献】米国特許出願公開第2012/0221606(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
データインデックスおよびデータレコードを含むデータセットにおけるデータを捕捉し、前記データセットを個々のフラットファイルに分割し、記憶することによって、記憶のための中間データフォーマットでデータを記憶することと、
前記記憶されたデータをソートして、重複したレコードを除去し、前記記憶されたデータを前記中間データフォーマットから、インデックスファイル及びデータファイルを含む少なくとも2つのデータボリュームのプロダクションフォーマットに変換することであって、前記変換することは、前記データファイル内のデータレコードへの固定長ポインタと共に所与のデータインデックスをバイナリ形式で記憶することを含む、ことと、
前記少なくとも2つのデータボリュームを1つのデータボリュームにマージすることと、
前記インデックスファイル上で探索を実行し、所与のポインタからデータレコード位置を取得し、次の順次データレコードのためのポインタの値から前記所与のポインタの値を差し引くことか、あるいは前記所与のポインタが最後のポインタである場合、前記データファイルの長さから前記所与のポインタの値を差し引くことによって、データレコード長を取得することによって、前記1つのデータボリュームからデータレコードを検索することと、を含む、コンピュータ実装による方法。
【請求項2】
前記変換は、暗号学的アルゴリズム処理を使用することによって実行される、請求項1に記載の法。
【請求項3】
各データファイルが、データレコード長とオプションで整合性チェックサムとの少なくとも1つを記述するヘッダを含む、請求項に記載の法。
【請求項4】
データシステムであって、
データインデックスおよびデータレコードを含むデータセットにおけるデータを捕捉し、前記データセットを個々のフラットファイルに分割し、記憶することによって、記憶のための中間データフォーマットでデータを記憶する記憶ユニットと、
前記記憶されたデータをソートして、重複したレコードを除去し、前記記憶された前記データを前記中間データフォーマットから、インデックスファイル及びデータファイルを含む少なくとも2つのデータボリュームのプロダクションフォーマットに変換する変換器ユニットであって、前記変換することは、前記データファイル内のデータレコードへの固定長ポインタと共に所与のデータインデックスをバイナリ形式で記憶することを含む、変換器ユニットと、
前記2つのデータボリュームを1つのデータボリュームにマージするマージャユニットと、を含み、
前記データシステムは、前記インデックスファイル上で探索を実行し、所与のポインタからデータレコード位置を取得し、次の順次データレコードのためのポインタの値から前記所与のポインタの値を差し引くことか、あるいは前記所与のポインタが最後のポインタである場合、前記データファイルの長さから前記所与のポインタの値を差し引くことによって、データレコード長を取得することによって、前記1つのデータボリュームからデータレコードを検索するように構成されている、データシステム。
【請求項5】
前記変換は、暗号学的アルゴリズム処理を使用することによって実行される、請求項に記載のデータシステム。
【請求項6】
各データファイルは、データレコード長とオプションで整合性チェックサムとの少なくとも1つを記述するヘッダを含む、請求項に記載のデータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、コード処理およびデータ技術に関する。
【背景技術】
【0002】
大きなセットの静的な読み取り専用データ(数兆個のレコード)に対して単一キーでの検索を実行する必要がある場合、従来のDBMS(データベース管理システム)では、応答時間だけでなく、サーバー間でデータを同期したりバックアップを実行したりするのに必要な時間を満たすものになっていない。
【0003】
大量の静的データに対して単一キーでの読み取り専用検索という単純なタスクが与えられたとしても、同時制御、アクセス制御、トランザクション処理、およびログ記録を含む(これらに限定されない)標準的なDBMSの内部メカニズムがパフォーマンスを鈍らせる。
【発明の概要】
【0004】
以下の簡略化された概要は、本開示に記載される種々の実施形態のいくつかの態様の基本的理解のために提供される。本概要は、本開示の広範囲にわたる概観ではない。請求項に係る発明の鍵となる要素または重要な要素を特定することも、発明の範囲の輪郭を示すことも意図していない。以下の概要は、本開示に記載される実施形態において使用されるいくつかの概念を簡略化した形式で、それらの実施形態のより詳細な説明に対する前置きとして提示しているに過ぎない。
【0005】
本開示に記載されるいくつかの実施形態の目的は、標準的なDBMS(データベース管理システム)システムによって課されるオーバーヘッドを除去するためのシステムおよび方法をアレンジすることである。これは、記憶のための中間フォーマットでデータを記憶することと、中間データフォーマットを2つのデータボリュームのプロダクションデータフォーマットに変換することと、2つのデータボリュームを1つのデータボリュームにマージすることとを含むデータ処理方法によって達成される。
【0006】
本開示に記載されるいくつかの実施形態の焦点は、記憶のための中間フォーマットでデータを記憶する記憶ユニットと、中間データフォーマットを2つのデータボリュームのプロダクションデータフォーマットに変換する変換器ユニットと、2つのデータボリュームを1つのデータボリュームにマージするマージャユニットとを含むデータシステムでもある。
【0007】
本明細書に記載される実施形態は、記憶のための中間フォーマットでデータを記憶し、中間データフォーマットを2つのデータボリュームの生産データフォーマットに変換することに基づいてよい。本明細書に記載される実施形態はまた、2つのデータボリュームを1つのデータボリュームにマージすることに基づいてよい。
【0008】
本明細書に記載される実施形態の利点は、標準的なデータベース管理システムを使用するよりも著しく高い性能速度を可能にすることができることである。
【図面の簡単な説明】
【0009】
本開示の例示的および非限定的な実施形態およびそれらの利点は、添付の図面を参照して以下により詳細に説明される。
【0010】
図1】パスポート番号(passport number)と氏名(full name)から構成されるサンプルデータを表す。
図2図1に示すパスポートのMD5 sumである記録キーを付加した図1からのサンプルデータを表す。
図3】rawフォーマットで記憶された図1および図2の結果データを表す。
図4】プロダクションフォーマット(バンク0fのみ表示、16進ダンプ)にパックされた結果データを表す。
図5図1から図4のデータを処理するためのデータシステムフローチャートを表す。
【発明を実施するための形態】
【0011】
本明細書に記載される実施形態は、標準的なデータベース管理システム(DBMS)によって課されるオーバーヘッドを除去するためのシステムおよび方法に関する。この方法は、ハッシュ値、すなわちハッシュキーの均一な分布を達成するために暗号学的メッセージダイジェストを使用することと、インデックス検索の労力の一部をファイルシステム自体に中継することとを含む。これは、作業の一部がファイルシステムに渡されることを意味する。ファイル名にハッシュの一部を使用することで、ハッシュ全体をデータベースに保存する場合に比べて、バンクのサイズをより小さくすることができる。さらに、各ファイル名がファイルの名前を必要とするため、このスペースは本質的にフリーである。言い換えると、ハッシュの一部がファイルシステムのファイル割り当てテーブルで使用されてよい。
【0012】
好ましくは、データセットをデータバンクに分割し、データキーの一部をファイルおよびディレクトリの名前に記憶し、インデックス探索タスクの一部をファイルシステムに委任する。データ更新は、好ましくは、サービス中断なしでバッチに対して実行される。
【0013】
開示されるデータ記憶方法は、3つのフェーズを含むことができる。データ捕捉は、可能な限り高速なデータ記録を保証する中間(rawフォーマット:raw format)フォーマットでデータを記憶する。データパッキングは、捕捉されたデータを、高速クエリを実行できるプロダクション準備の整った(production-ready)フォーマット(プロダクションフォーマット:production format)に変換する。中間フォーマットが処理され保存される場合、可能な限り高速なルックアップテーブル(LUT)のために、プロダクションフォーマットが達成される。データマージは、少なくとも2つの存在するデータボリュームを1つのボリュームにマージする。
【0014】
本特許出願に記載されるデータ記憶方法は、大きなデータセット対して高性能クエリを送達するために従来技術のDBMSソリューションの欠陥を克服する。本特許出願に記載されるデータセットは、サービス中断なしに更新可能な単一のキーおよび可変データフィールドを特徴とする。データは、異なるコンピュータ環境およびプラットフォームにおけるコーディング実装を可能にするポータブルフォーマットで記憶される。
【0015】
1つの例示的な実施形態では、データ捕捉メカニズムの目的は、将来的なプロセスおよびマージのために可能な限り高速なデータ記憶を提供することである。従って、データ捕捉は、無制限の数のマシンで実行され、後の段階でまとめてマージされ、次いで、プロダクションに移されてよい。
【0016】
データセットは2つのフィールドで構成される。すなわち、データインデックスとデータレコードである。データインデックスは、インデックスの均一な分布を提供することを目的として、好みの暗号学的アルゴリズムを使用してメッセージダイジェストに変換される。データレコードは好ましくは固定長を有さないが、実施形態によっては所定の最大長に制限されてもよい。
【0017】
1つの例示的な実施形態では、データ収集による情報は、データバンクと呼ばれる個々のフラットファイルに記憶される。これらのデータバンクは、データインデックスの最初のN(アドレッシング)ニブルにちなんでおり、例えば、プレーンテキスト情報またはバイナリ形式の情報を含むことができ、データレコードごとに1行である。行は、データインデックス、その後にデータレコード全体が続く。
【0018】
情報は異なるインスタンスで取得でき、rawフォーマットの情報は、例えば、コロンで区切られたフィールドを使用する、あるいはJSONフォーマットですべて表現することによって、単純にデータバンクをまとめて連結するだけでマージできる。これは重複情報をもたらす可能性があるが、任意の重複情報はデータパッキング中に除去される。
【0019】
図1及び図2に示された例示的な1つの例示的な実施形態では、単純なパスポート番号(passport number)およびフルネーム(full name)のデータ構造が与えられ、所望のキーはパスポート番号としてよい。データインデックス(パスポート番号)は、MD5暗号学的アルゴリズムを使用してメッセージダイジェストに変換することができる。
【0020】
2ニブルのデータバンクのアドレッシングで、passportsという名前のデータボリュームを含むpeopleという名前のデータベースボリュームに情報が保存されると仮定すると、図2のデータは、図3で提示するように2つのデータバンクにrawフォーマットで記録されてよい。2ニブルを使用すると、パスポートのデータボリュームに対して最大256個のデータバンクをもたらすことになる。
【0021】
別の例示的な実施形態では、データパッキングの処理は、rawフォーマットのデータボリュームをプロダクションフォーマットに変換する。この処理中、データバンクはソートされ、重複したレコードを除去し、次いで、データバンクは、インデックスとデータの2つのファイルに変換されてよく、それらに対して.indexおよび.dataのファイル拡張子がこの説明においては使用される。
【0022】
データインデックスは、16進数(ASCII)からバイナリに変換され、.dataのファイル内のデータレコードへの固定長データポインタと共にインデックスファイルに置かれる。バンク名に存在するインデックスからのニブルは、インデックスファイルから削除してよい。サイズの小さいインデックスファイルが与えられると、シークタイムを高速にするためにそれらをRAMにコピーすることができる。データファイルはすべてのデータレコードの連結を含む。各レコードは、好ましくは、レコード長およびオプションで整合性チェックサムを記述するヘッダを含む。
【0023】
1つの例示的な実施形態では、データポインタは32ビットに設定され、最大データバンクサイズ4Gbを可能にし、レコード長はシングルバイトであり、最大データレコードサイズ256バイトを可能にし、データチェックサムはシングルバイトに設定される。
【0024】
図3のrawフォーマットを使用して、バンク0fをとると、データバンクは以下のようになる。すなわち、0fバンクは、0f.dataのファイル内に記憶された2つのレコードを含む。これら2つのレコードは、図4の0f.dataのファイルのコンテンツ(Contents)に表示されている。データレコードの前には、レコードサイズとチェックサムを宣言する2バイトのヘッダがある。両方のレコードは8バイト長であり、チェックサムはそれぞれ97とc6(16進数)である。
【0025】
バンクのインデックスファイル0f.indexには、レコードキーの残りの15バイト(最初のバイトはファイル名にあることに注意)を含み、その後に、データファイル内のレコードの開始についての32ビット(4バイト)ポインタが続く(それぞれバイト0とバイト10である)。
【0026】
別の例示的な方法では、データマージは、送信元データボリュームを宛先データボリュームに結合することを含んでよい。マージは、個々のデータバンクを単に連結するだけで、rawフォーマットのデータボリューム上で実行することができる。
【0027】
プロダクションフォーマットのデータボリュームのバイナリマージは、データボリューム内のデータバンクを処理することと、それらを、宛先ボリューム内に単一性(unity)を有する一時データバンクにマージすることを含むことができる。データバンクがマージされると、それは宛先データバンクに移される。これにより、サービスを中断する必要なくデータを更新することができる。
【0028】
2つのデータバンクのマージは、バンク上の各レコードを処理し、重複をスキップしてそれらをマージされたバンクに順番に書き込むことによって実行してよい。
【0029】
データレコードの検索は、対応するデータバンクに対するインデックスファイル内で補間探索または対数探索などの特定の探索アルゴリズムを使用して探索を実行することと、ポインタからデータ位置を取得することと、次のレコードのポインタ(または最後のレコードの場合はデータファイル長)からポインタを差し引くことによってデータ長を取得することと、を含んでよい。
【0030】
図5は、本開示の例示的かつ非限定的な実施形態によるデータシステムフローチャートを表す。データシステムは、記憶のための中間フォーマットでデータを記憶する記憶ユニット100と、中間データフォーマットを少なくとも2つのデータボリュームの生産データフォーマットに変換する変換器ユニット102とを含んでよい。変換は、例えば、暗号学的アルゴリズム処理を使用して実行することができる。少なくとも2つのデータボリュームとは、例えば、データインデックスおよびデータレコードとしてよい。1つの例示的な実施形態では、データインデックスは、データレコードのファイル内のデータレコードへの固定長データポインタと共に、インデックスファイル内にバイナリ形式で配置され得る。データインデックスは、中間フォーマットからプロダクションフォーマットに変換することができる。
【0031】
データシステムは、少なくとも2つのデータボリュームを1つのデータボリュームにマージするマージャユニット104をさらに含む。1つの例示的な実施形態では、データインデックスファイル上で探索を実行し、所与のポインタからデータ位置を取得し、次のデータレコードのポインタの値から所与のポインタの値を差し引くことによって、あるいは所与のポインタがデータボリューム内の最後のポインタである場合、データボリューム長から所与のポインタの値を差し引くことによって、データ長を取得することによってデータレコードが検索される。各データレコードボリュームは、データレコード長とオプションで整合性チェックサムとを記述するヘッダを含んでよい。
【0032】
データシステム、例えば、ユニット100、102および104は、アルゴリズムを使用し、本発明による方法を実施するために、例えばプロセッサベースのコンピュータおよびマイクロプロセッサの技術によって実施することができる。
【0033】
上記に与えられた説明において提供された特定の例は、添付の特許請求の範囲の範囲および/または適用可能性を制限するものと解釈されるべきではない。
図1
図2
図3
図4
図5