Persisting external index data in a database

التفاصيل البيبلوغرافية
العنوان: Persisting external index data in a database
Patent Number: 8,239,389
تاريخ النشر: August 07, 2012
Appl. No: 12/240343
Application Filed: September 29, 2008
مستخلص: Systems, methods, and computer program products to persist external index data in a database are disclosed. In an embodiment, a method includes maintaining a database including a first data table that is configured to store data in a database format and a second data table that is configured to store index data. The index data represents an index of a first portion of the first data table, and the index maintained externally to the database by an index manager. The method also includes generating a data update representing a modification to the first data table and communicating the data update to the index manager. The method further includes receiving index update data from the index manager representing a modification to the index as a result of the data update and applying the index update data to the second data table.
Inventors: Zagelow, Margaret (Morgan Hill, CA, US); Cotner, Curt L. (Gilroy, CA, US); McPherson, Jr., John A. (San Jose, CA, US); Kempfert, Claus (Altdorf, DE)
Assignees: International Business Machines Corporation (Armonk, NY, US)
Claim: 1. A method comprising: maintaining information at a database, wherein the database includes: a first data table configured to store data in a database format, the first data table having at least a first portion, a staging table, and an index data table configured to store index data, wherein the index data is based on an index of the first portion of the first data table, the index maintained externally to the database by an index manager; generating, at a database manager of the database, a data update in response to a transaction performed on the first data table, the data update corresponding to the transaction; storing, at the staging table, the data update generated in response to the transaction being performed; communicating the data update from the staging table to the index manager in response to a triggering event, wherein the index manager modifies the index based on the data update; receiving index update data from the index manager after the index manager modifies the index, wherein the index update data represents a modification to the index as a result of the data update; maintaining the data update at the staging table at least until the index update data resulting from the data update is received from the index manager; and updating the index data table based on the index update data received from the index manager.
Claim: 2. The method of claim 1 , wherein the database format includes serialized binary data.
Claim: 3. The method of claim 1 , wherein the first portion of the first data table includes text data.
Claim: 4. The method of claim 1 , wherein the index is maintained by the index manager in an index format that is different from the database format.
Claim: 5. The method of claim 1 , wherein the index update data is received in the database format from the index manager.
Claim: 6. The method of claim 1 , wherein the index data table includes a master copy of the index data, and further comprising communicating the master copy of the index data to the index manager to instruct the index manager to create the index from the master copy of the index data.
Claim: 7. The method of claim 1 , wherein an instruction to refresh the index is issued by the database manager.
Claim: 8. A system comprising: a processor and a memory accessible to the processor, wherein the memory is configured to store data and program instructions, and wherein the processor is configured to: maintain a database that includes a plurality of data tables, the plurality of data tables including: a first data table having a first data portion that is configured to store first text data; an index data table configured to store master index data including first index data associated with the first data portion of the first data table, wherein the first index data is received from a first index manager via a network interface, the first index manager maintaining a first index external to the database; and a staging table associated with the first data table and configured to store one or more data updates, wherein each data update of the one or more data updates is generated in response to and corresponds to a modification to the first data table; communicate the first index data to the first index manager via the network interface to instruct the first index manager to create the first index from the first index data; generate a data update corresponding to a particular modification to the first data table resulting from a transaction that is processed; store the generated data update in the staging table; communicate the data update to the first index manager from the staging table upon an occurrence of a triggering event; remove the data update from the staging table after receiving index update data from the first index manager; and apply the index update data as an index update to the index data table to generate updated master index data.
Claim: 9. The system of claim 8 , wherein the processor is further configured to: maintain a second data portion stored in the first data table that includes second text data; and maintain second index data in the master index data, wherein the second index data is received from a second index manager via the network interface, wherein the second index manager maintains a second index external to the database.
Claim: 10. The system of claim 9 , wherein the processor is further configured to communicate the second index data to the second index manager to instruct the second index manager to create the second index from the second index data.
Claim: 11. The system of claim 8 , wherein the processor is further configured to: process the transaction resulting in the particular modification to the first data table; receive the index update data from the first index manager in response to the data update.
Claim: 12. The system of claim 11 , wherein: the plurality of data tables in the database are stored in a database format; and the first index is stored in an index format at the first index manager.
Claim: 13. The system of claim 12 , wherein the index update data is received from the first index manager in the database format.
Claim: 14. The system of claim 11 , wherein the triggering event includes a synchronous timed update cycle.
Claim: 15. A computer program product for maintaining external index data in a database, comprising a computer-readable storage medium having computer-executable program instructions embodied therewith, the computer-executable program instructions comprising: first program instructions to maintain an index of text data of a table column, wherein the text data of the table column is maintained at a database that is remote from the index; second program instructions to receive a text update from a staging table of the database, the text update generated based on a modification to the table column of the database, and wherein the text update is stored at the staging table and sent from the staging table in response to a triggering event; third program instructions to update the index based on the text update to the text data of the table column; and fourth program instructions to send index update data in a serialized binary format from an index manager to a master index table in the database in response to updating the index, the index update data causing the master index table to reflect the modification to the table column, and wherein the data update is maintained at the staging table at least until the index update data is received at the database.
Claim: 16. The computer program product of claim 15 , wherein the fourth program instructions further include instructions to convert an index structure of the index and index data of the index from an index format to the serialized binary format, wherein the index update data includes the converted index structure and the converted index data.
Claim: 17. The computer program product of claim 15 , further comprising fifth program instructions to: receive master index data at the index manager from the database; and generate the index based at least in part on the master index data.
Claim: 18. A computational device for use in directing a computing device to maintain a master copy of index data at a database that is indexed by an external index server, the computational component comprising: a processor; and a memory storing encoded computing device instructions electronically accessible to the processor, wherein the encoded computer device instructions, when executed by the processor, cause the processor to: maintain a data table in a database in a database format; maintain an index table in the database, the index table including content of an index to the data table, wherein the index is maintained in a format that is different than the database format by an index manager that is external to the database via a network; maintain a staging table in the database, the staging table associated with the data table; receive a transaction to modify the data table; store a data update in the staging table in response to processing the transaction, wherein the data update is generated in response to a modification to the data table based on the processed transaction; send a first communication including the data update from the staging table to the index manager in response to a triggering event; receive index update data based on the data update from the index manager; maintain the data update at the staging table at least until the index update data based on the data update is received from the index manager; and apply the index update data to the index table.
Claim: 19. The computational device of claim 18 , wherein the content of the index stored in the index table includes a master copy of the index, and wherein the index manager is configured to generate the index from the content of the index table.
Claim: 20. The computational device claim 19 , wherein the encoded computing device instructions, when executed by the processor, further causes the processor to: determine whether the data update has been stored in the staging table for a threshold amount of time; and in response to a determination that the data u a date has been stored in the staging table for the threshold amount of time, send a second communication including the data update to the index manager.
Claim: 21. The computational device of claim 19 , wherein the encoded computing device instructions, when executed by the processor, further causes the processor to receive an error message from the index manager based on communicating the data update to the index manager.
Current U.S. Class: 707/741
Patent References Cited: 5832484 November 1998 Sankaran et al.
6182090 January 2001 Peairs
6691123 February 2004 Gulliksen
7028022 April 2006 Lightstone et al.
7133868 November 2006 Ruest et al.
7308456 December 2007 Friske et al.
7756873 July 2010 Gould et al.
2003/0105858 June 2003 Hogg et al.
2004/0049537 March 2004 Titmuss
2004/0230571 November 2004 Robertson
2006/0149767 July 2006 Kindsvogel et al.
2006/0178895 August 2006 Djellal et al.
2007/0192372 August 2007 Bestgen et al.
2007/0206585 September 2007 Lee
2007/0283291 December 2007 Morris
2008/0059495 March 2008 Kiessig et al.
Other References: Deelma et al., A Metadata Catalog Service for Data Intensive Applications, The Globus Project, www.globus.org, (33 pgs). cited by other
Primary Examiner: Pannala, Sathyanarayan
Attorney, Agent or Firm: Toler Law Group
رقم الانضمام: edspgr.08239389
قاعدة البيانات: USPTO Patent Grants