×

System and method for providing high availability data

  • US 9,223,841 B2
  • Filed: 04/26/2010
  • Issued: 12/29/2015
  • Est. Priority Date: 03/31/2006
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented data storage system comprising:

  • host mapping logic configured to map responsibility for storing a plurality of data sets to individual ones of a plurality of hosts which cooperate to implement a data storage system;

    a hardware processor;

    data set replication logic executed by the hardware processor configured to execute instructions stored in memory, the data set replication logic configured to;

    obtain a first version of a data set to be written;

    select a first subset of the plurality of hosts to write the first version of the data set;

    write a first plurality of copies of the first version of a data set at the first subset of the plurality of hosts, wherein the first plurality of copies respectively include a version history of the first version of the data set;

    obtain a second version of the data set to be written, wherein the second version of the data set comprises one or more updates to the data set inconsistent with at least a portion of the first version of the data set;

    select a second subset of the plurality of hosts to write the second version of the data set, wherein the first and second subsets of the plurality of hosts include at least one different host;

    write a second plurality of copies of the second version of the data set at the second subset of the plurality of hosts, wherein the second plurality of copies respectively include another version history of the second version of the data set;

    data set retrieval logic executed by a hardware processor configured to execute instructions stored in memory, the data set retrieval logic configured to be responsive to a request to provide a single copy of the data set by reading a third plurality of copies of the data set at a third subset of the plurality of hosts, wherein the third plurality of copies include at least one copy of the first version of the data set and at least one copy of the second version of the data set, wherein the third subset of the plurality of hosts has at least one host in common with the first subset of the plurality of hosts and at least one host in common with the second subset of the plurality of hosts, and wherein the at least one host in common with the first subset of the plurality of hosts is not a member of the second subset of the plurality of hosts; and

    an evaluation component configured to provide a single copy of the data set by;

    reading the third plurality of copies of the data set; and

    evaluating the version history and the other version history to reconcile the first version of the data set and the second version of the data set read from the third plurality of copies into the single copy of the data set;

    wherein the evaluation component is configured to be invoked after the third plurality of copies of the data set is read.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×