Patents by Inventor Philip Bernstein

Philip Bernstein 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: 8850007
    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 8, 2011
    Date of Patent: September 30, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael T. Massa, David A. Dion, Rajsekhar Das, Rushabh A. Doshi, David B. Lomet, Gor N. Nishanov, Philip A. Bernstein, Rod N. Gamache, Rohit Jain, Sunita Shrivastava
  • Patent number: 8850018
    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 8, 2011
    Date of Patent: September 30, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael T. Massa, David A. Dion, Rajsekhar Das, Rushabh A. Doshi, David B. Lomet, Gor N. Nishanov, Philip A. Bernstein, Rod N. Gamache, Rohit Jain, Sunita Shrivastava
  • Patent number: 8799572
    Abstract: A sequence of storage devices of a data store may include one or more stripesets for storing data stripes of different lengths and of different types. Each data stripe may be stored in a prefix or other portion of a stripeset. Each data stripe may be identified by an array of addresses that identify each page of the data stripe on each included storage device. When a first storage device of a stripeset becomes full, the stripeset may be shifted by removing the full storage device from the stripeset, and adding a next storage device of the data store to the stripeset. A class variable may be associated with storage devices of a stripeset to identify the type of data that the stripeset can store. The class variable may be increased (or otherwise modified) when a computer stores data of a different class in the stripeset.
    Type: Grant
    Filed: April 20, 2009
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Colin Reid, Philip A. Bernstein
  • Patent number: 8738724
    Abstract: Computers are provided with a totally ordered, durable shared log. Shared storage is used and can be directly accessed by the computers over a network. Append-log operations are made atomic in the face of failures by committing provisional append ordering information onto a log. The log may comprise multiple flash packages or non-volatile memory devices, referred to as segments, although any shared storage device(s) may be used. Each log record is a multi-page stripe, where each page of a stripe is written to a different segment. Fault-tolerant protocol variants append stripes to the log, such that stripes are totally ordered in the log and each stripe is written atomically.
    Type: Grant
    Filed: May 25, 2010
    Date of Patent: May 27, 2014
    Assignee: Microsoft Corporation
    Inventors: Philip A. Bernstein, Dahlia Malkhi, Colin Wilson Reid, Mahesh Balakrishnan
  • Publication number: 20130332435
    Abstract: Parallel certification of transactions on shared data stored in database partitions included in an approximate database partitioning arrangement may be initiated, based on initiating a plurality of certification algorithm executions in parallel, and providing a sequential certifier effect. Logging operations associated with a plurality of log partitions configured to store transaction objects associated with each respective transaction may be initiated, each respective database partition included in the approximate database partitioning being associated with one or more of the log partitions. A scheduler may assign each of the transactions to a selected one of the certification algorithm executions.
    Type: Application
    Filed: June 12, 2012
    Publication date: December 12, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Philip A. Bernstein, Sudipto Das
  • Publication number: 20130275474
    Abstract: Aspects of the subject matter described herein relate to automating evolution of schemas and mappings. In aspects, mappings between a conceptual model and a store model are updated automatically in response to a change that occurs to the conceptual model. For example, when a change occurs to the conceptual model, a local scope of the change is determined. The local scope indicates mappings that are most similar to the type(s) affected by the change. Based on the local scope, a pattern of mappings between the conceptual model and the store model is determined. Using this pattern and the nature of the change, the mappings are updated according to the pattern. In addition, the store model and data thereon may be updated in a manner to preserve existing data that is not to be deleted in response to the change.
    Type: Application
    Filed: June 3, 2013
    Publication date: October 17, 2013
    Inventors: James F. Terwilliger, Philip A. Bernstein, Aditya Unnithan
  • Publication number: 20130238853
    Abstract: A sequence of storage devices of a data store may include one or more stripesets for storing data stripes of different lengths and of different types. Each data stripe may be stored in a prefix or other portion of a stripeset. Each data stripe may be identified by an array of addresses that identify each page of the data stripe on each included storage device. When a first storage device of a stripeset becomes full, the stripeset may be shifted by removing the full storage device from the stripeset, and adding a next storage device of the data store to the stripeset. A class variable may be associated with storage devices of a stripeset to identify the type of data that the stripeset can store. The class variable may be increased (or otherwise modified) when a computer stores data of a different class in the stripeset.
    Type: Application
    Filed: April 23, 2013
    Publication date: September 12, 2013
    Applicant: Microsoft Corporation
    Inventors: Colin Reid, Philip A. Bernstein
  • Publication number: 20130232118
    Abstract: Architecture that includes an ordered and shared log of indexed transaction records represented as multi-version data structures of nodes and node pointers. The log is a sole monolithic source of datastore state and is used for enforcing concurrency control. The architecture also includes a transaction processing component that appends transaction records to the log from concurrent transactions executing on different processors. Each node of a record is assigned a log address.
    Type: Application
    Filed: April 1, 2013
    Publication date: September 5, 2013
    Applicant: Microsoft Corporation
    Inventors: Colin W. Reid, Philip A. Bernstein
  • Patent number: 8458226
    Abstract: Aspects of the subject matter described herein relate to automating evolution of schemas and mappings. In aspects, mappings between a conceptual model and a store model are updated automatically in response to a change that occurs to the conceptual model. For example, when a change occurs to the conceptual model, a local scope of the change is determined. The local scope indicates mappings that are most similar to the type(s) affected by the change. Based on the local scope, a pattern of mappings between the conceptual model and the store model is determined. Using this pattern and the nature of the change, the mappings are updated according to the pattern. In addition, the store model and data thereon may be updated in a manner to preserve existing data that is not to be deleted in response to the change.
    Type: Grant
    Filed: June 15, 2010
    Date of Patent: June 4, 2013
    Assignee: Microsoft Corporation
    Inventors: James F. Terwilliger, Philip A. Bernstein, Aditya Unnithan
  • Patent number: 8412689
    Abstract: Architecture that includes an ordered and shared log of indexed transaction records represented as multi-version data structures of nodes and node pointers. The log is a sole monolithic source of datastore state and is used for enforcing concurrency control. The architecture also includes a transaction processing component that appends transaction records to the log from concurrent transactions executing on different processors. Each node of a record is assigned a log address.
    Type: Grant
    Filed: July 7, 2010
    Date of Patent: April 2, 2013
    Assignee: Microsoft Corporation
    Inventors: Colin W. Reid, Philip A. Bernstein
  • Patent number: 8386421
    Abstract: Architecture that addresses the efficient detection of conflicts and the merging of data structures such as trees, when possible. The process of detecting conflicts and merging the trees is a meld operation. Confluent trees offer transactional consistency with some degree of isolation, and scaling out a concurrent system based on confluent trees can be accomplished where the meld operation is more efficient than the transaction computations. Transactions execute optimistically using lazily versioned “intention trees” that efficiently describe dependencies and effects using structure and content version information for each intention subtree. The data structure is modified by melding the intention trees in sequence, which causes each transaction to either commit (producing an incremental new version of the data structure) or abort (identifying a conflict which prevents the intention tree from being melded). The architecture is computationally efficient and completes without needing to access much of each tree.
    Type: Grant
    Filed: June 28, 2010
    Date of Patent: February 26, 2013
    Assignee: Microsoft Corporation
    Inventors: Colin W. Reid, Philip A. Bernstein
  • Patent number: 8347050
    Abstract: A shared storage system is described herein that is based on an append-only model of updating a storage device to allow multiple computers to access storage with lighter-weight synchronization than traditional systems and to reduce wear on flash-based storage devices. Appending data allows multiple computers to write to the same storage device without interference and without synchronization between the computers. Computers can also safely read a written page without using synchronization because the system limits how data can be changed once written. The system may record a log of append operations performed and ensure idempotence by storing a key specified by the caller in the log along with each log entry. The system also provides broadcasts about appended data to computers so that coordination between computers can occur without direct communication between the computers.
    Type: Grant
    Filed: January 27, 2009
    Date of Patent: January 1, 2013
    Assignee: Microsoft Corporation
    Inventors: Philip A. Bernstein, Colin W. Reid
  • Publication number: 20120265734
    Abstract: Aspects of the subject matter described herein relate to incrementally modifying schemas and mappings. In aspects, an indication of a change to a client schema is received and a compilation directive is received. The compilation directive may indicate how one or more entities or associations in the client schema are to be mapped to the store schema. In response to receiving the indication of the change and the compilation directive, mapping data and storage schema may be incrementally modified with incremental revalidation and incremental updating of query and update views.
    Type: Application
    Filed: April 14, 2011
    Publication date: October 18, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Jorge A. Pérez, James F. Terwilliger, Philip A. Bernstein
  • Patent number: 8121980
    Abstract: Transactional record management methods and systems enabling multiple independent servers (such as database servers) using shared storage to initiate transactions in parallel without inter server communication and without locking the records used by the transaction. The in-flight transactions can be included in a shared transaction log without a final determination of whether the transaction committed. The log updates can be broadcast to each of the servers, which each parse the log, using the same rules of analysis, and therefore each compute server can independently and asynchronously come to the same conclusion as to which transactions aborted and which transactions committed.
    Type: Grant
    Filed: February 13, 2009
    Date of Patent: February 21, 2012
    Assignee: Microsoft Corporation
    Inventors: Colin Wilson Reid, Philip A. Bernstein
  • Publication number: 20110320496
    Abstract: Architecture that addresses the efficient detection of conflicts and the merging of data structures such as trees, when possible. The process of detecting conflicts and merging the trees is a meld operation. Confluent trees offer transactional consistency with some degree of isolation, and scaling out a concurrent system based on confluent trees can be accomplished where the meld operation is more efficient than the transaction computations. Transactions execute optimistically using lazily versioned “intention trees” that efficiently describe dependencies and effects using structure and content version information for each intention subtree. The data structure is modified by melding the intention trees in sequence, which causes each transaction to either commit (producing an incremental new version of the data structure) or abort (identifying a conflict which prevents the intention tree from being melded). The architecture is computationally efficient and completes without needing to access much of each tree.
    Type: Application
    Filed: June 28, 2010
    Publication date: December 29, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Colin W. Reid, Philip A. Bernstein
  • Publication number: 20110314043
    Abstract: A data structure may exist in various representations, such as an object in an object-oriented system or a set of elements included in an extensible markup language (XML) document structured according to an XML type defined in an XML schema. While many aspects of these representations may correspond, some aspects of an XML document may not be specified by the XML schema (such as developer comments, whitespace, and preprocessor directives), and may be lost while translating an XML representation of the data structure to an object. These non-schematized aspects may be included in the object as a delta, specifying the location of an aspect with relation to an element defined by the XML schema. Preserving non-schematized aspects may promote the full representation of the data structure as an object, and may facilitate a full-fidelity regeneration of the XML document from which the object was generated.
    Type: Application
    Filed: June 17, 2010
    Publication date: December 22, 2011
    Applicant: Microsoft Corporation
    Inventors: Philip A. Bernstein, Sergey Melnik, James F. Terwilliger, Ion Vasillian
  • Publication number: 20110307501
    Abstract: Aspects of the subject matter described herein relate to automating evolution of schemas and mappings. In aspects, mappings between a conceptual model and a store model are updated automatically in response to a change that occurs to the conceptual model. For example, when a change occurs to the conceptual model, a local scope of the change is determined. The local scope indicates mappings that are most similar to the type(s) affected by the change. Based on the local scope, a pattern of mappings between the conceptual model and the store model is determined. Using this pattern and the nature of the change, the mappings are updated according to the pattern. In addition, the store model and data thereon may be updated in a manner to preserve existing data that is not to be deleted in response to the change.
    Type: Application
    Filed: June 15, 2010
    Publication date: December 15, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: James F. Terwilliger, Philip A. Bernstein, Aditya Unnithan
  • Publication number: 20110295969
    Abstract: Computers are provided with a totally ordered, durable shared log. Shared storage is used and can be directly accessed by the computers over a network. Append-log operations are made atomic in the face of failures by committing provisional append ordering information onto a log. The log may comprise multiple flash packages or non-volatile memory devices, referred to as segments, although any shared storage device(s) may be used. Each log record is a multi-page stripe, where each page of a stripe is written to a different segment. Fault-tolerant protocol variants append stripes to the log, such that stripes are totally ordered in the log and each stripe is written atomically.
    Type: Application
    Filed: May 25, 2010
    Publication date: December 1, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Philip A. Bernstein, Dahlia Malkhi, Colin Wilson Reid, Mahesh Balakrishnan
  • Publication number: 20110289118
    Abstract: Architecture that maps document data (e.g., XML-extended markup language) into columns of one table, thereby avoiding schema normalization problems through special data storage. Moreover, an algorithm is described that can translate a query (e.g., in XPath (XML path language), a query language for navigating through document elements and attributes of an XML document) into a relational algebra query of the document column representation. Based on the characteristics of the new mapping, query rewriting rules are provided that optimize the relational algebra query by minimizing the number of joins. The mapping of XML documents to the table is based on a summary structure and a hierarchical labeling scheme (e.g., ordpath) to enable a high-fidelity representation. Annotations are employed on the summary structure nodes to assist in mapping XML elements and attributes to the table.
    Type: Application
    Filed: May 20, 2010
    Publication date: November 24, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Liang Chen, Nikita Shamgunov, Philip A. Bernstein, Michael Rys, James F. Terwilliger, Peter Alan Carlin, Dragan Tomic
  • Publication number: 20110238842
    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 8, 2011
    Publication date: September 29, 2011
    Applicant: Microsoft Corporation
    Inventors: Michael T. Massa, David A. Dion, Rajsekhar Das, Rushabh A. Doshi, David B. Lomet, Gor N. Nishanov, Philip A. Bernstein, Rod N. Gamache, Rohit Jain, Sunita Shrivastava