WO1999003039A1 - Systeme de stockage/recherche de donnees - Google Patents

Systeme de stockage/recherche de donnees Download PDF

Info

Publication number
WO1999003039A1
WO1999003039A1 PCT/JP1998/003067 JP9803067W WO9903039A1 WO 1999003039 A1 WO1999003039 A1 WO 1999003039A1 JP 9803067 W JP9803067 W JP 9803067W WO 9903039 A1 WO9903039 A1 WO 9903039A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
key
primary
record
stored
Prior art date
Application number
PCT/JP1998/003067
Other languages
English (en)
French (fr)
Inventor
Masaharu Tamatsu
Original Assignee
Annex Systems Incorporated
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 Annex Systems Incorporated filed Critical Annex Systems Incorporated
Priority to EP98931014A priority Critical patent/EP0923030A4/en
Priority to US09/254,437 priority patent/US6415375B2/en
Publication of WO1999003039A1 publication Critical patent/WO1999003039A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up

Definitions

  • the present invention relates to data storage and reading by a computer, and can store and retrieve data at high speed and at a high storage rate, greatly reducing maintenance work, and relates to data management.
  • Background art
  • the conventional data storage method has many restrictions on its use, such as the fact that the physical positions of the blocks are continuous and that blocks must be created in advance for storage. .
  • random access except for some methods, it is necessary to create an index, the creation time is long, and when performing update processing, the index is updated and the exclusion range Because of the widening of the dead zone, it had a structure that would easily cause deadlock.
  • a high-speed storage / retrieval process can be performed by configuring a storage device using only a semiconductor or a semiconductor and a random access storage medium.
  • the semiconductor can use a main storage device, or can be configured as an external storage device for the present invention.
  • Data is stored in blocks sequentially, and if overflow occurs due to data insertion, it is stored using overflow blocking.
  • a location table that manages storage blocks without using indexes Or by using an alternate key table and performing a search on it It enables high-speed storage and reading, has high data storage efficiency, and minimizes the occurrence of deadlock.
  • the location table secures a necessary continuous area in advance.
  • One record (entry) in the location table manages one primary block of data record storage area. Although it is possible to manage multiple primary blocks, the size of one primary block can be arbitrarily large, so you only need to change the size, and it is easier to manage without managing multiple blocks. .
  • a block is composed of two types, primary and intelligent, but only the primary block is managed in the location table. Records are first stored in the primary block. If a record is inserted into the block and it can no longer be stored in that block, one bargain block for that block is allocated. If the overflow block can no longer be stored, one more bar overflow block is assigned.
  • the smart flow block is managed as a subordinate block of the primary block, and is only pointed to from the primary block, not the location table.
  • the overflow block is not managed by the location table, no record is inserted into the location table, the time required for rewriting the location table is minimized, and the location table can be rewritten by one record. Since only lock mode is used, even if exclusion occurs, the range can be minimized, and the possibility of deadlock is greatly reduced.
  • a deadlock occurs because two different tasks on one computer lock two or more of the same resources in a different order.
  • the probability decreases when the range is narrow.
  • a traditional index consists of several levels. If the key of a record is changed when the required record is accessed and updated, the index is also changed.If this affects only the lowest index, the exclusion range is limited, but Depending on the case, it may affect the upper index. In this case, exclusion extends to a large number of records, and it takes time to update the index. Therefore, the exclusion takes a long time, which causes deadlocks to occur frequently.
  • FIG. 1 shows the configuration of the location table and the final pointer. The number of each byte is for reference only and can be configured with a different length than this.
  • Figure 2 shows the relationship between location tables and blocks.
  • Figure 3 shows the structure of the alternate key table (one entry) and the alternate key block. The number of bytes is for reference only and can be configured with a different length.
  • F ROM and T O are the minimum and maximum key values in the block. The key value of the alternate key block can have both or only one of them.
  • Figure 4 shows the configuration of the block.
  • Figure 5 shows the structure of the pre-alternate key block.
  • Figure 6 shows the relationship between blocks and overflow blocks. For the sake of simplicity, the figure shows blocks in continuous areas, but it is not necessary that they be continuous areas.
  • Figure 7 shows an example of keying sentence data. BEST MODE FOR CARRYING OUT THE INVENTION
  • the records stored in this method are limited to records that have one unique primary key and zero or more non-unique keys (although there is no problem if they are unique). Is done. Records that do not have a unique key are not considered.
  • append refers to storing records with a primary key that is greater than the primary key of the currently stored record
  • insert refers to storing records with a primary key that is smaller than the largest primary key
  • the location table is calculated in advance from the planned number of records to be stored, the block size, and the number of primary blocks per record in the location table, and secures a necessary and sufficient area as a continuous area.
  • the size and number of blocks are determined so that one entry of the number of records to be stored can be stored for the number of blocks in the alternate key table, and a continuous area is reserved.
  • the continuous area may become full and storage may not be possible. In such a case, an additional contiguous area is secured, and multiple contiguous areas are treated as if they were one contiguous area using the address translation table. It is possible to deal with situations where more than the number of records is stored.
  • Figure 2 shows the relationship between the location table and the block.
  • a location table corresponding to the planned number of records to be stored in each sub-range is created for each sub-range.
  • Each of the location tables must be contiguous ( ⁇ , but not necessarily, but the location tables need not be contiguous.
  • the alternate key table is a contiguous area of size for all records. Is effective for high-speed access, but it is also possible to set it up for each subrange.
  • the last pointer is referred to in the exclusive mode, and it is determined whether the primary key is greater than the key value of the last pointer.
  • the block number is 0, block number 0 in the location table is referred to in the exclusive mode, the physical position of block 0 is known, and block 0 at that physical position is read. If there is enough free space in that block, store the record, register the primary key in the last pointer, and release all exclusions. Hereinafter, additional storage is performed by the same operation.
  • one primary block (block number 1) is secured in exclusive mode.
  • Binary search is known as an example of a fast search method.
  • the method of performing a binary search is described as an example.
  • the method is to search for two division points, and if there is an overflow block in the primary block pointed to by the record, include the creativity block and one block, and add it to that block (the relevant block).
  • the value of the primary key of the stored record (hereinafter abbreviated as the stored primary key value) is compared with the value of the primary key of the inserted record (hereinafter abbreviated as the inserted primary key value). If the inserted primary key value is greater than the minimum stored primary key value or less than the minimum stored primary key value for the next block, it is stored in that block.
  • the value of the stored primary key of the block is compared with the value of the inserted block primary key. If the value of the inserted primary key is small, the value is forward; if not, the value is later. Find the two split points and perform the same operation to find the block that stores the record. If the location table is composed of multiple contiguous areas, a binary 'search cannot be performed as it is, but using the address translation table to treat it as if it were a continuous area It is possible to perform a search.
  • the first or last primary key value in the location table for each subrange is compared first to find which subrange is of interest. After that, for the subrange, a binary search is performed in the same manner as above to find a corresponding block.
  • the nth block it will be as follows. Find the position in the block where you want to insert the record. Since the records are arranged in the order of the primary keys, the insertion position is immediately before the record with the primary key larger than the inserted record. First, check for duplicate primary keys. If the data is duplicated, it cannot be stored, so it is processed as an error. If they do not overlap, the records (one or more) after the inserted record are shifted backward by exactly the size of the inserted record. At this time, if the shifted record fits in the block, the process is terminated.If not, one overflow block is cut out, a pointer is assigned from the primary block, and only necessary Store it in the Saichi Bar Flow Block. After that, the inserted record and the record following the inserted record are stored in the primary block. Figure 6 shows the logical relationship between one primary block and one overflow block.
  • an overflow block already exists, it is only necessary that both the primary block and the overflow block can be stored together. In addition, there is a possibility that the area is not effectively used because only a part of the over-barf mouth-block is used. To prevent this, one primary flow block can be provided for multiple primary blocks. The size of the overflow block is the same as that of the primary block, but can be smaller than that of the primary block. It is also possible to point and use one overflow block from multiple primary blocks.
  • the substitute key table is composed of a plurality of substitute key blocks, and is stored so that the entry is arranged in the order of the substitute keys in the substitute key block.
  • the entry 1 in the alternate key table consists of the alternate key, the physical address of the block in which the record of the key value is stored, and the primary key of the record of the key value.
  • the number of entries fluctuates as records are added or updated.However, as the number of entries increases, there is a high possibility that an entry will be inserted, and it is very unlikely that an additional type will occur . For this reason, the same management as the primary key cannot be performed successfully.
  • the insertion can be processed efficiently by providing a certain free space when storing entries in the alternate key block.
  • the number of initial records is smaller than the number of records to be finally stored, a large number of key flow blocks will be generated by key insertion. In this case, use a pre-alternate key-table.
  • the pre-alternative key table has the same structure as the alternative key table, and the number of blocks is the number obtained by dividing the size of the number of alternative key block entries that can be stored by the block size. .
  • the number of entries in the pre-alternate key table is equal to the number of alternate key tables, move the entry from the pre-alternate key table to the alternate key table.
  • an alternate key block stores one entry in principle, but an entry with the same alternate key is stored in the same alternate key block. If the number of entries with the same substitute key is too large to store in the substitute key block, substitute key, overflow, and block are added and stored.
  • the number of records to be finally stored is 100,000. If it is possible to store 100 entries in one alternate key block, 10,000 alternative key * blocks are required. Until the entry 1 reaches 10,000, it is stored in the pre-alternative key block, and when the entry reaches 10,000, the entry 1 is transferred to the alternative key block.
  • a pre-alternative key table is provided in multiple stages.
  • 100000 entries are stored in the pre-alternative key table, but since one block can store 100 entries, this is performed in two steps.
  • the first pre-alternative key table manages 100 entries, and when the entry becomes 100, it is transferred to the second-stage pre-alternative key table.
  • Fig. 5 shows a specific example of transfer.
  • a two-stage pre-alternative key table is provided.
  • the location table is searched for two division points, and if the primary block pointed to by the entry 1 has an overflow block, it is stored in that block (including the overflow block), including the overflow block.
  • the stored primary key value the primary key value of the record
  • the target primary key value the primary key value of the target record
  • the target primary key value is greater than or equal to the minimum stored primary key value and less than the next block's stored primary key value—the minimum value, the target record exists in that block or its key
  • the value record either does not exist on the file. Since the blocks are arranged in the order of the primary key, searching for the block allows you to detect the target record or check whether it exists in the file. If this judgment does not apply, the primary key value of the block is compared with the primary key value of the target record, and if the target primary key value is small, it is forward, otherwise it is divided backward. Find the point, do the same, and find the block that contains the record. Next, a search using an alternative key will be described. The search by the substitute key searches the substitute key table.
  • a typical search method is a binary search, but this is omitted in the description of primary key search. Find an alternate key block that contains the desired alternate key. Further, a search is made for a desired alternative key entry in the alternative key block. The result is that the entry in that block is the same as for the primary key. Either it exists, or the record with the alternate key value does not exist in the file and there is no entry. If the alternative key block has the alternative key @ saichiichi bar flow block, both of them are searched.
  • the physical block is accessed from the physical block number in that entry, and a record in the block that matches the primary key value in the entry is searched. Also, since the substitute key can be non-unique, look at the next entry in the substitute key block, and if the substitute key value is the same, search for a record for that entry and have the same key value. Run until there is no entry.
  • Creation refers to the case where multiple records already exist in the file of this method and re-creation due to an increase in overflow block, the case of expanding from a backup medium to the medium to which this method is applied, and
  • records stored by a method other than the storage method described in this method may be transferred to the method method, but any method can be used.
  • the files are read sequentially in the order of the primary key using the calling method, and a sequential file is created.
  • a sequential file is created in the same manner.
  • a location table and an alternative key table are prepared.
  • the number of entries in the location table is set as a continuous area by dividing the number of records to be stored by the number of records that can be stored in one block.
  • An alternate key table is reserved for each type of alternate key.
  • One type of alternative key block has the same size, and the number is obtained as follows. Find the number of entries (A) that can be stored in one alternate key block. The quotient obtained by dividing the number of records to be stored by A is the number of alternate key blocks.
  • the alternate key first creates an alternate key entry from the record and stores it in the sequential file.
  • the sort is performed in the order of the alternative keys, and the sorted entries are stored in the alternative key block.
  • the replacement key entry is stored in the replacement key block, but the storage is calculated by dividing the number of created records by the number of records to be finally stored, and storing it in the replacement key block at a rate corresponding to the quotient. . This is because the generation of the substitute key is of the insertion type.
  • the current key sets a key for a field stored at a specific position in a record, and has the same length and format, for example, a product code or a customer code.
  • Fig. 7 it is possible to key irregular records.
  • Random access using a primary key and an alternate key can be performed at high speed.
  • the time required for creating (creating) a location table or alternative key block is shorter than that for creating an index.
  • Blocks can be added until there is no more free physical space.

Landscapes

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

Description

明細書 データ格納検索方式 技術分野
本発明はコンピュータ一のデータ格納、 読み出しに関連し、 高速かつ高格納率 でデータの格納及び検索が行なえ、 メンテナンスの手間を大幅に削減するもので、 データ管理に関する。 背景技術
従来のデータ格納方式は、 ブロックの物理的な位置が連続していることや、 予 め格納する為のブロックを作成しておかなければならないなどという、 使用する 上で制約が多い物であった。 また、 ランダムアクセスに関しては、 一部の方式を 除くと、 インデックスの作成が必要で、 創生の時間が長く、 また、 更新処理を行 なう場合には、 インデックスの更新が発生し排他の範囲が広くなる為、 デッド口 ックが発生しやすい構造を持っていた。 インデックスを使用しない方式としてダ ィレクトアクセス方式があるが、 この方式は、 レコードのキーと格納場所をラン ダマイズルーチンという特殊なプログラムで関連付ける方式であリ、 順次ァクセ スが実用上無理であリ、 格納効率もィンデックスを使用する方法に比較すると、 低いものであった。
このような方式は、 磁気ディスクを前提にした技術であったため、 止むを得 ない面があった。 一方、 半導体の価格低下はめざましいものが有り、 半導体を記 憶装置として利用する条件が整いつつある。 半導体は、 物理的な移動や回転とい つた動作が不要であり、 アドレスが連続していなくても高速な格納、 読み出しが 可能となる。 この性質を利用し、 半導体のみまたは半導体とランダムアクセス型 記憶媒体を用いて記憶装置を構成すれば高速な格納 ·検索処理が行なえる。 半導 体は主記憶装置を使用する事も可能であるし、 本発明用に外部記憶装置として構 成する事も可能である。 データの格納はブロックに順次に格納し、 データの挿入 によりあふれた場合はオーバ一フロープロックを利用して格納し、 ランダ厶ァク セスに関しては、 インデックスを使用せず格納ブロックを管理するロケーション テーブルまたは代替キーテーブルを使用し、 それに対して検索を行なう事により、 高速な格納、 読出しを可能とし、 データの格納効率も良くデッドロックの発生を 最小限にとどめる。
発明の開示
ィンデックスの代わりとして、 ロケーションテーブルと代替キーテーブルとよ ぶものを新たに導入する。 また、 レコードは単独で格納するのではなく、 原則と して複数のレコードを 1つのブロックに格納する。 ブロックの構成は図 4に示す。 この図中の F R O M、 T Oはそれぞれ当該ブロック中の最小キー値、 最大キー値 を示すが、 必ずしも両方が必要ではなく、 片方のみでも本方式の適用は可能であ る。 長さが長いレコードを使用する場合は、 一つのブロックに一つのレコードと してもよい。 また、 2つ以上のブロックに 1つのレコードが格納される形態 (ス パンドレコード) も可能である。 また、 ブロックはプライマリーブロック、 ォ一 バ一フローブロックそれぞれ毎に、 1つのファイルでは全て同一の長さとし、 領 域管理を容易にする。 ブロックに格納することにより、 可変長レコードを格納し ても、 ブロック単位では固定長となるため、 ブロック検出は固定長の操作で行な える。 ロケーションテーブルは事前に必要な連続領域を確保する。 ロケーション テーブルの 1 レコード (エントリー) は、 データレコード格納領域のプライマリ —ブロック 1ブロックを管理する。 複数のプライマリーブロックを管理する方法 も可能であるが、 プライマリ一ブロックのサイズは任意の大きさがとれるので、 大きさの変更を行なえばよく複数ブロックの管理は行なわない方が管理が容易に なる。 ブロックはプライマリ一と才一バ一フローの 2種類で構成されるが、 ロケ —シヨンテーブルで管理されるのはプライマリ一ブロックのみである。 レコード はまずプライマリーブロックに格納される。 そのブロックに対して、 レコードの 挿入が発生しそのプロックに格納できなくなった場合は、 そのプロックに対する 才一バーフローブロックを 1つ割り当てる。 そのオーバーフローブロックにも格 納出来なくなつた場合は更に 1つの才一バーフローブロックを割り当てる。 才一 バ一フローブロックはプライマリ一ブロックの従属ブロックとして管理され、 プ ライマリ一ブロックからポインティングされるのみで、 ロケーションテ一ブルに は管理されない。
オーバ一フローブロックをロケーションテーブルで管理しないので、 ロケ一 シヨンテーブルへのレコード挿入が発生せず、 ロケーションテ一ブルの書換えに 要する時間が必要最小限ですみ、 更に、 ロケーションテーブルの書換えが 1 レコ ードのみである為、 排他が発生してもその範囲が極小化でき、 デッドロックの可 能性が大幅に減少する。
デッドロックは、 1つのコンピュータ一上で、 2つの異なるタスクが、 2っ以 上の同じ資源を異なる順序で排他を行なう為に発生し、 排他の順序が同一であれ ば発生せず、 排他の範囲が狭ければ確率は減少する。 従来のインデックスは、 数 レベルから成り立つている。 必要なレコードをアクセスし、 更新処理を行った際 にレコードのキーが変更されると、 インデックスも変更されるが、 これが最下位 のインデックスにのみ影響する場合は排他範囲は限定されるが、 場合によっては 上位のインデックスに影響する場合もある。 そうなると、 多数のレコードの範囲 に排他が及ぶとともに、 インデックスの更新にも時間を要する事から、 排他の時 間が長時間に及ぶことになり、 デッドロックが多発する原因となる。 図面の簡単な説明
図 1は、 ロケーションテーブル、 最終ポインタ一の構成を表わす。 各々のバイ 卜数は参考であり、 この内容と異なる長さで構成は可能である。 図 2は、 ロケ一 シヨンテ一ブルとブロックの関係を示す。 図 3は、 代替キーテーブル (エントリ 一) と代替キ一ブロックの構成を表わす。 バイ卜数は参考であり、 この内容と異 なる長さで構成は可能である。 F R O M、 T Oは当該ブロック中のキ一値の最小 値と最大値である。 代替キーブロックのキー値の持ち方は、 両方を持つ、 または、 いずれか一方のみでも可能である。 図 4はブロックの構成を示す。 図 5は、 プレ 代替キーブロックの構成を示す。 図 6は、 ブロックとオーバーフローブロックの 関係図。 解りやすくする為に、 ブロックが連続領域にあるような図にしてあるが、 実際には連続領域である必要は無い。 図 7は、 文章データにキ一をつける例。 発明を実施するための最良の形態
本方式で格納するレコードは、 必ず 1つのユニークな主キーとゼロ個若しくは 1個以上のノンユニーク (結果的にユニークであっても問題はない) なキー (代 替キー) を持つレコードに限定される。 ユニークなキ一を持たないレコードは対 象としない。
但し、 ユニークなキーが無いレコードに対して、 レコードの追加時に連続番号 などのユニークなキーを強制的に付加し、 読み出しは物理順もしくは代替キーの 順にのみ行なう事は可能である。 この場合は挿入が行われない為、 レコードの更 新によりレコード長が増加する以外には才一バ一フローブロックが発生しない。 以下の説明で追加とは、 現在格納されているレコードの主キーより大きな主キ —を持つレコードの格納をさし、 挿入は、 最大の主キーより小さな主キーを持つ レコードの格納をさす。
まず、 格納方式を説明する。 ロケーションテーブルは予めレコードの格納予定 数とブロックの大きさ、 ロケーションテーブル 1 レコード当たりのプライマリ一 プロック数から計算して必要十分な領域を連続領域として確保しておく。 同様に 代替キーテーブルのブロック数も格納するレコードの数のエントリ一が格納でき る様に、 ブロックの大きさと数を決定し、 連続領域として確保する。 しかしなが ら、 当初想定した数を上回って格納が行われる場合に、 連続領域が満杯になり、 格納が不可能になってしまう可能性がある。 このような場合には、 更に追加で連 続領域の確保を行ない、 アドレス変換テーブルを用いて、 複数の連続領域があた かも 1つの連続領域であるかのように扱う事により、 当初の想定レコード数を超 える数の格納が行われるような事態にも対処が可能である。 代替キーが複数ある 場合は、 それぞれ毎に領域を確保する。 異なる代替キ一の代替キーテーブル同士 は連続する必要は無い。 ロケーションテーブルとプロックの関係を図 2に示す。 サブレンジに分割する格納方式を採用する場合は、 各々のサブレンジの予定格 納レコ一ド数に見合ったロケーションテーブルをサブレンジ毎に作成する。 ロケ ーシヨンテーブルの各々は連続して (<、る領域である必要があるが、 ロケーション テーブル同士は連続した領域である必要はない。 代替キーテーブルは、 すべての レコードを対象とした大きさの連続領域を、 分割せずに用意する方法が、 高速な アクセスには有効であるが、 サブレンジ毎に分割して設ける事も可能である。 最初のレコードを格納する場合は、 まず、 最終ポインターを排他モードで参照 する。 最終ポインタ一は、 ブロックとロケーションテーブルをどこまで使用して いるかを管理するもので、 形式は図 1に示すとおり。 最初は格納されているレコ —ドが何も無いので、 まず、 最終ポインタ一に 1ブロック目が最後のブロックで ある事を登録する。 最終ポィンターにはプロック #と主キーの値とを登録する。 次に 1つのプライマリ一ブロックを排他モードで確保し、 その物理アドレスとブ ロック番号 (この場合は 0。 番号は 0からスタ一卜するとした場合) を登録する。 ブロックをディスク上に確保する場合は、 主キーの値もエントリ一に含める。 次 にそのブロックにレコードを登録する。 その後総ての排他を解除する。
2レコード目の登録は、 まず、 最終ポインタ一を排他モードで参照し、 主キー が最終ポインターのキ一値より大きいか否かを判定する。 まず、 レコードの追加 の場合として説明を行なう。 ブロック番号が 0なのでロケ一ションテーブルのブ ロック番号 0を排他モードで参照し、 0ブロックの物理位置を知り、 その物理位 置にあるブロック 0を読み出す。 そのブロックに十分な空き領域があれば、 レコ ードを格納し、 最終ポインターに主キーの登録を行ない、 総ての排他を解除する。 以下、 同様の操作で追加格納が行われるが、 0ブロックに入りきらない場合の 説明を行なう。 m番目のレコード追加で上記操作を行ない 0ブロックを読み出し た際に、 0ブロックに十分な余裕が無い場合、 プライマリ一ブロックを 1つ (ブ ロック番号 1 ) 排他モードで確保する。 m番目のレコードをブロック 1に格納す る。 その後、 ロケーションテーブルの 2レコード目を排他モードで参照し、 この レコードにプライマリ一ブロック 1の物理位置を登録する。 この後総ての排他を 解除する。 このように、 追加は論理的に最後のレコードの後になる位置に格納さ れる。 サブレンジに分割されている場合は、 サブレンジ毎に同様の操作が発生す る。
次に、 レコードの挿入になる場合を説明する。 既に複数のロケーションテープ ルエントリ一、 プライマリーブロック、 データレコードが存在しているとする。 まず、 挿入されるレコードを、 どのブロックに格納すべきかを判別する必要が ある。
これはロケーションテーブルに対して検索を行なう。 高速な検索の方法の一例 としてバイナリー ·サーチが知られている。 ここではバイナリ一'サーチを行なう 方法を例として記述するが、 他の方法でも目的のエントリ一を探す事は可能であ る。 方法としては 2分割点を探し、 そのレコードが指しているプライマリーブ口 ックにオーバ一フロ一ブロックがある場合には才一バ一フ口一ブロックを含めて、 そのブロック (当該ブロック) に格納されているレコードの主キーの値 (以下、 格納主キー値と略す) と挿入レコードの主キ一の値 (以下、 挿入主キー値と略す ) を比較する。 挿入主キー値が格納主キー値の最小値より大きいか、 次のブロッ クの格納主キー値の最小値より小さい場合は、 当該ブロックに格納される。 この 判定に該当しない場合は、 更に当該ブロックの格納主キ一値と挿入ブロック主キ 一値の大小を比較し、 挿入主キ一値が小さい場合は前方の、 そうでない場合は後 方の 2分割点を探し、 同様な操作を行ない、 レコードを格納するブロックを探す。 ロケーションテーブルが複数の連続領域から構成されている場合は、 そのまま ではバイナリー 'サーチが行なえないが、 アドレス変換テーブルを利用して、 あた かも連続領域であるかのように扱う事により、 バイナリー'サーチを行なう事が可 能となる。
サブレンジに分割されている場合は、 サブレンジ毎のロケーションテーブルの 先頭もしくは最後の主キーの値をまず比較し、 どのサブレンジが対象となるかを 探す。 その後、 そのサブレンジに関して、 上記と同様に、 バイナリ一'サーチを行 い、 該当するブロックを探し出す。
n番目のブロックに格納することになつた場合以下のようになる。 ブロックの 中でレコードを挿入する位置を探す。 レコードは主キーの順に並んでいるので挿 入レコードより大きい主キーを持ったレコードの直前が挿入位置となる。 まず、 主キーの重複が無いかをチェックする。 重複していた場合は格納できないのでェ ラーとして処理を行なう。 重複していない場合、 挿入レコードより後の位置にあ るレコード (1つ以上) を挿入レコードが丁度入る大きさだけ後方にずらす。 こ の際に、 ずらしたレコードがブロックの中に収まればそれで処理は終了するが、 納まらない場合は、 オーバ一フローブロックを 1つ切り出して、 プライマリーブ ロックからのポインター付けを行い、 必要なだけ才一バーフローブロックに格納 する。 その後、 プライマリ一ブロックに挿入レコードと挿入レコードに続くレコ -ドを格納する。 プライマリ一ブロックとオーバ一フローブロックの論理的な関 係を図 6に示す。
既にオーバーフローブロックが存在する場合は、 プライマリ一ブロックとォ一 バ一フローブロックの双方を併せて格納が可能であればよい。 また、 ォ一バーフ 口一プロックは一部分しか使用されずに、 領域が有効に使用されない可能性があ る。 これを防ぐ為、 複数のプライマリーブロックに対して 1つの才一バーフロー ブロックを設ける事ができる。 また、 オーバ一フローブロックの大きさは総て同 —とするが、 プライマリ一ブロックに比べて小さくすることが可能である。 また、 複数のプライマリ一ブロックから 1つのオーバーフローブロックをポイントし使 用するようにする事が可能である。
この他に、 オーバ一フローしたレコードを、 単独で格納領域に格納し、 プライ マリ一ブロックからポインター付けを行なう方法の採用する事が可能である。 し かしながら、 この方法は才一バーフローレコードが多い場合には、 オーバ一フロ —ブロックを利用する場合に比較して、 検索に時間がかかるというデメリツ卜も あり、 レコードの発生状況に応じた、 格納方法の選択が必要である。
次に、 代替キーの格納、 更新の場合の説明を行なう。 代替キーテ一ブルは複数 の代替キ一プロックから構成され、 ェン卜リ一が代替キ一プロック中に代替キー の順番に並ぶように格納する。 代替キーテーブルのエントリ一は代替キー、 その キー値のレコ一ドが格納されているブロックの物理アドレス、 そのキー値のレコ —ドの主キ一からなる。 代替キーテーブルはレコードの追加、 更新に伴いェント リー数が変動するが、 エントリ一の増加に対しては、 エントリーが挿入になる可 能性が高く、 追加型で発生する可能性は非常に少ない。 この為、 主キーと同様の 管理ではうまく行なえない。 最終格納予定レコード数に比較して、 既に多数のレ コードが存在する場合は、 代替キ一ブロックにエントリーを格納する際に、 一定 の空き領域を設ける事により、 挿入を効率的に処理できるが、 初期のレコードの 数が最終格納予定レコード数に比較して少ない場合は、 キーの挿入により才一バ 一フロー代替キ一ブロックが多数発生する事になる。 この場合は、 プレ代替キー -テーブルを使用する。
プレ代替キ一テーブルは、 代替キーテーブルと同様な構造とし、 ブロックの数 は代替キ一プロックの数のェン卜リ一が格納できる大きさを、 ブロックのサイズ で割って求めた数とする。 プレ代替キーテーブルのエントリ一数が、 代替キーテ —ブルの数と同じになった時点で、 プレ代替キーテーブルから代替キ一テーブル にエントリーを移動する。 移動時には、 代替キ一ブロックには原則として一つの エントリ一を格納するが、 同一の代替キーを持つエントリ一は、 同一の代替キー プロックに格納する。 同一の代替キーを持つェン卜リーの数が多くて代替キープ ロックに格納できない場合は、 代替キー ·オーバ一フロー ·ブロックを追加し格 納する。
例えば、 最終格納予定レコード数を 1 0 0万件と想定しているとする。 一つの 代替キ一■ブロックに 1 0 0エントリ一の格納が可能とすると、 代替キー *ブ口 ックは 1万個必要となる。 エントリ一が 1万になるまで、 プレ代替キー■ブロッ クに格納し、 1万になった時点で、 代替キ一 ·ブロックにエントリ一を移し替え る。
以上の説明は代替キ一テーブルを、 キー種毎に 1つ用意する場合の説明である が、 サブレンジ毎に設けた場合は、 サブレンジ毎に上記の操作を行う。
また、 代替キ一ブロックの数が多く、 プレ代替キーテーブルを 1段階設けた場 合では、 プレ代替キーブロックの数が多くなり、 挿入が頻繁に発生し更新処理が 非効率になる可能性がある。 この場合は、 プレ代替キーテーブルを複数段階設け る様にする。 前記の例で言えば、 プレ代替キーテーブルに 1 0 0 0 0件のェン卜 リーを格納する事になるが、 1つのブロックに 1 0 0エントリ一が格納可能なの で、 これを 2段階とし、 最初のプレ代替キーテーブルは 1 0 0エントリ一を管理 し、 エントリーが 1 0 0になった時点で、 2段回目のプレ代替キ一テーブルに移 し替えるという方法である。
移し替えの具体例を図 5に示す。 この例は 2段階のプレ代替キーテーブルを設 けた例である。
次に、 主キーでのレコード検索の方法を述べる。 これは、 レコードの挿入で、 挿入位置を調べる為におこなった方法と同様に行なう。 ここでは、 挿入の例と同 様にバイナリ一'サーチの例を記述する。 まずロケ一ションテ一ブルの 2分割点を 探し、 そのエントリ一が指しているプライマリーブロックにオーバ一フロープロ ックがある場合にはオーバーフローブロックを含めて、 そのブロック (当該プロ ック) に格納されているレコードの主キーの値 (以下、 格納主キー値と略す) と 目的レコードの主キーの値 (以下、 目的主キー値と略す) を比較する。 目的主キ 一値が格納主キー値の最小値と等しいかまたは大きく、 次のブロックの格納主キ —値の最小値よリ小さい場合は、 当該プロックに目的のレコードが存在するか、 そのキー値のレコードはファイル上に存在しないかの何れかである。 ブロックの 中は主キーの順に並んでいるのでブロックを検索することにより、 目的のレコー ドを検出するか、 ファイル上に存在しないかを確認する事ができる。 この判定に 該当しない場合は、 更に当該プロックの主キー値と目的レコードの主キ一値の大 小を比較し、 目的主キー値が小さい場合は前方の、 そうでない場合は後方の 2分 割点を探し、 同様な操作を行ない、 レコードが格納されているブロックを探す。 次に代替キーによる検索について説明する。 代替キーでの検索は代替キーテー ブルを検索する。 検索の方法としてはバイナリー 'サーチが代表的であるが、 これ については、 主キーの検索で述べてあるので省略する。 目的の代替キーが含まれ る代替キーブロックを探し出す。 更に代替キ一ブロックの中の目的の代替キーェ ントリ一を探す。 結果は、 主キーの場合と同様にそのブロック内にエントリーが 存在するか、 その代替キー値をもつレコードはファイル中に存在せず、 エントリ —が無いかの何れかである。 代替キ一ブロックに代替キー■才一バーフロープロ ックが存在するときには、 その双方を検索の対象とする。
以上の記述は、 代替キーテ一ブルをキー種毎に 1つ設けた場合の説明であるが、 サブレンジ毎に代替キ一テーブルを分割して設けた場合は、 以下のように行う。 サブレンジ毎に目的の代替キーブロックを検索して、 目的のキ一値をもつェン卜 リーをサブレンジ毎に抽出し、 それらのすべてを検索の対象とする事により検索 を行う。
目的のキー値を持つ代替キーエントリーが探し出せた場合は、 そのエントリ一 にある物理プロック番号から物理プロックにアクセスし、 そのプロック内でェン トリー中にある主キー値と一致するレコードを探し出す。 また、 代替キ一はノン ユニークでいいので、 代替キ一ブロック中の次のエントリーを見、 代替キー値が 同一である場合は、 更にそのエントリ一に対するレコードの検索を行ない、 同一 キー値を持つェン卜リ一が無くなるまで実行する。
次に、 創生に関して説明する。 創生とは、 本方式のファイル上に既にレコード が複数存在しており、 オーバーフロープロックが増加した等の理由で再創生する 場合と、 バックアップ媒体から本方式の適用媒体に展開する場合、 それと、 本方 式で述べる格納方式以外の方法で格納されていたレコードを方法式に移行する場 合が考えられるが、 いずれも同様な方法で行なえる。
再創生の場合は、 ファイルを順次呼び出し方式にて主キ一の順に読みだし、 順 編成ファイルを作成する。 創生の場合も同様に順編成ファイルを作成する。
次に、 ロケーションテーブルと代替キ一テーブルを準備する。 ロケーションテ —ブルのエントリーの数は、 格納を予定しているレコードの数を 1ブロックに格 納できるレコード数で割った数分を連続領域として確保する。 代替キーテーブル は代替キーの種類別に確保する。 1つの種類の代替キ一ブロックは同一の大きさ とし、 その数は、 次のように求める。 1つの代替キーブロックに格納できるェン トリー数 (A ) を求める。 格納予定レコード数を Aで割って求めた商が代替キー ブロックの数となる。 また、 必要に応じプレ代替キ一テーブルを準備する。 レコードは主キーの順に、 ブロックに格納する。 この際に予め挿入の頻度を予 測または統計データから算出し、 プロック内に一定の割合の余裕を設けることが できる。 また、 隙間無くレコードを格納することも可能である。 これは、 挿入が どの程度行われるかで決定する。 ブロック内の余裕はブロック毎に割合を変える 事も可能である。 格納に伴い、 ロケーションテーブルへの記入も行なう。 代替キ 一はまずレコ一ドから代替キーェン卜リ一を作成し、 順編成ファイルに格納する。 すべてのレコードの代替キーエントリーの作成が終了したら、 代替キーの順にソ —卜を行い、 ソート後のエントリーを代替キーブロックに格納する。 代替キーェ ン卜リ一は代替キ一ブロックに格納するが、 格納は、 創生レコード数を最終格納 予定レコード数で割った商を求め、 その商に相当する割合で代替キーブロックに 格納を行なう。 これは、 代替キーの発生が挿入型になる為である。
代替キーの特殊な使用法も可能となる。 現在のキーは、 レコードの特定の位置 に格納されているフィールドに対して、 キ一を設定するもので、 例えば商品コー ドとか得意先コードといったように長さや形式が同一であった。 本方式では、 キ 一とレコードの関連付けが行なえれば良いので、 文章データにキーを作る事が可 能である。 図 7で示すように非定型なレコードにキ一をつける事が可能となる。 この例のように、 フィールドの場所が一定せず、 フィールドの長さも固定でない レコードに代替キーの設定が可能である。 産業上の利用可能性
①高速に主キーと代替キーによるランダムアクセスが行える。
②順次読み出し、 書き込みも高速に行なえる。
③インデックスを使用せず、 ロケーションテーブルと代替キーブロックを使用す る為、 データの追加変更削除に伴う変更が少なく、 処理時間が短くレコードの格 納が高速に行える。
④ロケーションテーブルや代替キーブロックの作成 (創生) に関する時間がイン デックス作成に比較して短時間ですむ。
④ロケーションテーブルや代替キーブロックの排他の範囲が最小限で済み、 デッ ドロックが起きにくい。
⑤予め、 ブロックを作成する必要が無い。
⑥物理的な空きスペースが無くなるまで、 プロックの追加が行える。
⑦可変長レコードが扱え挿入も可能な為、 レコード圧縮が可能 (一般的には、 圧 縮レコードの更新ができないケースが多い) 。
⑧代替キーも問題無く複数使用できる。 ⑨データベースのメンテナンスの手間が大幅に削減できる。
という特徴を有し、 コンピューターにおけるデータ格納に適している。

Claims

請求の範囲
1 . コンピュータ一における、 データ格納方式において、
①デ一夕レコード中に一つのユニークなキ一 (異なるレコードのキ一値が重複し ないもので、 以降、 主キーと呼ぶ) と、 ゼロ個もしくは 1個以上のノンユニーク なキ一 (異なるレコードのキー値が重複してもかまわないもので、 以降、 代替キ 一と呼ぶ) を持つレコードを固定長のブロックの中に主キーの順番に並ぶように
1個以上格納し、
②ブロックはプライマリーブロックとオーバーフローブロックで構成し、 レコ一 ドはまずプライマリ一ブロックに格納し、
③レコードの挿入によりプライマリ一ブロック中に格納できなくなつた場合に、 そのプライマリ一ブロックに対して才一バーフローブロックを割り当て、 1つの オーバ一フローブロックでは格納できない場合は更に 1つづつオーバ一フローブ ロックを割リ当て、 各々のプロックを連携してレコードを格納し、
④レコードの追加に対して最終プライマリ一ブロックに格納できない場合は、 新 たなプライマリ一ブロックを割り当ててレコードを格納し、
⑤プラィマリ一ブロックの位置管理は、 ロケ一ションテ一ブルを用 L、ることによ り、 各々のブロックの物理的な位置に関しては何らの制限を受けず配置でき、
⑥各々のブロックは予め作成しておく必要が無く、 必要に応じて作成し、 物理的 なデータ格納ェリァが満杯になるまで作成でき、
⑦複数の特定のプライマリーキーの後に、 レコード挿入が多数行われる型のファ ィルに対しては、 挿入が行われる位置で複数のサブレンジに分割し、 挿入ではな くレコード追加とし、 オーバーフローレコードの発生を防ぎ、
⑧プライマリーおよび才一バーフローブロックを複数のコンビユーター上に分割 して保持できる構造の、 格納方式。
2 . 前記の格納方式において、
①キーによる検索の為の方法としてインデックスを用いず、 ロケーションテ一ブ ルと代替キーテーブルを使用し、 各々は、 格納するレコードの数に見合った大き さの連続領域を予め確保し、
②ロケーションテーブルは複数のエントリ一から構成され、 エントリ一はプライ マリ一ブロックの番号と物理ァドレスで構成され、 プライマリーブロックの番号 の順番に並べた構造とする。 主キ一による検索は、 ロケーションテ一ブルに対し て検索を行う。 目的のキー値を含むエントリ一をもとめ、 そのエントリーによつ てポイントされるブロック中のレコードを検索する事により目的のレコードの検 索を行ない、
③レコードの格納にランダムアクセス型記憶媒体装置を使用する場合は、 ロケ一 シヨンテーブルのエントリーに該当ブロックの主キーを含めたものを 1エントリ —とし、 プロック検索がロケ一ションテ一ブルのみで行なえるようにし、
④代替キ一を使用する場合は、 代替キーテーブルを作成する。 代替キ一テーブル は複数の代替キ一ブロックで構成され、 代替キーエントリ一は代替キーブロック に格納する方式とする。 代替キーブロックは予め同一の大きさで必要数を連続し て確保し、 一つの代替キーブロックに複数のエントリ一が格納可能とする。 代替 キ一エントリ一は、 代替キーと該当レコードが格納されているブロック番号、 該 当レコードの主キ一からなる。 同一の代替キーに複数のレコ一ドが存在する場合 は、 これらを一つのエントリ一とする方法も使用できる。 同一の代替キーを持つ エントリ一は同一の代替キ一ブロックに格納する。 同一の代替キーを持つェン卜 リーの数が多い、 もしくは代替キーの挿入により、 代替キーブロックに格納でき ない場合代替キ一 'オーバーフロー ·ブロックを代替キ一ブロックに追加し格納 し、
⑤代替キーによる検索は、 この代替キーテーブルを検索することにより、 目的の 代替キー値を持つエントリーを検出し、 そのエントリ一から目的のレコ一ドの格 納されているブロック番号を知り、 そのブロック中の当該レコードの検索を行う。 代替キーテーブルの検索は、 代替キーブロックのみを検索の対象として行い、 探 索された代替キーブロックに代替キ一 ·才一バ一フロー ·ブロックがある場合は、 両方のプロックに格納されているェントリ一を検索し、
⑥当初格納するデータレコード数が最終格納レコード数に比較して非常に少ない 場合は、 その後のレコードの追加で、 代替キーの挿入が頻繁に発生する可能性が 大きいが、 この場合は、 最終レコード数に対応した代替キーブロックに最初から 格納せず、 レコード数が代替キ一ブロックの数に到達するまで、 プレ代替キープ ロックに格納する。 プレ代替キーブロックは、 代替キーブロックと同様な構造と し、 ブロックの数は代替キ一ブロックの数のエントリ一が格納できる大きさを、 プロックのサイズで割って求めた数とする。 プレ代替キ一プロックのエントリー 数が、 代替キーブロックの数と同じになった時点で、 プレ代替キ一ブロックから 代替キ一ブロックにエントリ一を移動する。 移動時には、 代替キ一ブロックには 原則として一つのェン卜リ一を格納するが、 同一の代替キーを持つェン卜リーは、 同一の代替キーブロックに格納する。 同一の代替キーを持つエントリーの数が多 くて代替キ一ブロックに格納できない場合は、 代替キー ·才一バーフロー ·プロ ックを追加し格納し、
⑦主キ一による、 順次読み出しは、 ロケーションテーブルでプライマリ一物理ブ ロックアドレスを検出し、 そのプライマリーブロック内のレコードと、 オーバ一 フローブロックが存在する場合には才一バーフローブロック内のレコードを順次 読み出すことにより読み出しを行う。 次のブロックはロケーションテーブルの次 のエントリ一を求め、 そのエントリ一から物理ブロックを求める、
⑧代替キーによる順次呼び出しは、 まず、 ⑤により最初のレコードを読み出し、 次のレコードの読み出しは、 代替キ一ブロックの次のエントリーのレコ一ドを順 次に呼び出す事により行なう検索方式。
PCT/JP1998/003067 1997-07-11 1998-07-08 Systeme de stockage/recherche de donnees WO1999003039A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP98931014A EP0923030A4 (en) 1997-07-11 1998-07-08 DATA STORAGE / SEARCH SYSTEM
US09/254,437 US6415375B2 (en) 1997-07-11 1998-07-08 Information storage and retrieval system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9/219700 1997-07-11
JP21970097A JP3345628B2 (ja) 1997-07-11 1997-07-11 データ格納及び検索方法

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US09/254,437 A-371-Of-International US6415375B2 (en) 1997-07-11 1998-07-08 Information storage and retrieval system
US10/119,145 Division US6584555B2 (en) 1997-07-11 2002-04-10 Information storage and retrieval system
US10/390,815 Division US6654868B2 (en) 1997-07-11 2003-03-17 Information storage and retrieval system

Publications (1)

Publication Number Publication Date
WO1999003039A1 true WO1999003039A1 (fr) 1999-01-21

Family

ID=16739604

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/003067 WO1999003039A1 (fr) 1997-07-11 1998-07-08 Systeme de stockage/recherche de donnees

Country Status (4)

Country Link
US (3) US6415375B2 (ja)
EP (1) EP0923030A4 (ja)
JP (1) JP3345628B2 (ja)
WO (1) WO1999003039A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005086003A1 (ja) * 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6444072B1 (en) * 1999-08-11 2002-09-03 Southpac Trust International Process for producing holographic material
WO2001067209A2 (en) 2000-03-09 2001-09-13 The Web Access, Inc. Method and apparatus for performing a research task by interchangeably utilizing a multitude of search methodologies
JP2001356945A (ja) * 2000-04-12 2001-12-26 Anetsukusu Syst Kk データバックアップ・リカバリー方式
US6697797B1 (en) * 2000-04-28 2004-02-24 Micro Data Base Systems, Inc. Method and apparatus for tracking data in a database, employing last-known location registers
US8335779B2 (en) * 2002-08-16 2012-12-18 Gamroe Applications, Llc Method and apparatus for gathering, categorizing and parameterizing data
US7765180B2 (en) 2002-09-10 2010-07-27 Annex Systems Incorporated Database re-organizing system and database
US7505979B2 (en) * 2002-10-21 2009-03-17 Annex Systems Corporation Database accelerator
WO2005103901A1 (ja) * 2004-04-19 2005-11-03 Annex Systems Incorporated コンピューター・システム
US20060010122A1 (en) * 2004-07-07 2006-01-12 International Business Machines Corporation System and method for improved database table record insertion and reporting
US7965297B2 (en) * 2006-04-17 2011-06-21 Microsoft Corporation Perfect hashing of variably-sized data
US7523288B2 (en) * 2006-09-06 2009-04-21 Microsoft Corporation Dynamic fragment mapping
US7872648B2 (en) * 2007-06-14 2011-01-18 Microsoft Corporation Random-access vector graphics
JP5392254B2 (ja) * 2008-05-30 2014-01-22 日本電気株式会社 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム
TWI428023B (zh) * 2008-11-18 2014-02-21 Ind Tech Res Inst 解碼方法及裝置
JP5460486B2 (ja) * 2010-06-23 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データをソートする装置及び方法
CN102495836B (zh) * 2011-10-28 2013-07-10 宁波三星电气股份有限公司 累计用电量最后记录的查找方法
US9870416B2 (en) 2014-04-24 2018-01-16 International Business Machines Corporation Method for rebalancing data partitions
US10089342B2 (en) * 2014-07-10 2018-10-02 Sap Se Main memory database management using page index vectors
CN105426408B (zh) * 2015-11-02 2019-03-08 北京锐安科技有限公司 一种多索引的数据处理方法及装置
US20170255565A1 (en) * 2016-03-02 2017-09-07 Intel Corporation Method and apparatus for providing a contiguously addressable memory region by remapping an address space
US11782875B2 (en) * 2017-11-13 2023-10-10 Weka.IO Ltd. Directory structure for a distributed storage system
US12045173B2 (en) * 2020-04-18 2024-07-23 International Business Machines Corporation Stale data recovery using virtual storage metadata
CN115617799A (zh) * 2022-10-18 2023-01-17 支付宝(杭州)信息技术有限公司 一种数据存储的方法、装置、设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4571700A (en) * 1983-06-16 1986-02-18 International Business Machines Corporation Page indexing system for accessing sequentially stored data representing a multi-page document
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
US5860136A (en) * 1989-06-16 1999-01-12 Fenner; Peter R. Method and apparatus for use of associated memory with large key spaces
US5490258A (en) * 1991-07-29 1996-02-06 Fenner; Peter R. Associative memory for very large key spaces
EP0410210A3 (en) * 1989-07-24 1993-03-17 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5826076A (en) * 1994-05-13 1998-10-20 Liant Software Corporation Computer-based information access method and apparatus to permit SQL-based manipulation of programming language-specific data files
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5613110A (en) * 1995-01-05 1997-03-18 International Business Machines Corporation Indexing method and apparatus facilitating a binary search of digital data
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6212647B1 (en) * 1998-06-02 2001-04-03 Hewlett-Packard Company Systems and methods to perform defect management to block addressable storage media
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YAMATANI M: "ILLUSTRATED COMPUTER SERIES 'INTRODUCTION TO FILE ORGANIZATION'", ILLUSTRATED COMPUTER SERIES. INTRODUCTION TO FILE ORGANIZATION, XX, XX, 30 July 1985 (1985-07-30), XX, pages 65 - 85, XP002917315 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005086003A1 (ja) * 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム

Also Published As

Publication number Publication date
US6654868B2 (en) 2003-11-25
JP3345628B2 (ja) 2002-11-18
EP0923030A4 (en) 2002-05-02
US20020133686A1 (en) 2002-09-19
US6415375B2 (en) 2002-07-02
EP0923030A1 (en) 1999-06-16
US20030159015A1 (en) 2003-08-21
US20010011321A1 (en) 2001-08-02
US6584555B2 (en) 2003-06-24
JPH1131096A (ja) 1999-02-02

Similar Documents

Publication Publication Date Title
WO1999003039A1 (fr) Systeme de stockage/recherche de donnees
US9454318B2 (en) Efficient data storage system
CN109445702B (zh) 一种块级数据去重存储系统
US7065619B1 (en) Efficient data storage system
US7096227B2 (en) Database utilities
US7418544B2 (en) Method and system for log structured relational database objects
CA2723731C (en) Managing storage of individually accessible data units
JP4921865B2 (ja) アドレス関連テーブル構造を持つスキップ・リスト
US20110004639A1 (en) Method and Apparatus for Storing Data with Reduced Redundancy Using Data Clusters
EP1866774A1 (en) Method for storing data with reduced redundancy using data clusters
US10496612B2 (en) Method for reliable and efficient filesystem metadata conversion
JP2000181768A (ja) デ―タ格納検索方式
KR102388458B1 (ko) 데이터 키 값 변환 방법 및 장치
Luan TreeKV: efficient garbage collection and range query for key-value separated LSM-stores
CN115544149A (zh) 基于HBase多端融合的小文件存储方法和系统
Macyna Check for Bulk Loading of the Secondary Index in LSM-Based Stores for Flash Memory Wojciech Macyna () and Michal Kukowski Department of Computer Science, Faculty of Information and Communication Technology
Alom et al. COMPRESSED DATABASE STRUCTURE TO MANAGE LARGE SCALE DATA IN A DISTRIBUTED ENVIRONMENT
KR20170093767A (ko) 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 1998931014

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 09254437

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1998931014

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1998931014

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1998931014

Country of ref document: EP