Patents by Inventor David Bruce Lomet

David Bruce 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: 10701177
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server to handle a database query for the client. A command of the session may be received by the first database server from the client. Data requested by the command may be retrieved. Prior to responding to the command, the data is spooled to a session state stored in a repository of the first database server, and the session state is replicated to one or more additional database servers. The session state stored in the repository of the first database server enables the first database server and client to recover from a failure of the session. The replicated session state enables the additional database server(s) to reestablish the session and respond to the command, instead of the first database server, if the session fails.
    Type: Grant
    Filed: September 20, 2017
    Date of Patent: June 30, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Patent number: 9928264
    Abstract: A transaction engine includes a multi-version concurrency control (MVCC) module that accesses a latch-free hash table that includes respective hash table entries that include respective buckets of respective bucket items. The bucket items represent respective records, the respective bucket items each including a value indicating a temporal most recent read time of the item and a version list of descriptions that describe respective versions of the respective records, the MVCC module performing timestamp order concurrency control, using the latch-free hash table. Recovery log buffers may be used as cache storage for the transaction engine.
    Type: Grant
    Filed: December 31, 2014
    Date of Patent: March 27, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: David Bruce Lomet, Justin Jon Levandoski, Sudipta Sengupta, Ryan Stutsman
  • Publication number: 20180013856
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server to handle a database query for the client. A command of the session may be received by the first database server from the client. Data requested by the command may be retrieved. Prior to responding to the command, the data is spooled to a session state stored in a repository of the first database server, and the session state is replicated to one or more additional database servers. The session state stored in the repository of the first database server enables the first database server and client to recover from a failure of the session. The replicated session state enables the additional database server(s) to reestablish the session and respond to the command, instead of the first database server, if the session fails.
    Type: Application
    Filed: September 20, 2017
    Publication date: January 11, 2018
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Patent number: 9800685
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A first session may be established between a client and a first database server to handle a database query for the client. A request for data associated with the first session may be received by the first database server from the client, and the data retrieved. Prior to responding to the request, the data is spooled to a first session state stored in a repository made accessible by at least one computing device. The computing device(s) controls access to session states in the repository that correspond to sessions between clients and database servers. The computing device(s) enables sessions to be reestablished between the clients and database servers by accessing data of the session states in the repository and transmitting the data in response to messages received from the database servers containing session identifiers.
    Type: Grant
    Filed: December 21, 2015
    Date of Patent: October 24, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Patent number: 9514211
    Abstract: Update requests that specify updates to a logical page associated with a key-value store are obtained. Updates to the logical page are posted using the obtained plurality of update requests, without accessing the logical page via a read operation.
    Type: Grant
    Filed: July 20, 2014
    Date of Patent: December 6, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sudipta Sengupta, David Bruce Lomet, Justin Jon Levandoski
  • Publication number: 20160191662
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server to handle a database query for the client. A command of the session may be received by the first database server from the client. Data requested by the command may be retrieved. Prior to responding to the command, the data is spooled to a session state stored in a repository of the first database server, and the session state is replicated to one or more additional database servers. The session state stored in the repository of the first database server enables the first database server and client to recover from a failure of the session. The replicated session state enables the additional database server(s) to reestablish the session and respond to the command, instead of the first database server, if the session fails.
    Type: Application
    Filed: December 21, 2015
    Publication date: June 30, 2016
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Publication number: 20160110403
    Abstract: A transaction engine includes a multi-version concurrency control (MVCC) module that accesses a latch-free hash table that includes respective hash table entries that include respective buckets of respective bucket items. The bucket items represent respective records, the respective bucket items each including a value indicating a temporal most recent read time of the item and a version list of descriptions that describe respective versions of the respective records, the MVCC module performing timestamp order concurrency control, using the latch-free hash table. Recovery log buffers may be used as cache storage for the transaction engine.
    Type: Application
    Filed: December 31, 2014
    Publication date: April 21, 2016
    Inventors: David Bruce Lomet, Justin Jon Levandoski, Sudipta Sengupta, Ryan Stutsman
  • Patent number: 9251194
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server to handle a database query for the client. A command of the session may be received by the first database server from the client. Data requested by the command may be retrieved. Prior to responding to the command, the data is spooled to a session state stored in a repository of the first database server, and the session state is replicated to one or more additional database servers. The session state stored in the repository of the first database server enables the first database server and client to recover from a failure of the session. The replicated session state enables the additional database server(s) to reestablish the session and respond to the command, instead of the first database server, if the session fails.
    Type: Grant
    Filed: July 26, 2012
    Date of Patent: February 2, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Publication number: 20160019279
    Abstract: Update requests that specify updates to a logical page associated with a key-value store are obtained. Updates to the logical page are posted using the obtained plurality of update requests, without accessing the logical page via a read operation.
    Type: Application
    Filed: July 20, 2014
    Publication date: January 21, 2016
    Inventors: Sudipta Sengupta, David Bruce Lomet, Justin Jon Levandoski
  • Patent number: 8898109
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server, and a transaction may be opened to process a plurality of database commands. One or more commands associated with the transaction may be received from the client at the database server. Each received command has an associated command identifier. A transaction log stores the command identifier associated with each received command and indicates whether each received command has been successfully executed at the database server. After a session failure, the session is reestablished, and a command identifier for a further command is received from the client. If the command identifier associated with the further command is determined to have been stored in the transaction log, the command does not need to be executed, and the transaction may continue.
    Type: Grant
    Filed: July 27, 2012
    Date of Patent: November 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Publication number: 20140032491
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server, and a transaction may be opened to process a plurality of database commands. One or more commands associated with the transaction may be received from the client at the database server. Each received command has an associated command identifier. A transaction log stores the command identifier associated with each received command and indicates whether each received command has been successfully executed at the database server. After a session failure, the session is reestablished, and a command identifier for a further command is received from the client. If the command identifier associated with the further command is determined to have been stored in the transaction log, the command does not need to be executed, and the transaction may continue.
    Type: Application
    Filed: July 27, 2012
    Publication date: January 30, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak, Balendran Mugundan
  • Publication number: 20140032964
    Abstract: Techniques for recovering from session failures between clients and database servers are described herein. A session may be established between a client and a first database server to handle a database query for the client. A command of the session may be received by the first database server from the client. Data requested by the command may be retrieved. Prior to responding to the command, the data is spooled to a session state stored in a repository of the first database server, and the session state is replicated to one or more additional database servers. The session state stored in the repository of the first database server enables the first database server and client to recover from a failure of the session. The replicated session state enables the additional database server(s) to reestablish the session and respond to the command, instead of the first database server, if the session fails.
    Type: Application
    Filed: July 26, 2012
    Publication date: January 30, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Matthew Alban Neerincx, Luiz Fernando Federico Dos Santos, Oleg Ignat, David Bruce Lomet, Quetzalcoatl Bradley, Raghu Ram, Chadwin James Mumford, Peter Gvozdjak
  • Patent number: 8170997
    Abstract: Systems (and corresponding methods) that unbundle the kernel or storage engine of a database system are provided. The unbundling separates transactional aspects from storage aspects. The two components of the storage engine resulting from the unbundling are a transaction component (TC) and a data component (DC). Data storage access methods are implemented in the DC without the added complexity of dealing with transactions, which are handled separately in the TC. The interface supported by the DC is a logical interface, e.g., record oriented, in which the way that records are mapped to disk pages (or flash memory blocks, etc.) need not be exposed. The TC then deals with logical locking and logging, meaning that it need know nothing about the way pages are used in the DC.
    Type: Grant
    Filed: January 29, 2009
    Date of Patent: May 1, 2012
    Assignee: Microsoft Corporation
    Inventors: David Bruce Lomet, Alan David Fekete, Michael James Zwilling
  • Publication number: 20100191713
    Abstract: Systems (and corresponding methods) that unbundle the kernel or storage engine of a database system are provided. The unbundling separates transactional aspects from storage aspects. The two components of the storage engine resulting from the unbundling are a transaction component (TC) and a data component (DC). Data storage access methods are implemented in the DC without the added complexity of dealing with transactions, which are handled separately in the TC. The interface supported by the DC is a logical interface, e.g., record oriented, in which the way that records are mapped to disk pages (or flash memory blocks, etc.) need not be exposed. The TC then deals with logical locking and logging, meaning that it need know nothing about the way pages are used in the DC.
    Type: Application
    Filed: January 29, 2009
    Publication date: July 29, 2010
    Applicant: Microsoft Corporation
    Inventors: DAVID BRUCE LOMET, Alan David Fekete, Michael James Zwilling
  • Patent number: 7233947
    Abstract: A method of assigning transaction timestamps for use with a database that includes temporal data and may include non-temporal data. In the method, a lock is placed on a resource accessed by a first transaction to prevent conflicts with concurrently executing transactions. An access record of the lock mode and a timestamp of the first transaction is created for the resource accessed by the first transaction. The access record is accessed to determine whether a resource that a subsequent transaction accesses conflicts with the resource accessed by the first transaction. A timestamp lower bound or floor is identified for the subsequent transaction when the subsequent transaction accesses a resource that conflicts with the resource access of the first transaction. A timestamp is assigned to the subsequent transaction that is greater than the lower bound.
    Type: Grant
    Filed: May 22, 2003
    Date of Patent: June 19, 2007
    Assignee: Microsoft Corporation
    Inventor: David Bruce Lomet
  • Patent number: 6959401
    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. The use of persistent and transactional components and the requirements for ensuring that it is possible to replay the components in a deterministic fashion, can result in a high cost or overhead in logging of nondeterministic events, including component interactions.
    Type: Grant
    Filed: May 23, 2002
    Date of Patent: October 25, 2005
    Assignee: Microsoft Corporation
    Inventors: David Bruce Lomet, Roger S. Barga
  • Publication number: 20040236746
    Abstract: A method of assigning transaction timestamps for use with a database that includes temporal data and may include non-temporal data. In the method, a lock is placed on a resource accessed by a first transaction to prevent conflicts with concurrently executing transactions. An access record of the lock mode and a timestamp of the first transaction is created for the resource accessed by the first transaction. The access record is accessed to determine whether a resource that a subsequent transaction accesses conflicts with the resource accessed by the first transaction. A timestamp lower bound or floor is identified for the subsequent transaction when the subsequent transaction accesses a resource that conflicts with the resource access of the first transaction. A timestamp is assigned to the subsequent transaction that is greater than the lower bound.
    Type: Application
    Filed: May 22, 2003
    Publication date: November 25, 2004
    Applicant: Microsoft Corporation
    Inventor: David Bruce Lomet
  • Patent number: 6754657
    Abstract: A method of assigning timestamps to data items processed by a transaction. The method sets initial upper and lower limits for a transaction timestamp that will be applied to data items processed by the transaction if the transaction does not abort. The upper and lower limits are incrementally updated as data items are processed and time intervals are requested by the transaction. The lower limit is incrementally updated as data items are processed to ensure that write-write, read-write and write-read conflicts are avoided. A transaction timestamp is selected that is greater than the lower limit, but less than the upper limit.
    Type: Grant
    Filed: August 24, 2001
    Date of Patent: June 22, 2004
    Assignee: Microsoft Corporation
    Inventor: David Bruce Lomet
  • Publication number: 20030074602
    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. The use of persistent and transactional components and the requirements for ensuring that it is possible to replay the components in a deterministic fashion, can result in a high cost or overhead in logging of nondeterministic events, including component interactions.
    Type: Application
    Filed: May 23, 2002
    Publication date: April 17, 2003
    Applicant: Microsoft Corporation
    Inventors: David Bruce Lomet, Roger S. Barga
  • Publication number: 20030055807
    Abstract: A method of assigning timestamps to data items processed by a transaction. The method sets initial upper and lower limits for a transaction timestamp that will be applied to data items processed by the transaction if the transaction does not abort. The upper and lower limits are incrementally updated as data items are processed and time intervals are requested by the transaction. The lower limit is incrementally updated as data items are processed to ensure that write-write, read-write and write-read conflicts are avoided. A transaction timestamp is selected that is greater than the lower limit, but less than the upper limit.
    Type: Application
    Filed: August 24, 2001
    Publication date: March 20, 2003
    Applicant: Microsoft Corporation.
    Inventor: David Bruce Lomet