JP2008041108A - ファイルシステムにおけるオブジェクトの効率的な記憶 - Google Patents

ファイルシステムにおけるオブジェクトの効率的な記憶 Download PDF

Info

Publication number
JP2008041108A
JP2008041108A JP2007238935A JP2007238935A JP2008041108A JP 2008041108 A JP2008041108 A JP 2008041108A JP 2007238935 A JP2007238935 A JP 2007238935A JP 2007238935 A JP2007238935 A JP 2007238935A JP 2008041108 A JP2008041108 A JP 2008041108A
Authority
JP
Japan
Prior art keywords
storage device
size data
storing
data structure
type
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.)
Granted
Application number
JP2007238935A
Other languages
English (en)
Other versions
JP4250190B2 (ja
Inventor
Mark Zbikowski
ズビコウスキィ マーク
Brian T Berkowitz
ティー バーコウィッツ ブライアン
Robert I Ferguson
アイ ファーガソン ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008041108A publication Critical patent/JP2008041108A/ja
Application granted granted Critical
Publication of JP4250190B2 publication Critical patent/JP4250190B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals, computer programme data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファルシステムにオブジェクトを効率的に記憶する方法および装置を提供する。
【解決手段】ファイルシステムによってファイルデータを階層的に記憶する解決方法を提供する。論理的に隣接するファイルデータの複数のバイトを、ストリームデータ構造に記憶する。関連するファイルデータを保持したこれらのストリームは、ディスク上の可変サイズオノデデータ構造に記憶される。可変サイズオノデデータ構造は、固定サイズバケットに記憶される。これらのバケットは可変サイズアレイに構成される。この結果、このファイルシステムは、可変サイズ記憶と固定サイズ記憶の組合せを提供し、ファイルデータを記憶するための非常に効率的な解決方法を提供する。更に、インデックスを構造の内部に設けることにより、オノデやストリームに迅速にアクセスすることが可能とされている。
【選択図】図4

Description

本発明は、一般には、データ処理システムに関し、特に、ファイルシステムにおけるオブジェクトの効率的な記憶に関する。
従来のオペレーティングシステムでは、ファイルに関する制御情報と共に、ファイルデータを記憶するための固定数のディスク空間のブロックが、各ファイルにアロケートされていた。これらのブロックは、迅速にアロケート若しくはデアロケートすることができるよう固定サイズとされている。ファイルおよびファイルデータに関する制御情報はしばしば可変サイズとされるが、これは少なくとも2つの問題を抱える。第1に、制御情報、及び/又は、ファイルデータがブロックを満たすほど大きくない場合に、ブロック内部のディスク空間が浪費されてしまうこと。第2に、制御情報、及び/又は、ファイルデータが単一のブロックに記憶されるにはあまりに大きすぎる場合に、それを複数のブロックに記憶しなければならず、データが記憶される場所を特定するために複数のポインタを保持しなければならないことである。このようなポインタを保持し且つ使用することは、しばしば極めて煩雑である。
本発明の第1の特徴によれば、メモリ空間を有する第2の記憶装置にファイルデータを記憶するために方法および装置が実行される。この方法を実行するためのデータ処理システムは、内部記憶装置と共に、第2の記憶装置を備える。第2の記憶装置のメモリ空間の少なくとも一部は、固定サイズのデータ構造に論理的に分割される。論理的に関連のあるファイルデータの第1のサイズの第1のセットが、所定タイプの可変サイズデータ構造に記憶される。論理的に関連のあるファイルデータの第1のセットを記憶する可変サイズデータ構造が、第2の記憶装置の少なくとも1つの固定サイズデータ構造に記憶される。論理的に関連のあるファイルデータの付加的なセットは、第2の記憶装置の同一の固定サイズデータ構造に記憶されてもよい。
本発明の他の特徴によれば、ファイルデータの論理的に隣接した複数のバイトは、第1のタイプの可変サイズデータ構造に記憶され、関連するファイルデータを記憶する第1のタイプの可変サイズデータ構造のセットは、第2のタイプの可変サイズデータ構造に記憶される。第2のタイプの可変サイズデータ構造は、第2の記憶装置の固定サイズデータ構造に記憶される。
本発明の更に他の特徴によれば、第2の記憶装置を有するデータ処理システムで方法が実行される。この方法では、ファイルデータの論理的に隣接した複数のバイトのセットが、第1のタイプの可変サイズデータ構造のそれぞれに記憶される。第1のタイプの可変サイズデータ構造の所定のものは、第2の記憶装置の第2のタイプの可変サイズデータ構造に記憶される。第1のタイプの可変サイズデータ構造に対するB−ツリーインデックスは、第2の記憶装置の第2のタイプの可変サイズデータ構造に記憶される。データ処理システムに保持された第2のタイプの可変サイズデータ構造の各々に対して、別のB−ツリーインデックスが保持されてもよい。
また、本発明の他の特徴によれば、第2の記憶装置を含むデータ処理システムで方法が実行される。第2の記憶装置は、固定サイズとされたバケット (bucket) のアレイを保持するメモリ空間を含む。アレイのバケットの中の1つがオブジェクトを保持する。この方法は、第2の記憶装置に付加的なメモリ空間をアロケートしてオブジェクトの増大する要求を満たす。第1に、オブジェクトを現時点で保持するバケットがオブジェクトの増大する要求を満たすのに十分な自由メモリ空間を有しているかどうかが判断される。バケットが十分な自由メモリ空間を有していれば、バケットの付加的な空間をオブジェクトにアロケートしてオブジェクトの増大する要求を満たす。そうでなければ、オブジェクトの増大する要求を満たすのに十分なメモリ空間を有するバケットが発見される。このオブジェクトはその後、発見された場所のバケットに移動される。
本発明の付加的な特徴によれば、第2の記憶装置の記憶空間の固定サイズバケットのアレイに複数のファイルが記憶される。記憶空間の固定サイズバケットの少なくとも1つは、その中に記憶された1つ以上のファイルを有する。各ファイルに識別子を提供し、アレイに記憶されたファイルの中からあるファイルを識別する。また、第2の記憶装置にマップを記憶し、ファイルに対する各識別子をそれが記憶される固定サイズバケットにマップする。ファイルが記憶される固定サイズバケットの場所を発見するためにマップを使用することにより、またその後、所定の識別子を有するファイルの場所を発見するために固定サイズバケットを調査することにより、所定の識別子を有するファイルの中の1つの場所がアレイにおいて発見される。
本発明の他の特徴によれば、第2の記憶装置の記憶空間の固定サイズバケットのアレイに複数のファイルが記憶される。各ファイルはそれに関連する識別子を有する。多数のエントリのマッピング構造が第2の記憶装置に記憶される。マッピング構造のエントリは、識別子の1つをアレイの複数バケットの中の1つにマップするような、少なくとも1つのエントリを含む。第2の記憶装置の空間の自由セルの識別子の自由リストがマッピング構造に記憶される。この自由リストはいまだにアロケートされていないセルの識別子を含む。マッピング構造は、バケットの識別子からバケットの場所を発見するために用いられる。更に、このマッピング構造は、自由セルに対する識別子から自由セルの場所を発見するためにも用いられ得る。
本発明の更に他の特徴によれば、第2の記憶装置の記憶空間の固定サイズバケットのアレイは、ファイルを記憶するためにも提供される。各ファイルは、それに関連する識別子を有する。複数のエントリのマッピング構造が第2の記憶装置に提供される。第2の記憶装置のマッピング構造に自由リストが提供される。この自由リストは、第2の記憶装置の空間のいずれかの自由セルの識別子を含む。マッピング構造は、識別子を、セルリストのいずれかのセルに、若しくはアレイのいずれかのバケットにマップする。自由リストが少なくとも1つのセルの識別子を含むかどうかの決定がなされる。自由リストが少なくとも1つのセルに対する識別子を含んでいれば、自由リストの複数のセルの中の1つの所定の識別子が新たなファイルに記憶され、この新たなファイルはそのセルに記憶される。自由リストが識別子を含まなければ、新たな識別子を関連する新たな自由セルにマップするようなマッピング構造にエントリを付加することができる。新たな自由セルの1つに関連する新たな識別子の1つを新たなファイルに割り当て、この新たなファイルを新たな自由セルに記憶することもできる。
本発明の好ましい実施例は、ファイルデータをディスク上に記憶するのに十分な技術を提供する。この技術を以下に述べる。
図1は、本発明の好ましい実施例を実行するためのデータ処理システム10のブロック図である。このデータ処理システム10は、中央処理装置(CPU)12、メモリ14、ディスク記憶装置(二次又は補助記憶装置)16を含む。更に、データ処理システム10は、キーボード18、マウス20、ビデオ表示装置22を含む。メモリ14は、オペレーティングシステム24のコピーを保持する。オペレーティングシステム24は、以下に詳述するファイルシステム管理サービスを提供する。ここに述べられたデータ処理システムは単一のプロセッサシステムであるが、分散システムのようなマルチプロセッサシステムで本発明を実行することも可能であることは当業者には明らかであろう。
更に、本発明の好ましい実施例はオペレーティングシステムの一部として記述されているが、本発明を代替的に、グラフィックユーザインタフェースや、オペレーティングシステムから分離された他のコードタイプで実行することも可能であることは、当業者には明らかであろう。
オペレーティングシステム24のファイルシステム管理サービスは、ファイルデータをディスク記憶装置16のディスク上に記憶するために応答する。好ましい実施例のオペレーティングシステム24は、オブジェクト指向オペレーティングシステムである。このように、オペレーティングシステム24はオブジェクトの一般概念を支持する。
ディスク記憶装置16のディスク上で最も小さな記憶単位は、「ストリーム」である。ストリームは、論理的に隣接した、ランダムアクセス可能な、ファイルデータの複数のバイトの集合である。ストリーム記述子の適当なフォーマットが、これと同日に出願され共通の譲受人に譲渡された同時継続中の特許出願No. 号、 "Storage of File Data on Disk in Multiple Representations" に記述されている。この同時出願の開示は本明細書に組み入れられている。
各ストリームは、それに関連したストリーム記述子26を有する。ストリーム記述子26はストリームを記述し、ストリーム内部に保持されたデータにアクセスするための手段を提供する。図2に示されているように、ストリーム記述子26は、少なくとも3つのフィールド、即ち、サイズフィールド28、タイプフィールド30、記述フィールド32を有する。サイズフィールド28は、ストリームのバイト数を特定する値を保持する。タイプフィールド30は、記述子26によって記述されたストリームのタイプを保持する。最後に、記述フィールド32は、ストリームの記述を保持する。記述フィールド32に保持された記述は、ストリームデータの直接の表示であってもよいし、代わりにストリームのデータを保持するメモリ空間の拡張を指示しているものであってもよい。
本発明の好ましい実施例は、図3に示すようなフィールド記述子34にストリームに関する情報を記憶する。フィールド記述子34は、ストリームIDを保持するストリームIDフィールド36を含む。ストリームIDは、Oノード(onode)(Oノードは以下でより詳細に記述する)内部のストリームを唯一つに識別するような、4バイト長の識別番号である。フィールド記述子34は、更に、フラグビットを保持するフラグフィールドを含む。フィールド記述子34の最後のフィールドは、ストリームに対するストリーム記述子26である。
ストリームは、関連する機能に従って「Oノード」にグループ分けされる。Oノードはオブジェクトの論理概念に対応し、一般的には、ファイル、ディレクトリ、若しくはサブディレクトリを構成する全てのストリームを保持する。各Oノードは、それが含む複数のストリームの可変サイズ集合を記述するのに必要な情報を含む。
図4は、Oノード40のフォーマットを記述する図である。各Oノードは、関連する機能性のストリームを保持する。各Oノード40は、以下のフィールド、即ち、長さフィールド42、作業IDフィールド44、フラグフィールド46、クラスIDフィールド48、および、(図3に示されているような)フィールド記述子34のアレイを保持するフィールド50を含む。長さフィールド42は、Oノードの長さを特定する値を保持し、一方、作業IDフィールド44は、以下に詳細に述べるように、作業IDマッピングアレイ74(図7,図8)中へのインデックスを保持する。作業IDは4バイト長である。フラグフィールド46(図4)はフラグフィールドを保持し、クラスIDフィールド48は、OノードのためのクラスIDを保持する。フィールド50は、パックされたフィールド記述子のアレイを保持し、Oノード4を用いて保持された各ストリームに対するフィールド記述子34を含む。フィールド50のフィールド記述子のアレイに含まれるストリームの番号は変更することができる。更に、フィールド50のフィールド記述子のアレイの各ストリームの長さも変更することができる。故に、Oノード40は、可変サイズ構造(構造体)である。Oノード40の可変サイズ特性は、ディスク記憶装置16のディスク上のアロケーションユニットにおける内部分裂を最少とすることに役立つ。
Oノード40に関するあるデータは、Oノードに直接的には導入されない。その代わりに、このデータは、もしそれが少しでもOノードに関するものであれば、図5に示すように別のストリームに記憶される。ストリーム52は、それに関連するOノード40(図4)に関する状態情報の多数の異なるタイプを保持する。状態情報は、フィールド56に保持されたOノード40が作成された時間を特定する時間スタンプを含む。フィールド58は、Oノード40が変更された最後の時間を特定する時間スタンプを保持する。同様に、フィールド60は、Oノード40がアクセスされた最後の時間を特定する時間スタンプを保持する。フィールド62は、Oノード40のサイズを特定する値を保持し、フィールド64は、Oノードの所有者のためのセキュリティ記述子を保持する。ストリーム52に保持された全ての情報が、関連するOノード40に保持されたファイルデータの管理に有用である。
状態情報の第2のストリーム54も図5に示されている。このストリーム54は3つのフィールド、66、68、70を含む。フィールド66は、現在のOノードの親Oノードの作業IDを保持する。特に、各Oノード40は、データ処理システム10の包括ネームスペースにおいて可視である。この包括ネームスペースは、ルートOノード以外の各Oノードは他のOノードの子供であるものとした論理ツリー構造である。フィールド66は、親Oノードの作業IDを保持する。フィールド68は、Oノード40に対する普遍的且つユニークなID(UUID)を保持する。このUUIDは、システムの包括ネームスペースにおけるエンティティの間でユニークである。また、フィールド70は、Oノード40のクラスを特定するクラスIDを保持する。各Oノード40は、それに関連する独自のクラスを有する。特に、各Oノード40は、特別のクラスのオブジェクト事例である。
状態情報の2つの付加的なストリーム55を記憶することもできる。ストリー55(存在するときは)は、その親に関連するOノード40のネームを保持し、ストリーム57(存在するときは)は、そのOノードのための(セキュリティーで使用される)アクセス制御リストを保持する。
ストリーム52、54、55、57は、少なくとも2つの理由で別々に記憶される。第一に、この情報を記憶することは、Oノード40の平均サイズを減少させることに役立つ。ストリーム52、54、55、57は、Oノード毎に記憶されるものではない。この結果、Oノードの平均サイズは減少する。幾つかのOノードに対しては含まれていない情報をストリーム52、54、55、57に分離することは、便利な表示である。第二に、このデータを別々に記憶することにより、各Oノード40からコードを検索するのに複雑なコードを必要とせずに、関連する情報のグループをプログラム的にアクセスすることが可能とされる。
Oノード(図4)は、Oノードバケットアレイ(図6)に記憶される。Oノードバケットアレイ72は、固定サイズバケットのアイレに形成された可変サイズデータ構造である。バケットのサイズ(例えば4K)は、データ処理システム10のアーキテクチャに依存するが、システム10のページサイズに整合させることもできる。バケットには、図6に示す例のように、1〜Nまでの番号が付されている。アレイ72の各バケットは、パックされたOノード40のセットを含む。図6の例において、バケット2はたった1つのOノードしか含まないが、バケット1は2つのOノードを含み、バケット3は3つのOノードを含む。
Oノードバケットアレイ72は、ファイルデータが移動され、消去され、若しくは挿入されたときにあちこちに移動させなければならないデータ量を最少にするために用いられる。ディスク空間のブロックのアロケーションおよびデアロケーションの粒(granularity)は固定される。言い換えれば、メモリブロックは固定サイズバケットにアロケートされ、デアロケートされる。また、ファイルデータを記憶するために可変サイズ構造を使用すると、アロケーションの粒は固定されず、アロケーションの粒は極端に大きなものとなり得る。同様に、バケットが大きいと、小型化するのに費やす時間が大きなものとなるだろう。
効率を図るため、オペレーティングシステム24(図1)は、関連するOノード40(図4)を、アレイ72(図6)の同じバケットに記憶し、若しくは、ディスク記憶装置16のディスク上において互いに非常に近接しているバケットに記憶する。この記憶技術は、ディスク上のOノードを発見するシーク時間を最少にする。概して言えば、一般的にいっしょにアクセスされるファイルが同じバケットに配置されるのである。いっしょにアクセスされるファイルの例として、共通サブディレクトリ若しくはディレクトリ内のファイルが含まれる。
Oノードバケットアレイ72(図6)は、ストリームとしてアクセスされる。アレイ72のバケット内部にあるOノード40(図4)の場所を見つけ出すには、そのOノードに対する作業IDを調査する必要がある。本質的には、Oノード同士の間の全ての参照は作業IDに基づく。作業IDマッピングアレイ74(図7)は、作業IDからOノードバケットアレイ72のバケット番号にマップする。特に、ある特別なOノード40の作業IDは、作業IDマッピングアレイ74へのインデックスの働きをする。特定されたインデックスにおけるエントリは、そのOノード40を保持するバケット番号を識別する。例えば、図7に示されているように、作業IDマッピングアレイ74のエントリ76、78は、関連する作業IDを有するOノード40がバケット1に保持されていることを特定するような値を保持する。
作業IDマッピングアレイ74はヘッダ77を含む。このヘッダは、幾つかのスクラッチメモリ空間と自由リストのヘッドに対するポインタを含む。自由リストは、作業IDマッピングアレイ74中に向けられる。それは、ディスク記憶装置16に対していまだにアロケートされていない作業IDを含む。特に、ヘッダ77のポインタは、自由リストにおける次の自由作業IDの作業IDを有するような作業IDマッピングアレイのエントリ79Aを指し示す。この例において、エントリ79A、79B、79C、79D、79Dは、それぞれ、自由リストにおいて次に続く作業IDに対する作業IDを含む。自由リストの終了を表示する識別可能な値を備えた最後のエントリを含むこともできる。作業IDは、作業IDが自由リスト上であるか否かをエンコードする。特に、各作業IDの高位ビットは、作業IDがOノードバケットアレイ72のアロケートされたバケットに対応するかどうか、若しくは、自由リストにおける次の自由エントリと対応するかどうかを特定する。この結果、図7に示されているように、作業IDマッピングアレイ74は、自由リストに対する作業IDと共にOノードバケットアレイ72のバケットのための作業IDを保持するようなエントリを含むこともできる。
新たな作業IDを作業IDマッピングアレイ74にアロケートするために、図8に示されたステップが実行される。第一に、自由リストはそれが空であるかどうかを決定するために調査される(ステップ110)。自由リストが空でなければ、自由リスト上の次の作業IDが使用される(111)。しかしながら、自由リストが空であれば、新たなセルに関連する付加的な作業IDを含むように作業IDマッピングアレイ74を増大する(ステップ112)。この時点で、自由リストはもはや空ではなく、自由リストの最初の作業IDが使用される(ステップ116)。
Oノード40内部に含まれるストリームにアクセスするため、各Oノードは、フィールド記述子50のアレイに保持されたストリームの間で記憶されているようなネームインデックス80に対するストリーム記述子を含む。ネームインデックス80は、Oノード40内部に含まれるストリームに対してB−ツリーインデックスを保持する。あまり頻繁にはアクセスされないストリームの中の幾つかは、ネームインデックス80に直接記憶されるが、より頻繁にアクセスが発生するストリームは、ネームインデックスストリームの外側のOノードに記憶される。ネームインデックス80は、ストリームのストリームIDを、Oノード内部に保持されたストリームの場所を発見するためのキーとして使用する。図9は、そのようなネームインデックス80の一例を示す。このネームインデックス80に対するストリーム記述子は、2つのストリームを含むことができる。ストリーム81は、ネームインデックス80のルートページを記憶するためのものである。ストリーム82は、ネームインデックス80のなんらんかの付加的なページを記憶するためのものである。付加的なページが存在しなければ、ネームインデックスストリーム記述子にはストリーム81だけが含まれる。
図10は、ストリーム記述子82によって記述されたストリームに保持されているOノード40のストリームに対するB−ツリーインデックス83の一例である。各ストリームは、ストリームID36に基づいてインデックスされる。ストリームIDは、Oノード40に保持されたストリームの中からあるストリームをユニークに識別する。ストリームIDは、それによってB−ツリーインデックス83においてデータがインデックスされるキー値を構成する。図10のB−ツリーインデックス83は、葉ページ88と非葉ページ84、86を含む。非葉ページ84は、B−ツリーインデックス83のルートページである。
各葉ページ88は、(キー値、データ)の対であるセットを含む。キー値は、その対に含まれたデータをインデックスするためのキーとして機能するようなストリームIDである。図10の例において、各葉ページは、キー値とデータのそのような対を2つ含んでいる。葉ページ88に提供されたキー値とデータの対の数は一般に2より大きい。
同様に、非葉ページ86、88も対を含むが、これらの対は、キー値とB−ツリーインデックス83の他のページに対するポインタを含む。これらのポインタは、各ページ84、86、88によって占有されたディスク空間のページを特定するページ番号である。故に、ノード84、86、88は各々、ディスク空間のページに対応する。
B−ツリーインデックス83により、ストリームIDをキー値として使用して、Oノード40内部のストリームに迅速に且つ効率的にアクセスすることができる。Oノード上のキー値は、それらが2進サーチされるようにソートされている。
更に、バケットアレイ72の内部でOノード40を容易に増大させるという最適化が図られている。図9は、どのような方法でOノード40を増大させるか(つまり、あるOノードに対して、そのメモリの必要性が増大したときに、付加的なメモリ空間をどのような方法でアロケートするか)を決定するために実行されるステップのフローチャートである。第1に、Oノードを保持する現在のバケットのヘッダを調査して、バケットの自由空間の量を決定する(ステップ92)。現在のバケットに、Oノードをその付加的なメモリ要求とともに記憶するために利用可能な十分な自由空間が存在するかどうかの決定がなされる。現在のバケットに利用可能な十分なメモリが存在する場合には、必要ならばその空間は小型化されて(ステップ96)、増大したOノードは現在のバケットに記憶される(ステップ98)。しかしながら、増大したOノードを記憶するのに十分なだけの自由空間が現在のバケットには存在しない場合には、最近接バケット(つまり、現在のバケットに物理的に近接しているという点で最も近接したバケットであって、少なくとも半分は空であり、増大したOノードを記憶するのに十分な自由空間を含んでいる)を見つけ出すためにヒューリスティックが実行される(ステップ100)。増大Oノードはその後、このバケットに記憶される(ステップ102)。その後、このバケットを指示するように、作業IDマッピングアレイ74の対応するエントリが更新される(ステップ104)。
本発明をその好ましい実施例を参照して記述してきたが、当業者ならば、特許請求の範囲に定義された本発明から逸脱することなく、その詳細および形態について様々な変更を加えることができることは明らかであろう。
本発明の好ましい実施例を実行するために適当なデータ処理システムのブロック図。 本発明の好ましい実施例のためのストリーム記述子のフォーマットを示す図。 本発明の好ましい実施例のフィールド記述子のフォーマットを示す図。 本発明の好ましい実施例のOノードのフォーマットを示す図。 図4のOノードに関して適当な情報を保持するストリームを示す図。 本発明の好ましい実施例のバケットアレイの図。 本発明の好ましい実施例における作業IDマッピングアレイとOノードバケットアレイを示す図。 新たな作業IDをアロケートするために本発明の好ましい実施例によって実行されるステップを示したフローチャート。 本発明の好ましい実施例によるネームインデックスを示す図。 図9のネームインデックスに記憶されたB−ツリーインデックスの一例を示す図。 ディスク上に既に記憶されたOノードに付加的なメモリ空間をアロケートするため、本発明の好ましい実施例によって実行されるステップを示したフローチャート。

Claims (33)

  1. メモリ空間を備えた第2の記憶装置を有するデータ処理システムにおいて、前記第2の記憶装置にファイルデータを記憶する方法が、
    前記第2の記憶装置のメモリ空間の少なくとも一部を固定サイズデータ構造に論理的に区分けする段階と、
    第1のサイズの論理的に関連するファイルデータの第1のセットを所定タイプの第1の可変サイズデータ構造に記憶する段階と、
    論理的に関連するファイルデータの第1のセットが記憶された所定タイプの前記第1の可変サイズデータ構造を前記第2の記憶装置の固定サイズデータ構造の少なくとも1つに記憶する段階と、
    を備えることを特徴とする方法。
  2. 請求項1記載の方法において、更に、
    第2のサイズの論理的に関連するファイルデータの第2のセットを所定タイプの第2の可変サイズデータ構造に記憶する段階と、
    論理的に関連するファイルデータの第2のセットが記憶された所定タイプの前記第2の可変サイズデータ構造を、論理的に関連するファイルデータの第1のセットが記憶された前記固定サイズデータ構造に記憶する段階と、を備えることを特徴とする方法。
  3. 請求項1記載の方法において、前記第2の記憶装置のメモリ空間の少なくとも一部を固定サイズデータ構造に論理的に区分けする段階は、更に、前記第2の記憶装置のメモリの少なくとも一部を固定サイズデータ構造の可変サイズアレイに論理的に区分けする段階を備える方法。
  4. 請求項1記載の方法において、前記第2の記憶装置はディスク記憶装置であり、前記第2の記憶装置のメモリ空間の少なくとも一部を区分けする段階は、更に、前記ディスク記憶装置のメモリ空間の少なくとも一部を固定サイズデータ構造に論理的に区分けする段階を備える方法。
  5. 請求項1記載の方法において、更に、所定タイプの第1の可変サイズデータ構造に関する適当な情報を前記第2の記憶装置に記憶する段階を備える方法。
  6. 請求項5記載の方法において、更に、所定タイプの前記第1の可変サイズデータ構造に問い合わせを行って、そこに記憶された適当な情報を得る段階を備える方法。
  7. 請求項1記載の方法において、更に、前記固定サイズデータ構造に記憶された所定タイプの第1の可変サイズデータ構造をユニークに識別する識別子を前記所定タイプの可変サイズデータ構造に記憶する段階を備える方法。
  8. 内部メモリと、
    第2記憶装置と、
    前記第2記憶装置のメモリ空間の少なくとも一部を固定サイズデータ構造に論理的に区分けする手段と、
    論理的に関連するファイルデータの第1のセットを所定タイプの第1の可変サイズデータ構造に記憶する手段と、
    論理的に関連するファイルデータの第1のセットが記憶された前記第1の可変サイズデータ構造を、前記第2のメモリの前記固定サイズデータ構造の少なくとも1つに記憶する手段と、
    を備えることを特徴とするデータ処理システム。
  9. 請求項8記載のデータ処理システムにおいて、更に、
    論理的に関連するファイルデータの第2のセットを所定タイプの第2の可変サイズデータ構造に記憶する手段と、
    論理的に関連するファイルデータの前記第2のセットが記憶された所定タイプの前記第2の可変サイズデータ構造を、論理的に関連するファイルデータの第1のセットが記憶された前記固定サイズデータ構造に記憶する手段と、
    を備えるデータ処理システム。
  10. 請求項8記載のデータ処理システムにおいて、前記第2の記憶装置はディスク記憶装置であるデータ処理システム。
  11. 請求項8記載のデータ処理システムにおいて、更に、所定タイプの前記第1の可変サイズデータ構造に関する情報を前記第2の記憶装置に記憶する手段を備えたデータ処理システム。
  12. 請求項11記載のデータ処理システムにおいて、更に、所定タイプの前記第1の可変サイズデータ構造に問い合わせてそこに記憶された適当な情報を得る手段を備えたデータ処理システム。
  13. 第2の記憶装置を備えたデータ処理システムにおいて、
    論理的に隣接するファイルデータのバイトを第1のタイプの可変サイズデータ構造に記憶する段階と、
    関連するファイルデータが記憶された第1のタイプの前記可変サイズデータ構造を第2のタイプの可変サイズデータ構造に記憶する段階と、
    前記第2のタイプの可変サイズデータ構造を前記第2の記憶装置の前記固定サイズデータ構造に記憶する段階と、
    を備えることを特徴とする方法。
  14. 請求項13記載の方法において、更に、
    前記第2の記憶装置のメモリ空間を固定サイズ装置に論理的に区分けする段階と、
    前記固定サイズデータ構造の1つにデータが記憶されたときに前記データが前記第2の記憶装置の対応する固定サイズ装置に記憶されるよう、前記固定サイズ装置の各々を前記固定サイズデータ構造の中の対応するものに関連付ける段階と、
    を備える方法。
  15. 請求項14記載の方法において、更に、前記第2の記憶装置のメモリ空間に前記固定サイズデータ構造のアレイを提供する段階を備え、前記第2のタイプの前記可変サイズデータ構造を前記第2の記憶装置の前記固定サイズデータ構造に記憶する段階は、更に、前記第2のタイプの前記可変サイズデータ構造を前記第2の記憶装置の前記固定サイズデータ構造のアレイに記憶する段階を備える方法。
  16. 請求項13記載の方法において、論理的に隣接するファイルデータのバイトを第1のタイプの可変サイズデータ構造に記憶する前記段階は、更に、前記第1のタイプの前記可変サイズデータ構造に記憶された論理的に隣接するバイトを、前記第2のタイプの前記可変サイズデータ構造の同じものに保持された前記第1のタイプの前記可変サイズデータ構造の中からユニークに識別するために、前記第1のタイプの各データ構造に識別子を記憶する段階を備える方法。
  17. 請求項13記載の方法において、前記第2の記憶装置はディスク記憶装置であり、前記第2のタイプの可変サイズデータ構造を前記第2の記憶装置の前記固定サイズデータ構造に記憶する前記段階は、更に、前記第2のタイプの前記可変サイズデータ構造を前記ディスク記憶装置の前記固定サイズデータ構造に記憶する段階を備えた方法。
  18. 請求項13記載の方法において、更に、前記第2のタイプの前記可変サイズデータ構造の各々に関して前記第2の記憶装置に適当な情報を記憶する段階を備える方法。
  19. 請求項18記載の方法において、更に、前記第2のタイプの前記可変サイズデータ構造の1つに問い合わせを行ってそこに含まれた適当な情報を得る段階を備える方法。
  20. 内部記憶装置と、
    第2の記憶装置と、
    論理的に隣接するファイルデータのバイトを第1のタイプの可変サイズデータ構造に記憶する手段と、
    関連するファイルデータを保持する第1のタイプの可変サイズデータ構造のセットを第2のタイプの可変サイズデータ構造に記憶する手段と、
    前記第2のタイプの前記可変サイズデータ構造を前記第2の記憶装置の前記固定サイズデータ構造に記憶する手段と、
    を備えることを特徴とするデータ処理システム。
  21. 請求項20記載のデータ処理システムにおいて、更に、
    前記第2の記憶装置のメモリ空間を固定サイズ装置に論理的に区分けする手段と、
    前記固定サイズデータ構造の1つにデータが記憶されたときに前記データが前記第2の記憶装置の対応する固定サイズ装置に記憶されるよう、前記固定サイズ装置の各々を前記固定サイズデータ構造の中の対応するものに関連付ける手段と、
    を備えるデータ処理システム。
  22. 第2の記憶装置を備えたデータ処理システムにおいて、
    論理的に隣接するファイルデータのバイトのセットを第1のタイプの可変サイズデータ構造の各々に記憶する段階と、
    関連するファイルデータを記憶する第1のタイプの可変サイズデータ構造を前記第2の記憶装置の第2のタイプの可変サイズデータ構造に記憶する段階と、
    前記第1のタイプの可変サイズデータ構造に対するB−ツリーインデックスを前記第2の記憶装置の前記第2のタイプの可変サイズデータ構造に記憶する段階と、
    を備えることを特徴とする方法。
  23. 請求項22記載の方法において、更に、B−ツリーインデックスをアクセスすることにより、前記第2の記憶装置の前記第2のタイプの可変サイズデータ構造において論理的に隣接するファイルデータのバイトの場所を発見する段階を備える方法。
  24. 請求項22記載の方法において、前記第1のタイプの可変サイズデータ構造に対するB−ツリーインデックスを前記第2の記憶装置の前記第2のタイプの可変サイズデータ構造に記憶する前記段階は、更に、前記第1のタイプの前記可変サイズデータ構造に対するB−ツリーインデックスを、前記第1のタイプの可変サイズデータ構造として前記第2の記憶装置の前記第2のタイプの可変サイズデータ構造に記憶する段階を備える方法。
  25. 第2の記憶装置を備えたデータ処理システムにおいて、
    論理的に隣接するファイルデータのバイトを第1のタイプの可変サイズデータ構造に記憶する段階と、
    第2のタイプの可変サイズデータ構造を前記第2の記憶装置に記憶する段階であって、前記第2のタイプの可変サイズデータ構造は各々、関連するファイルデータを記憶する第1のタイプの可変サイズデータ構造のセットを記憶するような段階と、
    前記第2のタイプの可変サイズデータ構造の各々において、前記第2のタイプの可変サイズデータ構造に記憶された前記第1のタイプの可変サイズデータ構造に対するインデックスを記憶する段階と、
    を備えることを特徴とする方法。
  26. 第2の記憶装置を備えたデータ処理システムにおいて、前記第2の記憶装置は固定サイズバケットの1つのアレイを保持するメモリ空間を含んでおり、前記バケットのうちの1つはオブジェクトを保持しており、前記第2の記憶装置に付加的なメモリ空間をアロケートしてオブジェクトの増大する要求を満たす方法が、
    オブジェクトを現在保持しているバケットが、オブジェクトの増大する要求を満たすのに十分な自由メモリを有しているかどうかを決定する段階と、
    オブジェクトを現在保持しているバケットが十分な自由メモリ空間を有している場合には、そのオブジェクトに対するバケットに付加的な空間をアロケートしてオブジェクトの増大する要求を満たす段階と、
    さもなければ、オブジェクトの増大する要求を満たすのに十分なメモリ空間を有するバケットを見つけだして、そのバケットにオブジェクトを移動させる段階と、
    を備える方法。
  27. 請求項26記載の方法において、オブジェクトの増大する要求を満たすのに十分なメモリ空間を有するバケットを見つけだす前記段階は、更に、オブジェクトの増大する要求を満たすのに十分なメモリ空間を有するバケットであって、前記第2の記憶装置においてオブジェクトを現在保持しているバケットに最も近接しているようなオブジェクトを見つけだすことを備える方法。
  28. 第2の記憶装置を備えたデータ処理システムにおいて、
    前記第2の記憶装置の記憶空間の固定サイズバケットのアレイにファイルを記憶する段階と、ここで、記憶空間の前記固定サイズバケットの少なくとも1つは1つ若しくはそれ以上のファイルをそこに記憶しており、
    アレイに記憶された複数のファイルの中からあるファイルを識別する識別子を各ファイルに提供する段階と、
    ファイルに対する各識別子をそのファイルが記憶された固定サイズバケットにマップするマップを前記第2の記憶装置に記憶する段階と、
    ファイルが記憶された固定サイズバケットの場所を発見するマップを使用し、且つ、固定サイズバケットを調査して所定の識別子を有するファイルの場所を発見することにより、所定の識別子を有するファイルの1つの場所をアレイにおいて発見する段階と、
    を備えることを特徴とするデータ処理システム。
  29. 第2の記憶装置を備えたデータ処理システムにおいて、
    前記第2の記憶装置の記憶空間の固定サイズバケットのアレイにファイルを記憶する段階であって、ここで各ファイルはそれに関連する識別子を有するようなものであり、
    複数のエントリのマッピング構造を前記第2の記憶装置に記憶する段階と、ここで、前記エントリは他の識別子をアレイのバケットの1つにマップするものであり、
    アロケートされていない前記第2の記憶装置の空間のセルの識別子の自由リストをマッピング構造に記憶する段階と、
    バケットの識別子からバケットの場所を発見するマッピング構造を使用する段階と、
    を備える方法。
  30. 請求項29記載の方法において、更に、マッピング構造を用いて自由リストにおける識別子の場所を発見する段階を備える方法。
  31. 第2の記憶装置を有するデータ処理システムにおいて、
    その各々がそれに関連する識別子を有するファイルを記憶するために前記第2の記憶装置に記憶空間の固定サイズバケットのアレイを提供する段階と、
    自由リストのセル若しくはアレイのバケットのいずれかに識別子をマッピングするために前記第2の記憶装置に複数のエントリのマッピング構造を提供する段階と、
    前記第2の記憶装置の空間のいづれかの自由セルの識別子を含んだ自由リストをマッピング構造に提供する段階と、
    自由リストが少なくとも1つのセルに対する識別子を含んでいるかを決定する段階と、
    自由リストが少なくとも1つのセルに対する識別子を含んでいる場合には、自由リストから新たなファイルにセルの所定の識別子を割り当て、且つこの新たなファイルをセルに記憶する段階と、を備えることを特徴とする方法。
  32. 請求項31記載の方法において、更に、
    自由リストがセルを含まない場合には、
    新たな識別子を新たな自由セルにマップするマッピング構造に付加的なエントリを付加する段階を備える方法。
  33. 請求項32記載の方法において、更に、
    新たな自由リストの1つに関連する新たな識別子の1つを新たなファイルに割り当てる段階と、
    新たなファイルに割り当てられた新たな識別子と関連する新たな自由セルに前記新たなファイルを記憶する段階と、
    を備える方法。
JP2007238935A 1993-06-30 2007-09-14 ファイルシステムにおけるオブジェクトの効率的な記憶 Expired - Lifetime JP4250190B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/086,344 US5613105A (en) 1993-06-30 1993-06-30 Efficient storage of objects in a file system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004326065A Division JP2005100451A (ja) 1993-06-30 2004-11-10 ファイルシステムにおけるオブジェクトの効率的な記憶

Publications (2)

Publication Number Publication Date
JP2008041108A true JP2008041108A (ja) 2008-02-21
JP4250190B2 JP4250190B2 (ja) 2009-04-08

Family

ID=22197972

Family Applications (3)

Application Number Title Priority Date Filing Date
JP6144411A Pending JPH0728675A (ja) 1993-06-30 1994-06-27 ファイルシステムにおけるオブジェクトの効率的な記憶
JP2004326065A Pending JP2005100451A (ja) 1993-06-30 2004-11-10 ファイルシステムにおけるオブジェクトの効率的な記憶
JP2007238935A Expired - Lifetime JP4250190B2 (ja) 1993-06-30 2007-09-14 ファイルシステムにおけるオブジェクトの効率的な記憶

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP6144411A Pending JPH0728675A (ja) 1993-06-30 1994-06-27 ファイルシステムにおけるオブジェクトの効率的な記憶
JP2004326065A Pending JP2005100451A (ja) 1993-06-30 2004-11-10 ファイルシステムにおけるオブジェクトの効率的な記憶

Country Status (5)

Country Link
US (1) US5613105A (ja)
EP (1) EP0632364B1 (ja)
JP (3) JPH0728675A (ja)
CA (1) CA2125606C (ja)
DE (1) DE69430027T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567999B2 (en) 2016-05-13 2023-01-31 Tibco Software Inc. Using a B-tree to store graph information in a database

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
CA2124754C (en) * 1993-06-30 2005-06-28 Mark Zbikowski Storage of file data on disk in multiple representations
CA2124752C (en) * 1993-06-30 2005-04-12 Mark Zbikowski Meta-data structure and handling
CA2117846C (en) * 1993-10-20 2001-02-20 Allen Reiter Computer method and storage structure for storing and accessing multidimensional data
US6247105B1 (en) * 1996-06-20 2001-06-12 Sun Microsystems, Inc. Externally identifiable descriptor for standard memory allocation interface
US5960431A (en) * 1996-12-19 1999-09-28 International Business Machines Corporation Method and apparatus for adding data storage bins to a stored computer database while minimizing movement of data and balancing data distribution
US6182060B1 (en) * 1997-04-15 2001-01-30 Robert Hedgcock Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets
US6282605B1 (en) * 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
US7197491B1 (en) 1999-09-21 2007-03-27 International Business Machines Corporation Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores
US7113939B2 (en) 1999-09-21 2006-09-26 International Business Machines Corporation Architecture to enable search gateways as part of federated search
US6792416B2 (en) 1999-09-21 2004-09-14 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated result set cursor object
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6466933B1 (en) 1999-09-21 2002-10-15 International Business Machines Corporation Delayed delivery of query results or other data from a federated server to a federated client until such information is needed
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US7331058B1 (en) * 1999-12-16 2008-02-12 International Business Machines Corporation Distributed data structures for authorization and access control for computing resources
WO2002029624A1 (en) * 2000-10-04 2002-04-11 Bullant Technology Pty Ltd Data processing structure
US7088910B2 (en) * 2001-02-09 2006-08-08 Microsoft Corporation Optimizing use of storage space in a video data recording system
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US7428548B2 (en) 2001-08-15 2008-09-23 Bentley Systems, Inc. Computer readable medium for storing large data files
DK1417800T3 (en) * 2001-08-15 2018-01-15 Bentley Sys Inc PROCEDURE AND SYSTEM FOR STORING LARGE DATA FILES
JP4225740B2 (ja) * 2002-04-26 2009-02-18 三洋電機株式会社 ファイル管理装置
GB2390181A (en) * 2002-06-20 2003-12-31 Achiezer Racov Method for storing data received over a telephone network
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US7120637B2 (en) * 2003-05-30 2006-10-10 Microsoft Corporation Positional access using a b-tree
US7633886B2 (en) * 2003-12-31 2009-12-15 University Of Florida Research Foundation, Inc. System and methods for packet filtering
US7904906B2 (en) * 2004-11-23 2011-03-08 Stratus Technologies Bermuda Ltd. Tracking modified pages on a computer system
US7908246B2 (en) * 2008-03-06 2011-03-15 International Business Machines Corporation Separating file data streams to enhance progressive incremental processing
US8429194B2 (en) 2008-09-15 2013-04-23 Palantir Technologies, Inc. Document-based workflows
DE102009031923A1 (de) * 2009-07-07 2011-01-13 Sones Gmbh Verfahren zum Verwalten von Datenobjekten
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8799228B2 (en) 2011-06-29 2014-08-05 Nokia Corporation Method and apparatus for providing a list-based interface to key-value stores
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
US8433702B1 (en) * 2011-09-28 2013-04-30 Palantir Technologies, Inc. Horizon histogram optimizations
US8560494B1 (en) 2011-09-30 2013-10-15 Palantir Technologies, Inc. Visual data importer
CN103186617B (zh) * 2011-12-30 2016-04-06 北京新媒传信科技有限公司 一种存储数据的方法和装置
US9378526B2 (en) 2012-03-02 2016-06-28 Palantir Technologies, Inc. System and method for accessing data objects via remote references
US9798768B2 (en) 2012-09-10 2017-10-24 Palantir Technologies, Inc. Search around visual queries
US9471370B2 (en) 2012-10-22 2016-10-18 Palantir Technologies, Inc. System and method for stack-based batch evaluation of program instructions
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9367463B2 (en) 2013-03-14 2016-06-14 Palantir Technologies, Inc. System and method utilizing a shared cache to provide zero copy memory mapped database
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8903717B2 (en) 2013-03-15 2014-12-02 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US8855999B1 (en) 2013-03-15 2014-10-07 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US9317213B1 (en) * 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
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
US10282874B2 (en) 2014-09-17 2019-05-07 Circonus, Inc. Efficient time-series histograms
US9697227B2 (en) * 2014-10-27 2017-07-04 Cohesity, Inc. Concurrent access and transactions in a distributed file system
US9348880B1 (en) 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US9996302B2 (en) 2015-04-03 2018-06-12 Toshiba Memory Corporation Storage device writing data on the basis of stream
US9514205B1 (en) 2015-09-04 2016-12-06 Palantir Technologies Inc. Systems and methods for importing data from electronic data files
US10558339B1 (en) 2015-09-11 2020-02-11 Palantir Technologies Inc. System and method for analyzing electronic communications and a collaborative electronic communications user interface
US9772934B2 (en) 2015-09-14 2017-09-26 Palantir Technologies Inc. Pluggable fault detection tests for data pipelines
US9652510B1 (en) 2015-12-29 2017-05-16 Palantir Technologies Inc. Systems and user interfaces for data analysis including artificial intelligence algorithms for generating optimized packages of data items
US10554516B1 (en) 2016-06-09 2020-02-04 Palantir Technologies Inc. System to collect and visualize software usage metrics
US9678850B1 (en) 2016-06-10 2017-06-13 Palantir Technologies Inc. Data pipeline monitoring
US10621314B2 (en) 2016-08-01 2020-04-14 Palantir Technologies Inc. Secure deployment of a software package
US10133782B2 (en) 2016-08-01 2018-11-20 Palantir Technologies Inc. Techniques for data extraction
US11256762B1 (en) 2016-08-04 2022-02-22 Palantir Technologies Inc. System and method for efficiently determining and displaying optimal packages of data items
US10552531B2 (en) 2016-08-11 2020-02-04 Palantir Technologies Inc. Collaborative spreadsheet data validation and integration
US10373078B1 (en) 2016-08-15 2019-08-06 Palantir Technologies Inc. Vector generation for distributed data sets
EP3282374A1 (en) 2016-08-17 2018-02-14 Palantir Technologies Inc. User interface data sample transformer
US10650086B1 (en) 2016-09-27 2020-05-12 Palantir Technologies Inc. Systems, methods, and framework for associating supporting data in word processing
US10152306B2 (en) 2016-11-07 2018-12-11 Palantir Technologies Inc. Framework for developing and deploying applications
US10261763B2 (en) 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
US11157951B1 (en) 2016-12-16 2021-10-26 Palantir Technologies Inc. System and method for determining and displaying an optimal assignment of data items
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10180934B2 (en) 2017-03-02 2019-01-15 Palantir Technologies Inc. Automatic translation of spreadsheets into scripts
US10572576B1 (en) 2017-04-06 2020-02-25 Palantir Technologies Inc. Systems and methods for facilitating data object extraction from unstructured documents
US10824604B1 (en) 2017-05-17 2020-11-03 Palantir Technologies Inc. Systems and methods for data entry
US10534595B1 (en) 2017-06-30 2020-01-14 Palantir Technologies Inc. Techniques for configuring and validating a data pipeline deployment
US10204119B1 (en) 2017-07-20 2019-02-12 Palantir Technologies, Inc. Inferring a dataset schema from input files
US10754820B2 (en) 2017-08-14 2020-08-25 Palantir Technologies Inc. Customizable pipeline for integrating data
US11016936B1 (en) 2017-09-05 2021-05-25 Palantir Technologies Inc. Validating data for integration
US11379525B1 (en) 2017-11-22 2022-07-05 Palantir Technologies Inc. Continuous builds of derived datasets in response to other dataset updates
US10552524B1 (en) 2017-12-07 2020-02-04 Palantir Technolgies Inc. Systems and methods for in-line document tagging and object based data synchronization
US10783162B1 (en) 2017-12-07 2020-09-22 Palantir Technologies Inc. Workflow assistant
US10360252B1 (en) 2017-12-08 2019-07-23 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets
US11176116B2 (en) 2017-12-13 2021-11-16 Palantir Technologies Inc. Systems and methods for annotating datasets
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
GB201800595D0 (en) 2018-01-15 2018-02-28 Palantir Technologies Inc Management of software bugs in a data processing system
US10599762B1 (en) 2018-01-16 2020-03-24 Palantir Technologies Inc. Systems and methods for creating a dynamic electronic form
CN110109914A (zh) * 2018-01-16 2019-08-09 恒为科技(上海)股份有限公司 一种应用驱动的数据存储与索引方法
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US11263263B2 (en) 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
US4606002A (en) * 1983-05-02 1986-08-12 Wang Laboratories, Inc. B-tree structured data base using sparse array bit maps to store inverted lists
US4677550A (en) * 1983-09-30 1987-06-30 Amalgamated Software Of North America, Inc. Method of compacting and searching a data index
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US5265244A (en) * 1986-02-14 1993-11-23 International Business Machines Corporation Method and system for facilitating processing of statistical inquires on stored data accessible through a data access structure
US5034914A (en) * 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
US4953122A (en) * 1986-10-31 1990-08-28 Laserdrive Ltd. Pseudo-erasable and rewritable write-once optical disk memory system
US5058002A (en) * 1987-06-23 1991-10-15 Mitsubishi Denki Kabushiki Kaisha Page splitting method and apparatus for a database stored in a plurality of memory storage units
US5040110A (en) * 1987-10-30 1991-08-13 Matsushita Electric Industrial Co., Ltd. Write once read many optical disc storage system having directory for storing virtual address and corresponding up-to-date sector address
US5129088A (en) * 1987-11-30 1992-07-07 International Business Machines Corporation Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device
US5081608A (en) * 1988-04-18 1992-01-14 Matsushita Electric Industrial Co., Ltd. Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
US4935825A (en) * 1988-12-16 1990-06-19 Emulex Corporation Cylinder defect management system for data storage system
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
US5125086A (en) * 1989-06-29 1992-06-23 Digital Equipment Corporation Virtual memory paging apparatus with variable size in-page clusters
US5218696A (en) * 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US5202986A (en) * 1989-09-28 1993-04-13 Bull Hn Information Systems Inc. Prefix search tree partial key branching
US5247658A (en) * 1989-10-31 1993-09-21 Microsoft Corporation Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers
US5261088A (en) * 1990-04-26 1993-11-09 International Business Machines Corporation Managing locality in space reuse in a shadow written B-tree via interior node free space list
US5237675A (en) * 1990-06-04 1993-08-17 Maxtor Corporation Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
US5043967A (en) * 1990-08-20 1991-08-27 International Business Machines Corporation Structured data storage method and medium
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JP2761289B2 (ja) * 1990-11-30 1998-06-04 富士通株式会社 ディスクトラックエミュレーション方法
US5204958A (en) * 1991-06-27 1993-04-20 Digital Equipment Corporation System and method for efficiently indexing and storing a large database with high data insertion frequency

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567999B2 (en) 2016-05-13 2023-01-31 Tibco Software Inc. Using a B-tree to store graph information in a database

Also Published As

Publication number Publication date
DE69430027T2 (de) 2002-07-18
JP2005100451A (ja) 2005-04-14
CA2125606C (en) 2002-05-21
US5613105A (en) 1997-03-18
EP0632364B1 (en) 2002-03-06
DE69430027D1 (de) 2002-04-11
EP0632364A1 (en) 1995-01-04
CA2125606A1 (en) 1994-12-31
JP4250190B2 (ja) 2009-04-08
JPH0728675A (ja) 1995-01-31

Similar Documents

Publication Publication Date Title
JP4250190B2 (ja) ファイルシステムにおけるオブジェクトの効率的な記憶
JP4034331B2 (ja) ディスク記憶装置への流れデータの記憶方法
US6654772B1 (en) Multi-volume extent based file system
US6895418B1 (en) Versatile indirection in an extent based file system
US10303650B2 (en) Contiguous file allocation in an extensible file system
CN106294190B (zh) 一种存储空间管理方法及装置
US7610468B2 (en) Modified buddy system memory allocation
US5454103A (en) Method and apparatus for file storage allocation for secondary storage using large and small file blocks
US5490274A (en) Modified buddy system for managing disk space
US8805780B2 (en) Extending cluster allocations in an extensible file system
US8099421B2 (en) File system, and method for storing and searching for file by the same
JP4374348B2 (ja) ディスクにファイルデータを記憶する方法
EP0650131A1 (en) Computer method and storage structure for storing and accessing multidimensional data
JP2003114816A (ja) コンピュータメモリにインデックスを記憶するデータ構造
US5860079A (en) Arrangement and method for efficient calculation of memory addresses in a block storage memory system
US7058785B1 (en) Addressing objects in a large persistent storage address space
JPS595372A (ja) フアイル処理システム
KR20030044498A (ko) 주기억 장치 데이터베이스 관리 시스템의 자료 구조와블록 할당 및 레코드 검색 방법
Orsborn DATABASE TECHNOLOGY-1DL124
JPH02302848A (ja) ファイル管理方式
JPH0298752A (ja) 二進木による二次記憶領域管理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080512

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080811

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081112

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: 20081222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090116

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term