Associative file processing method and apparatus
First Claim
1. A method for performing a search of data records comprising the steps of:
- specifying values of a skip length, key length and data length and providing a search argument corresponding in length to said key length;
providing a serial stream of data from a file having data records to be searched commencing from a predetermined location in said file; and
for each data record received from said file, performing a comparison operation by skipping an initial length of said data of said record from the beginning of said record with said initial length being determined by said skip length, and subsequently repetitively and alternatingly comparing said search argument with a key field of said data having a length specified by said key length and skipping a next succeeding data field of said data having a length specified by said data length.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for performing data base searches in which the host processor and main memory are free for other processing tasks between the time that the host processor requests the search until the search results are reported back to the host processor. To commence the search, an input/output controller communicates from the host processor to a record scan circuit values of a skip length, a key length and a data length. While data records are received serially from disk files, within each data record, a length of data equal to the specified skip length is initially skipped. Following this, a search argument is compared with a length of data specified by the key length value. This comparison operation is alternated with skipping of data specified by the data length value until the end of the record is reached or until a specified number of comparisons has taken place. The data record is stored as it is received from the files. If a successful comparison is found within a data record, either the entire data record or a specified portion thereof can be read back through the controller to the host processor.
138 Citations
29 Claims
-
1. A method for performing a search of data records comprising the steps of:
-
specifying values of a skip length, key length and data length and providing a search argument corresponding in length to said key length; providing a serial stream of data from a file having data records to be searched commencing from a predetermined location in said file; and for each data record received from said file, performing a comparison operation by skipping an initial length of said data of said record from the beginning of said record with said initial length being determined by said skip length, and subsequently repetitively and alternatingly comparing said search argument with a key field of said data having a length specified by said key length and skipping a next succeeding data field of said data having a length specified by said data length. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for performing a search of data records received from a file comprising the steps of:
-
(a) specifying values of a skip length, a key length, a data length and a key number, providing a search argument corresponding in length to said key length, and specifying a type of comparison operation to be performed; (b) providing a serial stream of data from said file commencing from a predetermined location, wherein data is supplied serially from said file for a plurality of successive records to be scanned; (c) counting bytes of data received from said file in each said data record until a number of bytes corresponding to said skip length has been reached; (d) serially comparing said search argument with data in said record while counting a number of bytes of data received from said file until the number of bytes received is equal said key length; (e) changing a count of a number of key fields scanned in said data record; (f) counting a number of bytes received from said file until a number of bytes received is equal to said data length; (g) repeating said steps (d), (e) and (f) until said count of said number of key fields reaches said key number or until an end of said record is reached; and (h) if at any time during said step (d) a successful comparison is found, providing a signal indicating that said successful comparison has occurred. - View Dependent Claims (14, 15, 16)
-
-
17. An apparatus for performing a search of data records comprising:
-
means for specifying values of a skip length, a key length, a data length and a search argument corresponding in length to said key length; means for providing a serial stream of data from a file storing data records to be searched commencing from a predetermined location in said file; means for skipping an initial length of said data of said record from the beginning of said record with said initial length being determined by said skip length; means for comparing said search argument with a key field of said data having a length specified by said key length; and means for skipping a next succeeding data field of said data having a length specified by said data length. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer system in which scanning of data records stored on disk files is performed outside of a host central processing unit, comprising:
-
a first central processing unit and a main memory coupled to said first central processing unit; an input/output controller connected to an input/output bus of said first central processing unit; at least one disk file and a control unit for operating said disk file coupled to an input/output bus of said input/output controller; and a record scan circuit coupled to said input/output bus of said input/output controller and coupled to said at least one disk file for receiving data serially from said disk file starting at a predetermined location where scanning of data records is to be commenced, said record scan circuit comprising; a key number register;
a data length register;
a key length register;
a skip length register;
a key storage memory, said key number register, said data length register, said key length register, said skip length register and said key storage memory being coupled to said input/output controller to be preset by said input/output controller through said input/output bus with values corresponding to a key number, data length, key length, skip length and a search argument, respectively;
a key number counter receiving a preset input from said key number register;
a key address counter receiving a preset input from said skip length register, an output of said key address counter addressing said key storage memory;
a data storage memory;
a data address counter having an output addressing said data storage memory;
first buffer means receiving bytes of data from said key storage memory;
shift register means receiving a preset input from said first buffer means on all bits thereof except for a lowest order bit, said shift register means receiving at said lowest order bit a serial stream of data from said data file;
second buffer means receiving data from said shift register means from all but a highest order bit thereof, an output of said second buffer means being coupled to a data input of said data storage means;
data comparing means for comparing said lowest order bit and said highest order bit of said shift register means; and
means for controlling said records scan circuit such that each data record received from said disk file is divided into an initial skip field and alternating key fields and data fields, the length of said skip field being determined by said skip length value stored in said skip length register, the length of said key fields being determined by said key length value stored in said key length register, the length of said data fields being determined by said data length value stored in said data length register, and the number of said key fields being determined by said key number value stored in said key number register, wherein, for each said data record received from said data file, said skip field is skipped, said search argument stored in said key storage memory is compared bit-by-bit with said key field by said data comparing means, and each said data field is skipped. - View Dependent Claims (28, 29)
-
Specification