System and method for maintaining a distributed and fault-tolerant state over an information centric network
First Claim
1. A computer-implemented method, comprising:
- disseminating in a computer network, by a client device, one or more Interest packets for reading a set of replicas of a variable, wherein the replicas of the variable are hosted by one or more replica servers distinct from the client device, and wherein the client device stores a local copy of the variable;
wherein an Interest packet comprises a value-reading command for reading a replica of the variable, and further comprises a name that includes a routable name prefix which is associated with the variable, wherein the name further includes a unique identifier which identifies the variable or is a logical value associated with the replica server that hosts the variable;
receiving, by the client device from the one or more replica servers, a set of Content Object packets that satisfy the one or more Interest packets, wherein a Content Object packet comprises a same name as the name for a satisfied Interest packet and includes a current value for the variable;
determining, by the client device, whether an authoritative value exists for the variable based on current values in the set of Content Object packets, wherein the current values in the set of Content Object packets received from the one or more replica servers are determined by a respective replica server, and wherein determining whether the authoritative value exists comprises;
determining, by the client device, a largest subset, that exceeds a first pre-determined threshold, of the set of Content Object packets that has a matching value in the current values for the variable;
responsive to determining that the authoritative value does exist, updating, by the client device, the local copy of the variable to the matching value for the variable in the largest subset; and
responsive to determining that the authoritative value does not exist, rolling back, by the client device, a state for the local copy of the variable to a previous state,wherein when a number of the largest subset is less than the first pre-determined threshold and greater than a second pre-determined subset, the client device updates variable history of another subset of the replicas other than the largest subset, to include the matching value as the authoritative value for the another subset of the replicas.
3 Assignments
0 Petitions
Accused Products
Abstract
A replica management system facilitates maintaining a distributed and fault-tolerant state for a variable over an Information Centric Network (ICN) by replicating the variable across a set of ICN nodes. During operation, a variable-hosting ICN node can receive an Interest that includes a value-updating command for a replica instance of the variable, current values for a set of replicas of the variable, and a new value for the variable. The ICN node can determine, based on the current values for the set of replica variables, whether the current value for the local replica variable is an authoritative value. If so, the ICN node updates the local replica variable to the new value. However, if the current local value is not the authoritative value, the ICN node rolls back a state of the local replica variable to a previous state, and updates the local replica variable to the new value.
383 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
disseminating in a computer network, by a client device, one or more Interest packets for reading a set of replicas of a variable, wherein the replicas of the variable are hosted by one or more replica servers distinct from the client device, and wherein the client device stores a local copy of the variable; wherein an Interest packet comprises a value-reading command for reading a replica of the variable, and further comprises a name that includes a routable name prefix which is associated with the variable, wherein the name further includes a unique identifier which identifies the variable or is a logical value associated with the replica server that hosts the variable; receiving, by the client device from the one or more replica servers, a set of Content Object packets that satisfy the one or more Interest packets, wherein a Content Object packet comprises a same name as the name for a satisfied Interest packet and includes a current value for the variable; determining, by the client device, whether an authoritative value exists for the variable based on current values in the set of Content Object packets, wherein the current values in the set of Content Object packets received from the one or more replica servers are determined by a respective replica server, and wherein determining whether the authoritative value exists comprises; determining, by the client device, a largest subset, that exceeds a first pre-determined threshold, of the set of Content Object packets that has a matching value in the current values for the variable; responsive to determining that the authoritative value does exist, updating, by the client device, the local copy of the variable to the matching value for the variable in the largest subset; and responsive to determining that the authoritative value does not exist, rolling back, by the client device, a state for the local copy of the variable to a previous state, wherein when a number of the largest subset is less than the first pre-determined threshold and greater than a second pre-determined subset, the client device updates variable history of another subset of the replicas other than the largest subset, to include the matching value as the authoritative value for the another subset of the replicas. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more non-transitory computer readable storage media encoded with computer readable instructions which, when executed by a processor of a computing device, cause the processor to:
-
disseminate in a computer network one or more Interest packets for reading a set of replicas of a variable, wherein the replicas of the variable are hosted by one or more replica servers distinct from the computing device, and wherein the computing device stores a local copy of the variable; wherein an Interest packet comprises a value-reading command for reading a replica of the variable, and further comprises a name that includes a routable name prefix which is associated with the variable, wherein the name further includes a unique identifier which identifies the variable or is a logical value associated with the replica server that hosts the variable; receive, from the one or more replica servers, a set of Content Object packets that satisfy the one or more Interest packets, wherein a Content Object packet comprises a same name as the name for a satisfied Interest packet and includes a current value for the variable; determine whether an authoritative value exists for the variable based on current values in the set of Content Object packets, wherein the current values in the set of Content Object packets received from the one or more replica servers are determined by a respective replica server, and wherein the processor is configured to determine whether the authoritative value exists by determining a largest subset, that exceeds a first pre-determined threshold, of the set of Content Object packets that has a matching value in the current values for the variable; responsive to determining that the authoritative value does exist, update the local copy of the variable to the matching value for the variable in the largest subset; and responsive to determining that the authoritative value does not exist, roll back a state for the local copy of the variable to a previous state, wherein when a number of the largest subset is less than the first pre-determined threshold and greater than a second pre-determined subset, the instructions further cause the processor to update variable history of another subset of the replicas other than the largest subset, to include the matching value as the authoritative value for the another subset of the replicas. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus comprising:
-
a processor; and a storage device for storing instructions, wherein the processor is configured to execute the instructions to; disseminate in a computer network one or more Interest packets for reading a set of replicas of a variable, wherein the replicas of the variable are hosted by one or more replica servers distinct from the apparatus, and wherein the apparatus stores a local copy of the variable; wherein an Interest packet comprises a value-reading command for reading a replica of the variable, and further comprises a name that includes a routable name prefix which is associated with the variable, wherein the name further includes a unique identifier which identifies the variable or is a logical value associated with the replica server that hosts the variable; receive, from the one or more replica servers, a set of Content Object packets that satisfy the one or more Interest packets, wherein a Content Object packet comprises a same name as the name for a satisfied Interest packet and includes a current value for the variable; determine whether an authoritative value exists for the variable based on current values in the set of Content Object packets, wherein the current values in the set of Content Object packets received from the one or more replica servers are determined by a respective replica server, and wherein the processor is configured to determine whether the authoritative value exists by determining a largest subset, that exceeds a first pre-determined threshold, of the set of Content Object packets that has a matching value in the current values for the variable; responsive to determining that the authoritative value does exist, update the local copy of the variable to the matching value for the variable in the largest subset; and responsive to determining that the authoritative value does not exist, roll back a state for the local copy of the variable to a previous state, wherein when a number of the largest subset is less than the first pre-determined threshold and greater than a second pre-determined subset, the processor is configured to update variable history of another subset of the replicas other than the largest subset, to include the matching value as the authoritative value for the another subset of the replicas. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification