This invention relates generally to data look-up or data mining techniques and is especially adapted for rapid data look-up or data mining techniques in large databases.
Database applications, in one current widely used embodiment, are executed on a single general-purpose processor (GPP) for accessing and retrieving information. This limits the number of database accesses per unit time based on the processing capacity of the GPP. These applications often utilize a variable length key to access information within the database. For example, the key may include any number or all of the following: telephone number; social security number; license plate number; employee serial number; name; address; medical record number; account number; or a virtual memory page on a DASD application. With current techniques, searching on all of these keys is time consuming and inefficient.
According to the present invention, a searchable database is provided for containing information in a conventional manner. At least one network processor having a plurality of packet processors is provided. The network processor or processors are programmed to independently search for a match of any one of the keys in a key set, which sets of keys are delivered to the network processor or processors. Each key set is independently identifiable and searchable. If a match to a key is found, then either the name associated therewith or a pointer to the location of the information in the database, which could be a routing table database, is returned. There are several searching techniques that can be used. For example, multiple network processors can be used, with each storing a different set of keys, and each set of keys can be searched concomitantly in the network processors. This can be accomplished by providing the entire set of keys to each network processor and letting each network processor select which key set it is programmed to handle; or a separate classifier can be used to select which key set to send to which network processor. If a single network processor is used, the key sets can be searched in a pipeline configuration or, if desired, since a network processor typically contains several packet processors, these packet processors can independently search each key set concomitantly. In all of the embodiments, however, the inherent speed of a network processor is utilized in a data search or data mining operation rather than in a communications network.
Before describing the invention in detail, it is believed that an overview of the principles of the invention would be helpful. The invention makes use of the fact that the network processors are very rapid, and can do searches on different fields concomitantly, and that multiple keys can be used to access a given record in a database, and that these keys can be segmented in a search request for identification of data corresponding thereto in a database. For example, the data in a database could relate to a particular person, and that information can be accessed by any one of a number of keys, such as social security number, telephone number, street address, license number, etc. If a third party, authorized to access the database, has some of these keys and wishes to access the information in the database relating to that person, those keys can be keyed into the proper key field for database access, and have each of the individual keys searched to see if there is a match in the database. These searches of the various keys can be done concomitantly and any match quickly returned.
Referring now to
The information flow is as shown in
The CPU 12 creates one or more look-up keys along with a pointer to the record storage location of that data in the main storage 14, and delivers these to the appropriate key table or tables; or the CPU 12 deletes any keys and associated pointers from the appropriate key table or tables. The NP 10 retrieves the pointer from the key table 16 and confirms the address in the main storage 14. The NP 10 then confirms to the CPU that the entry has been completed (or failed if such is the case). The CPU 12 may, if desired, confirm to the user the completion of the “add” or “delete” request. This is all set forth in the interaction shown in
Alternatively, in the case of large key tables, this situation can be handled as shown in
In the case of accessing a very large key table, the key table 16 is broken into sections, and the sections loaded incrementally and searched until a match is found. (This last option assumes that the time required to load a new section of the key table 16 is small compared to the look-up/search time.)
The switch, in this application, first provides a communication mechanism between the CP 12a and each of the NP's 10a, 10b, . . . 10n, and also allows the NP's 10a, 10b, . . . 10n to communicate with each other; for example, to pass on search results when multiple NP's 10 are used in a pipeline organization.
Number | Name | Date | Kind |
---|---|---|---|
5509131 | Smith et al. | Apr 1996 | A |
5796944 | Hill et al. | Aug 1998 | A |
5835720 | Nelson et al. | Nov 1998 | A |
5941969 | Ram et al. | Aug 1999 | A |
5956336 | Loschke et al. | Sep 1999 | A |
6081522 | Hendel et al. | Jun 2000 | A |
6081883 | Popelka et al. | Jun 2000 | A |
6161144 | Michels et al. | Dec 2000 | A |
6226710 | Melchior | May 2001 | B1 |
6374326 | Kansal et al. | Apr 2002 | B1 |
6460120 | Bass et al. | Oct 2002 | B1 |
6744652 | Srinivasan et al. | Jun 2004 | B2 |
Number | Date | Country | |
---|---|---|---|
20040139062 A1 | Jul 2004 | US |