JP5377318B2 - 個別にアクセス可能なデータユニットの格納管理 - Google Patents

個別にアクセス可能なデータユニットの格納管理 Download PDF

Info

Publication number
JP5377318B2
JP5377318B2 JP2009535408A JP2009535408A JP5377318B2 JP 5377318 B2 JP5377318 B2 JP 5377318B2 JP 2009535408 A JP2009535408 A JP 2009535408A JP 2009535408 A JP2009535408 A JP 2009535408A JP 5377318 B2 JP5377318 B2 JP 5377318B2
Authority
JP
Japan
Prior art keywords
data
key value
blocks
data units
computer program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009535408A
Other languages
English (en)
Other versions
JP2010508606A (ja
Inventor
エフライム メリウェザー ヴィシュニアク
マーシャル エー イスマン
ポール ベイ
エイチ マーク ブロムリー
ジョン エル リチャードソン
Original Assignee
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2010508606A publication Critical patent/JP2010508606A/ja
Application granted granted Critical
Publication of JP5377318B2 publication Critical patent/JP5377318B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Storage Device Security (AREA)

Description

本発明は、個別にアクセス可能なデータユニット(data unit)の格納管理に関する。
データベースシステムは、個別にアクセス可能なデータのユニット(単位:unit)すなわち「レコード」を、種々のフォーマットのいずれかで格納することができる。各レコードは、クレジットカード取引などの論理要素に対応でき、一般には、そのレコードを一意に特定するために使用される関連プライマリーキーを有する。レコードは、レコードフォーマットのそれぞれの領域に関連付けた複数の値を含むことができる。レコードは、一つ又は二以上のファイル(例えば、フラットファイルまたはXMLファイルなどの構造化データファイル)内に格納できる。圧縮データベースシステムにおいては、個々のレコードまたはレコード内の値は、格納時に圧縮され、アクセス時に解凍され、それによりシステムが必要とする記憶容量が削減される。
本発明の一態様において、概して、データを管理する方法は、個別にアクセス可能な複数のデータユニットであってそれぞれが一つのキー値によって特定される複数のデータユニットを受け取るステップ;複数のデータブロックであって少なくともその複数のブロックの幾つかは前記複数のデータユニットを結合することにより生成される複数のデータブロックを格納するステップ;および、前記複数のデータブロックのそれぞれに対する入り口を含む一つのインデックスを提供するステップ;を含む。前記入り口の一つまたはそれ以上は、一つの与えられたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、与えられたキー値に基づいて、見つけ出すことを可能にする。
別の態様において、概して、データを管理するシステムは、個別にアクセス可能な複数のデータユニットであってそれぞれが一つのキー値により特定されるデータユニットを受け取る手段;複数のデータのブロックであってその複数のブロックの少なくとも幾つかのそれぞれが前記データユニットを複数個結合することにより生成されている複数のデータのブロックを格納する手段;および、前記複数のデータブロックのそれぞれに対する入り口を含むインデックスを提供する手段;を含む。その入り口の一つまたはそれ以上は、与えられた一つのキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その与えられたキー値に基づいて、見つけ出すことを可能にする。
別の態様において、概して、コンピュータ読取り可能記録媒体に格納される、データを管理するコンピュータプログラムは、コンピュータが:個別にアクセス可能な複数のデータユニットであってそれぞれが一つのキー値によって特定される複数のデータユニットを受け取り;複数のデータのブロックであって少なくともそのブロックの幾つかのそれぞれが前記データユニットを複数個結合することにより生成されている複数のデータのブロックを格納し;前記データブロックのそれぞれに対する一つの入り口を含む一つのインデックスを提供する;ことを実行させる命令を含む。その入り口の一つまたはそれ以上は、与えられた一つのキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その与えられたキー値に基づいて、見つけ出すことを可能にする。
各態様は、以下の特徴の一つ以上を含むことができる。
少なくとも前記ブロックの幾つかは、前記複数のキー値に応じて規定された順序に基づいて前記複数のデータユニットを結合することによって生成される。
前記規定された順序はアルファベット順である。
前記規定された順序は数値順である。
それぞれのブロックは、複数のデータユニットからなる複数の組からそれぞれ生成され、その複数の組は、その規定された順序にしたがってキー値の重複することのない複数の範囲に対応している。
前記インデックス内の複数の入り口の一つまたはそれ以上は、一つの対応するブロックが生成された複数のデータユニットに対応するキー値範囲を特定する。
前記キー値範囲は、キー値範囲の少なくとも一つの極値を含む情報によって特定される。
前記キー値範囲は、前記インデックス内の第1の入り口からの第1の極値および前記インデックス内の第2の入り口からの第2の極値によって特定される。
前記キー値範囲は、前記対応するブロックが生成された複数のデータユニットに関係付けられた前記複数のキー値の少なくとも一つの極値を含む情報によって特定される。
前記キー値範囲は、前記インデックス内の第1の入り口からの第1の極値および前記インデックス内の第2の入り口からの第2の極値によって特定される。
前記インデックス内の前記複数の入り口の少なくとも幾つかの各々は、対応するブロックの格納場所を特定する。
複数の前記データユニットを結合させることによって一つのブロックを生成させるステップは、複数のデータユニットの一組を圧縮するステップを含む。
複数のデータユニットの一組を圧縮することによって生成されたブロックを解凍するステップは、そのブロック全体を処理するステップを含む。
前記複数のデータユニットは、対応する複数の領域に関連付けられた一つまたはそれ以上の値をそれぞれ有する複数のレコードである。
受け取った一つのデータユニットを特定する一つのキー値は、受け取る前のそのデータユニットに関連付けられた一つまたはそれ以上の領域に対応している。
受け取った一つのデータユニットを特定する一つのキー値は、受け取った後にそのデータユニットに割り当てられる。
キー値は単調変化するように割り当てられる。
キー値は連続変化するように割り当てられる。
前記格納された複数のデータブロックは、複数のブロックからなる第1の組として格納される。
その複数のブロックからなる第1の組は、一つのファイル内に格納される。
一つまたはそれ以上のデータブロックからなる第2の組が格納されるが、その第2の組のうちの少なくとも幾つかのブロックの各々は、前記複数のブロックからなる第1の組を格納した後に受け取られた複数のデータユニットから生成される。
前記第2の組の中の少なくとも幾つかのブロックは、複数のデータユニットからなる一つの組を圧縮することによって生成される。
前記第2の組の中の複数のブロックの各々に対する一つの入り口を含む一つのインデックスが提供され、一つまたはそれ以上の前記エントリは、提供された一つのキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その提供されたキー値に基づいて、見つけ出すことを可能にする。
複数のブロックからなる前記第1及び第2の組は処理され、それらのブロックが生成された複数のデータユニットを復元し;前記第1の組から復元された複数のデータユニットおよび前記第2の組から復元された複数のデータユニットは、これらの複数のデータユニットに対応する複数のキー値に応じた順序にしたがってソートされ、ソートされた複数のデータユニットからなる一組が生成され;第3の組のブロックが生成され、その第3の組の中の少なくともいくつかのブロックはそれぞれ前記ソートされた複数のデータユニットを結合することによって生成される。
前記第1の組から復元された複数のデータユニットおよび前記第2の組から復元された複数のデータユニットをソートするステップは、これらのデータユニットに対応する複数のキー値に応じた順序にしたがって、前記第1の組から復元された複数のデータユニットを前記第2の組から復元された複数のデータユニットと統合し、ソートされた複数のデータユニットからなる一組を生成するステップを含む。
前記第3の組の中の複数のブロックの各々に対する入り口を含む前記第3の組に対するインデックスが提供され、一つまたはそれ以上の前記入り口は、提供された一つのキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その提供された一つのキー値に基づいて、見つけ出すことを可能にする。
前記格納される複数のブロックに関連付けられた選別データ構造は、所与の属性値を含む一つのデータユニットが、前記複数のブロックの生成された複数のデータユニットに含まれていた可能性を決定するために提供される。
前記属性値は、一つのデータユニットを特定する一つのキー値を含む。
選別データ構造は、所与の属性値に対し、その所与の属性値を含む一つのデータユニットが含まれていなかったことが確実であるか、またはその所与の属性値を含む一つのデータユニットが含まれていた可能性があったかを決定する。
前記一つのデータユニットが含まれていない場合、前記所与の属性値を含む一つのデータユニットが含まれていた可能性があると前記選別データ構造が決定する確率は、前記データ構造の大きさ(サイズ)に依存する。
前記選別データ構造の大きさは、前記複数のブロックが生成された複数のデータユニットの個数に基づいて選択される。
前記格納された複数のブロックに関連付けられた二次的なインデックスは、所与の属性値を含む複数のデータユニットの一つまたはそれ以上のキー値を決定するために提供される。
前記複数のデータユニットは、それぞれが対応する複数の領域に関連付けられた一つまたはそれ以上の値を有する複数のレコードであり、一つのレコードを特定する一つのキー値は一つのプライマリーキー値に対応し、前記二次的なインデックスに関連付けられた前記属性値は一つのセカンダリキー値に対応する。
前記二次的なインデックスは、前記キー値以外であって前記複数のデータユニット中の複数の属性値によってソートされた行を有する表を含む。
各態様は、以下の利点の一つ以上を含むことができる。
複数のレコードの一つのブロックを圧縮することによって、その複数のレコードを個別に圧縮するよりも大規模な圧縮を達成することができる。インデックスが付された複数のブロックは、圧縮された複数のレコードの一つのファイルの始まりから解凍することを必要としないで、所与の一つのレコードにアクセスする能力を提供する。複数のブロックのサイズは、大きな圧縮をもたらすために十分大きくなるように選択することができ、また一つのブロック内において所与の一つのレコードにアクセスするために必要な解凍の量を制限するために十分に小さくなるように選択することもできる。各ブロックは、圧縮ブロック内の任意の位置から解凍を開始する能力を提供する必要のない圧縮技術を用いて圧縮することができる。したがって、大規模な圧縮を提供する方法が使用され得る。
対応する一つのブロックが生成された複数のレコードに対応するキー値範囲を特定するインデックスを保存することにより、そのインデックスが各レコードに対する入り口を有する必要がなくなるため、そのインデックスを小さいままにしておくことができる(例えば、十分小さいので比較的高速のメモリ内に収めることができる)。インデックスの複数の入り口は、所望の一つのレコードを検索することができる一組の複数のレコードを復元するために、読み込みや解凍を実施することができる一つまたはそれ以上のブロックの位置を見つけ出すことを可能にする。圧縮ブロックにシグネチャを関連付けることにより、一つの所望のレコードが存在していないことを示すことができ、そのレコードを検索するために圧縮ブロックを読み込む必要がなくなる。
その他の特徴と利点は、以下の記載ならびに特許請求の範囲から明らかになる。
レコードを格納し、検索するシステムのブロック構成図である。 システムによって処理され、システム内に保存されるデータの概念図である。 システムによって処理され、システム内に保存されるデータの概念図である。 システムによって処理され、システム内に保存されるデータの概念図である。 システムによって処理され、システム内に保存されるデータの概念図である。 異なるシグネチャサイズに対する誤った肯定の確率を示す表である。 異なるシグネチャサイズに対する誤った肯定の確率を示す表である。 レコードの検索手順のフローチャートである。 レコードの検索手順のフローチャートである。
図1を参照すると、レコード格納兼引き出し(検索)システム100は、ソースAからソースCのような、一つまたはそれ以上のソースからデータを受け取る。そのデータは、個別にアクセス可能な複数のデータユニット(データ単位)として表され得る情報を含む。例えば、クレジットカード会社は、さまざまな小売業者から個々の取引を表現するデータを受け取ることができる。各取引は、顧客名、日付、購入額などの属性を表現する値と関連付けられる。レコード処理モジュール102は、一つの取引に関連付けられる複数の値が一つのレコード内に格納されるように、前記データが所定のレコードフォーマットに従ってフォーマットされていることを確実にする。場合により、このことは、ソースからのデータをレコードフォーマットに従って変換することを含む。その他の場合においては、一つまたはそれ以上のソースが、前記レコードフォーマットに従って既にフォーマットされているデータを提供してもよい。
レコード処理モジュール102は、各レコードを特定する一つのプライマリーキー値(例えば、単一のレコードを特定する一意の一つのキー又は一つのレコードの更新(アップデート)された複数のバージョンを特定する一つのキー)によって複数のレコードをソートし、その複数のレコードをプライマリーキー値の重複しない範囲に対応する複数のレコードからなる複数の組に分割する。例えば、複数のレコードの組のそれぞれは、予め定められた個数のレコード(例えば、100個のレコード)に対応することができる。圧縮モジュール104は、複数のレコードからなる組のそれぞれを圧縮されたデータのブロックへと圧縮する。これらの圧縮ブロックは、レコード記憶装置106(例えば、一つまたはそれ以上のハードディスクドライブなどの不揮発性記憶媒体)内の一つの圧縮レコードファイル内に格納される。システム100は、複数のブロックの各々に対する一つの入り口(エントリ)を含むインデックスを提供するインデックス化兼検索モジュール108も含む。そのインデックスは、以下にさらに詳述するように、所与の一つのレコードを含む一つのブロックを探し出すために使用される。そのインデックスは、インデックス記憶装置110内の一つのインデックスファイル内に格納され得る。例えば、インデックスファイルは圧縮レコードファイルと同じ記憶媒体に格納され得るが、インデックスファイルは、一般には圧縮レコードファイルよりもはるかに小さいから、比較的高速のメモリ(例えば、ダイナミックランダムアクセスメモリなどの揮発性記憶媒体)に格納されることが好ましい。
システム100のその他の実施例においては、圧縮に加えてまたは圧縮の代わりに、何らかの仕方によって複数のレコードを結びつける(すなわち、ブロックが単に連結された複数のレコードからなる一つの組ではないようにする)他の機能を使用して複数のレコードからなる複数の組を処理し、複数のブロックを生成することができる。例えば、いくつかのシステムは、複数のレコードからなる組を処理して暗号化されたデータからなる複数のブロックを生成することができる。
インタフェースモジュール112は、エージェントAからエージェントDのような人間および/またはコンピュータエージェントに対して、格納された複数のレコードに対するアクセスを提供する。例えば、インタフェースモジュール112は、クレジットカードの顧客が自分自身の取引を確認するためのオンライン課金システムを実現することができる。さまざまな基準を満たす取引情報に対する要求を、システム100によって処理することができ、対応するレコードは、レコード記憶装置106に格納されている複数の圧縮ブロック内から引き出すことができる。
一つまたはそれ以上のソースから入ってくるレコードの流れは、一つの圧縮レコードファイルを生成するように処理される前に、一時的に格納されてもよい。図2Aを参照すると、システム100は、一つの圧縮レコードファイルに格納されるべき複数のレコードからなる一つの組200を受け取り、プライマリーキーの値にしたがってその複数のレコードをソートする。
一つのプライマリーキー値は、データベース内の、一つまたはそれ以上のレコードによって表現され得る所与のアイテムを一意に特定することができる(例えば、一つの所与のプライマリーキー値を有する各レコードは、そのアイテムの異なる更新された(アップデートされた)バージョンに対応し得る)。プライマリーキーは、一つのレコードの一つまたはそれ以上の既存の領域(フィールド)に対応する「自然なキー」であってもよい。各アイテムに対して一意的であることが保証される領域が存在しない場合、プライマリーキーは、各アイテムに対して一意的であることをまとまって保証するか又は一意的である可能性が極めて高いような「一つのレコードの複数の領域」を含む複合キーであってもよい。あるいは、プライマリーキーは、各レコードが受け取られた後に各レコードに対して割り当てられる「合成キー」であってもよい。例えば、システム100は、一意のプライマリーキー値を連続的に増加する整数として、または単調に増加する値の他の数列(例えば、タイムスタンプ;時刻印)として割り当ててもよい。この場合、同じアイテムの異なるバージョンを表す複数のレコードに異なる合成キー値を割り当ててもよい。整数が使用される場合、プライマリーキー値の取り得る範囲(例えば、使用されるビット数によって決定される)は、十分大きくすることができ、プライマリーキーが一巡する場合、所与のプライマリーキー値をすでに割り当てられているレコードは、圧縮レコードファイルから取り除かれている。例えば、古い取引は、除去され且つアーカイブ化されるか、または破棄されてもよい。
図2Aに示す例では、レコード200は、A,AB,CZ,・・・のようにアルファベット順にソートされたプライマリーキー値によって特定される。システム100は、AからDDまでのプライマリーキー値を有するN個のレコードからなる第1の組を圧縮してブロック1と名付けられた一つの対応する圧縮ブロックを生成する。次のレコードの組は、DXからGFまでのプライマリーキー値を有する次のN個のソートされたレコードを含む。圧縮モジュール104は、さまざまな無損失データ圧縮アルゴリズム(例えば、レンペル・ジブアルゴリズム)のいずれをも使用することができる。連続した圧縮ブロックの各々は結合され、一つの圧縮レコードファイル202を形成する。
一つの圧縮ブロックを生成するために使用されるレコードの数Nは、圧縮効率と解凍速度との間の妥協点で選択することができる。圧縮により、圧縮されるデータの性質および圧縮されるデータの大きさに依存する所与の因子Rに応じて平均的にデータの大きさを小さくできる(例えば、より多くのデータが圧縮される場合、Rは通常小さい)。圧縮は、平均的な大きさが「O」である「関連付けられたオーバーヘッド(例えば、圧縮関連データ)」も有することができる。それぞれ大きさがXであるM個のレコードから生成された圧縮レコードファイルの平均的大きさは、[M/N](RNX+O)と表すことができ、これは、多数のブロックに対しては、RMX+OM/Nと近似できる。したがって、場合によっては、Nの値が大きくなるほど、Rを減少させるとともにファイルの大きさに対する上記オーバーヘッドの影響を減少させることにより、より大きく圧縮することができる。Nの値がより小さいほど、ある圧縮ブロックに含まれているかもしれない一つのレコードにアクセスするためにその圧縮ブロックを解凍するのに必要な時間がより短くなる。
その他の実施例において、異なる圧縮ブロックは、異なる数のレコードを含むことができる。各ブロックは、所定の範囲にしたがい、複数のレコードを有することができる。例えば、第1のブロックは、プライマリーキー値が1から1000までのレコードを含み、第2のブロックは、プライマリーキー値が1001から2000までのレコードを含む等である。この例において、圧縮ブロック内のレコード数は異なっていることもある。これは、すべてのプライマリーキー値が必ずしも存在しないかである(例えば、既存の数値領域が自然なキーとして使用されている場合)。
いくつかの実施例において、場合により、異なる圧縮ブロックは、目標数のレコードを含み、例外的な場合には、より多いまたはより少ないレコードを含むことがある。例えば、複数のレコードからなるレコードの一つの組(一組のレコード)が、ソートされた順序において後続のレコードのプライマリーキー値とは異なるプライマリーキー値をもつレコードで終わっていれば、これらのレコードは、一つの圧縮ブロックを生成するために使用される。もし、一組のレコードが、ソートされた順序において後続のレコードのプライマリーキー値と同じプライマリーキー値をもつレコードで終わっていれば、そのプライマリーキー値を有するすべての追加的なレコードが、その組に追加される。このように、同じプライマリーキー値が一つの圧縮ブロックから次の圧縮ブロックへと領域を超えて存在することはない。
インデックス化兼検索モジュール108は、複数の圧縮ブロックの各々に対し、一つのインデックスファイル204の中に一つの入り口(エントリ)を生成する。そのインデックスの入り口は、例えば、対応する圧縮されていない一組のレコードにおける最初のレコードのプライマリーキーによって圧縮ブロックのそれぞれを特定するキーフィールド206を含む。その入り口は、圧縮レコードファイル202内において「特定された圧縮ブロック」の格納場所を特定する格納位置フィールド(a location field)208をも含む。例えば、その格納位置フィールドは、レコード記憶装置106の絶対アドレスの形式をとるポインタ、またはレコード記憶装置106内の圧縮レコードファイル202の始まりのアドレスからの差分の形式をとるポインタを含むことができる。
圧縮レコードファイル202内の所与の一つのレコードを検索するために、モジュール108は、キーフィールド206に基づいてインデックスファイル204の検索(例えば、二分探索)を実行することができる。与えられたキー値(例えば、エージェントのひとつから与えられるキー値)に対して、モジュール108は、その与えられたキー値を含むキー値範囲に対応する複数のレコードを含む一つのブロックを見つける。その与えられたキー値をもつレコードは、その見つけられたブロックを生成するために使用された複数のレコードの組に含まれていたかも知れないし、含まれていなかったかも知れないが、そのレコードが複数のレコード200内に存在する場合には、レコード200はプライマリーキー値によってソートされたはずであるので、そのレコードは含まれていたに違いない。次いでモジュール108は、その見つけられたブロックを解凍し、その与えられたキー値をもつ一つのレコードを検索する。プライマリーキー値が各レコードに対して一意的でない場合には、モジュール108は、その圧縮ブロック内において「その与えられたキー値をもつレコード」を複数見つける可能性がある。キーフィールド206が一組の中の最初のレコードのプライマリーキーを含む例においては、モジュール108は、与えられたキー値に先行する値又は後続するキー値を有する二個の連続したインデックスの入り口を検索し、先行するキー値をもつ入り口に対応するブロックを戻す。いくつかの場合において、与えられたキー値は、インデックスの入り口のキー値と同じであり、その場合、モジュール108はその入り口に対応するブロックを戻す。
様々な実施例において、インデックスファイル204における入り口が、対応する一つのブロックが生成された複数のレコードに対応するキー値範囲を特定するための様々な方法がある。図2Aに示す実施例のように、キー値範囲は、一つのブロックを生成するために使用された複数のレコードの2つの極値キー値間の範囲となることがある(例えば、アルファベット順のプライマリーキー値のソートされた順序における先頭および末尾、または数値からなるプライマリーキー値のソートされた順序における最小値および最大値)。そのインデックスの入り口は、その範囲を規定する極値のどちらか一方、または両方を含むことができる。いくつかの実施例において、インデックスの入り口が一つの所与のブロックに対する範囲を規定する最小のキー値を含む場合、一つの圧縮レコードファイル内の最終のブロックに関連付けられる最後のインデックスの入り口はそのブロックに対する範囲を規定する最大のキー値を含むことができる。その後、この最大のキー値は、圧縮レコードファイルを検索する際に、所与のキー値が、いつ範囲外となるのかを決定するために使うことができる。
代替として、キー値範囲は、一つのブロックを生成するために使用される複数のレコードの複数のキー値を超えて拡張された範囲となることがある。例えば、1と1000の間にある数値からなるプライマリーキー値をもつ複数のレコードから生成される一つのブロックの場合、その複数のレコードにおいて表される最小のキー値は1よりも大きいことがあり、その複数のレコードにおいて表される最大のキー値は1000よりも小さいことがある。そのインデックスの入り口は、その範囲を規定する極値である1と1000との何れか一方、または両方を含むこともできる。
最初の一群のレコードが処理されて一つの圧縮レコードファイルが生成された後に、追加の複数のレコードが到着すると、これらのレコードは、バッファに格納され、圧縮されていない状態にて検索され得る。代替として、複数のレコードからなる複数の追加的なグループは付加的に処理され、追加の複数のインデックスファイルによってアクセス可能な追加の複数の圧縮レコードファイルとして格納され得る。いくつかの場合において、少数の追加レコードを圧縮することが格納サイズを大きく減少させることができない場合であっても、その追加のレコードを圧縮することによりレコードにアクセスするための統一的な手続きを維持することは依然として有利である。追加レコードは、一定の時間間隔(例えば、30秒毎または5分毎)にて、または所定数の追加レコードを受け取った後(例えば、1,000個のレコード毎または10,000個のレコード毎)に、繰り返し処理され得る。入力されるレコードが時間間隔に基づいて処理される場合、間隔によっては、入力されるレコードがまったく存在しないことや、そのすべてが単一の圧縮ブロックへと圧縮される少数のレコードのみが存在することもある。
図2Bに示したように、最初の圧縮レコードファイル202が生成された後に追加のレコードがシステム100によって受け取られる例においては、追加の圧縮レコードファイル210がその最初の圧縮レコードファイル202に付加されて合成圧縮レコードファイル211が形成され得る。システム100はプライマリーキー値によってその追加のレコードをソートし、N個のレコードからなる複数の組を圧縮して圧縮レコードファイル210の複数の圧縮ブロックを生成する。ブロック91と名付けた付加ファイル210内の最初の圧縮ブロックは、BAからFFまでのプライマリーキー値を有する。モジュール108は、その付加ファイル210内に表されている追加の複数のレコードを検索するために使用される複数の入り口を含む追加の一つのインデックスファイル212を生成する。新たなインデックスファイル212は、直前のインデックスファイル204に付加することができる。
任意の数の圧縮レコードファイルを付加して、一つの合成圧縮レコードファイルを形成することができる。インデックス化兼検索モジュール108が、一つの合成圧縮レコードファイル内において所与のキー値をもつ一つのレコードを検索している場合、モジュール108は、対応するインデックスファイルを用いて、その付加された圧縮レコードファイル各々の中のレコードを検索する。代替として、所与のレコードを要求するエージェントは、検索される合成圧縮レコード内の圧縮レコードのいくつか(例えば、直近に生成された10個、または直前の1時間以内に生成された任意のレコード)を特定することができる。
所与の時間の後(例えば24時間毎)、または所与の個数の圧縮レコードファイルが付加された後、システム100は、複数のファイルを統合し、一つの合成圧縮レコードファイルから単一の圧縮レコードファイルと対応する新たな一つのインデックスファイルを生成することができる。統合後、単一のインデックスは、所与のレコードを含んでいるかもしれない圧縮ブロックの場所を見つけるために検索されることができ、その結果、いっそう効率的なレコードへのアクセスがもたらされる。統合の際、システム100は、圧縮レコードファイルを解凍して対応する「ソートされた複数のレコードからなる複数の組」を復元し、プライマリーキー値によってそのレコードをソートし、新しい圧縮レコードファイルとインデックスを生成する。復元されたレコードの複数の組のそれぞれは、既にソートされているので、プライマリーキー値にしたがってすでにソートされたリストを組み合わせることによって、そのレコードを効率的にソートすることができ、ソートされた複数のレコードからなる単一の組を生成することができる。
図2Cを参照すると、合成圧縮レコードファイル211は、何個の追加のレコードが届いたのか、およびどのくらいの頻度でそのレコードが処理されたのかに応じて、最初の圧縮レコードファイル202、追加の圧縮レコードファイル210、並びに、多数の追加の圧縮レコードファイル220,221,・・・を含む。各圧縮レコードファイルは、そのファイルの圧縮ブロック内の所与のレコードを検索するために使用できる「関連付けられたインデックスファイル」を有することができる。この例においては、圧縮レコードファイルの一つであるファイル220は、単一の圧縮ブロック(ブロック95)だけを有する程に小さく、したがって、必ずしも関係付けたインデックスファイルを必要としないが、そのブロック内のプライマリーキー値範囲および記憶装置内での格納場所を示す関連付けられたデータを有することができる。統合の後、異なる付加圧縮レコードファイルから復元されたレコードが処理され、単一の圧縮レコードファイル230が生成される。
単調に変化するよう割り当てられたプライマリーキーの場合、複数のレコードは、圧縮レコードファイル内だけではなく、あるファイルから次のファイルへと自動的にソートされるため、一回のインデックス検索において一つのレコードにアクセスするために複数のファイルを統合することは不要となる。図2Dを参照すると、システム100は、レコードのプライマリーキーとして到着順に割り当てられる連続した整数によって特定される複数のレコードの組250を受け取る。即ち、レコード250はプライマリーキー値によって自動的にソートされる。最初の圧縮レコードファイル252は、この例では、それぞれ100個のレコードを含む複数の圧縮ブロックを含んでおり、インデックスファイル254は、一つの圧縮ブロック内の第1のレコードのプライマリーキー値用のキーフィールド256と、対応する格納場所を特定する格納位置フィールド258とを含む。最初の圧縮レコードファイル252が生成された後に到着するレコードは、後にソートされる順序のプライマリーキー値を自動的に有することになるので、付加された圧縮レコードファイル260および対応するインデックスファイル262は、一回のインデックス検索に基づいて効率的にレコードへアクセスすることを可能ならしめるようにするために、統合される必要がない。例えば、インデックスファイル262は、インデックスファイル254に単に付加されることができ、いずれのインデックスも、圧縮レコードファイル252および260のいずれかにおいて一つの圧縮ブロックの場所を見つけるために共に検索することができる(例えば、1回の二分探索によって)。
合成圧縮レコードファイル261は、随意に、統合されてもよく、それにより、圧縮レコードファイル252の末尾に挿入された可能性のある不完全なブロックを排除することができる。このような統合においては、最初のファイル252内の最後の圧縮ブロックだけは解凍する必要がある場合があり、解凍されたレコードの複数の組を合体する代わりに、その解凍されたレコードの組を単純に鎖状につなぎあわせ、新たなソートされた複数のレコードからなる一つの組を形成することができる。その新たなソートされたレコードの組は100個のレコードからなる複数の組に分割されるものであり、分割された複数の組はその後再び圧縮されて新たな一つの圧縮レコードファイルを形成する。
連続した整数の合成プライマリーキー値を使用することの他の利点は、複数のレコードがプライマリーキー値に基づいて仕切られることになる場合、そのキー値間には欠番(とぎれ)がないので、その仕切りを自動的にバランスさせることができることである。
さまざまな技術のいずれかを使用して、レコードを更新(アップデート)し、一つの圧縮レコードファイルの中に存在し得る「レコードの以前のバージョン」のいずれをも無効にすることができる。場合によっては、レコードは、個別に取り除く必要がなく、或いは、個別に更新したりする必要がない(例えば、ログ、取引、電話)。これらの場合、古い複数のレコードは、例えば一つの圧縮レコードファイルの先頭から所定個数の圧縮ブロックのグループ単位で、取り除かれ且つ廃棄されるか、またはアーカイブ化される。場合によっては、圧縮レコードファイル全体を取り除くことができる。
場合によっては、一つのレコードの一つまたはそれ以上の値は、一つの圧縮ブロック内に格納するように新たな更新された(アップデートされた)レコードを追加することにより更新され、そのレコード(同じプライマリーキー値をもつ)の以前に受け取られたバージョンは、異なる圧縮ブロックに格納されたままであってもよい。従って、一つのレコードの多数のバージョンが存在する可能性があり、なんらかの技法が用いられることによって、どれがそのレコードの有効なバージョンであるのかが決定される。例えば、いずれかの圧縮レコードファイル内に現れる最終バージョン(最も最近に受け取られたバージョン)が暗黙的にまたは明示的に有効なバージョンとして示されることができ、他のいかなるバージョンも無効となる。この場合、所与のプライマリーキーをもつレコードに対する検索は、出現順であるそのプライマリーキーによって特定される最終レコードを見つけることを含むことができる。あるいは、一つのレコードは、そのレコードの以前のどのバージョンも有効ではないことを示す「レコードを無効にせよ」との書き込みによりレコードの新たなバージョンを加えることなく無効にすることができる。
システム100は、種々のプロセスによってレコード記憶装置106に格納された複数の圧縮レコードファイルへのアクセスを調停(mediate)する。種々の同期技術のいずれかを用いて、一つまたはそれ以上の圧縮レコードファイル内の複数の圧縮ブロックに対するアクセスを調停することができる。システム100は、ファイルを変更するいかなる処理(例えば、データを付加するか、または統合することによる処理)も互いに干渉しないようにすることを確実にする。例えば、統合実行中に新たなレコードが到着する場合、システム100は、その統合処理が終了するまで待機するか、または圧縮ブロックを生成して、それらを既存の圧縮ファイルに付加する前に、それらを暫定的に格納することができる。圧縮レコードファイルからの読取り処理は、完全なファイルの一部をロードすることができ、変更途中にある可能性のある不完全な部分を無視することができる。
システム100は、プライマリーキー以外のレコードの属性に基づく「レコードに対する検索」を可能にする追加データを格納する。一つの圧縮レコードファイルに対する二次的なインデックス(セカンダリーインデックス)は、一つのセカンダリキーとして指定される一つの属性値に基づいて、一つ又はそれ以上のプライマリーキー値を提供する情報を含む。一つのセカンダリキーとして指定される各属性は、対応する一つの二次的なインデックスに関連付けられ得る。例えば、各二次的なインデックスは、その関連付けられた二次的なキーによってソートされる行を有するテーブル(表)として構成できる。各行は、一つのセカンダリキーの値、およびそのセカンダリキー値を含む複数のレコードの一つまたはそれ以上のプライマリーキー値を含む。こうして、エージェントが所与のセカンダリキー値を含むいずれかのレコードの検索を開始する場合、システム100は、その一つ(又は複数)のレコードを含む一つ(又は複数)の圧縮ブロックに対する圧縮レコードファイルのインデックスの検索に使用するための一つ(又は複数)のプライマリーキーを検索(参照)する。二次的なインデックス(セカンダリインデックス)は大きくてもよく(例えば、レコードの個数と同程度)、場合によっては、圧縮レコードファイルを格納する記憶媒体に格納してもよい。
場合によっては、セカンダリキーとして指定される属性値は、各レコードに対して一意的であってもよい。その場合、セカンダリキーとプライマリーキー間には一対一の対応関係があり、インタフェースモジュール112は、あたかもエージェントに対するプライマリーキーであるかのようにそのセカンダリキーの属性を提示することができる。
新たな複数の圧縮レコードファイルが一つの合成圧縮レコードファイルに付加されるとき、二次的なインデックスのそれぞれが更新され得る。あるいは、一つのセカンダリキーが、各圧縮レコードファイルに対する個別の二次的なインデックスに関連付けられることができ、複数の圧縮レコードファイルを統合するときには、複数のその二次的なインデックスを単一のセカンダリインデックスへと統合することができる。
選別データ構造を、所与の属性値を含む一つのレコードが一つの圧縮ブロックに含まれる可能性を決定するため、一つの圧縮レコードファイルに関連付けることができる。例えば、選別データ構造としてオーバーラップエンコーデッドシグネチャ(OES)を使用すると、システム100は、所与のキー値(プライマリーキーまたはセカンダリキー)をもつ一つのレコードが確実に存在していない(「否定的」結果)か、またはその所与のキー値をもつ一つのレコードが存在している可能性がある(「肯定的」結果)か否かを決定できるようになる。肯定的結果に対して、システムは、適切な圧縮ブロックにアクセスし、レコードを取り出すか(「確定された肯定的」結果)、または、レコードが存在していないと決定する(「誤った肯定的」結果)。否定的結果に対して、システムは、存在していないレコードを求めて圧縮ブロックを解凍して検索する時間を費やすことを要するまでもなく、エージェントに対して否定的結果を与えることができる。OESのサイズ(大きさ)は、どのくらいの頻度で肯定的結果が誤った肯定となるのかに影響を及ぼすが、一般にOESのサイズがより大きいほどより少ない誤った肯定的結果をもたらす。所与のOESサイズに関しては、一般に、別個で可能性のあるキー値が少ないほど、より少ない誤った肯定をもたらすことになる。
その他の種類の選別データ構造も可能である。所与のプライマリまたはセカンダリのキーに対する選別データ構造がそれぞれの圧縮レコードファイルに対して与えられ得る。あるいは、一つのキーに対する一つの選別データ構造が各圧縮ブロックに対して与えられ得る。
図3Aと3Bは、代表的なOES選別データ構造のさまざまなサイズ(列)と、圧縮レコードファイル内において表現されるさまざまな数の異なったキー値(行)と、に対する、一つのキー値に対して誤った肯定的結果が得られる確率値を提供する表を示す。ある一つのOESについては、そのOESのサイズおよび異なったキー値の数に依存して、一つを超えるキー値が存在することが、そのOESの同じ部分において示されていて、これらのキー値のうちの一つに対し、残りのキー値が存在している場合には、一つの誤った肯定的結果がもたらされ得る。この代表的なOESのサイズは、210=1024ビット(図3Aの表)から228=256メガビット(図3Bの表)まで変化する。異なったキー値の数は100(図3Aの表)から100,000,000(図3Bの表)まで変化する。どちらの表においても、右上の空白のセルは0%に相当し、左下の空白のセルは100%に相当する。誤った肯定の確率が低い(例えば、ゼロに近い)セルに対しては、選別データ構造は、適切な選別を達成するために必要とされるよりも大きい可能性がある。誤った肯定の確率が大きい(例えば、50%超)セルに対しては、選別データ構造は、適切な選別を達成するためには小さすぎる可能性がある。この例は、一つのキー値あたり4個のハッシュコードを使用するOESを生成する技術に相当する。OES選別データ構造の他の例は、所与の数の異なるキーに対する誤った肯定の確率を有する別の表をもたらすであろう。
一つの圧縮レコードファイル内で表される異なったキー値の数は分からない場合があるので、システム100は、そのファイルが生成されたレコードの個数に基づいて、その圧縮レコードファイルに対する選別データ構造のサイズを選択することができる。そのサイズを選択する際、誤った肯定の確率を減少させることと、その選別データ構造を格納するために必要な記憶領域との間には、二律背反的な関係がある。この二律背反的な関係の一つのファクターは、欠番となっているキー値を検索する可能性である。検索されるキー値の大部分が解凍されたレコード内に存在している可能性が高い場合、選別データ構造は全く必要ではない可能性がある。キー値が見つけられないことが十分に起こり得る場合には、比較的大きな選別データ構造に対する記憶領域を割り当てることにより、かなりの時間を節約することができる。
一つの圧縮レコードファイルに関係付けられた選別データ構造のサイズは、そのファイルがレコードの初期データベースまたは統合された大容量データベースに対応するのか、あるいは大容量データベースに対するより小容量の更新(アップデート)に対応するのか、という点に依存し得る。各更新(アップデート)内には一般により少ない数の異なったキー値が存在するので、定期更新時に付加される圧縮レコードファイルに対しては比較的小さなサイズの選別データ構造が使用され得る。また、多数の更新の後には圧縮レコードファイルの個数が多くなるので、小さなサイズにすることにより、必要とされる格納領域を減少することができる。選別データ構造のサイズは、予想されるレコードおよび/または更新における異なったキー値の個数、ならびに、予想される更新の回数に基づくことができる。例えば、更新されるファイルが、24時間の期間において5分毎に付加される場合、一日の終わりには288個の圧縮レコードファイルができることになる。少なくとも一つの誤った肯定の結果の確率は、図3Aおよび図3Bの表から得られる適切な値の288倍となる(異なる更新に対する結果は独立しているものと仮定する)。統合の後には、異なるキー値の個数は顕著に増加する場合があるため、その統合された圧縮レコードファイルに対してはより大きな選別データ構造が適切であろう。
一つの圧縮レコードファイルは、プライマリーキーおよび各セカンダリキーに対して、あるいはこれらキーの一部に対して、一つの選別データ構造を持つことができる。例えば、システム100は、プライマリーキー、及び、レコードを検索する際に最も高い頻度で使用されると予想されるセカンダリキーだけに対し、一つの選別データ構造を提供してもよい。
図4Aは、所与のプライマリーキー値をもつ一つまたはそれ以上のレコードを検索するための手順400のフローチャートを示す。手順400は、402において最初の圧縮レコードファイルに関連付けられた選別データ構造があるか否かを判定する。データ構造がある場合、手順400は、404において選別データ構造の処理により、肯定的または否定的結果のいずれかを得る。その所与のプライマリーキー値が選別を通過しない(否定的結果である)場合、手順400は、406において次の圧縮レコードファイルをチェックし、それが存在するのであれば、そのファイルに対して処理を繰り返す。その所与のプライマリーキー値が選別を通過する(肯定的結果である)場合、手順400は、408においてその所与のプライマリーキー値をもつ一つのレコードを含んでいる可能性がある一つのブロックに対するインデックスを検索する。いかなる選別データ構造も圧縮レコードファイルに関連付けられない場合、手順400は、408において、選別を実施せずにインデックスを検索する。
408においてインデックスを検索した後、410において前記所与のプライマリーキー値を含むキー値範囲に関連付けられた圧縮ブロックが見つかった場合、手順400は、412においてインデックスの入り口よって特定される位置にあるのブロックを解凍し、414において、前記所与のプライマリーキーをもつ一つまたはそれ以上のレコードを求めて、生じたレコードを検索する。手順は、次いで、416において次の圧縮レコードファイルをチェックし、それが存在するのであれば、そのファイルに対して処理を繰り返す。圧縮ブロックが一つも見つからない場合(例えば、前記所与のプライマリーキー値が、最初のブロック内の最小のキー値より小さいか、または最終のブロック内の最大のキー値より大きい場合)、手順400は、416において次の圧縮レコードファイルをチェックし、それが存在しているのであれば、そのファイルに対して処理を繰り返す。
図4Bは、所与の一つのセカンダリキー値をもつ一つまたはそれ以上のレコードを検索するための手順450のフローチャートを示す。手順450は、452において最初の圧縮レコードファイルに関連付けられた選別データ構造があるか否かを判定する。データ構造がある場合、手順450は、454において、選別データ構造の処理により肯定的または否定的結果のいずれかを得る。前記所与のセカンダリキー値が選別を通過しない(否定的結果である)場合、手順450は、456において、次の圧縮レコードファイルをチェックし、それが存在するのであれば、そのファイルに対して処理を繰り返す。前記所与のセカンダリキー値が選別を通過する(肯定的結果である)場合、手順450は、458において前記所与のセカンダリキーを含むレコードに対応するプライマリーキーを調べる。いかなる選別データ構造も圧縮レコードファイルに関連付けられていない場合、手順450は、458において、選別を実施せずにプライマリーキーを調べる。
見つかったプライマリーキーの各々に対して、手順450は、460において所与のプライマリーキー値をもつ一つのレコードを含む可能性がある一つのブロックに対するインデックスを検索する。460においてインデックスを検索した後、462において前記所与のプライマリーキー値を含むキー値範囲に関連付けられた圧縮ブロックが見つかった場合、手順450は、464においてインデックスの入り口によって特定される位置にあるブロックを解凍し、466において前記所与のプライマリーキーをもつ一つまたはそれ以上のレコードを求めて、生じたレコードを検索する。その後、手順は、468において次の圧縮レコードファイルをチェックし、それが存在するのであれば、そのファイルに対して処理を繰り返す。圧縮ブロックが見つからない場合、手順450は、468において次の圧縮レコードファイルをチェックし、それが存在するのであれば、そのファイルに対して処理を繰り返す。
所与のプライマリまたはセカンダリキーとともに見つけられた多数のレコードは、手順400または手順450において出現順に戻されることができ、または、場合により、レコードの最後のバージョンだけが戻される。
上述のレコード記憶装置と検索手法は、コンピュータ上で実行されるソフトウェアを使用して実現することができる。例えば、ソフトウェアは、一つまたはそれ以上のプログラムされた又はプログラム可能なコンピュータシステム(分散型、クライアント/サーバ、グリッド型など、さまざまなアーキテクチャに基づくもの)上で実行される一つまたはそれ以上のコンピュータプログラムにおいて手順を形成する。それらのコンピュータシステムのそれぞれは、少なくとも一つのプロセッサ、少なくとも一つのデータ格納システム(揮発性、不揮発性のメモリおよび/または記憶素子を含む)、少なくとも一つの入力装置またはポート、並びに、少なくとも一つの出力装置またはポート、を含む。ソフトウェアは、例えば、計算グラフのデザインと構成とに関連する他のサービスを提供する、より大きなプログラムの一つ以上のモジュールを形成していてもよい。グラフのノードおよび構成要素は、コンピュータ読取り可能記録媒体に格納されたデータ構造として、またはデータ保存場所に格納されたデータモデルと整合するその他の組織化されたデータとして実装することができる。
ソフトウェアは、汎用の、または特定目的のためのプログラム可能なコンピュータによって読取り可能なCD−ROMのような記録媒体で提供されてもよいし、またはそれが実行されるコンピュータに対してネットワーク経由で配布してもよい(伝播信号にコード化される)。その機能のすべては、特定目的のためのコンピュータ上か、またはコプロセッサのように、特殊目的のためのハードウェアを使用して実行される。ソフトウェアは、ソフトウェアによって指定される計算の異なる部分が異なるコンピュータによって実施されるような分散された方法で実装してもよい。記憶媒体または装置をコンピュータシステムが読み込んで、本明細書に記載された手順を実施するとき、コンピュータを構成し操作するために、そのような各コンピュータプログラムは、好ましくは、汎用または特定目的のプログラム可能なコンピュータで読取り可能な記憶媒体または装置に格納またはダウンロードされる(例えば、ソリッドステートのメモリもしくは媒体、または磁気的もしくは光学的媒体)。本発明のシステムは、コンピュータプログラムによって構成され、コンピュータ読取り可能記憶媒体として実装してもよい。そのように構成された記憶媒体によって、コンピュータシステムを特定かつ所定の方法で動作させて本明細書に記載する機能を実現する。
本発明の多くの実施の形態について説明した。しかしながら、本発明の趣旨と範囲から逸脱することなくさまざまな改変を行えることは言うまでもない。例えば、上記手順のいくつかは、独立した順序であってもよく、したがって説明とは異なる順序で実施することができる。
上記説明は、付帯する特許請求の範囲によって規定される本発明の範囲を示すことを意図しており、その範囲を制限するものではない。例えば、上記の機能の多くの手順は、全体の処理に実質的に影響を及ぼすことなく、異なる順序で実施してもよい。その他の実施の形態は、後述する特許請求の範囲内にある。

Claims (93)

  1. コンピュータにより実行される、データを管理する方法であって、
    コンピュータが、
    それぞれが一つのキー値により特定される複数のデータユニットであって個別にアクセス可能な複数のデータユニット、を受け取るステップ、
    一つ又はそれ以上のデータブロックを含む第1の組であってその少なくとも幾つかのブロックのそれぞれは複数の前記データユニットを結合することにより生成されている一つ又はそれ以上のデータブロックを含む第1の組、を格納するステップ
    前記一つ又はそれ以上のデータブロックを含む第1の組のそれぞれに対する入り口を含む第1のインデックスを提供するステップであって、前記入り口の一つまたはそれ以上は、与えられたキー値に基づいて、その与えられたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を見つけ出すことを可能にするステップ、
    一つ又はそれ以上のデータブロックを含む第2の組を格納するステップであって、前記第2の組の少なくともいくつかのブロックのそれぞれは、前記第1の組のブロックを格納した後に受け取られる複数のデータユニットから生成されるステップ、
    前記第1と第2の組のブロックを処理して、それらのブロックが生成された複数のデータユニットを復元するステップ、
    前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとを前記データユニットに対応するキー値に応じた順序にしたがってソートして一組のソートされたデータユニットを生成するステップ、および
    一つまたはそれ以上のデータブロックを含む第3の組であってその第3の組の中の少なくともいくつかのブロックの各々が前記ソートされた複数のデータユニットを結合することによって生成される第3の組、を生成するステップ、を実行する、方法。
  2. 請求項1に記載の方法において、
    前記データブロックの少なくともいくつかが、前記キー値に応じて規定された順序に基づいて前記複数のデータユニットを結合することによって生成される、方法。
  3. 請求項2に記載の方法において、
    前記規定された順序はアルファベット順であることを特徴とする方法。
  4. 請求項2に記載の方法において、
    前記規定された順序は数値順であることを特徴とする方法。
  5. 請求項2に記載の方法において、
    それぞれのブロックは複数のデータユニットのそれぞれの組から生成され、前記組は前記規定された順序にしたがって重複することのないキー値範囲に対応している、方法。
  6. 請求項1に記載の方法において、
    前記第1のインデックス内の一つ又はそれ以上の入り口は、対応する一つのブロックが生成された複数のデータユニットに対応するキー値範囲を特定する、方法。
  7. 請求項6に記載の方法において、
    前記キー値範囲は、前記キー値範囲の少なくとも一つの極値を含む情報によって特定される、方法。
  8. 請求項7に記載の方法において、
    前記キー値範囲は、前記第1のインデックスにおける第1の入り口からの第1の極値および前記第1のインデックスにおける第2の入り口からの第2の極値によって特定される、方法。
  9. 請求項6に記載の方法において、
    前記キー値範囲は、前記対応するブロックが生成された前記複数のデータユニットに関連付けられた前記複数のキー値の少なくとも一つの極値を含む情報によって特定される、方法。
  10. 請求項9に記載の方法において、
    前記キー値範囲は、前記第1のインデックスにおける第1の入り口からの第1の極値および前記第1のインデックスにおける第2の入り口からの第2の極値によって特定される、方法。
  11. 請求項6に記載の方法において、
    前記第1のインデックスにおける少なくともいくつかの前記入り口のそれぞれは、前記対応するブロックの格納場所を特定する、方法。
  12. 請求項1に記載の方法において、
    複数の前記データユニットを結合させることによって一つのブロックを生成させるステップは、複数のデータユニットの一組を圧縮するステップを含む、方法。
  13. 請求項12に記載の方法において、
    複数のデータユニットの一組を圧縮することによって生成された一つのブロックを解凍するステップは、前記ブロック全体を処理するステップを含む、方法。
  14. 請求項1に記載の方法において、
    前記データユニットは、対応する領域に関連付けられた一つまたはそれ以上の値をそれぞれが有するレコードである、方法。
  15. 請求項14に記載の方法において、
    受け取った一つのデータユニットを特定する一つのキー値は、そのデータユニットが受け取られる前にそのデータユニットに関係付けられた一つまたはそれ以上の領域に対応している、方法。
  16. 請求項14に記載の方法において、
    受け取った一つのデータユニットを特定するキー値は、そのデータユニットが受け取られた後にそのデータユニットに割り当てられる、方法。
  17. 請求項16に記載の方法において、
    キー値は単調変化するように割り当てられる、方法。
  18. 請求項17に記載の方法において、
    キー値は連続的に変化するように割り当てられる、方法。
  19. 請求項に記載の方法において、
    前記ブロックの第1の組はファイル内に格納される、方法。
  20. 請求項に記載の方法であって、
    前記第2の組のうちの少なくともいくつかのブロックは、複数のデータユニットの一組を圧縮することによって生成される、方法。
  21. 請求項に記載の方法であって、
    前記第2の組のうちのブロックの各々に対する入り口を含む第2のインデックスを提供するステップをさらに含み、前記第2のインデックスの一つまたはそれ以上の前記入り口は、提供された一つのキー値に基づいて、前記提供されたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を見つけ出すことを可能にする、方法。
  22. 請求項に記載の方法において、
    前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとをソートすることは、これらのデータユニットに対応するキー値に応じた順序にしたがって前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとを結合して一組のソートされたデータユニットを生成することを含む、方法。
  23. 請求項に記載の方法であって、
    前記第3の組の中のブロックの各々に対する入り口を含む前記第3の組に対する第3のインデックスを提供するステップをさらに含み、一つ又はそれ以上の前記入り口が、提供されたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その提供されたキー値に基づいて、見つけ出すことを可能にする、方法。
  24. 請求項1に記載の方法であって、
    前記複数のブロックが生成された前記複数のデータユニット中に、所与の一つの属性値を含む一つのデータユニットが含まれていたという可能性を決定するために、前記格納された複数のブロックに関連づけられた一つの選別データ構造を提供するステップをさらに含む、方法。
  25. 請求項24に記載の方法において、
    前記属性値は、一つのデータユニットを特定する一つのキー値を含むことを特徴とする方法。
  26. 請求項24に記載の方法において、
    前記選別データ構造は、所与の属性値に関し、前記所与の属性値を含んでいる一つのデータユニットが含まれていなかったことが確実であるのか、または、前記所与の属性値を含んでいる一つのデータユニットが含まれていた可能性があるのかを決定することを特徴とする方法。
  27. 請求項26に記載の方法において、
    前記所与の属性値を含んでいる一つのデータユニットが含まれていなかったときに同データユニットが含まれていた可能性があると前記選別データ構造が決定する確率は、前記データ構造の大きさに依存することを特徴とする方法。
  28. 請求項27に記載の方法であって、
    前記複数のブロックが生成された複数のデータユニットの個数に基づいて前記選別データ構造の大きさを選択するステップをさらに含む、方法。
  29. 請求項1に記載の方法であって、
    一つの所与の属性値を含む複数のデータユニットの一つまたはそれ以上のキー値を決定するためのインデックスであって、前記第1の組内の前記格納された複数のブロックに関連付けられた二次的なインデックス、を提供するステップをさらに含む方法。
  30. 請求項29に記載の方法において、
    前記複数のデータユニットは、対応する複数の領域に関係付けられた一つまたはそれ以上の値をそれぞれが有する複数のレコードであり、一つのレコードを特定する前記キー値は一つのプライマリーキー値に対応し、前記二次的なインデックスに関連付けられた前記属性値は一つのセカンダリキー値に対応する、方法。
  31. 請求項29に記載の方法において、
    前記二次的なインデックスは、前記キー値以外であって前記複数のデータユニット内の複数の属性値によってソートされた行を有する表を含む、方法。
  32. データを管理するシステムであって、
    個別にアクセス可能な複数のデータユニットであってそれぞれが一つのキー値により特定される複数のデータユニット、を受け取る手段、
    一つ又はそれ以上のデータブロックを含む第1の組であってその少なくとも幾つかのブロックのそれぞれが複数の前記データユニットを結合することによって生成されている一つ又はそれ以上のデータブロックを含む第1の組、を格納する手段
    前記一つ又はそれ以上のデータブロックを含む第1の組のそれぞれに対する入り口を含む第1のインデックスを提供する手段であって、前記入り口の一つまたはそれ以上は、与えられたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その提供されたキー値に基づいて、見つけ出すことを可能にする手段、
    一つ又はそれ以上のデータブロックを含む第2の組を格納する手段であって、前記第2の組の少なくともいくつかのブロックのそれぞれは、前記第1の組のブロックを格納した後に受け取られる複数のデータユニットから生成される手段、
    前記第1と第2の組のブロックを処理して、それらのブロックが生成された複数のデータユニットを復元する手段、
    前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとを前記データユニットに対応するキー値に応じた順序にしたがってソートして一組のソートされたデータユニットを生成する手段、および
    一つ又はそれ以上のデータブロックを含む第3の組であって、その第3の組の中の少なくともいくつかのブロックの各々が前記ソートされた複数のデータユニットを結合することによって生成される第3の組、を生成する手段、を含むことを特徴とするデータを管理するシステム。
  33. データを管理するために、コンピュータ読取り可能記録媒体に格納されるコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータが、
    個別にアクセス可能な複数のデータユニットであってそれぞれが一つのキー値によって特定される複数のデータユニット、を受け取り、
    一つ又はそれ以上のデータブロックを含む第1の組であってその少なくとも幾つかのブロックのそれぞれが複数の前記データユニットを結合することによって生成されている一つ又はそれ以上のデータブロックを含む第1の組、を格納し
    前記一つ又はそれ以上データブロックを含む第1の組のそれぞれに対する入り口を含む第1のインデックスを提供し、前入り口の一つまたはそれ以上は、与えられたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その与えられたキー値に基づいて見つけ出すことを可能にし、
    一つ又はそれ以上のデータブロックを含む第2の組を格納し、前記第2の組の少なくともいくつかのブロックのそれぞれは、前記第1のブロックの組を格納した後に受け取られる複数のデータユニットから生成され、
    前記第1と第2の組のブロックを処理して、それらのブロックが生成された複数のデータユニットを復元し、
    前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとを前記データユニットに対応するキー値に応じた順序にしたがってソートして一組のソートされたデータユニットを生成し、および
    一つまたはそれ以上のデータブロックを含む第3の組であってその第3の組の中の少なくともいくつかのブロックの各々が前記ソートされた複数のデータユニットを結合することによって生成される第3の組、を生成する、ことを実行させる命令を含むことを特徴とする、
    コンピュータプログラム。
  34. 請求項32に記載のシステムにおいて、
    前記データブロックの少なくともいくつかが、前記キー値に応じて規定された順序に基づいて前記複数のデータユニットを結合することによって生成される、システム。
  35. 請求項34に記載のシステムにおいて、
    前記規定された順序はアルファベット順であることを特徴とするシステム。
  36. 請求項34に記載のシステムにおいて、
    前記規定された順序は数値順であることを特徴とするシステム。
  37. 請求項34に記載のシステムにおいて、
    それぞれのブロックは複数のデータユニットのそれぞれの組から生成され、前記組は前記規定された順序にしたがって重複することのないキー値範囲に対応している、システム。
  38. 請求項32に記載のシステムにおいて、
    前記第1のインデックス内の一つ又はそれ以上の入り口は、対応する一つのブロックが生成された複数のデータユニットに対応するキー値範囲を特定する、システム。
  39. 請求項38に記載のシステムにおいて、
    前記キー値範囲は、前記キー値範囲の少なくとも一つの極値を含む情報によって特定される、システム。
  40. 請求項39に記載のシステムにおいて、
    前記キー値範囲は、前記第1のインデックスにおける第1の入り口からの第1の極値および前記第1のインデックスにおける第2の入り口からの第2の極値によって特定される、システム。
  41. 請求項38に記載のシステムにおいて、
    前記キー値範囲は、前記対応するブロックが生成された前記複数のデータユニットに関連付けられた前記複数のキー値の少なくとも一つの極値を含む情報によって特定される、システム。
  42. 請求項41に記載のシステムにおいて、
    前記キー値範囲は、前記第1のインデックスにおける第1の入り口からの第1の極値および前記第1のインデックスにおける第2の入り口からの第2の極値によって特定される、システム。
  43. 請求項38に記載のシステムにおいて、
    前記第1のインデックスにおける少なくともいくつかの前記入り口のそれぞれは、前記対応するブロックの格納場所を特定する、システム。
  44. 請求項32に記載のシステムにおいて、
    複数の前記データユニットを結合させることによって一つのブロックを生成させる手段は、複数のデータユニットの一組を圧縮する手段を含む、システム。
  45. 請求項44に記載のシステムにおいて、
    複数のデータユニットの一組を圧縮することによって生成された一つのブロックを解凍する手段は、前記ブロック全体を処理する処理を含む、システム。
  46. 請求項32に記載のシステムにおいて、
    前記データユニットは、対応する領域に関連付けられた一つまたはそれ以上の値をそれぞれが有するレコードである、システム。
  47. 請求項46に記載のシステムにおいて、
    受け取った一つのデータユニットを特定する一つのキー値は、そのデータユニットが受け取られる前にそのデータユニットに関係付けられた一つまたはそれ以上の領域に対応している、システム。
  48. 請求項46に記載のシステムにおいて、
    受け取った一つのデータユニットを特定するキー値は、そのデータユニットが受け取られた後にそのデータユニットに割り当てられる、システム。
  49. 請求項48に記載のシステムにおいて、
    キー値は単調変化するように割り当てられる、システム。
  50. 請求項49に記載のシステムにおいて、
    キー値は連続的に変化するように割り当てられる、システム。
  51. 請求項32に記載のシステムにおいて、
    前記ブロックの第1の組はファイル内に格納される、システム。
  52. 請求項32に記載のシステムであって、
    前記第2の組のうちの少なくともいくつかのブロックは、複数のデータユニットの一組を圧縮することによって生成される、システム。
  53. 請求項32に記載のシステムであって、
    前記第2の組のうちのブロックの各々に対する入り口を含む第2のインデックスを提供する手段をさらに含み、前記第2のインデックスの一つまたはそれ以上の前記入り口は、提供された一つのキー値に基づいて、前記提供されたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を見つけ出すことを可能にする、システム。
  54. 請求項32に記載のシステムにおいて、
    前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとをソートすることは、これらのデータユニットに対応するキー値に応じた順序にしたがって前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとを結合して一組のソートされたデータユニットを生成することを含む、システム。
  55. 請求項32に記載のシステムであって、
    前記第3の組の中のブロックの各々に対する入り口を含む前記第3の組に対する第3のインデックスを提供する手段をさらに含み、一つ又はそれ以上の前記入り口が、提供されたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その提供されたキー値に基づいて、見つけ出すことを可能にする、システム。
  56. 請求項32に記載のシステムであって、
    前記複数のブロックが生成された前記複数のデータユニット中に、所与の一つの属性値を含む一つのデータユニットが含まれていたという可能性を決定するために、前記格納された複数のブロックに関連づけられた一つの選別データ構造を提供する手段をさらに含む、システム。
  57. 請求項56に記載のシステムにおいて、
    前記属性値は、一つのデータユニットを特定する一つのキー値を含むことを特徴とするシステム。
  58. 請求項56に記載のシステムにおいて、
    前記選別データ構造は、所与の属性値に関し、前記所与の属性値を含んでいる一つのデータユニットが含まれていなかったことが確実であるのか、または、前記所与の属性値を含んでいる一つのデータユニットが含まれていた可能性があるのかを決定することを特徴とするシステム。
  59. 請求項58に記載のシステムにおいて、
    前記所与の属性値を含んでいる一つのデータユニットが含まれていなかったときに同データユニットが含まれていた可能性があると前記選別データ構造が決定する確率は、前記データ構造の大きさに依存することを特徴とするシステム。
  60. 請求項59に記載のシステムであって、
    前記複数のブロックが生成された複数のデータユニットの個数に基づいて前記選別データ構造の大きさを選択する手段をさらに含む、システム。
  61. 請求項32に記載のシステムであって、
    一つの所与の属性値を含む複数のデータユニットの一つまたはそれ以上のキー値を決定するためのインデックスであって、前記第1の組内の前記格納された複数のブロックに関連付けられた二次的なインデックス、を提供する手段をさらに含むシステム。
  62. 請求項32に記載のシステムにおいて、
    前記複数のデータユニットは、対応する複数の領域に関係付けられた一つまたはそれ以上の値をそれぞれが有する複数のレコードであり、一つのレコードを特定する前記キー値は一つのプライマリーキー値に対応し、前記二次的なインデックスに関連付けられた前記属性値は一つのセカンダリキー値に対応する、システム。
  63. 請求項61に記載のシステムにおいて、
    前記二次的なインデックスは、前記キー値以外であって前記複数のデータユニット内の複数の属性値によってソートされた行を有する表を含む、システム。
  64. 請求項33に記載のコンピュータプログラムにおいて、
    前記データブロックの少なくともいくつかが、前記キー値に応じて規定された順序に基づいて前記複数のデータユニットを結合することによって生成される、コンピュータプログラム。
  65. 請求項64に記載のコンピュータプログラムにおいて、
    前記規定された順序はアルファベット順であることを特徴とするコンピュータプログラム。
  66. 請求項64に記載のコンピュータプログラムにおいて、
    前記規定された順序は数値順であることを特徴とするコンピュータプログラム。
  67. 請求項64に記載のコンピュータプログラムにおいて、
    それぞれのブロックは複数のデータユニットのそれぞれの組から生成され、前記組は前記規定された順序にしたがって重複することのないキー値範囲に対応している、コンピュータプログラム。
  68. 請求項33に記載のコンピュータプログラムにおいて、
    前記第1のインデックス内の一つ又はそれ以上の入り口は、対応する一つのブロックが生成された複数のデータユニットに対応するキー値範囲を特定する、コンピュータプログラム。
  69. 請求項68に記載のコンピュータプログラムにおいて、
    前記キー値範囲は、前記キー値範囲の少なくとも一つの極値を含む情報によって特定される、コンピュータプログラム。
  70. 請求項69に記載のコンピュータプログラムにおいて、
    前記キー値範囲は、前記第1のインデックスにおける第1の入り口からの第1の極値および前記第1のインデックスにおける第2の入り口からの第2の極値によって特定される、コンピュータプログラム。
  71. 請求項68に記載のコンピュータプログラムにおいて、
    前記キー値範囲は、前記対応するブロックが生成された前記複数のデータユニットに関連付けられた前記複数のキー値の少なくとも一つの極値を含む情報によって特定される、コンピュータプログラム。
  72. 請求項71に記載のコンピュータプログラムにおいて、
    前記キー値範囲は、前記第1のインデックスにおける第1の入り口からの第1の極値および前記第1のインデックスにおける第2の入り口からの第2の極値によって特定される、コンピュータプログラム。
  73. 請求項68に記載のコンピュータプログラムにおいて、
    前記第1のインデックスにおける少なくともいくつかの前記入り口のそれぞれは、前記対応するブロックの格納場所を特定する、コンピュータプログラム。
  74. 請求項33に記載のコンピュータプログラムにおいて、
    複数の前記データユニットを結合させることによって一つのブロックを生成させる処理は、複数のデータユニットの一組を圧縮する処理を含む、コンピュータプログラム。
  75. 請求項74に記載のコンピュータプログラムにおいて、
    複数のデータユニットの一組を圧縮することによって生成された一つのブロックを解凍する処理は、前記ブロック全体を処理する処理を含む、コンピュータプログラム。
  76. 請求項33に記載のコンピュータプログラムにおいて、
    前記データユニットは、対応する領域に関連付けられた一つまたはそれ以上の値をそれぞれが有するレコードである、コンピュータプログラム。
  77. 請求項76に記載のコンピュータプログラムにおいて、
    受け取った一つのデータユニットを特定する一つのキー値は、そのデータユニットが受け取られる前にそのデータユニットに関係付けられた一つまたはそれ以上の領域に対応している、コンピュータプログラム。
  78. 請求項76に記載のコンピュータプログラムにおいて、
    受け取った一つのデータユニットを特定するキー値は、そのデータユニットが受け取られた後にそのデータユニットに割り当てられる、コンピュータプログラム。
  79. 請求項78に記載のコンピュータプログラムにおいて、
    キー値は単調変化するように割り当てられる、コンピュータプログラム。
  80. 請求項79に記載のコンピュータプログラムにおいて、
    キー値は連続的に変化するように割り当てられる、コンピュータプログラム。
  81. 請求項33に記載のコンピュータプログラムにおいて、
    前記ブロックの第1の組はファイル内に格納される、コンピュータプログラム。
  82. 請求項33に記載のコンピュータプログラムであって、
    前記第2の組のうちの少なくともいくつかのブロックは、複数のデータユニットの一組を圧縮することによって生成される、コンピュータプログラム。
  83. 請求項33に記載のコンピュータプログラムであって、
    前記第2の組のうちのブロックの各々に対する入り口を含む第2のインデックスを提供する処理をさらに含み、前記第2のインデックスの一つまたはそれ以上の前記入り口は、提供された一つのキー値に基づいて、前記提供されたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を見つけ出すことを可能にする、コンピュータプログラム。
  84. 請求項33に記載のコンピュータプログラムにおいて、
    前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとをソートすることは、これらのデータユニットに対応するキー値に応じた順序にしたがって前記第1の組から復元されたデータユニットと前記第2の組から復元されたデータユニットとを結合して一組のソートされたデータユニットを生成することを含む、コンピュータプログラム。
  85. 請求項33に記載のコンピュータプログラムであって、
    前記第3の組の中のブロックの各々に対する入り口を含む前記第3の組に対する第3のインデックスを提供する処理をさらに含み、一つ又はそれ以上の前記入り口が、提供されたキー値を含むキー値範囲に対応する複数のデータユニットを含む一つのブロックの位置を、その提供されたキー値に基づいて、見つけ出すことを可能にする、コンピュータプログラム。
  86. 請求項33に記載のコンピュータプログラムであって、
    前記複数のブロックが生成された前記複数のデータユニット中に、所与の一つの属性値を含む一つのデータユニットが含まれていたという可能性を決定するために、前記格納された複数のブロックに関連づけられた一つの選別データ構造を提供する処理をさらに含む、コンピュータプログラム。
  87. 請求項86に記載のコンピュータプログラムにおいて、
    前記属性値は、一つのデータユニットを特定する一つのキー値を含むことを特徴とするコンピュータプログラム。
  88. 請求項86に記載のコンピュータプログラムにおいて、
    前記選別データ構造は、所与の属性値に関し、前記所与の属性値を含んでいる一つのデータユニットが含まれていなかったことが確実であるのか、または、前記所与の属性値を含んでいる一つのデータユニットが含まれていた可能性があるのかを決定することを特徴とするコンピュータプログラム。
  89. 請求項88に記載のコンピュータプログラムにおいて、
    前記所与の属性値を含んでいる一つのデータユニットが含まれていなかったときに同データユニットが含まれていた可能性があると前記選別データ構造が決定する確率は、前記データ構造の大きさに依存することを特徴とするコンピュータプログラム。
  90. 請求項89に記載のコンピュータプログラムであって、
    前記複数のブロックが生成された複数のデータユニットの個数に基づいて前記選別データ構造の大きさを選択する処理をさらに含む、コンピュータプログラム。
  91. 請求項33に記載のコンピュータプログラムであって、
    一つの所与の属性値を含む複数のデータユニットの一つまたはそれ以上のキー値を決定するためのインデックスであって、前記第1の組内の前記格納された複数のブロックに関連付けられた二次的なインデックス、を提供する処理をさらに含むコンピュータプログラム。
  92. 請求項91に記載のコンピュータプログラムにおいて、
    前記複数のデータユニットは、対応する複数の領域に関係付けられた一つまたはそれ以上の値をそれぞれが有する複数のレコードであり、一つのレコードを特定する前記キー値は一つのプライマリーキー値に対応し、前記二次的なインデックスに関連付けられた前記属性値は一つのセカンダリキー値に対応する、コンピュータプログラム。
  93. 請求項91に記載のコンピュータプログラムにおいて、
    前記二次的なインデックスは、前記キー値以外であって前記複数のデータユニット内の複数の属性値によってソートされた行を有する表を含む、コンピュータプログラム。
JP2009535408A 2006-11-01 2007-10-29 個別にアクセス可能なデータユニットの格納管理 Active JP5377318B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/555,458 US8229902B2 (en) 2006-11-01 2006-11-01 Managing storage of individually accessible data units
US11/555,458 2006-11-01
PCT/US2007/082786 WO2008057815A2 (en) 2006-11-01 2007-10-29 Managing storage of individually accessible data units

Publications (2)

Publication Number Publication Date
JP2010508606A JP2010508606A (ja) 2010-03-18
JP5377318B2 true JP5377318B2 (ja) 2013-12-25

Family

ID=39331642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009535408A Active JP5377318B2 (ja) 2006-11-01 2007-10-29 個別にアクセス可能なデータユニットの格納管理

Country Status (9)

Country Link
US (2) US8229902B2 (ja)
EP (1) EP2080121B1 (ja)
JP (1) JP5377318B2 (ja)
KR (1) KR101400816B1 (ja)
CN (2) CN102945242B (ja)
AU (1) AU2007317574B2 (ja)
CA (4) CA2941074C (ja)
HK (1) HK1181484A1 (ja)
WO (1) WO2008057815A2 (ja)

Families Citing this family (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747733B2 (en) 2004-10-25 2010-06-29 Electro Industries/Gauge Tech Power meter having multiple ethernet ports
US7885932B2 (en) 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
US8229902B2 (en) 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US20090287986A1 (en) * 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units
US10747952B2 (en) 2008-09-15 2020-08-18 Palantir Technologies, Inc. Automatic creation and server push of multiple distinct drafts
US9104695B1 (en) 2009-07-27 2015-08-11 Palantir Technologies, Inc. Geotagging structured data
CN102687144B (zh) * 2009-12-23 2017-02-15 起元技术有限责任公司 管理查询
WO2011112187A1 (en) * 2010-03-10 2011-09-15 Ab Initio Technology Llc Managing storage of individually accessible data units
US8799240B2 (en) * 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US20130013605A1 (en) 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
US9280532B2 (en) 2011-08-02 2016-03-08 Palantir Technologies, Inc. System and method for accessing rich objects via spreadsheets
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US20150356104A9 (en) * 2011-10-04 2015-12-10 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US10862784B2 (en) 2011-10-04 2020-12-08 Electro Industries/Gauge Tech Systems and methods for processing meter information in a network of intelligent electronic devices
US10771532B2 (en) 2011-10-04 2020-09-08 Electro Industries/Gauge Tech Intelligent electronic devices, systems and methods for communicating messages over a network
US10275840B2 (en) 2011-10-04 2019-04-30 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US20130218930A1 (en) * 2012-02-20 2013-08-22 Microsoft Corporation Xml file format optimized for efficient atomic access
US9747363B1 (en) * 2012-03-01 2017-08-29 Attivio, Inc. Efficient storage and retrieval of sparse arrays of identifier-value pairs
WO2013184975A2 (en) * 2012-06-06 2013-12-12 Spiral Genetics Inc. Method and system for sorting data in a cloud-computing environment and other distributed computing environments
US9798768B2 (en) 2012-09-10 2017-10-24 Palantir Technologies, Inc. Search around visual queries
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
EP2767911A1 (en) * 2013-02-13 2014-08-20 BAE Systems PLC Data storage and retrieval
CA2895893C (en) * 2012-12-20 2018-12-04 Bae Systems Plc Searchable data archive
US9501507B1 (en) 2012-12-27 2016-11-22 Palantir Technologies Inc. Geo-temporal indexing and searching
US9959070B2 (en) 2013-03-06 2018-05-01 Ab Initio Technology Llc Managing operations on stored data units
US9875054B2 (en) 2013-03-06 2018-01-23 Ab Initio Technology Llc Managing operations on stored data units
US10133500B2 (en) 2013-03-06 2018-11-20 Ab Initio Technology Llc Managing operations on stored data units
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US10275785B2 (en) 2013-03-15 2019-04-30 Commerce Signals, Inc. Methods and systems for signal construction for distribution and monetization by signal sellers
US10803512B2 (en) 2013-03-15 2020-10-13 Commerce Signals, Inc. Graphical user interface for object discovery and mapping in open systems
US10771247B2 (en) 2013-03-15 2020-09-08 Commerce Signals, Inc. Key pair platform and system to manage federated trust networks in distributed advertising
US8924388B2 (en) 2013-03-15 2014-12-30 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US11222346B2 (en) 2013-03-15 2022-01-11 Commerce Signals, Inc. Method and systems for distributed signals for use with advertising
US11816465B2 (en) 2013-03-15 2023-11-14 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
JP5494860B2 (ja) * 2013-04-01 2014-05-21 富士通株式会社 情報管理プログラム、情報管理装置および情報管理方法
US8799799B1 (en) 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
US9235505B2 (en) * 2013-05-17 2016-01-12 Ab Initio Technology Llc Managing memory and storage space for a data operation
CN103353887A (zh) * 2013-06-28 2013-10-16 贵阳朗玛信息技术股份有限公司 用户数据查找方法及装置
US9292507B2 (en) * 2013-08-16 2016-03-22 Vmware, Inc. Automated document revision trimming in a collaborative multi-user document store
US10191965B2 (en) 2013-08-16 2019-01-29 Vmware, Inc. Automatically determining whether a revision is a major revision or a minor revision by selecting two or more criteria, determining if criteria should be weighted and calculating a score has exceeded a threshold
WO2015033388A1 (ja) 2013-09-03 2015-03-12 株式会社東芝 情報処理システム、サーバ装置、情報処理方法及びプログラム
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
JP6281225B2 (ja) * 2013-09-30 2018-02-21 日本電気株式会社 情報処理装置
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US8812960B1 (en) 2013-10-07 2014-08-19 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
CN104572711A (zh) * 2013-10-18 2015-04-29 腾讯科技(深圳)有限公司 一种分布式文档形数据存取方法及装置
CA2926935C (en) 2013-10-21 2022-05-31 Ab Initio Technology Llc Checkpointing a collection of data units
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9727622B2 (en) 2013-12-16 2017-08-08 Palantir Technologies, Inc. Methods and systems for analyzing entity performance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
CN105745642B (zh) * 2014-03-31 2019-08-16 华为技术有限公司 查询数据的处理方法和装置
US11734396B2 (en) 2014-06-17 2023-08-22 El Electronics Llc Security through layers in an intelligent electronic device
US9129219B1 (en) 2014-06-30 2015-09-08 Palantir Technologies, Inc. Crime risk forecasting
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
US9419992B2 (en) 2014-08-13 2016-08-16 Palantir Technologies Inc. Unwanted tunneling alert system
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9390086B2 (en) 2014-09-11 2016-07-12 Palantir Technologies Inc. Classification system with methodology for efficient verification
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9785328B2 (en) 2014-10-06 2017-10-10 Palantir Technologies Inc. Presentation of multivariate data on a graphical user interface of a computing system
CA2965122C (en) 2014-10-20 2021-11-09 Ab Initio Technology Llc Specifying and applying rules to data
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US11126598B1 (en) 2014-11-06 2021-09-21 Ab Initio Technology Llc Techniques for performing lifecycle operations on a data store
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10169395B2 (en) * 2015-02-12 2019-01-01 International Business Machines Corporation Database identifier generation in transaction processing systems
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US10628488B2 (en) * 2015-03-27 2020-04-21 Hitachi, Ltd. Document retrieval system and retrieval method
US9348880B1 (en) 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9672257B2 (en) 2015-06-05 2017-06-06 Palantir Technologies Inc. Time-series data storage and processing database system
US9384203B1 (en) 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US9407652B1 (en) 2015-06-26 2016-08-02 Palantir Technologies Inc. Network anomaly detection
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US9537880B1 (en) 2015-08-19 2017-01-03 Palantir Technologies Inc. Anomalous network monitoring, user behavior detection and database system
US9671776B1 (en) 2015-08-20 2017-06-06 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US10402385B1 (en) 2015-08-27 2019-09-03 Palantir Technologies Inc. Database live reindex
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9639580B1 (en) 2015-09-04 2017-05-02 Palantir Technologies, Inc. Computer-implemented systems and methods for data management and visualization
US9454564B1 (en) 2015-09-09 2016-09-27 Palantir Technologies Inc. Data integrity checks
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
JP6679874B2 (ja) * 2015-10-09 2020-04-15 富士通株式会社 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
US10044745B1 (en) 2015-10-12 2018-08-07 Palantir Technologies, Inc. Systems for computer network security risk assessment including user compromise analysis associated with a network of devices
US9424669B1 (en) 2015-10-21 2016-08-23 Palantir Technologies Inc. Generating graphical representations of event participation flow
US20170147393A1 (en) * 2015-11-20 2017-05-25 Sap Se Cache-efficient system for two-phase processing
US10210236B2 (en) 2015-11-23 2019-02-19 Ab Initio Technology Llc Storing and retrieving data of a data cube
US10223429B2 (en) 2015-12-01 2019-03-05 Palantir Technologies Inc. Entity data attribution using disparate data sets
US10706056B1 (en) 2015-12-02 2020-07-07 Palantir Technologies Inc. Audit log report generator
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US10114884B1 (en) 2015-12-16 2018-10-30 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10373099B1 (en) 2015-12-18 2019-08-06 Palantir Technologies Inc. Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces
US10958435B2 (en) 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
US10871878B1 (en) 2015-12-29 2020-12-22 Palantir Technologies Inc. System log analysis and object user interaction correlation system
US9792020B1 (en) 2015-12-30 2017-10-17 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data
US10430263B2 (en) 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
KR101663547B1 (ko) * 2016-02-26 2016-10-07 주식회사 아미크 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치
KR101656750B1 (ko) * 2016-02-26 2016-09-23 주식회사 아미크 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9652139B1 (en) 2016-04-06 2017-05-16 Palantir Technologies Inc. Graphical representation of an output
US10068199B1 (en) 2016-05-13 2018-09-04 Palantir Technologies Inc. System to catalogue tracking data
US10417237B2 (en) * 2016-05-24 2019-09-17 International Business Machines Corporation Sorting tables in analytical databases
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10545975B1 (en) 2016-06-22 2020-01-28 Palantir Technologies Inc. Visual analysis of data using sequenced dataset reduction
US10909130B1 (en) 2016-07-01 2021-02-02 Palantir Technologies Inc. Graphical user interface for a database system
US9753935B1 (en) 2016-08-02 2017-09-05 Palantir Technologies Inc. Time-series data storage and processing database system
US10552002B1 (en) 2016-09-27 2020-02-04 Palantir Technologies Inc. User interface based variable machine modeling
US10936559B1 (en) * 2016-09-28 2021-03-02 Amazon Technologies, Inc. Strongly-consistent secondary index for a distributed data set
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10726507B1 (en) 2016-11-11 2020-07-28 Palantir Technologies Inc. Graphical representation of a complex task
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US9842338B1 (en) 2016-11-21 2017-12-12 Palantir Technologies Inc. System to identify vulnerable card readers
US11250425B1 (en) 2016-11-30 2022-02-15 Palantir Technologies Inc. Generating a statistic using electronic transaction data
US10884875B2 (en) 2016-12-15 2021-01-05 Palantir Technologies Inc. Incremental backup of computer data files
GB201621434D0 (en) 2016-12-16 2017-02-01 Palantir Technologies Inc Processing sensor logs
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
US10249033B1 (en) 2016-12-20 2019-04-02 Palantir Technologies Inc. User interface for managing defects
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US10223099B2 (en) 2016-12-21 2019-03-05 Palantir Technologies Inc. Systems and methods for peer-to-peer build sharing
US11373752B2 (en) 2016-12-22 2022-06-28 Palantir Technologies Inc. Detection of misuse of a benefit system
US10360238B1 (en) 2016-12-22 2019-07-23 Palantir Technologies Inc. Database systems and user interfaces for interactive data association, analysis, and presentation
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US10762471B1 (en) 2017-01-09 2020-09-01 Palantir Technologies Inc. Automating management of integrated workflows based on disparate subsidiary data sources
US10133621B1 (en) 2017-01-18 2018-11-20 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10002146B1 (en) * 2017-02-13 2018-06-19 Sas Institute Inc. Distributed data set indexing
US10515109B2 (en) 2017-02-15 2019-12-24 Palantir Technologies Inc. Real-time auditing of industrial equipment condition
CN108572958B (zh) * 2017-03-07 2022-07-29 腾讯科技(深圳)有限公司 数据处理方法及装置
US10581954B2 (en) 2017-03-29 2020-03-03 Palantir Technologies Inc. Metric collection and aggregation for distributed software services
US10866936B1 (en) 2017-03-29 2020-12-15 Palantir Technologies Inc. Model object management and storage system
US10133783B2 (en) 2017-04-11 2018-11-20 Palantir Technologies Inc. Systems and methods for constraint driven database searching
US10563990B1 (en) 2017-05-09 2020-02-18 Palantir Technologies Inc. Event-based route planning
US10606872B1 (en) 2017-05-22 2020-03-31 Palantir Technologies Inc. Graphical user interface for a database system
US10896097B1 (en) 2017-05-25 2021-01-19 Palantir Technologies Inc. Approaches for backup and restoration of integrated databases
US10795749B1 (en) 2017-05-31 2020-10-06 Palantir Technologies Inc. Systems and methods for providing fault analysis user interface
GB201708818D0 (en) 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US11940990B1 (en) 2017-06-16 2024-03-26 Amazon Technologies, Inc. Global clock values for consistent queries to replicated data
US11216762B1 (en) 2017-07-13 2022-01-04 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US10430444B1 (en) 2017-07-24 2019-10-01 Palantir Technologies Inc. Interactive geospatial map and geospatial visualization systems
US11334552B2 (en) 2017-07-31 2022-05-17 Palantir Technologies Inc. Lightweight redundancy tool for performing transactions
US10417224B2 (en) 2017-08-14 2019-09-17 Palantir Technologies Inc. Time series database processing system
US10216695B1 (en) 2017-09-21 2019-02-26 Palantir Technologies Inc. Database system for time series data storage, processing, and analysis
US10614069B2 (en) 2017-12-01 2020-04-07 Palantir Technologies Inc. Workflow driven database partitioning
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US11016986B2 (en) 2017-12-04 2021-05-25 Palantir Technologies Inc. Query-based time-series data display and processing system
US10877984B1 (en) 2017-12-07 2020-12-29 Palantir Technologies Inc. Systems and methods for filtering and visualizing large scale datasets
US11314721B1 (en) 2017-12-07 2022-04-26 Palantir Technologies Inc. User-interactive defect analysis for root cause
US10783162B1 (en) 2017-12-07 2020-09-22 Palantir Technologies Inc. Workflow assistant
US10769171B1 (en) 2017-12-07 2020-09-08 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US11263382B1 (en) 2017-12-22 2022-03-01 Palantir Technologies Inc. Data normalization and irregularity detection system
CN108108469A (zh) * 2017-12-29 2018-06-01 北京奇虎科技有限公司 数据迭代方法及装置
US11754997B2 (en) 2018-02-17 2023-09-12 Ei Electronics Llc Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems
US11734704B2 (en) 2018-02-17 2023-08-22 Ei Electronics Llc Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data
US11686594B2 (en) 2018-02-17 2023-06-27 Ei Electronics Llc Devices, systems and methods for a cloud-based meter management system
US10877654B1 (en) 2018-04-03 2020-12-29 Palantir Technologies Inc. Graphical user interfaces for optimizations
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US10754946B1 (en) 2018-05-08 2020-08-25 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
GB201807534D0 (en) 2018-05-09 2018-06-20 Palantir Technologies Inc Systems and methods for indexing and searching
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
US11126638B1 (en) 2018-09-13 2021-09-21 Palantir Technologies Inc. Data visualization and parsing system
CN109582666A (zh) * 2018-09-29 2019-04-05 阿里巴巴集团控股有限公司 数据主键生成方法、装置、电子设备及存储介质
US11294928B1 (en) 2018-10-12 2022-04-05 Palantir Technologies Inc. System architecture for relating and linking data objects
WO2020222727A1 (en) * 2019-04-29 2020-11-05 Hitachi Vantara Llc Optimizing storage and retrieval of compressed data
US11863589B2 (en) 2019-06-07 2024-01-02 Ei Electronics Llc Enterprise security in meters
US11221999B2 (en) * 2019-06-28 2022-01-11 Salesforce.Com, Inc. Database key compression
CN113535710B (zh) * 2020-04-22 2023-12-15 中山大学 一种搜索方法、装置、终端设备及存储介质
AU2021202904A1 (en) * 2020-05-15 2021-12-02 Vail Systems, Inc. A data management system using attributed data slices
KR102315070B1 (ko) * 2020-07-31 2021-10-20 인하대학교 산학협력단 에지 컴퓨팅환경에서 키벨류 데이터 오케스트레이션 시스템의 데이터 처리 및 데이터 백업
US11250022B1 (en) 2020-09-29 2022-02-15 Amazon Technologies, Inc. Offline index builds for database tables
US11880385B1 (en) 2020-09-29 2024-01-23 Amazon Technologies, Inc. Ordering updates to secondary indexes using conditional operations
US11892992B2 (en) * 2022-01-31 2024-02-06 Salesforce, Inc. Unique identification management
CN115905122B (zh) * 2023-02-20 2023-05-30 成都九洲电子信息系统股份有限公司 一种飞行航迹数据存储及检索系统、方法及存储介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775932A (en) * 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
JPH0752450B2 (ja) * 1986-08-01 1995-06-05 株式会社日立製作所 辞書デ−タ検索装置
JPH0823865B2 (ja) * 1987-08-28 1996-03-06 株式会社日立製作所 デ−タ検索方法および装置
JPH05257774A (ja) * 1992-03-10 1993-10-08 Fujitsu Ltd インデックス・レコード番号を圧縮・格納した情報検索装置
JPH07287716A (ja) * 1994-02-22 1995-10-31 Ricoh Co Ltd 辞書検索装置
JP3013221B2 (ja) 1994-07-11 2000-02-28 日本製粉マネジメントサービス株式会社 製麺用捏ね水の連続製造装置並びに連続製造の捏ね水を用いた製麺方法
JP3515810B2 (ja) * 1994-08-16 2004-04-05 富士通株式会社 ソート処理方法および装置
US5737593A (en) * 1995-06-02 1998-04-07 International Business Machines Corporation System and method for defining shapes with which to mine time sequences in computerized databases
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
US6389534B1 (en) * 1997-06-30 2002-05-14 Taher Elgamal Cryptographic policy filters and policy control method and apparatus
JP3692764B2 (ja) * 1998-02-25 2005-09-07 株式会社日立製作所 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体
CA2244626A1 (en) * 1998-07-31 2000-01-31 Kom Inc. A hardware and software system
US6195024B1 (en) * 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US6658405B1 (en) * 2000-01-06 2003-12-02 Oracle International Corporation Indexing key ranges
GB0015233D0 (en) * 2000-06-21 2000-08-16 Canon Kk Indexing method and apparatus
GB2369695B (en) * 2000-11-30 2005-03-16 Indigo One Technologies Ltd Database
FI20010110A0 (fi) * 2001-01-18 2001-01-18 Stonesoft Oy Pakettien lajittelu gateway-verkkoelementissä
US6925463B2 (en) * 2002-04-15 2005-08-02 International Business Machines Corporation Method and system for query processing by combining indexes of multilevel granularity or composition
CA2485423C (en) * 2002-05-10 2013-10-08 Oracle International Corporation Storing and querying relational data in compressed storage format
US6970866B1 (en) * 2002-05-31 2005-11-29 Adobe Systems Incorporated Filter file system
DE10228128B4 (de) * 2002-06-24 2004-09-23 Infineon Technologies Ag Verfahren zur Speicherung von Daten, Verfahren zum Lesen von Daten, Vorrichtung zur Komprimierung von Daten und Vorrichtung zur Dekomprimierung von Daten
US8239343B2 (en) * 2003-05-23 2012-08-07 Bmc Software, Inc. Database reorganization technique
CN1595399A (zh) * 2003-09-08 2005-03-16 北京语言大学语言信息处理研究所 汉语文本中词及词属性自动索引和检索的方法
WO2005045719A1 (ja) 2003-11-10 2005-05-19 Eath Co,Ltd. 集計システム
US20060184563A1 (en) 2005-02-14 2006-08-17 Potter David H Method and apparatus for temporal database
JP4782490B2 (ja) * 2005-06-29 2011-09-28 富士通株式会社 データ集合分割プログラム、データ集合分割装置、およびデータ集合分割方法
CN100486345C (zh) * 2006-04-25 2009-05-06 沈阳昂立信息技术有限公司 基于pc服务器的业务系统
US20080015945A1 (en) * 2006-07-12 2008-01-17 Michael Goldstein System and Method for Processing Subscriptions and Periodically-Billed Services
KR101380936B1 (ko) 2006-10-05 2014-04-10 스플렁크 인코퍼레이티드 시계열 검색 엔진
US8229902B2 (en) 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
US7885932B2 (en) 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
US8189912B2 (en) 2007-11-24 2012-05-29 International Business Machines Corporation Efficient histogram storage
JP4670885B2 (ja) 2008-03-28 2011-04-13 ブラザー工業株式会社 時系列データ管理装置及びプログラム
US20090287986A1 (en) * 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units

Also Published As

Publication number Publication date
AU2007317574B2 (en) 2014-04-24
EP2080121B1 (en) 2018-10-17
CN101553813B (zh) 2012-11-14
CA2910841A1 (en) 2008-05-15
EP2080121A4 (en) 2016-08-03
US20080104149A1 (en) 2008-05-01
CN101553813A (zh) 2009-10-07
CA2668136A1 (en) 2008-05-15
CN102945242B (zh) 2016-07-06
US8639674B2 (en) 2014-01-28
EP2080121A2 (en) 2009-07-22
CN102945242A (zh) 2013-02-27
CA2910840C (en) 2017-01-24
CA2910840A1 (en) 2008-05-15
KR101400816B1 (ko) 2014-06-27
CA2941074C (en) 2021-03-23
AU2007317574A1 (en) 2008-05-15
CA2941074A1 (en) 2008-05-15
CA2910841C (en) 2016-07-05
CA2668136C (en) 2018-10-23
WO2008057815A2 (en) 2008-05-15
KR20090075885A (ko) 2009-07-09
JP2010508606A (ja) 2010-03-18
HK1181484A1 (zh) 2013-11-08
WO2008057815A3 (en) 2008-10-09
US8229902B2 (en) 2012-07-24
US20120284240A1 (en) 2012-11-08

Similar Documents

Publication Publication Date Title
JP5377318B2 (ja) 個別にアクセス可能なデータユニットの格納管理
US8949189B2 (en) Managing storage of individually accessible data units
JP6088506B2 (ja) 範囲に基づく検索のためのデータ格納の管理
JP5847578B2 (ja) 個別にアクセス可能なデータユニットの記憶の取り扱い方法
CA2791261C (en) Managing storage of individually accessible data units
JP6150785B2 (ja) 個別にアクセス可能なデータ単位の記憶の管理
AU2014202186B2 (en) Managing storage of individually accessible data units

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101013

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120323

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120808

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121026

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130828

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130924

R150 Certificate of patent or registration of utility model

Ref document number: 5377318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250