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).

  • Patent number: 7984155
    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 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: Grant
    Filed: June 14, 2010
    Date of Patent: July 19, 2011
    Assignee: Microsoft Corporation
    Inventors: Michael T. Massa, David A. Dion, Raj Das, Rushabh Doshi, David B. Lomet, Gor V. Nishanov, Philip A. Bernstein, Rod N. Gamache, Rohit N. Jain, Sunita V. Nishanov
  • Patent number: 7904427
    Abstract: Systems and methods for facilitating more efficient timestamping in a lazy timestamping transaction time database environment are described herein. A recovery log component can store timestamp information of a transaction in a commit record of the transaction, wherein the commit record of the transaction is included in a recovery log. A volatile reference count component can update reference count data of the transaction in a volatile timestamp table to reflect a number of records of the transaction that do not persistently include timestamp information. Further, a checkpoint component can update timestamp information for a batch of transactions, wherein the timestamp information is updated in a record of the persistent timestamp table to ensure that the timestamp information persists in the record of the persistent timestamp table before the commit record of the transaction that contains the transaction's timestamp information is deleted from the recovery log.
    Type: Grant
    Filed: January 11, 2008
    Date of Patent: March 8, 2011
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Publication number: 20100250750
    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 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: June 14, 2010
    Publication date: September 30, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: MICHAEL T. MASSA, DAVID A. DION, RAJSEKHAR DAS, RUSHABH A. DOSHI, DAVID B. LOMET, GOR V. NISHANOV, PHILIP A. BERNSTEIN, ROD N. GAMACHE, ROHIT JAIN, SUNITA SHRIVASTAVA
  • Patent number: 7774469
    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 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: Grant
    Filed: September 12, 2005
    Date of Patent: August 10, 2010
    Inventors: Michael T. Massa, David A. Dion, Rajsekhar Das, Rushabh Doshi, David B. Lomet, Gor V. Nishanov, Philip A. Bernstein, Rod N. Gamache, Rohit Jain, Sunita V. Shrivastava
  • Patent number: 7747589
    Abstract: A system and method that facilitates and effectuates transaction time indexing with version compression. The system includes an indexing component that partitions a database page containing multiple temporally related versions of a record into a historical page and a current page based at least in part on a time or a key. The system includes a compression component that constructs backward deltas for compressing earlier (historical) versions of records that are stored on the page. Because there is always an uncompressed version for each record on each page, decompression can be done based solely on information stored on the record's page.
    Type: Grant
    Filed: March 12, 2007
    Date of Patent: June 29, 2010
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 7720820
    Abstract: Systems and methods that create persistence for an execution state via employing a logless component with persistent stateful functionality. The logless component is introduced as part of a runtime service that supplies transparent state persistence and automatic recovery for component based applications. Such logless component can avoid logging at a middle tier, and exploit logging that is already performed at a client side and/or various end point servers. The execution state can be re-created entirely via replay of the component execution, without the need to replicate the execution state or save the component's interactions in the middle tier.
    Type: Grant
    Filed: July 12, 2005
    Date of Patent: May 18, 2010
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Publication number: 20090182783
    Abstract: Systems and methods for facilitating more efficient timestamping in a lazy timestamping transaction time database environment are described herein. A recovery log component can store timestamp information of a transaction in a commit record of the transaction, wherein the commit record of the transaction is included in a recovery log. A volatile reference count component can update reference count data of the transaction in a volatile timestamp table to reflect a number of records of the transaction that do not persistently include timestamp information. Further, a checkpoint component can update timestamp information for a batch of transactions, wherein the timestamp information is updated in a record of the persistent timestamp table to ensure that the timestamp information persists in the record of the persistent timestamp table before the commit record of the transaction that contains the transaction's timestamp information is deleted from the recovery log.
    Type: Application
    Filed: January 11, 2008
    Publication date: July 16, 2009
    Applicant: MICROSOFT CORPORATION
    Inventor: David B. Lomet
  • Patent number: 7509351
    Abstract: Logical logging to extend recovery is described. In one aspect, a dependency cycle between at least two objects is detected. The dependency cycle indicates that the two objects should be flushed simultaneously from a volatile main memory to a non-volatile memory to preserve those objects in the event of a system crash. One of the two objects is written to a stable of to break the dependency cycle. The other of the two objects is flushed to the non-volatile memory. The object that has been written to the stable log is then flushed to the stable log to the non-volatile memory.
    Type: Grant
    Filed: October 7, 2005
    Date of Patent: March 24, 2009
    Assignee: Microsoft Corporation
    Inventors: David B. Lomet, Mark R. Tuttle
  • Patent number: 7478277
    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: Grant
    Filed: July 8, 2004
    Date of Patent: January 13, 2009
    Assignee: Microsoft Corporation
    Inventors: David B. Lomet, Roger Barga, Gerhard Weikum
  • Publication number: 20080307012
    Abstract: A system and method that is designed to effectuate and facilitate time and key splitting of versioned database pages in a temporal database. The system includes a component that examines the page when it is full. The component can thereafter selectively undertake a time split or key split of the versioned database page, wherein the key split can be delayed until a single version current utilization of the versioned database page and a single version utilization of a oldest version on the versioned database page exceeds a threshold utilization at which point an exclusive key split can be performed.
    Type: Application
    Filed: June 5, 2007
    Publication date: December 11, 2008
    Applicant: MICROSOFT CORPORATION
    Inventor: David B. Lomet
  • Patent number: 7461292
    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: October 29, 2004
    Date of Patent: December 2, 2008
    Assignee: Microsoft Corporation
    Inventors: Roger S. Barga, David B. Lomet
  • Patent number: 7430559
    Abstract: A system and methodology that facilitate persistence for an execution state is provided. The system and methodology employ generalized “idempotent” request(s) that have the property they only execute a request once, and always return the result of that first execution should the request be repeated so as to ensure exactly once execution. A calling middle tier component can exploit these procedures so that it can engage in exploratory reads (which are not idempotent) yet still be able to have their state recovered via replay based on the log at the client and the results retained by the generalized idempotent procedures provided by back end services. The system and methodology can be employed to facilitate successful replay of logless persistent component(s), (e.g., components that do not themselves log any information).
    Type: Grant
    Filed: September 21, 2005
    Date of Patent: September 30, 2008
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Publication number: 20080228795
    Abstract: A system and method that facilitates and effectuates transaction time indexing with version compression. The system includes an indexing component that partitions a database page containing multiple temporally related versions of a record into a historical page and a current page based at least in part on a time or a key. The system includes a compression component that constructs backward deltas for compressing earlier (historical) versions of records that are stored on the page. Because there is always an uncompressed version for each record on each page, decompression can be done based solely on information stored on the record's page.
    Type: Application
    Filed: March 12, 2007
    Publication date: September 18, 2008
    Applicant: MICROSOFT CORPORATION
    Inventor: David B. Lomet
  • Patent number: 7418462
    Abstract: A system, method and computer-readable medium for optimizing recovery logging is provided. A calling component stably logs a message from a called component only when sending a second message or sending a second message after a log force that writes the return message from the first message to the stable log. The called component stably logs its return message before the return message is sent.
    Type: Grant
    Filed: November 24, 2003
    Date of Patent: August 26, 2008
    Assignee: Microsoft Corporation
    Inventors: David B. Lomet, Roger S. Barga
  • Patent number: 7386557
    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: August 18, 2004
    Date of Patent: June 10, 2008
    Assignee: Microsoft Corporation
    Inventors: Roger Barga, David B. Lomet
  • Patent number: 7383276
    Abstract: A data structure, added to a modified form of the Blink-tree data structure, tracks delete states for nodes. The index delete state (DX) indicates whether it is safe to directly access an index node without re-traversing the B-tree. The DX state is maintained globally, outside of the tree structure. The data delete state (DD) indicates whether it is safe to post an index term for a new leaf node. A DD state is maintained in each level 1 node for its leaf nodes. Delete states indicate whether a specific node has not been deleted, or whether it may have been deleted. Delete states are used to remove the necessity for atomic node splits and chains of latches for deletes, while not requiring retraversal. This property of not requiring a retraversal is exploited to simplify the tree modification operations.
    Type: Grant
    Filed: January 30, 2004
    Date of Patent: June 3, 2008
    Assignee: Microsoft Corporation
    Inventor: David B. Lomet
  • Patent number: 7093162
    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: June 29, 2004
    Date of Patent: August 15, 2006
    Assignee: Microsoft Corporation
    Inventors: Roger S. Barga, David B. Lomet
  • Patent number: 7047441
    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: Grant
    Filed: September 4, 2001
    Date of Patent: May 16, 2006
    Assignee: Microsoft Corporation
    Inventors: David B. Lomet, Roger Barga, Gerhard Weikum
  • Patent number: 6978279
    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 that 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. Atomic flush sets, whether generated from cyclic flush dependencies or otherwise, can be broken apart.
    Type: Grant
    Filed: March 15, 1999
    Date of Patent: December 20, 2005
    Assignee: Microsoft Corporation
    Inventors: David B. Lomet, Mark R. Tuttle
  • Patent number: 6938084
    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: Grant
    Filed: July 2, 2001
    Date of Patent: August 30, 2005
    Assignee: Microsoft Corporation
    Inventors: Rod Gamache, Michael T. Massa, Sunita Shrivastava, Gor V. Nishanov, David B. Lomet, Philip A. Bernstein, Rohit Jain