Patents by Inventor Peter A. Christofferson

Peter A. Christofferson 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: 7516165
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Grant
    Filed: October 27, 2004
    Date of Patent: April 7, 2009
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 7363332
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Grant
    Filed: March 4, 2003
    Date of Patent: April 22, 2008
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 7219128
    Abstract: An arbitration process ensures changes made by more than one node to the same data are propagated to each node holding the shared entity and applied in the same order on each node. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. After each instigator node receives all the proposals in the arbitration cycle, it determines whether it is the winner of the arbitration cycle and broadcasts a closure message if it is. Each node determines an order in which to apply the changes when it has received all the proposals. Arbitration cycles associated with different items can be running concurrently.
    Type: Grant
    Filed: December 10, 2002
    Date of Patent: May 15, 2007
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 7206810
    Abstract: When multiple nodes in a computer network perform work on a shared entity, such as a database record, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Grant
    Filed: December 10, 2002
    Date of Patent: April 17, 2007
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 7194518
    Abstract: When multiple nodes in a computer network perform work on a shared entity, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Grant
    Filed: December 10, 2002
    Date of Patent: March 20, 2007
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 7167900
    Abstract: When multiple nodes in a computer network perform work on a shared entity, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Grant
    Filed: December 10, 2002
    Date of Patent: January 23, 2007
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 6934727
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Grant
    Filed: January 2, 2003
    Date of Patent: August 23, 2005
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Publication number: 20050091240
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Application
    Filed: October 27, 2004
    Publication date: April 28, 2005
    Applicant: Microsoft Corporation
    Inventors: Brian Berkowitz, Peter Christofferson
  • Publication number: 20030172054
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Application
    Filed: March 4, 2003
    Publication date: September 11, 2003
    Applicant: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 6594660
    Abstract: Clearing share latches for databases, such as in-memory databases, is disclosed. In one embodiment, a computerized system includes a database having a number of sections, a client process and a core process. The client process is capable of asserting a share latch on a section of the database. The core process is capable of asserting an exclusive latch on a section of the database. The core process is further capable of clearing the share latch asserted by the client process, upon termination of the client process while the share latch is still asserted. Specific methods for such clearing, as well as latch logs, are also disclosed.
    Type: Grant
    Filed: January 24, 2000
    Date of Patent: July 15, 2003
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Publication number: 20030110221
    Abstract: When multiple nodes in a computer network perform work on a shared entity, such as a database record, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Application
    Filed: December 10, 2002
    Publication date: June 12, 2003
    Applicant: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Publication number: 20030105768
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Application
    Filed: January 3, 2003
    Publication date: June 5, 2003
    Applicant: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Publication number: 20030088624
    Abstract: When multiple nodes in a computer network perform work on a shared entity, such as a database record, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Application
    Filed: December 10, 2002
    Publication date: May 8, 2003
    Applicant: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Publication number: 20030088625
    Abstract: When multiple nodes in a computer network perform work on a shared entity, such as a database record, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Application
    Filed: December 10, 2002
    Publication date: May 8, 2003
    Applicant: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Publication number: 20030084160
    Abstract: When multiple nodes in a computer network perform work on a shared entity, such as a database record, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Application
    Filed: December 10, 2002
    Publication date: May 1, 2003
    Applicant: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 6529921
    Abstract: Each node in a network accessing a common database caches a copy of the database tables it uses and updates those tables based on changes made by other nodes in a coherent cache, i.e., those node that also have a copy of the tables in their cache. When a new node joins the coherent cache, dynamic synchronization of the table is performed by having one of the existing nodes act as a source to populate the table(s) required on the new (destination) node from its own copy. The dynamic synchronization controls the population operation and allows for the populating of tables on the destination node from partially populated tables on the source node. The dynamic synchronization of the tables permits database updates to continue to be made to the tables by the existing nodes in the coherent cache and provides a mechanism to propagate the committed updates to the tables on the destination node.
    Type: Grant
    Filed: June 29, 1999
    Date of Patent: March 4, 2003
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 6513084
    Abstract: When multiple nodes in a computer network perform work on a shared entity, such as a database record, an arbitration process is used to ensure changes made by more than one node to the same data is propagated to each of the nodes holding the shared entity and that the changes are applied in the same order on each of the nodes. An arbitration cycle for a particular entity is begun on a node (“instigator”) when the node broadcasts a proposal message for a change to the entity to the other nodes or when the node (“observer”) receives such a proposal message. Multiple nodes can be instigators during a single arbitration cycle. Each node that receives a proposal message sends a response message to the corresponding instigator. The arbitration cycle is closed to additional proposal messages after one instigator has received responses from all the nodes that share the entity.
    Type: Grant
    Filed: June 29, 1999
    Date of Patent: January 28, 2003
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Peter A. Christofferson
  • Patent number: 6457021
    Abstract: An in-memory database system uses a shared memory to cache records and keys read from a database and controls the updating of the records and keys through a database manager process. When a transaction performs an update, the original, unmodified data is preserved in the shared memory, the new data is written to the shared memory, and a look-aside table for the transaction records the changes. A transaction performs read-only access to the shared memory using its own context while a versioning scheme based on the look-aside tables ensures a read-committed isolation level view of the original, unmodified data until the modifying transaction commits the update. The database manager is responsible for writing the new data into the shared memory and for maintaining the look-aside tables for all transaction which have made modifications to the data in the shared memory.
    Type: Grant
    Filed: August 18, 1998
    Date of Patent: September 24, 2002
    Assignee: Microsoft Corporation
    Inventors: Brian T. Berkowitz, Sreenivas Simhadri, Peter A. Christofferson, Gunnar Mein
  • Publication number: 20020087500
    Abstract: An in-memory database system uses a shared memory to cache records and keys read from a database and controls the updating of the records and keys through a database manager process. When a transaction performs an update, the original, unmodified data is preserved in the shared memory, the new data is written to the shared memory, and a look-aside table for the transaction records the changes. A transaction performs read-only access to the shared memory using its own context while a versioning scheme based on the look-aside tables ensures a read-committed isolation level view of the original, unmodified data until the modifying transaction commits the update. The database manager is responsible for writing the new data into the shared memory and for maintaining the look-aside tables for all transaction which have made modifications to the data in the shared memory.
    Type: Application
    Filed: August 18, 1998
    Publication date: July 4, 2002
    Inventors: BRIAN T. BERKOWITZ, SREENIVAS SIMHADRI, PETER A. CHRISTOFFERSON, GUNNAR MEIN