Patents by Inventor Gary C. Ngai

Gary C. Ngai has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7526508
    Abstract: An intelligent database infrastructure wherein the management of all database components is performed by and within the database itself by integrating management of various components with a central management control. Each individual database component, as well as the central management control, is self-managing. A central management control module integrates and interacts with the various database components. The database is configured to automatically tune to varying workloads and configurations, correct or alert about bad conditions, and advise on ways to improve overall system performance.
    Type: Grant
    Filed: September 3, 2004
    Date of Patent: April 28, 2009
    Assignee: Oracle International Corporation
    Inventors: Leng Leng Tan, Gianfranco Putzolu, Richard Sarwal, Alex Tsukerman, Gary C. Ngai, Graham Stephen Wood, Karl Dias, Mark Ramacher, Benoit Dageville, Mohamed Ziauddin, Tirthankar Lahiri, Sujatha Muthulingam, Vishwanath Karra, Francisco Sanchez, Hsiao-Te Su, Wanli Yang, Vasudha Krishnaswamy, Sushil Kumar
  • Patent number: 7415466
    Abstract: A method and system for recovering after a crash of an instance in a database is disclosed. According to the method, a plurality of dead transactions associated with the crashed instance are identified. Statistical data is compiled from the identified plurality of dead transactions. Based on the statistical data, it is determined that a particular number of recovery servers should be used to recover the plurality of dead transactions. The plurality of dead transactions are then recovered using the particular number of recovery servers. The particular number of recovery servers can execute in parallel to recover the plurality of dead transactions.
    Type: Grant
    Filed: March 18, 2004
    Date of Patent: August 19, 2008
    Assignee: Oracle International Corporation
    Inventors: Amit Ganesh, Gary C. Ngai
  • Patent number: 7237147
    Abstract: Described is an approach for recovering the failure of a transaction. According to the approach, a first change and a third change is made to a first resource and a second change is made to a second resource. The second change was made after the first but before the third. However, to recover the failure of the transaction, a recovery record for the third change is applied before the recovery record for the second change. Also described is an approach involving establishing links that link together a set of undo records that contain changes made to the particular resource. Also described is an approach for applying two or more undo records in parallel.
    Type: Grant
    Filed: August 27, 2003
    Date of Patent: June 26, 2007
    Assignee: Oracle International Corporation
    Inventors: Amit Ganesh, Gary C. Ngai, Dieter Gawlick
  • Patent number: 7031987
    Abstract: Provided herein is a mechanism that allows a given database system to access data blocks from another database system, where data blocks from the given database system and data blocks from the other database system have different sizes. According to an aspect of the present invention, a tablespace in the other database system contained the data blocks. The tablespace is detached from the other database system and integrated into the given database, which is capable of processing data stored in data blocks of a different sizes.
    Type: Grant
    Filed: May 30, 2001
    Date of Patent: April 18, 2006
    Assignee: Oracle International Corporation
    Inventors: Sreedhar Mukkamalla, Arvind Nithrakashyap, Tirthankar Lahiri, Alok Pareek, Juan R. Loaiza, J. William Lee, Gary C. Ngai
  • Patent number: 6961729
    Abstract: A mechanism is described for constructing work granules, where the work granules are constructed independently of whether two or more of the work granules are assigned to operate on a logical storage unit that contains a portion of the same row. A database system maintains transaction control data for data blocks in a manner that avoids self-deadlocks for slaves that follow a row collision protocol. A row collision protocol is a set of rules or steps that slaves follow to ensure that only one subtransaction in a distributed transaction updates a spanning row. Thus, for a particular spanning row, a single subtransaction modifies all the row pieces of the spanning row in any data block containing any row pieces of the spanning row. Consequently, a given data block may be affected by multiple subtransactions in a distributed transaction, one subtransaction affecting a row piece in the data block, another subtransaction affecting other rows in the data block.
    Type: Grant
    Filed: January 25, 2001
    Date of Patent: November 1, 2005
    Assignee: Oracle International Corporation
    Inventors: Rosanne Park Toohey, Jonathan D. Klein, Amit Ganesh, Gary C. Ngai, Dmitry Mikhailovich Potapov
  • Publication number: 20040177099
    Abstract: A method and system for recovering after a crash of an instance in a database is disclosed. According to the method, a plurality of dead transactions associated with the crashed instance are identified. Statistical data is compiled from the identified plurality of dead transactions. Based on the statistical data, it is determined that a particular number of recovery servers should be used to recover the plurality of dead transactions. The plurality of dead transactions are then recovered using the particular number of recovery servers. The particular number of recovery servers can execute in parallel to recover the plurality of dead transactions.
    Type: Application
    Filed: March 18, 2004
    Publication date: September 9, 2004
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Amit Ganesh, Gary C. Ngai
  • Publication number: 20040039962
    Abstract: Described is an approach for recovering the failure of a transaction. According to the approach, a first change and a third change is made to a first resource and a second change is made to a second resource. The second change was made after the first but before the third. However, to recover the failure of the transaction, a recovery record for the third change is applied before the recovery record for the second change. Also described is an approach involving establishing links that link together a set of undo records that contain changes made to the particular resource. Also described is an approach for applying two or more undo records in parallel.
    Type: Application
    Filed: August 27, 2003
    Publication date: February 26, 2004
    Inventors: Amit Ganesh, Gary C. Ngai, Dieter Gawlick
  • Patent number: 6684223
    Abstract: A mechanism for performing a two-phase commit is provided. The mechanisms perform a two-phase commit in a manner that reduces the number of messages transmitted between a coordinating database system and the participating database systems, and the number of log flushes performed to complete a two-phase commit. To determine whether a particular participating database system is prepared to commit, the coordinating database system first examines external log tracking data that resides on the coordinating database system. External log tracking data, which indicates various states of logs on other database systems, is used to determine whether or not a particular participating database system is prepared to commit.
    Type: Grant
    Filed: April 18, 2002
    Date of Patent: January 27, 2004
    Assignee: Oracle International Corporation
    Inventors: Amit Ganesh, Gary C. Ngai
  • Patent number: 6647510
    Abstract: A method and apparatus for removing changes made by a dead transaction is provided. According to the method, a first change is performed by the dead transaction prior to a second change. The first change made by the dead transaction is then undone prior to undoing the second change made by the dead transaction. According to another aspect of the invention, a method and apparatus for applying changes in redo records to make a particular resource reflect changes made to the particular resource in volatile memory before a failure is provided. The method includes establishing links that link together a set of redo records that contain changes made to the particular resource. The links are then followed to apply the changes contained in the set of redo records to cause the particular resource to reflect the changes made to the particular resource in volatile memory before the failure.
    Type: Grant
    Filed: December 22, 2000
    Date of Patent: November 11, 2003
    Assignee: Oracle International Corporation
    Inventors: Amit Ganesh, Gary C. Ngai, Dieter Gawlick
  • Patent number: 6631374
    Abstract: A system and method for selectively viewing temporal row data in a consistent read-implemented database are described. Committed transactions effecting row data changes to a database are tracked and a stored system change number is assigned upon each committed transaction. Rollback segments for uncommitted transactions are stored. Each rollback segment stores a transaction identifier and transaction table entries containing ordered row data values reflecting the database changes. The database is transitioned into successive consistent versions responsive to each committed transaction at a journaled commit time. The transaction table entries are maintained for a user-definable retention period following the commit time of each committed transaction. A queried selection of row data values from the database is performed as of a query time occurring prior to the commit time of at least one committed transaction.
    Type: Grant
    Filed: September 29, 2000
    Date of Patent: October 7, 2003
    Assignee: Oracle Corp.
    Inventors: Jonathan D. Klein, Amit Ganesh, Juan R. Loaiza, Gary C. Ngai
  • Patent number: 6510421
    Abstract: A mechanism for performing a two-phase commit is provided. The mechanisms perform a two-phase commit in a manner that reduces the number of messages transmitted between a coordinating database system and the participating database systems, and the number of log flushes performed to complete a two-phase commit. To determine whether a particular participating database system is prepared to commit, the coordinating database system first examines external log tracking data that resides on the coordinating database system. External log tracking data, which indicates various states of logs on other database systems, is used to determine whether or not a particular participating database system is prepared to commit.
    Type: Grant
    Filed: December 29, 1998
    Date of Patent: January 21, 2003
    Assignee: Oracle Corporation
    Inventors: Amit Ganesh, Gary C. Ngai
  • Patent number: 6493726
    Abstract: A method and apparatus for performing a two-phase commit of a transaction is provided. The mechanisms described herein perform a two-phase commit in a manner that reduces the number of messages transmitted between a coordinating database system and the participating database systems, and the number of log flushes performed to complete a two-phase commit. Once the coordinating database system determines that all participating database systems participating in a database transaction are prepared to commit, the coordinating database system commits the transaction on the coordinating database system. Forget requests are then transmitted to each of the participating database systems. Rather than waiting to receive a forget acknowledgment and performing other forget processing operations, the coordinating database system delegates this work to a forget collector.
    Type: Grant
    Filed: December 29, 1998
    Date of Patent: December 10, 2002
    Assignee: Oracle Corporation
    Inventors: Amit Ganesh, Gary C. Ngai
  • Publication number: 20020143733
    Abstract: Provided herein is a mechanism that allows a given database system to access data blocks from another database system, where data blocks from the given database system and data blocks from the other database system have different sizes. According to an aspect of the present invention, a tablespace in the other database system contained the data blocks. The tablespace is detached from the other database system and integrated into the given database, which is capable of processing data stored in data blocks of a different sizes.
    Type: Application
    Filed: May 30, 2001
    Publication date: October 3, 2002
    Inventors: Sreedhar Mukkamalla, Arvind Nithrakashyap, Tirthankar Lahiri, Alok Pareek, Juan R. Loaiza, J. William Lee, Gary C. Ngai
  • Patent number: 6341340
    Abstract: A database or some portion thereof is partitioned into ownership groups. Each ownership group is assigned one or more database servers as owners of the ownership group. The database servers that are assigned as owners of an ownership group are treated as the owners of all data items that belong to the ownership group. That is, they are allowed to directly access the data items within the ownership group, while other database servers are not allowed to directly access those data items. A mechanism is provided for transitioning ownership of a data item. Ownership is transferred by disabling access to the data item, waiting for all transactions that have made changes to the data item to either commit or abort, changing data that indicates ownership of the data item from a first owner to a second owner, and enabling access to the data item.
    Type: Grant
    Filed: December 28, 1998
    Date of Patent: January 22, 2002
    Assignee: Oracle Corporation
    Inventors: Alex Tsukerman, Gary C. Ngai, Gianfranco Putzolu, J. William Lee
  • Patent number: 6295610
    Abstract: A method and apparatus for removing changes made by a particular transaction is provided. According to one aspect, two or more sets of changes that were made by a particular transaction that can be removed in parallel are identified. A corresponding recovery process is assigned to each of the two or more sets of changes. Using the corresponding recovery process, the changes identified in each of the two or more sets of changes are undone in parallel.
    Type: Grant
    Filed: September 17, 1998
    Date of Patent: September 25, 2001
    Assignee: Oracle Corporation
    Inventors: Amit Ganesh, Gary C. Ngai
  • Patent number: 6192377
    Abstract: A method and an apparatus for determining whether a transaction can use a version of a data item is provided. Transaction summary data is generated that is associated with one or more transactions that have updated a version of the data item. The transaction summary data specifies both a data buffer refresh time and a data buffer commit time. The data buffer refresh time is indicative of the latest time at which the version of data is guaranteed to be current. The data buffer commit time is indicative of the commit time of a most recently committed transaction from the one or more transactions that committed after updating the version of the data item. A determination is made, based upon the transaction summary data and a snapshot time used by the first transaction, whether the version of the data item is to be provided to the first transaction. The data buffer commit time is updated to reflect the commit time of other transactions that commit after updating the version of the data item.
    Type: Grant
    Filed: May 13, 1998
    Date of Patent: February 20, 2001
    Assignee: Oracle Corporation
    Inventors: Amit Ganesh, Gary C. Ngai
  • Patent number: 6185577
    Abstract: A method and apparatus for incremental undo is provided. A process, executing in a database system, establishes a rollback entry in an undo log file as a current rollback entry. The rollback entry, which was selected from a set of rollback entries contained in an undo record, contains data that indicates a change made by a transaction to a data block in the database system. The process first determines whether the rollback entry has been applied by testing a status flag. In one embodiment, the status flag is a bit in a bit vector in the undo block. If the rollback entry has been applied to the database, then the rollback entry is not re-applied; rather, a next rollback entry is established from the set of rollback entries and the process repeats. If the rollback entry has not been applied, then undo information from the rollback entry is retrieved from the undo block and change is generated.
    Type: Grant
    Filed: June 23, 1998
    Date of Patent: February 6, 2001
    Assignee: Oracle Corporation
    Inventors: Bhagat Nainani, Gary C. Ngai, Wei Huang, Jonathan D. Klein, Roger J. Bamford
  • Patent number: 6182241
    Abstract: An approach for recovering after premature termination of a plurality of transactions involves: A) selecting a previously unselected transaction from the plurality of transactions; B) processing the selected transaction by undoing the lesser of a predetermined number of changes made by the selected transaction and all changes made by the selected transaction; and C) repeating steps A) and B) until all of the plurality of transactions have been processed. Another aspect of the approach involves: A) selecting a previously unselected transaction from the plurality of transactions, wherein the selected transaction is the previously unselected transaction from the plurality of transactions that made the fewest number of changes in the database; B) processing the selected transaction by undoing one or more changes in the database made by the selected transaction; and C) repeating steps A) and B) until all transactions from the plurality of transactions have been processed.
    Type: Grant
    Filed: August 27, 1998
    Date of Patent: January 30, 2001
    Assignee: Oracle Corporation
    Inventors: Gary C. Ngai, Hasan Rizvi, Leng Leng Tan
  • Patent number: 5850507
    Abstract: A method and system for recovering after a crash of an instance in a database is disclosed. According to the method, transaction information corresponding to all the transactions that existed in the failed instance is inspected. These transactions that were active at the time the instance crashed are marked as "dead." The database is made available to users after updating the transaction information and before undoing all of the changes or updates performed by dead transactions. The changes made by the dead transactions may be undone by new transactions on a on-demand basis after the database is made available. Specifically, when a new transaction is waiting to obtain a lock on a resource held by another transaction, the new transaction determines whether the owner of the lock is one of the dead transactions. If so, the new transaction rolls back some or all of the changes made by the dead transaction.
    Type: Grant
    Filed: March 19, 1996
    Date of Patent: December 15, 1998
    Assignee: Oracle Corporation
    Inventors: Gary C. Ngai, Hasan Rizvi, Leng Leng Tan
  • Patent number: 5806076
    Abstract: A method and an apparatus for tracking of the dependencies between transactions is provided. Every time a data item is updated, a record is made of the transaction that updated the data item. Before another transaction locks a data item previously locked by the transaction, the entry is updated to indicate that the transaction committed and the commit time of the transaction. These entries are contained in a list head that is maintained on the same block as the data item, and a list tail that is stored separate from the data block that contains the data item. A depends-on time is maintained for each transaction. Whenever the transaction updates a data item, the depends-on time is set to the greater of the current depends-on time and the commit time of the most recently committed transaction that updated the version of the data item.
    Type: Grant
    Filed: October 29, 1996
    Date of Patent: September 8, 1998
    Assignee: Oracle Corporation
    Inventors: Gary C. Ngai, Roger J. Bamford, Garret Swart