Patents by Inventor David B. Lomet

David B. Lomet 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).

  • Publication number: 20040255182
    Abstract: A technique is described for guaranteeing recovery in a computer system comprising of recovery contracts with a plurality of obligations for a message exchange between a first component and a second component. Three forms of contract are described, governing interactions between three types of components. Each contract is bilateral, i.e. between a first component and a second component. The first and second components have mutual agreement on when the contract will be released to facilitate log truncation, and independent and/or autonomous recovery.
    Type: Application
    Filed: July 8, 2004
    Publication date: December 16, 2004
    Applicant: Microsoft Corporation
    Inventors: David B. Lomet, Roger Barga, Gerhard Weikum
  • Publication number: 20040250157
    Abstract: Persistent components are provided across both process and server failures, without the application programmer needing take actions for component recoverability. Application interactions with a stateful component are transparently intercepted and stably logged to persistent storage. A “virtual” component isolates an application from component failures, permitting the mapping of a component to an arbitrary “physical” component. Component failures are detected and masked from the application. A virtual component is re-mapped to a new physical component, and the operations required to recreate a component and reinstall state up to the point of the last logged interaction is replayed from the log automatically.
    Type: Application
    Filed: June 29, 2004
    Publication date: December 9, 2004
    Applicant: Microsoft Corporation
    Inventors: Roger S. Barga, David B. Lomet
  • Patent number: 6820218
    Abstract: Persistent components are provided across both process and server failures, without the application programmer needing take actions for component recoverability. Application interactions with a stateful component are transparently intercepted and stably logged to persistent storage. A “virtual” component isolates an application from component failures, permitting the mapping of a component to an arbitrary “physical” component. Component failures are detected and masked from the application. A virtual component is re-mapped to a new physical component, and the operations required to recreate a component and reinstall state up to the point of the last logged interaction is replayed from the log automatically.
    Type: Grant
    Filed: September 4, 2001
    Date of Patent: November 16, 2004
    Assignee: Microsoft Corporation
    Inventors: Roger S. Barga, David B. Lomet
  • Patent number: 6801914
    Abstract: A client-server database system enables persistent client-server database sessions, without modification to a client-side application, a database system, or native client-side database drivers. The client is implemented with a driver manager to facilitate communication between the native database drivers and the database application. The driver manager wraps the native drivers, intercepting queries passed from the database application to the database drivers. The driver manager modifies the queries to form modified queries that direct the database server to render result sets produced from processing the queries persistent at the database server. Upon recovery following a server crash, the driver manager directs the drivers to reestablish a connection with the database server. The driver manager then finds the persistent result set table and, using logged data, returns to the same operation on the result set table just prior to the crash.
    Type: Grant
    Filed: April 22, 2002
    Date of Patent: October 5, 2004
    Assignee: Microsoft Corporation
    Inventors: Roger Barga, David B. Lomet
  • Patent number: 6578041
    Abstract: A database computer system and a high speed method for backup is provided for use when general logical operations are logged. Data is copied from the active stable database to a backup database while update activity continues. The stable database is divided into disjoint partitions, and backup progress is independently tracked in each partition. For each partition in which backup progress is to be tracked independently, two boundary values are maintained that separate objects into categories of pending, backed up, or in doubt. To permit backup to proceed with little synchronization between it and the cache manager, backup reports its progress only from time to time. Depending on system tuning considerations, the reporting can be made more or less precise by varying the granularity of the steps in which backup progress is reported.
    Type: Grant
    Filed: June 30, 2000
    Date of Patent: June 10, 2003
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 6490594
    Abstract: This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is periodically flushed to stable storage using an atomic procedure. The application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications. In addition, optimization techniques are described to make the read, write, and recovery phases more efficient.
    Type: Grant
    Filed: May 8, 2000
    Date of Patent: December 3, 2002
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Publication number: 20020161889
    Abstract: A method and system for increasing server cluster availability by requiring at a minimum only one node and a quorum replica set of replica members to form and operate a cluster. Replica members, independent from the nodes, maintain cluster operational data. A cluster operates when one node possesses a majority of replica members, which ensures that any new or surviving cluster includes consistent cluster operational data via at least one replica member from the immediately prior cluster. Arbitration provides exclusive ownership by one node of the replica members, including at cluster formation, and when the owning node fails. Arbitration uses a fast mutual exclusion algorithm and a reservation mechanism to challenge for and defend the exclusive reservation of each member. A quorum replica set algorithm brings members online and offline with data consistency, including updating unreconciled replica members, and ensures consistent read and update operations.
    Type: Application
    Filed: July 2, 2001
    Publication date: October 31, 2002
    Inventors: Rod Gamache, Michael T. Massa, Sunita Shrivastava, Gor V. Nishanov, David B. Lomet, Philip A. Bernstein, Rohit Jain
  • Publication number: 20020111949
    Abstract: A client-server database system enables persistent client-server database sessions, without modification to a client-side application, a database system, or native client-side database drivers. The client is implemented with a driver manager to facilitate communication between the native database drivers and the database application. The driver manager wraps the native drivers, intercepting queries passed from the database application to the database drivers. The driver manager modifies the queries to form modified queries that direct the database server to render result sets produced from processing the queries persistent at the database server. Upon recovery following a server crash, the driver manager directs the drivers to reestablish a connection with the database server. The driver manager then finds the persistent result set table and, using logged data, returns to the same operation on the result set table just prior to the crash.
    Type: Application
    Filed: April 22, 2002
    Publication date: August 15, 2002
    Inventors: Roger Barga, David B. Lomet
  • Patent number: 6182086
    Abstract: A client-server computer system has one or more clients connected to one or more servers. During request/reply interactions, a client-side application sends a request for services (e.g., read a file, return some information, update a database record, process data, etc.) to the server. A server-side application request program processes the request, prepares a reply to the request, and returns the reply to the client-side application. The server runs a resource manager to log operations and data pages in a manner that enables application and database recovery. Among other tasks, the server's resource manager creates a stable log file that can be used to help recover the client-side application in the event of a system crash. To capture the client-server interaction, the server's resource manager records the reply in the log buffer and commits the reply record to the stable log before the reply is sent back to the client. This results in only one forced logging event for each request/reply exchange.
    Type: Grant
    Filed: March 2, 1998
    Date of Patent: January 30, 2001
    Assignee: Microsoft Corporation
    Inventors: David B. Lomet, Gerhard Weikum
  • Patent number: 6151607
    Abstract: This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is periodically flushed to stable storage using an atomic procedure. The application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications. In addition, optimization techniques are described to make the read, write, and recovery phases more efficient.
    Type: Grant
    Filed: April 28, 1999
    Date of Patent: November 21, 2000
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 6067550
    Abstract: This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is periodically flushed to stable storage using an atomic procedure. The application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications. In addition, optimization techniques are described to make the read, write, and recovery phases more efficient.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: May 23, 2000
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 5946698
    Abstract: This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is flushed from time to time to stable storage using an atomic procedure. Applications are recovered by replaying the logged state transition operations, in the same manner that most database systems replay state transformation operations to recover database pages. This application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications.
    Type: Grant
    Filed: March 10, 1997
    Date of Patent: August 31, 1999
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 5933838
    Abstract: This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is periodically flushed to stable storage using an atomic procedure. The application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications. In addition, optimization techniques are described to make the read, write, and recovery phases more efficient.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: August 3, 1999
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 5870763
    Abstract: This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is flushed from time to time to stable storage using an atomic procedure. Applications are recovered by replaying the logged state transition operations, in the same manner that most database systems replay state transformation operations to recover database pages. This application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications.
    Type: Grant
    Filed: March 10, 1997
    Date of Patent: February 9, 1999
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 5806065
    Abstract: A data system has a data server and multiple clients. The data server organizes data according to a tree index structure, where memory pages used to store data are indexed by higher level index nodes in the tree structure. The index nodes are replicated and maintained locally at the clients. The data organization on the server is further characterized by use of indexed side links between data pages to provide side access traversal, such as a Pi-tree structure. During a search for a particular search space, a requesting client traverses its own index replica until reference is made to a data page at the server. If the request causes a data page split or otherwise changes the storage location of a particular search space, the server sends information back as part of the result message to the requesting client to update the tree index replica. However, no coherence messages are sent to other clients.
    Type: Grant
    Filed: May 6, 1996
    Date of Patent: September 8, 1998
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 5596754
    Abstract: Lock management in a distributed data sharing computer system in which resources are shared by servers having local lock managers and the computer system having a global lock manager. Lock modes are defined to govern the availability of resources to the servers, including defining at least one lock mode that conflicts with at least another of the lock modes without covering any locks associated with the lock modes. Locks indicative of a specific lock mode are assigned to the resources. Requests for access to the resources are administered by a local lock manager associated with the requesting server without exposing the lock modes associated with the locks on the resources to the global lock manager unless the requests for access relate to a resource that is not covered by a lock assigned by the global lock manager.
    Type: Grant
    Filed: October 27, 1995
    Date of Patent: January 21, 1997
    Assignee: Digital Equipment Corporation
    Inventor: David B. Lomet
  • Patent number: 5585793
    Abstract: In a computer system, input strings to be translated are composed of characters selected from a first alphabet. According to a predetermined criterion, a list of sub-strings is selected from the input strings to form entries in a dictionary. The entries of the dictionary are arranged according to a collating order of the first alphabet. An interval including the sub-strings of the input strings is partitioned into an all-inclusive and disjoint set of ranges. The sub-strings of the interval are arranged according to the collating order of the first alphabet, and each sub-strings of a particular range has a common prefix, the common prefix selected from the list of sub-strings. A unique encoding is assigned to each common prefix, the corresponding set of unique encodings composed of characters selected from a second alphabet. The input strings are parsed, one at the time, into a plurality of tokens, each token corresponding to a sub-string selected from the dictionary.
    Type: Grant
    Filed: June 10, 1994
    Date of Patent: December 17, 1996
    Assignee: Digital Equipment Corporation
    Inventors: Gennady Antoshenkov, David B. Lomet, James C. Murray
  • Patent number: 5524205
    Abstract: Each node in a data processing system contains at least one undo buffer and one least one redo buffer for insuring that any changes made to a section of a non-volatile storage medium, such as a disk, can be removed, if a transaction has not been committed, or can be recreated if the transaction has not been committed. The undo buffers each correspond to a different uncommitted transaction. The redo buffer contains the changes made to a copy of the section which is maintained in the memory.
    Type: Grant
    Filed: April 21, 1993
    Date of Patent: June 4, 1996
    Assignee: Oracle Corporation
    Inventors: David B. Lomet, Peter M. Spiro, Ashok M. Joshi, Ananth Raghavan, Tirumanjanam K. Rengarajan
  • Patent number: 5485607
    Abstract: The concurrency-control mechanisms in a database-management system achieves high concurrency by using a lock-mode set larger than that conventionally employed for multi-granularity locking. In a system of key-valued locking in which locks on key-value ranges are acquired separately from the locks on the key values with which they are associated, the IX lock mode conventionally acquired on a range by update, insert, and delete operations is replaced with three separate lock modes respectively associated with those operations and invoked by them for range locking. In key-valued-locking systems in which ranges are locked commonly with the key-values associated with them, the mode set is further expanded so that each mode represents a different combination of range and key-value locks.
    Type: Grant
    Filed: February 5, 1993
    Date of Patent: January 16, 1996
    Assignee: Digital Equipment Corporation
    Inventors: David B. Lomet, Russell J. Green
  • Patent number: 5485608
    Abstract: A data processing system maintains logs for system and media recovery. The logs contain state identifiers each uniquely identifying the state of a corresponding section of a storage medium, such as a disk. The state identifiers are assigned after changes have been made such that they can be determined from the information in the logs. One implementation involves assigning state identifiers in a known sequence, such as in a monotonically increasing sequence of integers beginning with zero.
    Type: Grant
    Filed: April 14, 1994
    Date of Patent: January 16, 1996
    Assignee: Oracle Corporation
    Inventors: David B. Lomet, Peter M. Spiro, Ashok M. Joshi, Ananth Raghavan, Tirumanjanam K. Rangarajan