Conventional information storage systems are subject to numerous practical constraints such as contiguity in the physical locations of blocks and the requirement that storage blocks be created in advance. Information retrieval in these systems has required the creation of indices, which take a long time to generate, and the structure of these systems makes them prone to deadlock since the indices are updated and the range of exclusion broadened when the referent information is modified. This invention utilizes the random access facilities of semiconductors to achieve high speeds and minimize the maintenance load. This invention introduces location tables and alternate-key tables to replace these indices. It also stores multiple records in a single block and can handle variable-length records and spanned records. The location tables manage the storage blocks. An alternate-key block is made up of a substitute key and its block number and the primary key value, either of which may be used to retrieve a target record by searching this table. Binary search is a well-known high-speed method of querying tables, but other methods may be used as well.
Legal claims defining the scope of protection, as filed with the USPTO.
1. An information storage system for computers, comprising: a multitude of blocks of fixed length for storing a multitude of records, each having a unique key (a key that does not duplicate the key value of another record, hereafter called the primary key ), having zero or one or more non-unique keys (keys that may duplicate the key values of different records, hereafter called alternate keys ), and that are stored in said blocks in the order of their respective primary keys; structure such that said blocks consist of primary blocks and overflow blocks, said records to be stored first of all in said primary blocks; a facility for allocating an overflow block in the event an inserted record can not be stored in a primary block and for allocating further overflow blocks in the event an inserted record can not be stored in a single overflow block, the record then to be stored serially across said overflow blocks; a facility for allocating a new primary block in the event an added record can not be stored in the final primary block, the record then to be stored in said new primary block; a location table, used to manage the locations of said primary blocks such that blocks may be positioned with no restriction whatsoever on their physical locations; a facility to create blocks as they become required until physical data storage area is full such that each block need not be created in advance; a facility to partition files consisting of multiple record insertions after multiple specified primary keys into multiple sub-ranges at the location of the file's insertion, this operation treated as the addition rather than the insertion of records, thus preventing the generation of overflow records; and providing retention of said primary and overflow blocks partitioned across multiple computers.
2. An information retrieval system, operating upon the information storage system of claim 1 and comprising: a facility for using location tables and alternate tables, contiguous space for each of which is secured in advance in sizes corresponding to the number of records stored; a location table containing the number of said location table (serial numbers beginning with the number zero that are identical to the primary block numbers) and the physical address of the primary block as a single entry, having a structure such that they are stored in the order of their location table numbers; a facility whereby retrieval by means of primary key is performed by searching the location table, the target record so retrieved by identifying the block including the target key value and then retrieving the record in that block; inclusion in individual location table entries of the primary key of the corresponding block in the event a random-access memory media device is used to store records, block searches to be performed by means of the location table alone; a facility for creating alternate-key tables when alternate keys are used, said alternate-key tables to be stored in alternate-key blocks, each capable of storing multiple entries, and space for said alternate-key blocks secured in advance in identical sizes and in the quantity required; a structure whereby each said entry is made up of the number of the block in which an alternate key and the corresponding record are stored and the primary key of that corresponding record; a structure whereby said entries are stored in the ascending order of their alternate keys; a facility for treating multiple records existing within a single alternate key as a single entry; a structure whereby entries having identical alternate keys are stored in the identical alternate-key block; a facility for storing entries in an alternate-key overflow block added to said alternate-key block in the event an entry or entries can not be stored in an alternate-key block because a large number of entries have an identical alternate key or due to the insertion of an alternate key; a facility for retrieval by means of alternate keys such that the entry containing a target alternate-key value is identified by searching said alternate-key block, obtaining from that entry the block number in which the record is stored, and retrieving the corresponding record within that block, and such that entries stored in both alternate-key blocks and alternate-key overflow blocks are retrieved in the event said alternate-key blocks alone are subjected to searching and an alternate-key overflow block exists for the alternate-key block searched; a facility for creating pre-alternate-key blocks of a structure identical to alternate-key blocks in a quantity obtained by dividing the space capable of storing the entries of the number of alternate-key blocks by the size of the blocks; a facility such that when there are extremely few data records compared to the final number of storage records and consequently a high probability that addition of a further record may frequently result in the insertion of an alternate key, additional records are not stored first in an alternate-key block corresponding to the final number of records, but stored in pre-alternate-key blocks until the number of records reaches the number of alternate-key blocks; a facility for moving entries from pre-alternate-key blocks to the alternate-key blocks at the point when the number of pre-alternate-key block entries becomes equal to the number of alternate-key blocks, and whereby a single entry is, in principle, stored in each alternate-key block when said entries are moved, but entries having identical alternate keys are stored in identical alternate-key blocks; a facility for storing entries in an alternate-key overflow block added to an alternate-key block when said alternate-key block can not hold said entries because a large number of said entries have an identical alternate key; a facility for sequential reading by means of a primary key performed by detecting the primary physical block address in the location table and sequentially reading the record in that primary block and, if an overflow block or blocks exist, the record in said overflow block or blocks, said subsequent block to be determined by obtaining the next entry in the location table and obtaining the physical block from said entry; and a facility for sequential access by means of an alternate key that first reads the first record as described above and reads the next record by means of sequential access of the record of the next entry in the alternate-key block.
3. An information storage and retrieval system for computers, comprising: at least one record to be stored, each said record having a single unique primary key and zero or more non-unique alternate key, in segments of fixed length in order of its primary key; blocks within which said at least one record can be stored, wherein said blocks comprise primary blocks and overflow blocks, and whereby said at least one record to be stored is first stored in said primary blocks; wherein, if insertion of one of said at least one record prevents storage in a selected one of said primary blocks, said system further comprises a single overflow block to said selected one of said primary blocks; and wherein if said single overflow block is insufficient to store a record, said system further comprises further overflow blocks to said selected one of said primary blocks; a facility for allocating a new primary block in which to store an added record in the event said added record cannot be stored in a final primary block; a location table, to determine the location of said primary blocks such that said primary blocks can be positioned with no restriction on their locations; a block generator for generating individual blocks as they become required until a physical data storage area is full, such that individual blocks need not be created in advance; a file partitioner to partition files having multiple record insertions after multiple specified primary keys into multiple sub-ranges at insertion locations, whereby records are added rather than inserted, so as to prevent generation of overflow records; whereby records are stored serially across blocks; and whereby said primary and overflow blocks can be partitioned across multiple computers.
4. An information storage method for computers, comprising: storage of one or more records, each said record having a single unique key and zero or one or more non-unique keys, in blocks of fixed length in the order of their primary keys; structure such that blocks consist of primary blocks and overflow blocks, said records to be stored first of all in said primary blocks; provision of an overflow block to a primary block if the insertion of a record prevents storage in that primary block, further incremental provision of overflow blocks if a single overflow block is insufficient to store a record, and serial storage of records across blocks; a facility for allocating a new primary block in the event an added record cannot be stored in the final primary block, the record then to be stored in said new primary block; a location table, used to manage the location of said primary blocks such that blocks may be positioned with no restriction whatsoever on their physical locations; a facility for creating individual blocks as they become required until physical data storage area is full such that individual blocks need not be created in advance; a facility to partition files consisting of multiple record insertions after multiple specified primary keys into multiple sub-rages at insertion locations, this operation treated as the addition rather than the insertion of records, thus preventing the generation of overflow records; and providing retention of said primary and overflow blocks partitioned across multiple computers.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
May 7, 1999
July 2, 2002
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.