JP2632092B2 - データベースを生成する装置および方法 - Google Patents

データベースを生成する装置および方法

Info

Publication number
JP2632092B2
JP2632092B2 JP3080504A JP8050491A JP2632092B2 JP 2632092 B2 JP2632092 B2 JP 2632092B2 JP 3080504 A JP3080504 A JP 3080504A JP 8050491 A JP8050491 A JP 8050491A JP 2632092 B2 JP2632092 B2 JP 2632092B2
Authority
JP
Japan
Prior art keywords
file
database
database component
source
name
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.)
Expired - Fee Related
Application number
JP3080504A
Other languages
English (en)
Other versions
JPH05135108A (ja
Inventor
ウェイン・シィ・グラムリッチ
ソーレン・ジェイ・ティアフィング
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH05135108A publication Critical patent/JPH05135108A/ja
Application granted granted Critical
Publication of JP2632092B2 publication Critical patent/JP2632092B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明の方法及び装置はデータベ
ースの編成に関し、特に、テキスト形ファイルの検索及
び記憶の効率をできる限り高くするための、データベー
スを形成するテキスト形ソースファイルから取成される
データベースファイル及びデータベースファイルに含ま
れる情報の編成と識別に関する。
【0002】
【従来の技術】データベースは、後の探索と検索に備え
て所定の方式で編成され且つ記憶された情報の集合体で
ある。通常、データは、いくつかのパラメータに従って
データを索引付けし、それらのパラメータに従ってデー
タを検索することができるように編成される。データベ
ースに含まれるデータはアプリケーションによって異な
る。たとえば、データベースは、テキストファイル中の
語又は語のストリングを迅速に検索できるようにテキス
トファイル中の語に索引付けするための情報を含んでい
ても良い。
【0003】データベースに含まれるデータはアクセス
と検索に備えて単一のファイルに編成されても良いが、
複数のファイルにまたがっていても良い。場合によって
は、データベースを取り出す元になるソース情報の性質
上、ファイルの重複が起こる可能性がある。すなわち、
ソース情報が重複する情報を含んでいる場合には、デー
タベースも同様に重複情報を含む可能性がある。これが
起こるアプリケーションの1つは、コンピュータプログ
ラムコンパイラと、テキスト形態のソースファイルのコ
ンパイルプロセスの間に生成される何らかのコンパイラ
情報に従ってソースファイル情報の索引付けと検索を補
助するプロセスの環境である。
【0004】たとえば、ソフトウェアの開発に際して
は、テキスト形態をとるソースコードプログラムの中で
何らかの変数又は記号(以下、まとめて「記号等」とい
う)が現れる箇所を確定し、且つプログラムの実行を通
してその記号等の値がどのように変化するかを知るため
に、プログラムにおいて記号を含んでいる特定の行又は
部分を検閲することが必要になる場合は多い。この探索
・検索能力を実現する1つの方法は、ソースプログラム
中の全ての記号等のインデックスと、それらの記号等が
現われる対応するソースファイル中の行の行番号とを含
むデータベースを形成するというものである。しかしな
がら、ソースプログラムがきわめて大きく、1つのファ
イルではなく、複数の別個ファイルにまたがっているこ
ともありうるので、コンパイルプロセスの間に、主プロ
グラムに入っているリンキング又は取り込みステートメ
ント(Cプログラミング言語の「#include」ステート
メントなど)によってファイルを組合わせる。従って、
頻繁に使用されるファイルは、それに含まれている情報
が同一であるにもかかわらず、何度もデータベースに取
り込まれるのである。
【0005】また、データベースを構成しているデータ
ベースコンポーネントファイルが、データベースコンポ
ーネントファイルを取り出す元になったソースファイル
の現在バージョンと一致するように保証することも必要
である。データベースを取り出す元になったテキスト形
ソースファイルを、データベースコンポーネントファイ
ルを更新せずに更新してしまうという不注意なミスは起
こりうる。そのような場合、ソースファイルからのテキ
ストの検索時に、データベースは不正確な情報を提供す
るであろう。
【0006】多重タスク処理環境では、複数のプロセス
又は装置がファイルを同時にアクセスするか又はアクセ
スしようとすることがある。1つのプロセス又は装置が
ある1つのファイルに情報を書込もうとしている間に別
のプロセス又は装置が同じファイルに対して情報の読取
り又は書込みを実行しようとしたときにレース状態は起
こる。その結果、正しくないデータがファイルに書込ま
れ且つ/又は正しくないデータがファイルから読取られ
ることになる。
【0007】
【発明が解決しようとする課題】本発明の課題は、デー
タベース内部のファイルの重複をできる限り少なくする
手段を提供することである。本発明の他の課題は、デー
タベースファイルを探索すると共に、場合によっては、
データファイルとソースファイルとの保全性が失われた
ときにソースファイルの対応する部分を提供する手段を
構成する手段を提供することである。さらに本発明の課
題は、データベースとソースファイルの現在バージョン
との保全性を検査する手段を提供することである。さら
に本発明の課題は、多重タスク処理システムで起こるレ
ース状態のために発生する誤りを阻止する手段を提供す
ることである。
【0008】
【課題を解決するための手段】本発明の方法及び装置に
おいては、データベースに追加すべきデータベースコン
ポーネントファイルに、ファイルの内容によって決まる
一意の名が与えられるので、ソースファイルの内容が変
化すると、データベースに追加すべき対応するデータベ
ースコンポーネントファイルの名も変わる。逆に、2つ
のデータベースコンポーネントファイルが同一の情報を
含んでいる場合には、同じファイル名が生成され、ファ
イルを生成し且つそのファイルをデータベースを追加す
る前にデータベースコンポーネントファイルの名の有無
を検査する単純な試験を実行することにより、データベ
ースにおける情報の重複を阻止する。ファイル名がデー
タベースにあれば、情報は既にデータベースに含まれて
いるので、ファイルを生成してデータベース情報に追加
する動作は実行されない。
【0009】ファイルの名は、ファイルの内容の和から
ハッシュ値を計算し、そのハッシュ値をファイルの名と
組合わせることにより生成されるのが好ましい。データ
ベースコンポーネントファイル名を構成するためにソー
スファイル名をハッシュ値と関連させて使用するので、
ハッシュ値は全てのファイルについて一意である必要は
なく、同一の名を有するソースファイルについてのみ一
意であれば良い。従って、コンフリクトが生じる確率は
最小限である。さらに、ハッシュ値を計算するために発
見的方法を選択することにより、ファイル名が一意であ
るという確信を高いレベルで得続けることができる。ま
た、データベースコンポーネントファイル名はソースフ
ァイルごとに一意であるので、正しいファイルを探索す
るプロセスは簡略化され、データベースコンポーネント
ファイルの位置、たとえば、データベースコンポーネン
トファイルが入っている登録簿を指定する必要はない。
これは、ファイル名が特定のファイル内容に対して一意
性をもち、問い合わせ、すなわち探索プログラムによっ
て、同一の名を有するどのファイルも同じソースファイ
ルから生成されたものであるということを間違いなく仮
定できるからである。
【0010】各データベースコンポーネントファイルは
1つのソースファイルに含まれるテキストに関する情報
を含んでおり、そのため、ユーザーは指定のテキストの
発生頻度と、ソースファイルにおける指定のテキストの
位置とを迅速に確定することができる。テキスト語(こ
こでは「記号」という)ごとに、データベースコンポー
ネントファイルには記号情報を含むエントリが設けられ
ている。記号情報は記号名と、記号の型と、ソースファ
イル中の、記号が位置している行の行番号とを含む。ま
た、ソースファイルの行番号と、行の長さ(すなわち、
行の文字数)と、ソースファイル中のテキストの行の内
容から計算された対応するハッシュ値とを含む行識別情
報も提供される。問い合わせで識別されたテキストの行
を表示する前に、行識別情報は、記号情報で識別された
テキストの行がソースファイルに現在含まれているのと
同じテキストの行であることを検査するための手段を構
成する。(データベースで参照された)テキストの行に
対応するハッシュ値と行長さを、現在ソースファイルか
ら検索したテキストについて計算されたハッシュ値及び
行長さと比較する。計算したハッシュ値と行長さが行識
別情報に含まれているハッシュ値及び行長さと一致しな
い場合には、データベースの生成後にソースファイルが
変更されたために、テキストはデータベース参照部分と
一致しないことになる。
【0011】また、多重タスク処理システムにおいてレ
ース状態が起こったといきに発生する誤りを、原子指令
と関連させて一時ファイル名及び一時ファイル登録簿を
使用することにより阻止するロッキングメカニズムも提
供される。本発明の目的、特徴及び利点は以下の詳細な
説明から明白になるであろう。
【0012】
【実施例】表記法及び用語 以下の詳細な説明の大半は、コンピュータメモリ内部の
データビットの操作の記号表示及びアルゴリズムによっ
て表されている。そのようなアルゴリズムによる説明や
表示は、データ処理技術に熟達した人がその作業の内容
を同じ技術分野の当業者に最も有効に伝達するための手
段である。
【0013】ここでは、また、一般的にも、アルゴリズ
ムは、所望の結果に至る首尾一貫したステップのシーケ
ンスであると考えられている。それらのステップは、物
理的な量の物理的な操作を必要とするステップである。
通常、物理的な量は記憶,転送,組合わせ,比較及びそ
の他の方法による操作が可能である電気信号又は磁気信
号の形態をとるが、必ずしもそうである必要はない。時
によっては、主に一般に共通して使用されている用語で
あるという理由により、それらの信号をビット,値,要
素,記号,文字,項,数などと呼ぶと好都合であること
がわかる。ただし、それらの用語及びそれに類する用語
は適切な物理的な量と関連させるべきものであり、その
ような量に便宜上付与されたラベルであるにすぎないと
いうことを忘れてはならない。
【0014】さらに、実行される操作を、オペレータが
実行する知的動作と一般には関連している加算又は比較
などの用語で呼ぶことが多いが、ここで説明する動作の
どれをとっても、本発明の一部を形成している。そのよ
うなオペレータの能力は不要であり、多くの場合に望ま
しくない。動作は機械の動作である。本発明の動作を実
行するのに有用な機械には、汎用デジタルコンピュータ
又は他の同様な装置がある。いずれの場合にも、コンピ
ュータを動作させる際の方法の動作と、計算それ自体の
方法との明確な区別に留意すべきである。本発明は、電
気的信号又はその他の物理的(たとえば、機械的,化学
的)信号を処理して、他の所望の物理的信号を発生させ
るに際してコンピュータを動作させる方法のステップに
関する。
【0015】また、本発明はこのような動作を実行する
装置にも関する。この装置は必要とされる目的に合わせ
て特別に構成されても良いが、汎用コンピュータを、コ
ンピュータに記憶されたコンピュータプログラムにより
選択的に動作させるか又は再構成することにより使用し
ても良い。ここで提示するアルゴリズムは、元来、特定
のコンピュータ又はその他の装置と関連するものではな
い。詳細にいえば、ここで示す教示に従って書込まれた
プログラムと共に様々な汎用機械を使用できるが、要求
される方法ステップを実行するためには、さらに特殊化
した装置を構成するほうが好都合であると判明するかも
しれない。そのような多様な機械について要求される構
造は以下の説明から明白になるであろう。
【0016】システム全般の構成 図1は、本発明によるデータベースに使用される代表的
なコンピュータベースシステムを示す。図1に示されて
いるコンピュータ101は3つの主要な構成要素を含
む。その第1のものは、適切に構造化された情報をコン
ピュータ101の他の部分との間で通信するために使用
される入出力(I/O)回路102である。コンピュー
タ101の一部としてさらに示されているのは中央処理
装置(CPU)103と、メモリ104である。これら
2つの構成要素は多くの汎用コンピュータ及びほぼ全て
の専用コンピュータで通常見られる装置である。コンピ
ュータ101の中に含まれるいくつかの要素は、事実
上、この広い意味でのデータプロセッサを表そうとする
ものである。コンピュータ101の役割を果たすのに適
するデータプロセッサの特定の例には、カリフォルニア
州マウンテンビューのSun Microsystems,Inc.が製造し
ている機械がある。以下で説明する機械を実行するため
に、同様の能力をもつ他のコンピュータを簡単に適合さ
せることが可能であるのは自明である。
【0017】図1には入力装置105も示されている
が、典型的な実施例では、これをキーボードとして構成
している。しかしながら、入力装置が実際にはカード読
取り装置,磁気テープ又は紙テープ読取り装置、あるい
は他の周知の入力装置(当然のことながら別のコンピュ
ータを含む)であっても良いことを理解すべきである。
入出力回路102に結合する大容量メモリ装置106
は、コンピュータ101にさらに大きな記憶能力を追加
する。大容量メモリは他のプログラムなどを含んでいて
も良く、また、磁気テープ又は紙テープ読取り装置、あ
るいは他の周知の装置の形態をとっていても良い。大容
量メモリ106に保持されているデータを場合に応じて
メモリ104の一部としてコンピュータ101に標準の
方法で適宜取り入れても良いことは明きらかであろう。
【0018】さらに、図示されている表示モニター10
7はメッセージ又は他の通信をユーザーに対して表示す
るために使用される。このような表示モニターは良く知
られている数種類のCRT表示装置の中のいずれか1つ
の形態をとっていても良い。カーソル制御装置108は
指令モードを選択すると共に、たとえば、データベース
に問い合わせをするためのパラメータのような入力デー
タを編集するために使用され、情報をシステムに入力す
る手段としてはより便利である。
【0019】プロセスの説明 本発明の好ましい一実施例に関する以下の説明では、コ
ンピュータプログラムのソースコードファイルとしての
ソースファイルを説明する。「コレクタ」と呼ばれるデ
ータベースファイル生成手段は、ソースコードをオブジ
ェクトコードファイルにコンパイルするコンパイラの一
部として説明される。本発明があらゆる種類のテキスト
ファイルに適用可能であり、コンピュータプログラムソ
ースファイルには限定されないことは当業者には自明で
あろう。さらに、コレクタ機能をここで説明するコンパ
イラのように、他の機能を実行する要素と組合わせも良
く、あるいは、コレクタを独立した手段として動作させ
ても良い。
【0020】図2に関して説明する。図2には、本発明
を例示するために使用されるデータベースを示す。この
データベースは,少なくとも1つのデータベースコンポ
ーネントファイル(図2では、「ブラウザデータ」とい
う用語を表す接尾部「.bd」を有するものとして示し
てある)と、データベースコンポーネントファイルの中
における情報の位置を規定するために使用されるインデ
ックスファイルとを含む。各データベースコンポーネン
トファイルは、問い合わせに応答して1つのソースファ
イルを探索する能力を得るために、記号情報と、行識別
情報とを含む。ソーステキストファイル中の記号はテキ
ストファイルのあらゆるワードを含んでいても良いが、
記号の型に従って識別されたテキストを選択しても良
い。1990年3月27日に「User Extens
ible,Language Sensitive D
atabase System」の名称で出願された米
国特許出願第500138(米国特許第5,117,
349号)に記載されているインタフェースのように、
記号の識別を指定するインタフェースを使用することに
より、ソースファイルの型に従って記号を分類し且つ識
別しても良い。
【0021】データベースコンポーネントファイルはソ
ースファイルごとに作成され、現在作業ファイルディレ
クトリに記憶される。このことは図2に示されている。
サブディレクトリSource1はソースファイル a.c 及び
b.c を含む。データベースファイル a.c.*.bd 及び b.
c.*.bd と、インデックスファイルIndex1とを含むサブ
ディレクトリ .sb が作成される。ディレクトリSource
2のサブディレクトリであるサブディレクトリ .sb は
データベース e.c.*.bd 及びf.c.*.bd と、インデック
スファイルIndex2とを含むが、これはディレクトリSou
rce 2に含まれているソースファイル e.c 及び f.c に
対応する。以下に詳細に説明するが、データベースファ
イル名の中の「*」 は、ソースファイルの内容に対応す
る一意のファイル名を与えるためにファイル名に組込ま
れるハッシュ値を表す。
【0022】このことを図3a及び図3bに示す例によ
ってさらに説明する。図3aは、C言語で書かれ、「pr
intf」ステートメントと、ファイル「stdio.h」をプロ
グラムに取り入れる「include」ステートメントとを含
む単純なコンピュータプログラムであるテキストファイ
ルを示す。「コレクタ」と呼ばれ、この実施例ではコン
ピュータプログラムをコンパイルするコンパイラの一部
であるデータベース生成手段は、図3bに示すデータベ
ースファイルを生成する。図3bに示されているのは、
ソースファイル「 foo.c 」を表すデータベースコンポ
ーネントファイルである連係実行可能ファイル foo.c.
Iuo Yuw.bd を表すデータベースコンポーネントファ
イルであるデータベースコンポーネントファイル foo.
2rBQsT.bd と、includeステートメントを経てプログラ
ム foo.c に取り入れられたソースファイル「stdio.h
」 に関するデータベースコンポーネントファイルstdi
o.h.OyPdOs.bd である。
【0023】各データベースコンポーネントファイルの
ファイル名は、ソースファイルのファイル名と組合され
て一意のファイル名を形成するハッシュ値を含む。ハッ
シュ値はソースファイルの内容の関数として計算され、
ソースファイルの内容が変われば、ハッシュコードも変
化する。たとえば、データベースファイル名foo .2rBQ
sT.bd の中の文字列「2rBQsT」、データベースファイ
ル名foo.c.IuoYuw .db の中の文字列「IuoYuw」 及
びデータベースファイル名stdio.h.OyPdOs.bdの中の
文字列「OyPdOs」は、生成され且つデータベースファイ
ル名に取り入れられたハッシュ値である。
【0024】データベースコンポーネントファイル記号
参照は記号識別情報と、行識別情報とを含む。記号識別
情報は、記号名と、記号が位置しているソースファイル
中の行番号と、記号の型とを含む記号の三重項から構成
される。行識別情報は三重項のリストから構成され、各
三重項はソースファイル内部における相対行番号と、行
の長さと、行のハッシュ値とを識別する。ハッシュ値は
テキストの行の内容(たとえば、行の中のバイトの和)
から計算される。すなわち、行の内容が変更されるか又
はテキストの挿入又は削除によって行が移動した場合に
は、それに相応してハッシュ値は変化する。
【0025】図3aのプログラムに関連するデータベー
スコンポーネントファイルの内容の実施を図3cに示
す。「symbol table section(記号テーブルセクショ
ン)」400は記号の名と、「semantic table secti
on(意味テーブルセクション)」410における記号の
位置とを含む。意味テーブルセクション410は各記号
の用途ごとに記号名と、記号が位置しているソースファ
イル中の行番号と、記号の型とを識別する三重項を含
む。「line identification section(行識別セクシ
ョン)」420はソースファイル中のテキストの行に対
応する行番号と、長さと、ハッシュ値の三重項を含む。
【0026】インデックスファイルは、問い合わせの対
象である記号の発生についてデータベースコンポーネン
トファイルに対し問い合わせ、すなわち探索を行うため
の手段である。この実施例では、インデックスファイル
は使用される全ての記号のリストと、それぞれの記号が
含まれているデータベースコンポーネントファイル名と
を含む。
【0027】ソースは1つ又は複数のテキストファイル
を含む。それらのテキストファイルは、用途に応じて、
互いに関連していても良いが、関連していなくとも差支
えない。たとえば、本又は雑誌の記事などの文書を表す
テキストから構成されるソースが考えられる。文書の表
題,序文,摘要,文献目録並びに本文といった文書の様
々に異なる部分について、別個のテキストファイルを作
成しても良い。ソースがコンピュータプログラムである
場合、ソースはそのプログラムの後続するコンパイル及
び実行に必要な全てのコードを含む単一のファイルであ
っても良い。あるいは、ソースは複数のファイルにまた
がっていても良く、そのような場合には、1つのファイ
ルは主プログラムのコードを含み、他のファイルは、主
プログラムの中で、サブルーチン呼び出し又はCプログ
ラミング言語で利用する「#include」ステートメント
のようなincludeステートメントの形態をとって参照さ
れるサブプログラムに関するソースコードを含んでい
る。
【0028】コードを含むファイルがそれぞれコンパイ
ルされるときに、データベースコンポーネントファイル
(「bd. file」)に取り入れるべき情報が生成される。
データベースコンポーネントファイルの生成に先立っ
て、作成すべきデータベースコンポーネントファイルに
ついて一意の名を生成する。このデータベースコンポー
ネントファイルはテキストファイルの名と、ハッシュ値
とから得られる。ハッシュ値は、テキストファイルの内
容が変わった場合にはハッシュコードも変化し、それに
より、同じテキストファイルの様々に異なるバージョン
についてデータベースコンポーネントファイルを区別で
きるように、ファイルの内容の関数として計算される。
【0029】場合によっては、同じテキストファイルを
複数の異なるソースに頻繁に取り入れることがある。た
とえば、コンピュータプログラムソースに関していう
と、サブプログラムを参照する宣言を含む同じテキスト
ファイルを、主プログラムのコードを含むテキストソー
スファイルに取り入れても良い。そのような場合に同じ
データベースコンポーネントファイルの重複をなくすた
めに、データベースコンポーネントファイルを生成する
前に、そのデータベースコンポーネントファイルの名を
生成し、現在存在しているデータベースコンポーネント
ファイルのリストと比較する。データベースコンポーネ
ントファイルの名が既にあれば、ソースファイルに対し
て既存のデータベースファイルを使用できるので、デー
タベースファイルは重ねて生成はされず、重複は起こら
ない。データベースファイルの重複をなくすことによっ
て、プロセッサのオーバヘッドと、データベースコンポ
ーネントファイルを記憶するために使用されるメモリが
セーブされる。
【0030】ハッシュ値は、データベースコンポーネン
トファイルの内容からハッシュ値を取り出す数多くの方
法の中のいずれか1つによって生成されれば良い。たと
えば、データベースコンポーネントファイル名を形成す
るために使用されるハッシュ値を、ファイルに含まれて
いる全てのバイトの和に従って計算できる。
【0031】ハッシュ値は、データベースコンポーネン
トファイルに含まれるべき様々なキー情報の和であるの
が好ましい。たとえば、データベースコンポーネントフ
ァイルに含まれるべき情報が図3cに示す情報である場
合、ハッシュ値は次のようにして生成されるものと考え
られる。ファイルのセクションごとに別個のハッシュ値
を計算する。それにより、ファイル名に取り入れられる
ハッシュ値はファイルのセクションごとのハッシュ値の
和となる。
【0032】ファイルのセクションごとにハッシュ値を
生成するために、セクションから何らかの情報を選択
し、合計する。たとえば、魔法数(UNIX(登録商
標)ファイルの初めの2バイト又は4バイト)と、ソー
ス型IDと、ファイルの大きいほうのバージョン番号及
び小さいほうのバージョン番号(たとえば、バージョン
2,1)と、行標識と、ケース標識(ケース標識は、文
字のケースが重要でない場合にセットされる)と、言語
名文字列の各文字列とを合計して、セクションのハッシ
ュ値を計算する。ソース名セクションのハッシュ値は、
相対フィールドが1の値にセットされていれば、ファイ
ル名の中のそれぞれの文字のASCII値と、相対フィー
ルドとから生成される(相対フィールドは、ファイルが
相対経路により識別されたか又は絶対経路により識別さ
れたかを指示する)。参照されるセクションのハッシュ
値は、参照されるファイルごとの各ハッシュ値の和と、
参照されるそれぞれのファイルの中の各文字のASCII
値とから生成される。記号テーブルセクションのハッシ
ュ値は、記号テーブルセクションの文字列ごとのそれぞ
れの文字のASCII値の和である。意味テーブルセクシ
ョンについては、記録ごとの記録型IDと、行番号と、
意味タグとを合計して、ハッシュ値を生成する。さら
に、行IDセクションの行ごとの行長さ及びハッシュ値
(行のバイトの和に従って決定される)を合計し、非活
動標識フラグがセットされている行ごとに1の値を加算
して(非活動標識はツールをデバックするために使用さ
れる)、データベースコンポーネントファイルの行ID
セクションのハッシュ値を生成する。
【0033】このように、ハッシュ値を取り入れたファ
イル名は「[source code filename].[hash valu
e].bd」となるであろう。識別を容易にするために、
データベースコンポーネントファイルであるファイルを
首尾一貫して識別できるように接尾部「.bd」 を使用す
るのが好ましい。
【0034】メモリスペースをセーブし、ファイル名生
成プロセスを単純にすると共に、問い合わせ、すなわち
検索プロセスを単純にするためには、データベースコン
ポーネントファイルが常駐しているディレクトリの名を
ファイル名に取り入れないのが好ましい。各データベー
スコンポーネントファイルの名は一意性をもち且つソー
スの特定の1つのテキストファイルに関連しているの
で、これが可能なのである。従って、問い合わせ、すな
わち探索プログラムは、テキストファイル名に対応する
一意のデータベースコンポーネントファイル名が見つか
るまで、ファイルシステム内のファイルディレクトリを
探索するだけである。データベースコンポーネントファ
イルを求めて探索すべきファイルディレクトリの数をで
きる限り少なくするために、データベースコンポーネン
トファイルが位置している全てのディレクトリのリスト
を記憶する手段を設けるのが好ましい。その場合、問い
合わせプログラムはリストに挙げられているディレクト
リでのみデータベースコンポーネントファイルを探索す
る。デフオルトにより、問い合わせプログラムは現在作
業ディレクトリのみを探索するのが好ましい。その後、
探索すべきファイルシステムのディレクトリのリストを
構成するために、ブラウザにより認識された特定のファ
イルにより、作業ディレクトリを越える探索の拡張を指
示する。
【0035】データベースコンポーネントファイルが作
成されたならば、データベースコンポーネントファイル
へのインデックスを得るために、インデックスファイル
を生成する。インデックスファイルは、問い合わせを実
行するために使用できる記号(たとえばテキスト)と、
各記号が入っているデータベースコンポーネントファイ
ルのリストとを含む。
【0036】ある記号についてデータベースを問い合わ
せる(探索する又は検索するともいう)ときには、記号
が入っているデータベースのデータベースコンポーネン
トファイル、すなわち、ソースの対応するテキストファ
イルを確定するために、インデックスファイルを検閲す
る。記号を含んでいるデータベースコンポーネントファ
イルを検閲して、その中に記憶され、ソーステキストフ
ァイルにおける記号の位置を指示する記号情報を検索す
る。次に、問い合わせの結果がユーザーに戻される。戻
される情報は、ソーステキストファイルのリスト及び記
号が位置している行の行番号,記号が入っているファイ
ルからのテキストの行、あるいは記号が位置している行
を含めた、テキストファイルのその周辺の複数の行など
の形態をとる様々なフォーマットで現れることが可能で
ある。
【0037】図1に示す実施例について説明を続ける
と、特定の1つの記号が問い合わせの対象であり、それ
を求めてサブディレクトリSource1を探索する場合に
は、その記号がどのデータベースコンポーネントファイ
ルに含まれているかを確定するために、インデックスフ
ァイルIndex1を検閲する。記号が a.c.*.bd で見つか
ることをインデックスファイルが知らせると、記号名,
行番号及び記号の型と、行長さ及びハッシュ値とを含む
記号情報を検索するために、そのデータベースコンポー
ネントファイルを検閲する。データベースコンポーネン
トファイルに対応するソーステキストファイル、すなわ
ち a.cを検閲し、指定された行番号のテキストの行をユ
ーザーに対し検索する。
【0038】データベースコンポーネントファイルとイ
ンデックスファイルが生成された後にソースファイルが
変更された場合、続いてデータベースコンポーネントフ
ァイルとインデックスファイルも更新しておかないと、
探索誤りが発生する。データベース不一致の影響を軽減
するために、行識別情報をデータベースコンポーネント
ファイルに取り入れている。行識別情報は行番号と、行
長さと、行の内容に従って生成されたハッシュ値とを含
む。ソーステキストファイルからのテキストの行の検索
に先立って、参照された行番号におけるテキストに従っ
てハッシュ値を計算し、行長さと、計算したハッシュ値
をデータベースコンポーネントファイルに記憶されてい
る行長さ及びハッシュ値とそれぞれ比較する。値が等し
ければ、テキストの正しい行を見つけだしたことにな
り、その行を問い合わせの結果としてユーザーに提供す
る。一方又は双方の値が一致しない場合には、データベ
ースファイルの生成後にソースファイルが変更されてい
るのである。そこで、データベースファイルを更新しな
ければならないことをユーザーに告げるエラーメッセー
ジを発生させても良い。また、テキストの行がソーステ
キストファイル中の別の行へ移動したような場合には、
データベースファイルに記憶されている行長さとハッシ
ュ値とをソーステキストファイルの他の行に関する行長
さ及び生成ハッシュ値と比較し、それらの間に一致を見
出すことで行を求めても良い。一致をさらに正確に発見
するためには、検索すべきテキストの行の上下にあるテ
キストの行に関する行長さと生成ハッシュ値を、データ
ベースコンポーネントファイルに記憶されているテキス
トの3つの連続する行を表す行長さ及びハッシュ値とそ
れぞれ比較するのが好ましい。すなわち、テキストの3
つの行のシーケンスの行長さとハッシュコードがデータ
ベースコンポーネントファイルに記憶されている行長さ
とハッシュ値のシーケンスと一致すれば、一致を認め、
そのテキストの行を問い合わせの結果としてユーザーに
戻すのである。
【0039】図4a,図4b及び図4cを参照して、本
発明の好ましい一実施例を説明する。本発明を2つのタ
スク又は構造(ここでは、「コレクタ」及び「ブラウ
ザ」と呼ぶ)に分割するのが好ましい。ここで示す好ま
しい実施例では、ソーステキストファイルはC言語で書
かれたプログラムのようなコンピュータコードの形態を
とるテキストファイルから構成される。コレクタはC言
語コンパイラ220に組込まれている。すなわち、コン
パイラ220はコンパイルされたコード、すなわちオブ
ジェクトコード225を生成すると共に、ソーステキス
トファイル210に対して対応するデータベースコンポ
ーネントファイル230を生成する。データベースコン
ポーネントファイルは、記号名と、記号が位置している
行番号と、記号の型とを含む記号識別情報のリストを記
憶している。さらに、データベースコンポーネントファ
イルは行番号と、行の長さと、それらから生成されたハ
ッシュ値とから成る行識別情報を含む。先に説明した通
り、行識別情報は、データベースファイルにより識別さ
れた行番号がテキストファイルから検索し且つ問い合わ
せに対する応答としてユーザーに提示すべき正しいテキ
ストの行であるか否かを検査するために使用される。
【0040】問い合わせを実行すべきときにはブラウザ
240を使用する。ブラウザ240は、記号の参照リス
トと、それらの記号が入っているデータベースコンポー
ネントファイル230の名とを表すインデックスファイ
ル250を生成する。問い合わせを実行するときには、
ブラウザ240はインデックスファイル250を検閲
し、インデックスファイルで問い合わせの対象である記
号を含むものとして識別されたデータベースコンポーネ
ントファイル230を検閲し、データベースコンポーネ
ントファイル230で識別された記号を含むソーステキ
ストファイル210中のテキストの行を検索し、そのよ
うな情報を出力情報255としてユーザーに提示する。
【0041】図4bは、好ましい実施例の構造を示す。
図4bでは、ソースファイルA260とソースファイル
B270という2つのテキストファイルがソースを形成
しており、ソースはコンパイラ220に入力されて、コ
ンパイル済コード225と、データベースコンポーネン
トファイルA280及びデータベースコンポーネントフ
ァイルB290から成るデータベースとを生成する。ブ
ラウザ240はそれらのデータベースコンポーネントフ
ァイルを利用して出力情報255を発生し、その出力情
報は問い合わせの結果としてユーザーに示される。尚、
インデックスファイル250は1つしか生成されない。
テキストファイルAとテキストファイルBが同一のディ
レクトリに含まれている限り、インデックスファイルは
1つあれば良い。ただし、データベースコンポーネント
ファイルがファイルシステム内の別個のディレクトリに
書込まれている場合には、別個のインデックスファイル
が生成されるであろう。
【0042】図4cは、ソースにテキストファイルC3
00が追加された場合を示す。このファイルは、テキス
トスファイルA260及びテキストファイルB270と
共に、コンパイラ220によりコンパイルされて、コン
パイラコード225と、データベースコンポーネントフ
ァイルA280、データベースコンポーネントファイル
B290及びデータベースコンポーネントファイルC3
10から成るデータベースとを生成する。テキストファ
イルC300がテキストファイルA260及びテキスト
ファイルB270とは異なるディレクトリに入っている
場合には、ディレクトリごとに1つずつ、2つのインデ
ックスファイルが生成される。ブラウザ240はデータ
ベースコンポーネント280,290に関するインデッ
クスファイル1 250と、データベースコンポーネン
トファイル310に関するインデックスファイル320
という2つのインデックスを生成する。ブラウザ240
はそれらのインデックスファイル250,320を利用
して、ユーザーに対して出力情報255として提示すべ
き問い合わせの内容に従って、ソースファイル260,
270及び300から検索すべきテキストの行を確定す
る。
【0043】図5a及び図5bを参照して、本発明の好
ましい実施例のプロセスを説明する。まず、図5aにお
いて、ブロック400で、コレクタはデータベースコン
ポーネントファイルを識別するための一意の名を生成す
る。データベースコンポーネントファイル名はソーステ
キストファイル名と、ファイルをデータベースコンポー
ネントファイルであると識別する識別接尾部(たとえば
「.bd」)を連結させたハッシュ値との組合わせであ
る。ハッシュ値はデータベースコンポーネントファイル
の内容の関数として生成され、ファイルの内容が変更す
ればハッシュ値も変わるように計算されるべきである。
ブロック410では、生成したデータベースコンポーネ
ントファイル名を既存のデータベースコンポーネントフ
ァイル名に対して検査する。データベースコンポーネン
トファイル名が既に存在していれば、その特定のソース
テキストファイルに関するデータベースコンポーネント
ファイルは既にあり、別途にデータベースコンポーネン
トファイルを生成する必要はないことがわかる。データ
ベースコンポーネントファイル名がなければ、一意のデ
ータベースコンポーネントファイル名により識別される
データベースコンポーネントファイルを生成する。
【0044】図5bは、インデックスファイルの生成及
び問い合わせの実行を含めて、ブラウザ素子が実行する
と考えられる機能を示す。ブロック430では問い合わ
せを受信し、ブロック440で、インデックスファイル
を生成又は更新する必要があるか否かを判定するために
ファイルディレクトリを検査する。インデックスがなけ
ればスクラッチから構成される。最後にインデックスが
作成/更新された時点の後で作成されたデータベースコ
ンポーネントファイルがあれば、インデックスを更新す
る。インデックスファイルを生成又は更新する必要があ
る場合には、ブロック450でインデックスファイルを
生成又は更新する。ブロック460では、インデックス
ファイルを検閲し、問い合わせの対象である記号に関す
るデータベースコンポーネントファイルに識別情報を検
索する。次に、ブロック470で、この情報を使用し
て、識別された第1のデータベースコンポーネントファ
イルをアクセスする。ブロック475で、第1の記号参
照の行番号を識別し、ブロック480で、記号識別情報
及び行識別情報をデータベースコンポーネントファイル
から検索する。ブロック490で、ソースファイルから
対応するテキストの行を検索し、ブロック500では、
そのテキストの行に関するハッシュ値を計算する。
【0045】ブロック510で、行の長さ及び計算した
ハッシュ値を、データベースコンポーネントファイルか
ら検索した行識別情報の中の行長さ及びハッシュ値と比
較する。2つが共に等しければ、ブロック520で、問
い合わせの対象である記号を含むテキストの行をユーザ
ーへ出力する。行長さ又はハッシュ値が等しくない場合
には、ブロック530で、データベースファイルの生成
後にテキストの挿入及び/又は削除によって移動した可
能性のあるテキストの行を発見するために、ソースファ
イル全体について探索を試みる。先に説明した通り、こ
の探索は、ソースファイルの行ごとに行長さ及びハッシ
ュ値を生成し、この第1の行長さ及びハッシュ値をデー
タベースコンポーネントファイル中の行識別情報から検
索した行長さ及びハッシュ値と比較することにより実行
されても良い。検索すべき行の上のテキストの1行と、
検索すべき行の下のテキストの1行とを含め、テキスト
の3つの行についてこのプロセスを実行するのが好まし
い。すなわち、3つの連続する行に関する行長さと対応
するハッシュ値のシーケンスがデータベースコンポーネ
ントから検索した行長さとハッシュ値のシーケンスと一
致した場合に、テキストのその行を問い合わせに対する
応答としてユーザーへ出力する。
【0046】ブロック525及び527では、問い合わ
せの対象である記号を含む次の行についてプロセスは継
続し、現在データベースコンポーネントファイル及び対
応するテキストファイルの中の全ての参照部分を検索し
終えるまでプロセスは続く。プロセスは、インデックス
ファイルにより識別された次のデータベースコンポーネ
ントファイルへブロック530及び540を経て続き、
最後のデータベースファイルが検索されて、問い合わせ
プロセスが完了するまで、ブロック480からブロック
530までを処理する。
【0047】本発明に従って生成されるデータベースを
構成するデータベースファイルはファイルシステム内部
の1つのディレクトリに入っていても良いが、複数のデ
ィレクトリにまたがっていても良い。コレクタは、ソー
スのテキストファイルごとに、対応する1つのデータベ
ースコンポーネントファイルを作成し、デフオルトによ
り、ソーステキストファイルが入っている現在作業ディ
レクトリの1つのサブディレクトリにそのデータベース
コンポーネントファイルを導入する。データベースコン
ポーネントファイルを含むサブディレクトリは経路名
[Source Directory Udme /.sb ]によって一意性を
もって識別されるのが好ましい。インデックスファイル
も各データベースコンポーネントファイルサブディレク
トリの中に含まれ、そのサブディレクトリに入っている
データベースコンポーネントファイルに対するインデッ
クスを与える。
【0048】本発明のデータベースを様々に向上させる
ことによって、データベースを様々なやりかたで拡張し
たり、参照したりできるであろう。たとえば、全てのデ
ィレクトリが単一の共通データベースディレクトリを使
用するようにしても良い。この場合、ソースプログラム
は、コレクタを介して、ソースファイルディレクトリと
共通データベースコンポーネントファイルを含むディレ
クトリとの間に「記号リンク」と呼ばれる参照結合を設
けることにより処理される。このことは図6に示されて
おり、図6では、主ディレクトリProject (プロジェク
ト)は2つのサブディレクトリSource1(ソース1)及
びSource2(ソース2)を含み、ソース1はソースファ
イル a.c及び b.cを含み、ソース2はソースファイル
e.c 及び f.c を含んでいる。これに対応するデータベ
ースコンポーネントファイルは、主ディレクトリプロジ
ェクトの1つのサブディレクトリである共通ディレクト
リ .sb の中に入っており、.sb は1つのインデックス
ファイルと、データベースコンポーネントファイル a.
c.*.bd ,b.c,*.bd , e.c.*.bd 及び f.c.*.bd とを含
む。たとえば、UNIX(UNIXはAT&Tの商標で
ある)オペレーティングシステムの場合、記号リンク
は、 In−s<directory path name>/.sd という指令を実行することにより成立する。
【0049】さらに、データベースコンポーネントファ
イルを生成するときに、そのデータベースコンポーネン
トファイルを現在作業ディレクトリのサブディレクトリ
とは別のディレクトリに記憶することが望ましいことが
あるだろう。たとえば、複数のディレクトリに位置する
複数のソースファイルにより共通して参照されるデータ
ベースコンポーネントは、参照を容易にするために、単
一のディレクトリに導入されるのが望ましいであろう。
その上に、問い合わせ時には、インデックスファイル
と、現在作業ディレクトリに入っている対応するデータ
ベースコンポーネントファイルとをデフオルトにより検
閲する。現在作業ディレクトリの内と外のデータベース
コンポーネントファイルについて問い合わせを実行する
ことが望ましい場合は多い。
【0050】好ましい実施例では .sbinitファイルと呼
ばれる、所定の識別可能名を有するファイルは、データ
ベース構造に関する情報を得るためにコレクタ及びブラ
ウザにより使用される。.sbinitファイルは「import
(インポート)」,「export (エクスポート)」及び
「split(分割)」という指令を含む。
【0051】現在作業ディレクトリ以外のディレクトリ
にある複数のデータベースコンポーネントファイルに対
し問い合わせを実行するときには、インポート指令を使
用して、問い合わせを実行するたびに読取るべき現在作
業ディレクトリの外のデータベースコンポーネントファ
イルを含むディレクトリの経路名をブラウザに指令す
る。インポート指令は import<path> という形態を示し、ここで、経路は、インポートすべき
データベースコンポーネントファイルを含む .sdサブデ
ィレクトリを含んでいるファイルディレクトリに至る経
路名である。たとえば、現在作業ディレクトリが/プロ
ジェクト/ソース1であり、且つ問い合わせを実行すべ
きときにブラウザがプロジェクト/ソース2並びにプロ
ジェクト/ソース1を探索すべき場合には、インポート
指令は、 import/project/source2 となるであろう。
【0052】同様に、データベースコンポーネントファ
イルを生成するコレクタに、それらのファイルを現在作
業ディレクトリ以外のディレクトリを記憶させるため
に、「エクスポート」指令を使用しても良い。エクスポ
ート指令は、指定されたディレクトリに導入すべきデー
タベースコンポーネントファイルの元を成すソースファ
イルの経路名及びソースファイル名を識別する。これに
よって、ユーザーは、同一のファイルと関連するデータ
ベースコンポーネントファイルを単一のデータベースに
導入する一方で、個々のプロジェクトについては別個の
ディレクトリに明確に異なるデータベースを依然として
保持することにより、ディスクスペースをセーブでき
る。エクスポート指令は export<prefix>into<path name> という形態を有する。すなわち、コレクタが<prefix>
で始まる経路名を有するソースファイルを処理するたび
に、その結果として得られたデータベースコンポーネン
トファイルを<path name>/.sb に記憶するのであ
る。たとえば、/usr/includeからのソースファイルに
ついて作成されたデータベースコンポーネントファイル
をディレクトリproject/sys の .sb サブディレクトリ
に導入すべき場合のエクスポート指令は export/usr/include into/project/sys となるであろう。
【0053】多数のデータベースコンポーネントファイ
ルを使用しての作業の場合にシステムの性能を改善する
ために、分割機能を実現しても良い。分割機能は、イン
デックスファイルのサイズが指定のバイト数を越え、デ
ータベースが大きくなりすぎて、所定の時間内に効率良
く更新を実行できなくなったことが示されるたびに、デ
ータベースコンポーネントファイルを「旧」グループ
と、「新」グループとに分割する。すなわち、データベ
ースコンポーネントファイルが更新されて、インデック
スファイルを更新する必要が生じたときに、最後にデー
タベースコンポーネントファイルが更新された時点から
後に変化したソースファイルを更新し、それらを「新」
グループのデータベースコンポーネントファイルとして
分類し、残ったデータベースコンポーネントファイルは
「旧」グループとして変化しないままである。これに相
応して、新グループのデータベースコンポーネントに索
引付けするために新たなインデックスファイルが作成さ
れるが、旧グループのデータベースコンポーネントファ
イルに対するインデックスファイルは変化しないままで
ある。インデックスファイルを構成するのに要する時間
は索引付けを必要とするデータベースファイルの数に比
例するので、新旧のグループ分けによってシステム性能
は向上する。すなわち、新旧合わせた全てのデータベー
スコンポーネントファイルについて1つの大きなインデ
ックスファイルを再構成するより、新グループのデータ
ベースコンポーネントファイルについて小さなインデッ
クスファイルを構成するほうが要する時間は短くてすむ
のである。このことを図7に示す。ソース1/.sb のイ
ンデックスファイルのサイズは所定のバイト数を越えて
いる。そこで、旧グループのデータベースコンポーネン
トファイルをサブディレクトリソース1/.sb/.sbに下
ろし、最後にコレクタプロセスが実行され且つデータベ
ースコンポーネントファイルが更新された時点より後に
変更されたソースファイルに対応するデータベースコン
ポーネントファイルから成る新グループのデータベース
コンポーネントファイルを作成する。この例では、ソー
スファイルa.c にのみ変更があった。従って、ソース1
/.sd の新グループのデータベースファイルは a.c.*.b
d を含み、a.c.*.bd について新たなインデックスファ
イルを作成するのである。分割指令は、 split<size> という形態をとる。尚、<size>はデータベースインデ
ックスのバイト単位のサイズである。インデックスファ
イルが<size>より大きいか又はそれと等しいとき、分
割機能は開始される。
【0054】ユーザーに問い合わせの結果を示すために
提供される情報は多様な形態をとって良く、実現形態に
よって異なる。図8は、ソースファイルと、問い合わせ
のパラメータと、問い合わせに従って戻されたソースフ
ァイルからのテキストの行と、問い合わせの対象である
記号を含むテキストの行を取り囲むソースファイルの所
定数の行とに関する情報を含むユーザーインタフェース
の1例である。
【0055】フレームヘッダ500は現在作業ディレク
トリを指示する。制御サブウィンドゥ510は、現在一
致を含むソースファイルの名540,問い合わせパラメ
ータ550,一致の数(問い合わせにより指定された記
号の発生数)並びに現在表示される一致560,現在一
致に関する識別子,すなわち文字列定数570及び表示
されるテキストの行番号580などの現在問い合わせ情
報を表示する。制御サブウィンドゥ510はブラウザを
操作するために必要な制御要素をされに含む。たとえ
ば、ユーザーは、サブウィンドゥで利用できるボタンに
よって問い合わせを発行する,一致間を移動する,問い
合わせ間を移動する,一致及び問い合わせを削除する,
問い合わせを厳正にする又は狭めるなどの動作を行うこ
とができる。
【0056】一致サブウィンドゥ520は、現在問い合
わせにより見出された全ての一致を表示する。一致ごと
に提供される情報は、一致が現れたファイルの名590
と,一致が現れたファイル中の行の行番号600と,一
致が現れた機能(適用可能であれば)610と,一致を
含むテキストの行620とを含む。
【0057】ソースサブウィンドゥ530はソースファ
イルの、現在一致を含む一部分を表示する。一致は黒色
の矢印630などのマーカーによって識別される。ソー
スサブウィンドゥ530は、現在問い合わせ中又はその
他の問い合わせ中に見出された他の一致を識別するため
に、灰色の矢印640の形態をとるマーカーを任意に含
んでいても良い。
【0058】このように、ユーザーは、図8に示すもの
のようなユーザーインタフェースを利用して、本発明の
システムを採用する問い合わせの発行,問い合わせの変
更,探索するデータベースの変更並びに問い合わせの結
果の検閲などの様々なタスクを実行することができる。
当業者には明白であろうが、実現形態ごとに、ユーザー
の問い合わせをさらに厳正するためにユーザーが利用で
きる機能又はツールを追加したり、実行した問い合わせ
の結果を示すためにユーザーに提示される情報の内容及
び情報の編成を変更したりできるように、ユーザーイン
タフェースを適合させることは可能である
【0059】本発明のシステムは融通性に富んでいるた
め、複数のコレクタと、複数のブラウザとが多数のデー
タベースファイルについて同時に動作しているような多
重タスク処理が可能である。動作の対象であるデータベ
ースファイルは、複数のコレクタ又はブラウザによりア
クセスされる複製ファイルを含んでいても良い。多重タ
スク処理環境で起こる問題は競合条件が存在しているこ
とである。この問題は、2つのプロセス又は装置が1つ
のソースファイル又はそれに対応する1つのデータベー
スコンポーネントファイルを同時にアクセスするときに
起こり、その結果、正しくないデータがデータベースコ
ンポーネントファイルに書込まれ且つ/又は正しくない
データがデータベースコンポーネントファイルから読取
られてしまう。競合条件の1例を図9を参照しながら説
明する。主ディレクトリプロジェクトはソースファイル
a.c , b.c 及び i.h を含む。ソースファイル a.c 及
びb.c は、ファイル i.h を含むステートメントを含ん
でいる。すなわち、2つのコンパイラがファイル a.c
及び b.c をコンパイルし始めた場合、i.h がソースフ
ァイル a.c 及び b.c に含まれているために、双方のコ
ンパイラは i.h に関するデータベースコンポーネント
ファイルを生成しようとする。その結果、2つのコンパ
イラは同時に i.h.*.bd を作成しようとするので、双方
が同じファイルに同時に書き込んでいることになり、正
しくないデータが発生してしまう。さらに、2つの問い
合わせを平行して実行したときに、データベース a.c
及び b.cに関するインデックスが生成されていなかった
場合には、それぞれの問い合わせメカニズムはインデッ
クスを構成するためのプロセスを開始する。従って、2
つのプロセスが同一のインデックスファイルに同時に書
込む結果となるため、インデックスファイルは正しくな
いデータを含むようになる。
【0060】上記の問題を防止するために、ロッキング
メカニズムを使用して2つ以上のプロセスが一度に1つ
のファイルをアクセスするのを阻止するようなプロセス
を利用する。ここでは「新ルート」と呼ぶ、所定の名に
よって参照されるサブディレクトリを作成し、2つ以上
のコレクタ又はブラウザが1つのデータベースコンポー
ネントファイルと同時に対話するのを阻止するために、
これをロッキングメカニズムの一部として使用する。特
殊な名を与えられたサブディレクトリと関連して、ロッ
キングメカニズムは原子動作を使用して採用されるの
で、動作が滞れば、プロセスステップも滞り、プロセス
は(アプリケーションに応じて)待機状態又は誤り状態
に入る。その上、このサブディレクトリの使用によっ
て、データベースコンポーネントファイルの最近の変更
に従うためにインデックスファイルが更新を要求する時
点を確定する手段が得られる。
【0061】図10に関して説明すると、ブロック70
0で、コレクタは、データベースコンポーネントファイ
ルを生成するに先立って、ハッシュ値を生成し、それを
ソースファイル名と組合わせ、そのデータベースコンポ
ーネントファイル名が既に存在しているか否か、すなわ
ち、新たなデータベースコンポーネントファイルを生成
する必要があるか否かを検査する。ブロック710で
は、生成されたハッシュ値及びそのハッシュ値を使用し
て生成されたデータベースコンポーネントファイル名を
既存のデータベースファイル名と比較する。ファイル名
があれば、データベースは既に存在しているので、新た
なデータベースを生成する必要はない。ファイル名がな
い場合には、ブロック720で、ここでは「新ルート」
と呼ぶサブディレクトリを作成する。次に、ブロック7
30では、データベースファイルを生成し、新ルートデ
ィレクトリに導入する。データベースコンポーネントフ
ァイルの作成中、ファイルは一時ファイル名により識別
される。一時ファイル名は、ファイルが開かれた時点
と、コレクタが動作を実行している機械の機械1Dと、
プロセス1Dとを連結したものであるのが好ましい。す
なわち、一時ファイル名は[time][machine ID][p
rocess ID].IPとなるであろう。
【0062】データベースコンポーネントファイルの生
成が完了した後、ブロック731で、ファイルを一時フ
ァイル名からデータベースコンポーネントファイル名に
付け替える。ブロック732において、同一のデータベ
ースコンポーネントファイル名をもつファイルが存在し
ているために改名動作が不成功である場合には、システ
ムは、重復してファイルを生成する必要がないことを認
識し、ブロック734で、一時ファイル名により識別さ
れるファイルを削除する。時々、1つのコンパイラプロ
セスがデータベースコンポーネントファイルを生成して
いる間に、ブラウザプロセスも動作中であり、インデッ
クスファイルを生成又は更新する必要があると判定する
ことがある。たとえば、このような事態は、インデック
スファイルが生成されるときに、第1のデータベースコ
ンポーネントファイルは既に生成されているが、第2の
データベースコンポーネントファイルは生成途中である
ような場合に起こると思われる。以下に詳細に説明する
通り、インデックスファイル生成プロセスにおけるステ
ップの1つは、新ルートディレクトリを「ロック済」デ
ィレクトリと改名し、ロック済ディレクトリに含まれて
いる全てのファイルをここでは「旧ルート」と呼ぶ別の
ディレクトリに移すステップである。すなわち、データ
ベースコンポーネントファイルを新たな根の中の一時名
から同様に新ルートにあるデータベースコンポーネント
ファイル名に改名するためのファイル改名動作は、その
一時ファイル名をもつファイルが新ルートの中に存在し
ていなければ失敗してしまう。ブロック736で、ファ
イルが見つからないために改名動作が失敗した場合に
は、ブロック738で、一時ファイル名により識別され
るデータベースコンポーネントファイルをロック済ディ
レクトリから新ルートディレクトリへ移動させると共
に、一時ファイル名からデータベースコンポーネントフ
ァイル名に改名する。
【0063】図11に関して説明すると、ブロック74
0でインデックスファイルを生成すべき場合(好ましい
実施例では、これは探索、すなわち問い合わせが開始さ
れたときに実行される)、新ルートとして識別されるサ
ブディレクトリが存在するか否かを判定するためにサブ
ディレクトリを検査する(ブロック750)。新ルート
と名付けられるディレクトリがあるときには、それに含
まれているデータベースコンポーネントファイルについ
てインデックスファイルを更新しなければならない。ブ
ロック760では、新ルートディレクトリを第2の所定
のサブディレクトリ名、すなわち「ロック済み」に改名
する。以下の説明から明らかになるであろうが、これ
は、インデックスファイルの生成が完了する時点まで、
ディレクトリに含まれているデータベースファイルのア
クセス及び利用を防止するものである。ブロック765
で、ロック済ディレクトリが既に存在するために改名動
作が失敗したならば、インデックス構成は進行中であ
り、現在プロセスはインデックス構成が完了するまで待
機しなければならないことがわかる。従って、ブロック
767では、現在プロセスは所定に時間(たとえば10
秒)だけ自らを「スリープ」(すなわち、一時停止)さ
せる。この時間が終了すると、プロセスはブロック75
0に戻り、新ルートディレクトリがまだ存在しているか
否かを検査する。このプロセスは、ロック済ディレクト
リがなくなるまで続く。ブロック760で、「新ルー
ト」から「ロック済」への改名動作が実行されたなら
ば、ブロック770で、「ロック済」ディレクトリから
第3の所定の名、この実施例では「旧ルート」という名
をもつサブディレクトリへデータベースコンポーネント
ファイルを移動させ、インデックスファイルを生成す
る。ブロック775で、存在している全てのIPをロッ
ク済ディレクトリから既に存在している又はプロセスに
より作成された新ルートディレクトリへ送り出す。
【0064】ファイルを転送し且つインデックスファイ
ルを生成したならば、動作は完了する。データベースフ
ァイルをアクセスしようとしている他のプロセスに動作
が完了したことを指示するために、ブロック780で
は、ロック済ディレクトリをファイルシステムから除去
する。すなわち、後続するプロセスが新ルートディレク
トリを求めて探索を実行した場合、ディレクトリの存在
を見い出せないので、インデックスファイルは最新のも
のであり、新たなインデックスファイルを生成する必要
はないことがわかる。
【0065】問い合わせが始まり、新たなインデックス
ファイルの生成中にブラウザがデータベースコンポーネ
ントファイルをアクセスしようとしたとき、インデック
スファイルは存在していないので、ブラウザはその動作
を阻止され、新ルートディレクトリの探索は(既に「ロ
ック済」と改名されてしまっているために)失敗に終わ
る。すなわち、原子動作であるディレクトリ改名動作は
失敗し、プロセスは動作を実行できるようになるまで待
機状態のままである(すなわち、「自己スリープさせ
る」)か、又は誤り状態又はアクセス待機などの所定の
状態に分岐する。ブラウザプロセスは所定に時間、たと
えば10秒間だけ待機状態となり、インデックスファイ
ル生成プロセスが完了したか否かを検査し、さらにその
時間だけ待機状態を続けるのが好ましい。このプロセス
は、インデックスファイル生成プロセスが完了して、改
名動作が実行可能となるまで継続する。
【0066】さらに、インデックス構成プロセスの間に
新ルートディレクトリが作成され、別の問い合わせが発
行された場合には、第2の問い合わせも待機状態とされ
て、ロック済ディレクトリが除去されるまでインデック
ス構成を一時中止するのである。
【0067】以上、本発明を好ましい実施例に関連して
説明したが、以上の説明に照らして当業者に数多くの代
替構成,変形,変更及び用途が明らかになるであろうと
いうことは自明である。
【図面の簡単な説明】
【図1】本発明で採用するコンピュータの1例を示すブ
ロック線図である。
【図2】本発明に従って生成されるデータベースコンポ
ーネントファイルを示す図である。
【図3】ソースファイルと、本発明の好ましい一実施例
に従ってソースファイルから生成されたデータベースコ
ンポーネントファイルと、データベースコンポーネント
ファイルの内容とを示す図である。
【図4】本発明の好ましい一実施例の構造を示す図であ
る。
【図5】本発明の好ましい実施例のプロセスのフローチ
ャートである。
【図6】共通するデータベースコンポーネントファイル
をシステム内の1つ又は複数のディレクトリに結合する
記号リンクを示す図である。
【図7】大きなデータベースコンポーネントファイルに
ついて問い合わせの実行速度を増すために、分割機能を
いかに実現するかを示す図である。
【図8】本発明のシステムに対するユーザーインタフェ
ースを示す図である。
【図9】多重タスク処理環境で起こりうる競合条件を示
す図である
【図10】データベースコンポーネントファイルを作成
するプロセスを示すフローチャートである。
【図11】本発明の好ましい実施例に従って問い合わせ
を発行し且つインデックスファイルを構成するプロセス
を示すフローチャートである。
【符号の説明】
210 ソースファイル 220 コンパイラ 225 コンパイル済コイル 230 データコンポーネントファイル 240 ブラウザ 250 インデックスファイル 255 出力情報 260 ソースファイルA 270 ソースファイルB 280 データベースコンポーネントファイルA 290 データベースコンポーネントファイルB 300 ソースファイルC 310 データベースコンポーネントファイルC 320 インデックスファイル
フロントページの続き (72)発明者 ソーレン・ジェイ・ティアフィング アメリカ合衆国・94303 カリフォルニ ア州・パロ アルト・ミドルフィールド ロード・3895 (56)参考文献 特開 平1−134624(JP,A) 特開 昭60−191342(JP,A) 特開 昭63−255734(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 CPUと、入出力手段と、テキストが含
    まれるソースファイルを少なくとも1つ含むファイルシ
    ステムを記憶するメモリとを具備するコンピュータシス
    テムにおいて、ソースファイルから導出される少なくと
    も1つのデータベースコンポーネントファイルから構成
    されるデータベースを、ファイルシステム内に生成する
    にあたり、少なくとも1つのデータベースコンポーネン
    トファイルを、ソースファイル毎に、そのソースファイ
    ルのコピーがファイルシステム内において幾つ生じてい
    るかその数には関係なく生成し、ファイルシステム内に
    データベースを生成する装置であって、 データベースコンポーネントファイルについて、その名
    を、ソースファイル名と、ソースファイルの内容に従っ
    て計算されるハッシュ値とを組み合わせて生成し、ソー
    スファイルの内容が変化すればハッシュ値も変化して、
    異なるデータベースコンポーネントファイル名が生成さ
    れるようした、データベースコンポーネントファイルの
    重複しない名を生成する手段と、 生成したデータベースコンポーネントファイルと同一名
    であるデータベースコンポーネントファイルを求めてフ
    ァイルシステムを探索する手段と、 生成したデータベースコンポーネントファイルと同一名
    であるデータベースコンポーネントファイルがファイル
    システム内に存在していなければ、当該ソースファイル
    について、記号と、その記号が発生するソースファイル
    中の行の行番号とのリストを含むデータベースコンポー
    ネントファイルを生成する生成手段にして、生成したデ
    ータベースコンポーネントファイルと同一名のデータベ
    ースコンポーネントファイルが存在していれば、データ
    ベースコンポーネントファイルを生成せず、データベー
    スコンポーネントファイルの重複及び重複するファイル
    を書込むためにコンピュータシステムの利用を回避させ
    る、生成手段とを備える、データベースを生成する装
  2. 【請求項2】 CPUと、入出力手段と、テキストが
    まれるソースファイルを少なくとも1つ含むファイルシ
    ステムを記憶するメモリとを具備するコンピュータシス
    テムにおいて、ソースファイルから導出される少なくと
    も1つのデータベースコンポーネントファイルから構成
    されるデータベースを、ファイルシス テム内に生成する
    にあたり、少なくとも1つのデータベースコンポーネン
    トファイルを、ソースファイル毎に、そのソースファイ
    ルのコピーがファイルシステム内において幾つ生じてい
    るかその数には関係なく生成し、ファイルシステム内に
    データベースを生成する方法であって、 データベースコンポーネントファイルについて、その名
    を、ソースファイル名と、ソースファイルの内容に従っ
    て計算されるハッシュ値とを組み合わせて生成し、ソー
    スファイルの内容が変化すればハッシュ値も変化して、
    異なるデータベースコンポーネントファイル名が生成さ
    れるようした、データベースコンポーネントファイルの
    重複しない名を生成する過程と、 生成したデータベースコンポーネントファイルと同一名
    であるデータベースコンポーネントファイルを求めてフ
    ァイルシステムを探索する過程と、 生成したデータベースコンポーネントファイルと同一名
    であるデータベースコンポーネントファイルがファイル
    システム内に存在していなければ、当該ソースファイル
    について、記号と、その記号が発生するソースファイル
    中の行の行番号とのリストを含むデータベースコンポー
    ネントファイルを生成し、生成したデータベースコンポ
    ーネントファイルと同一名のデータベースコンポーネン
    トファイルが存在していれば、データベースコンポーネ
    ントファイルを生成せず、データベースコンポーネント
    ファイルの重複及び重複するファイルを書込むためにコ
    ンピュータシステムの利用を回避させる、過程とを備え
    る、データベースを生成する方法
JP3080504A 1990-03-27 1991-03-20 データベースを生成する装置および方法 Expired - Fee Related JP2632092B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/499,639 US5202982A (en) 1990-03-27 1990-03-27 Method and apparatus for the naming of database component files to avoid duplication of files
US499,639 1990-03-27

Publications (2)

Publication Number Publication Date
JPH05135108A JPH05135108A (ja) 1993-06-01
JP2632092B2 true JP2632092B2 (ja) 1997-07-16

Family

ID=23986079

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3080504A Expired - Fee Related JP2632092B2 (ja) 1990-03-27 1991-03-20 データベースを生成する装置および方法

Country Status (5)

Country Link
US (1) US5202982A (ja)
JP (1) JP2632092B2 (ja)
CA (1) CA2026253C (ja)
GB (1) GB2242549B (ja)
HK (1) HK52794A (ja)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301286A (en) * 1991-01-02 1994-04-05 At&T Bell Laboratories Memory archiving indexing arrangement
DE69227051T2 (de) * 1991-02-27 1999-03-11 Canon K.K., Tokio/Tokyo Verfahren zur Entdeckung inkorrekter Überschreibung gespeicherter Daten
EP0506234B1 (en) * 1991-02-27 1998-06-10 Canon Kabushiki Kaisha Method for detecting improper rewriting of stored data
CA2067650C (en) * 1991-07-24 1996-10-22 Eric Jonathan Bauer Method and apparatus for operating a computer-based file system
US5301316A (en) * 1991-10-30 1994-04-05 Sun Microsystems, Inc. System for determination of the equivalence of two objects without compromising then done by a third object nominated by one and accetped by the other
US5745902A (en) * 1992-07-06 1998-04-28 Microsoft Corporation Method and system for accessing a file using file names having different file name formats
SE500599C2 (sv) * 1992-12-08 1994-07-25 Ellemtel Utvecklings Ab Sätt att optimera minnesutrymme i en databas
US5685003A (en) * 1992-12-23 1997-11-04 Microsoft Corporation Method and system for automatically indexing data in a document using a fresh index table
CA2112421C (en) * 1992-12-28 1998-08-11 Akio Ikeda Management apparatus for volume-medium correspondence information for use in dual file system
JP3402659B2 (ja) * 1993-05-13 2003-05-06 オリンパス光学工業株式会社 画像取り扱い装置
DE69424597T2 (de) * 1993-06-17 2001-03-01 Sun Microsystems, Inc. Erweiterbares Dateiensystem
WO1995001599A1 (en) * 1993-07-01 1995-01-12 Legent Corporation System and method for distributed storage management on networked computer systems
US5530849A (en) * 1993-08-16 1996-06-25 Cornell Research Foundation, Inc. Method of reading dynamic, hierarchical file system directories
JPH0778098A (ja) * 1993-09-08 1995-03-20 Fujitsu Ltd ファイル管理システム
US6012072A (en) * 1993-09-17 2000-01-04 Digital Equipment Corporation Display apparatus for the display of documents in a three-dimensional workspace
US5544051A (en) * 1993-09-17 1996-08-06 Digital Equipment Corporation Document management system using multiple threaded processes and having asynchronous repository responses and no busy cursor
WO1995013583A1 (en) * 1993-11-09 1995-05-18 Conner Kenneth H First come memory accessing without conflict
US5572590A (en) * 1994-04-12 1996-11-05 International Business Machines Corporation Discrimination of malicious changes to digital information using multiple signatures
US5537587A (en) * 1994-05-11 1996-07-16 International Business Machines Corporation File record maintenance in a data processing system by synchronization of menus with corresponding data files
US5557790A (en) * 1994-06-21 1996-09-17 International Business Machines Corp. Facility for the generic storage and management of multimedia objects
JP3201945B2 (ja) * 1995-01-10 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースのテーブルを比較する方法
EP0826181A4 (en) * 1995-04-11 2005-02-09 Kinetech Inc IDENTIFYING DATA IN A DATA PROCESSING SYSTEM
US5740430A (en) * 1995-11-06 1998-04-14 C/Net, Inc. Method and apparatus for server-independent caching of dynamically-generated customized pages
US5701498A (en) * 1995-11-17 1997-12-23 International Business Machines Corporation Method and apparatus for a structured ASCII browser for online publications formatted in a bookmaster format
US5713013A (en) * 1996-01-25 1998-01-27 Apple Computer, Inc. System for establishing and enforcing maximum size of directory by preventing the size of the directory from exceeding the set quota size of the directory
US5819291A (en) * 1996-08-23 1998-10-06 General Electric Company Matching new customer records to existing customer records in a large business database using hash key
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6038665A (en) * 1996-12-03 2000-03-14 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
US6061518A (en) * 1997-11-25 2000-05-09 International Business Machines Corporation Data processing system and method for debugging a JavaScript program
US6237035B1 (en) * 1997-12-18 2001-05-22 International Business Machines Corporation System and method for preventing duplicate transactions in an internet browser/internet server environment
US6807632B1 (en) 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6163859A (en) 1998-12-02 2000-12-19 Support.Com, Inc. Software vault
DE19860803A1 (de) * 1998-12-30 2000-07-06 Giesecke & Devrient Gmbh Verfahren zum Erzeugen eines Dateibezeichners
US6922708B1 (en) 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
JP3440991B2 (ja) * 1999-03-05 2003-08-25 日本電気株式会社 ファイルリビジョン管理システム
US7418435B1 (en) 1999-08-05 2008-08-26 Oracle International Corporation Multi-model access to data
US6549916B1 (en) 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US7280995B1 (en) 1999-08-05 2007-10-09 Oracle International Corporation On-the-fly format conversion
US6976165B1 (en) 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
JP2003510694A (ja) 1999-09-20 2003-03-18 クインタイルズ トランスナショナル コーポレイション 匿名化された健康管理情報を分析するためのシステム及び方法
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
WO2001039043A2 (en) * 1999-11-23 2001-05-31 Microsoft Corporation Content-specific filename systems
US6885481B1 (en) * 2000-02-11 2005-04-26 Hewlett-Packard Development Company, L.P. System and method for automatically assigning a filename to a scanned document
US7509420B2 (en) * 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
EP1269350A4 (en) * 2000-02-18 2006-08-16 Avamar Technologies Inc HASH FILE SYSTEM AND METHOD FOR USE IN A COMMONALITY FACTORING SYSTEM
US7185005B1 (en) 2000-05-12 2007-02-27 Oracle International Corporation Nested transactions in a file system
DE10047216A1 (de) * 2000-09-23 2002-04-11 Philips Corp Intellectual Pty Ein Verfahren zur Erkennung von Schreibkonflikten in replizierten Datenbanken ohne Speicheroverhead
US7596564B1 (en) 2000-09-29 2009-09-29 Vignette Corporation Method and system for cache management of a cache including dynamically-generated content
US7058648B1 (en) 2000-12-01 2006-06-06 Oracle International Corporation Hierarchy-based secured document repository
US6850941B1 (en) 2000-12-21 2005-02-01 Vignette Corporation Method and system for native-byte form handling
US6892377B1 (en) * 2000-12-21 2005-05-10 Vignette Corporation Method and system for platform-independent file system interaction
US7194506B1 (en) 2000-12-21 2007-03-20 Vignette Corporation Method and system for cache management of locale-sensitive content
US20020091720A1 (en) * 2001-01-05 2002-07-11 Jun Liu Methods and arrangements for providing improved software version control in managed devices
US7047420B2 (en) * 2001-01-17 2006-05-16 Microsoft Corporation Exclusive encryption
US6716102B2 (en) * 2001-03-09 2004-04-06 Microsoft Corporation Method and apparatus for displaying information regarding stored data in a gaming system
US7043637B2 (en) 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US7062490B2 (en) 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6981138B2 (en) * 2001-03-26 2005-12-27 Microsoft Corporation Encrypted key cache
US6988124B2 (en) * 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7024452B1 (en) 2001-07-13 2006-04-04 Vignette Corporation Method and system for file-system based caching
US7349942B1 (en) 2002-02-13 2008-03-25 Vignette Corporation Storage medium having a manageable file directory structure
US9639547B2 (en) 2001-07-13 2017-05-02 Open Text Sa Ulc Method and system for file-system based caching
US7761497B1 (en) 2001-07-13 2010-07-20 Vignette Software, LLC Storage medium having a manageable file directory structure
JP4446738B2 (ja) * 2001-08-20 2010-04-07 データセンターテクノロジーズ エヌ.ヴイ. コンピュータファイルを効率的にバックアップするシステムと方法
US7092977B2 (en) * 2001-08-31 2006-08-15 Arkivio, Inc. Techniques for storing data based upon storage policies
US20040054656A1 (en) * 2001-08-31 2004-03-18 Arkivio, Inc. Techniques for balancing capacity utilization in a storage environment
US20040039891A1 (en) * 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
EP1421522A1 (en) * 2001-08-31 2004-05-26 Arkivio, Inc. Techniques for restoring data based on contents and attributes of the data
US7509316B2 (en) * 2001-08-31 2009-03-24 Rocket Software, Inc. Techniques for performing policy automated operations
US20030115204A1 (en) * 2001-12-14 2003-06-19 Arkivio, Inc. Structure of policy information for storage, network and data management applications
US7062515B1 (en) 2001-12-28 2006-06-13 Vignette Corporation System and method for the synchronization of a file in a cache
US6687793B1 (en) * 2001-12-28 2004-02-03 Vignette Corporation Method and system for optimizing resources for cache management
US6795903B2 (en) * 2002-01-17 2004-09-21 Thomas Licensing S.A. System and method for searching for duplicate data
US6909910B2 (en) * 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
US20030200193A1 (en) * 2002-04-17 2003-10-23 Boucher Michael L. Fast retrieval of data stored in metadata
US7505971B2 (en) * 2002-06-28 2009-03-17 Hewlett-Packard Development Company, L.P. Shared drive that provides shared access to editable files in a database
AU2003262965A1 (en) * 2002-08-30 2004-03-19 Arkivio, Inc. Techniques for moving stub files without recalling data
US20040083202A1 (en) * 2002-08-30 2004-04-29 Arkivio, Inc. Techniques to control recalls in storage management applications
CA2506543A1 (en) * 2002-12-02 2004-06-17 Arkivio Inc. Data recovery techniques in storage systems
US7818506B1 (en) * 2002-12-13 2010-10-19 Vignette Software Llc Method and system for cache management
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
US8463998B1 (en) 2002-12-13 2013-06-11 Open Text S.A. System and method for managing page variations in a page delivery cache
US7360025B1 (en) 2002-12-13 2008-04-15 O'connell Conleth Method and system for automatic cache management
US8380932B1 (en) 2002-12-13 2013-02-19 Open Text S.A. Contextual regeneration of pages for web-based applications
US8312222B1 (en) 2002-12-13 2012-11-13 Open Text, S.A. Event-driven regeneration of pages for web-based applications
US7603371B1 (en) 2002-12-17 2009-10-13 Vignette Corporation Object based system and method for managing information
WO2004109556A1 (en) * 2003-05-30 2004-12-16 Arkivio, Inc. Operating on migrated files without recalling data
WO2004109663A2 (en) * 2003-05-30 2004-12-16 Arkivio, Inc. Techniques for facilitating backup and restore of migrated files
US8229932B2 (en) 2003-09-04 2012-07-24 Oracle International Corporation Storing XML documents efficiently in an RDBMS
US8694510B2 (en) * 2003-09-04 2014-04-08 Oracle International Corporation Indexing XML documents efficiently
US7788681B1 (en) 2003-09-16 2010-08-31 Vignette Software, LLC System and method for incorporating web services in a web site
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US7631310B1 (en) 2003-11-14 2009-12-08 Google Inc. Loadbalancing multiple files across computing devices
US7444389B2 (en) * 2003-12-09 2008-10-28 Emc Corporation Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time
US7930277B2 (en) * 2004-04-21 2011-04-19 Oracle International Corporation Cost-based optimizer for an XML data repository within a database
US20070208946A1 (en) * 2004-07-06 2007-09-06 Oracle International Corporation High performance secure caching in the mid-tier
US8095501B1 (en) 2004-07-27 2012-01-10 Infoblox Inc. Automatic enforcement or relationships in a database schema
JP4315876B2 (ja) * 2004-08-17 2009-08-19 富士通株式会社 ファイル管理プログラム、ファイル管理方法、及びファイル管理装置
JP2006059075A (ja) * 2004-08-19 2006-03-02 Fuji Xerox Co Ltd 文書処理装置およびプログラム
US7523098B2 (en) * 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US8725705B2 (en) * 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
US8364631B1 (en) * 2004-09-24 2013-01-29 Infoblox Inc. Database migration
US7383281B1 (en) * 2004-09-24 2008-06-03 Infoblox, Inc. Multiversion database cluster management
US7627547B2 (en) * 2004-11-29 2009-12-01 Oracle International Corporation Processing path-based database operations
US8131766B2 (en) * 2004-12-15 2012-03-06 Oracle International Corporation Comprehensive framework to integrate business logic into a repository
US7921076B2 (en) 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US8321439B2 (en) * 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US9639554B2 (en) * 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US8606830B2 (en) * 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US7908254B2 (en) * 2005-06-10 2011-03-15 Hewlett-Packard Development Company, L.P. Identifying characteristics in sets of organized items
US7610291B2 (en) * 2005-08-17 2009-10-27 International Business Machines Corporation Logical grouping and management of redundant objects in storage systems
US8073841B2 (en) * 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
US8356053B2 (en) * 2005-10-20 2013-01-15 Oracle International Corporation Managing relationships between resources stored within a repository
US8949455B2 (en) * 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US8954426B2 (en) * 2006-02-17 2015-02-10 Google Inc. Query language
US20070185870A1 (en) 2006-01-27 2007-08-09 Hogue Andrew W Data object visualization using graphs
US20070234278A1 (en) * 2006-03-02 2007-10-04 Microsoft Corporation Managing source code in a model-based development environment
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US8954412B1 (en) 2006-09-28 2015-02-10 Google Inc. Corroborating facts in electronic documents
US9183321B2 (en) * 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
US7797310B2 (en) * 2006-10-16 2010-09-14 Oracle International Corporation Technique to estimate the cost of streaming evaluation of XPaths
US7827177B2 (en) * 2006-10-16 2010-11-02 Oracle International Corporation Managing compound XML documents in a repository
US9355273B2 (en) 2006-12-18 2016-05-31 Bank Of America, N.A., As Collateral Agent System and method for the protection and de-identification of health care data
JP5020673B2 (ja) * 2007-03-27 2012-09-05 株式会社日立製作所 重複したファイルの記憶を防ぐコンピュータシステム
DE102008044808B4 (de) 2007-10-15 2010-01-07 Giesecke & Devrient Gmbh Verfahren zur Generierung von Programmcode in einem Betriebssystemspeicher und einem Applikationsspeicher eines Datenträgers
JP2009301204A (ja) * 2008-06-11 2009-12-24 Hitachi Systems & Services Ltd 文書管理システム
US8156126B2 (en) * 2008-07-14 2012-04-10 Greenbytes, Inc. Method for the allocation of data on physical media by a file system that eliminates duplicate data
US7958112B2 (en) * 2008-08-08 2011-06-07 Oracle International Corporation Interleaving query transformations for XML indexes
US8041893B1 (en) 2008-09-09 2011-10-18 Vignette Software Llc System and method for managing large filesystem-based caches
JP5650982B2 (ja) 2010-10-25 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイルの重複を排除する装置及び方法
US9600513B2 (en) 2011-06-09 2017-03-21 International Business Machines Corporation Database table comparison
US9552201B2 (en) * 2011-08-31 2017-01-24 Avaya Inc. System and method for incremental software installation
US9218411B2 (en) 2012-08-07 2015-12-22 International Business Machines Corporation Incremental dynamic document index generation
US9659058B2 (en) 2013-03-22 2017-05-23 X1 Discovery, Inc. Methods and systems for federation of results from search indexing
US9880983B2 (en) * 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US10341210B2 (en) * 2014-03-12 2019-07-02 Rakuten, Inc. Data registration system, data registration method, program and non-transitory recording medium
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US10394756B2 (en) * 2014-03-28 2019-08-27 Vayavya Labs Private. Limited System and method for customizing archive of a device driver generator tool for a user
CN105393257B (zh) * 2014-05-07 2018-09-21 华为终端(东莞)有限公司 一种数据加密方法及加密装置
CN105224572B (zh) * 2014-06-30 2019-11-15 北京金山安全软件有限公司 鉴别垃圾目录的方法及装置
CN104199863B (zh) * 2014-08-15 2017-11-21 小米科技有限责任公司 存储设备上的文件的查找方法、装置及路由器
US10346550B1 (en) 2014-08-28 2019-07-09 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments
US10324802B2 (en) * 2015-05-01 2019-06-18 Ashish Govind Khurange Methods and systems of a dedupe storage network for image management
US10049016B2 (en) * 2015-02-06 2018-08-14 Ashish Govind Khurange Distributed garbage collection for the dedupe storage network
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US12032456B1 (en) * 2023-01-25 2024-07-09 Dell Products L.P. Retention lock leveraging in a backup computing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4611298A (en) * 1983-06-03 1986-09-09 Harding And Harris Behavioral Research, Inc. Information storage and retrieval system and method
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4792921A (en) * 1986-03-18 1988-12-20 Wang Laboratories, Inc. Network event identifiers
US5027316A (en) * 1986-09-11 1991-06-25 International Business Machines Corporation Versioning of message formats in a 24-hour operating environment
JP2557239B2 (ja) * 1987-11-20 1996-11-27 株式会社日立製作所 プログラム内データ名称標準化方法

Also Published As

Publication number Publication date
HK52794A (en) 1994-06-03
GB9016310D0 (en) 1990-09-12
GB2242549A (en) 1991-10-02
JPH05135108A (ja) 1993-06-01
GB2242549B (en) 1993-10-06
CA2026253A1 (en) 1991-09-28
US5202982A (en) 1993-04-13
CA2026253C (en) 1997-04-01

Similar Documents

Publication Publication Date Title
JP2632092B2 (ja) データベースを生成する装置および方法
JP2566865B2 (ja) 変更ファイルから情報を検索するためにデータベースコンポーネントファイルを探索する方法及び装置
JP3108807B2 (ja) 競合条件を防止するためのロッキングメカニズム
US5819282A (en) Database generator
US5047918A (en) File management system
US7152224B1 (en) Versioned project associations
JP3767699B2 (ja) オブジェクトのリンク追跡方法及びシステム
US6182121B1 (en) Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment
US6349305B1 (en) Method and system for database processing by invoking a function related to index type definition, generating an execution plan based on index type name
US6338056B1 (en) Relational database extender that supports user-defined index types and user-defined search
US7720869B2 (en) Hierarchical structured abstract file system
US20030037312A1 (en) Documentation generator
CN111324607A (zh) Sql语句复用方法和装置
US7016913B2 (en) Method, system, data structures, and article of manufacture for implementing a persistent object
US6360218B1 (en) Compact record format for low-overhead databases
JPH0550774B2 (ja)
US20050102276A1 (en) Method and apparatus for case insensitive searching of ralational databases
KR100345277B1 (ko) Xml 문서의 논리적인 구조정보 추출기
EP0270360A2 (en) Data management system
JP3292160B2 (ja) Cobol言語のソースプログラムのコンバージョン方法及び装置並びに記録媒体
CN113032450A (zh) 一种数据存储与检索方法、系统、存储介质、处理终端
Gkoutos et al. ChemDig: new approaches to chemically significant indexing and searching of distributed web collections
CHEE et al. An installable version control file system for Unix
Xindice XML Databases
Demetrovics et al. LATOR—professional database management system for local networks

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees