Locating the latest version of replicated data files
First Claim
Patent Images
1. A non-transitory computer-readable storage medium that stores computer-executable instructions for causing a computer system to perform a method comprising:
- accessing a data structure stored on a client that identifies a current group of servers, wherein each server of said current group of servers stores at least one version of a file;
accessing a first majority of said current group of servers, wherein each accessed server in said first majority stores a data structure that identifies a group of servers;
identifying an updated group of servers, wherein identifying said updated group comprises determining that a majority of said first majority of servers store a data structure that identifies an identical group of servers; and
accessing a version of said file stored on a server included in said first majority of servers after said updated group of servers is identified.
6 Assignments
0 Petitions
Accused Products
Abstract
A list of servers known to a client is compared with lists of servers stored on the servers. An instance of content (e.g., a data file) can be accessed from a server on the list if at least a simple majority of the servers have the same version of the list.
-
Citations
19 Claims
-
1. A non-transitory computer-readable storage medium that stores computer-executable instructions for causing a computer system to perform a method comprising:
-
accessing a data structure stored on a client that identifies a current group of servers, wherein each server of said current group of servers stores at least one version of a file; accessing a first majority of said current group of servers, wherein each accessed server in said first majority stores a data structure that identifies a group of servers; identifying an updated group of servers, wherein identifying said updated group comprises determining that a majority of said first majority of servers store a data structure that identifies an identical group of servers; and accessing a version of said file stored on a server included in said first majority of servers after said updated group of servers is identified. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method for managing data, said method comprising:
-
during a search for an updated list of servers that store a latest version of a file, accessing a data structure stored on a client that identifies a current group of servers, wherein each server of said current group of servers stores at least one version of a file; identifying an updated group of servers, wherein identifying said updated group comprises determining that a majority of said first majority of servers store a data structure that identifies an identical group of servers; propagating said search and said identifying said updated group through succeeding groups of servers upon determining that less than a majority of said first majority of servers store a data structure that identifies an identical group of servers, wherein each succeeding plurality of servers is selected based upon data structures identifying groups of servers stored on servers identified in a preceding phase of said search; and accessing a version of said file stored on a server included in said first majority of servers after said updated group of servers is identified. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer system comprising:
-
a processor; and memory coupled to said processor and having stored therein instructions that, if executed by said computer system, cause said computer system to execute a method of managing data, said method comprising; accessing a data structure stored on a client affiliated with a first data file, said data structure identifying a current group of servers on which replicas of said first data file are stored; attempting to write data to a set of said replicas stored on a subset of said current group of servers, wherein said attempting to write is successful only if said subset comprises at least a majority of said current group of servers; identifying a set of replicas that are successfully written to; affiliating a data structure that identifies an updated group of servers with said set of replicas that are successfully written to, wherein said data structure that identifies an updated group of servers and said replicas are stored on said updated group of servers; and attempting to read data from a replica stored on a server of said updated group of servers, wherein said read is permitted only if a majority of said set of replicas that are successfully written to are accessed during said attempting to read. - View Dependent Claims (16, 17, 18, 19)
-
Specification