IP Library Granted Patent US 8,849,776
Granted Patent B2
US 8,849,776 · App. 13/274,397 · Granted Sep 30, 2014

Method and system for resolving data inconsistency

Inventors: Tugrul Bingol (San Carlos, CA); Masood Mortazavi (San Jose, CA); Jacob Y. Levy (Los Altos, CA); Patrick Nip (Fremont, CA)
Assignee: Yahoo! Inc.
G06F17/30578
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,849,776
App. No.
13/274,397
Granted
Sep 30, 2014
Kind
B2
Abstract

Method, system, and programs for resolving data inconsistency in a distributed system having a plurality of replica instances. In response to a read request of at least one data element, a key-specific probability value for the at least one data element of the read request is retrieved. Based on the retrieved key-specific probability value and a system load of the distributed system, a self-healing probability of the at least one data element of the read request is computed. A self-healing transaction that includes the at least one data element of the read request is then generated based on the self-healing probability of the at least one data element. The generated self-healing transaction is further applied to at least some of the plurality of replica instances in the distributed system to resolve data inconsistency.

Claims (74)

1. A method, implemented on at least one machine each having at least one processor, storage, and a communication platform connected to a network for resolving data inconsistency in a distributed system having a plurality of replica instances, comprising:

in response to a read request of at least one data element, retrieving, by a probability assigning module, a first probability associated with the at least one data element of the read request;

computing, by the probability assigning module, a second probability associated with the at least one data element of the read request based on a write throughput of the distributed system and the retrieved first probability;

generating, by a transaction generating module, a transaction associated with the at least one data element of the read request based on the second probability associated with the at least one data element; and

applying, by a transaction dispatcher via a data replication bus, the generated transaction to at least some of the plurality of replica instances in the distributed system to resolve data inconsistency across the at least some of the plurality of replica instances.

2. The method of claim 1 , wherein

the second probability associated with a data element increases as the write throughput of the distributed system decreases.

3. The method of claim 1 , wherein

the first probability associated with a data element is provided based on a transaction history of the data element;

the second probability associated with a data element decreases when a transaction associated with the data element has been applied; and

the second probability associated with a data element increases when the data element has been updated.

4. The method of claim 1 further comprising determining, by a policy checking module, whether the transaction is to be applied based on one or more predetermined rules.

5. The method of claim 4 , wherein the step of determining whether the transaction is to be applied comprises:

determining whether a write transaction has been requested, wherein the write transaction is associated with the same at least one data element in the transaction; and

discarding the transaction if the write transaction has been requested.

6. The method of claim 1 , wherein

the at least one data element in the transaction includes a key, a value, and a time stamp indicating when the value of the at least one data element was most recently updated; and

the step of applying the generated transaction comprises:

comparing the time stamp of the at least one data element associated with the transaction with a time stamp of a corresponding data element in each replica instance,

if the time stamp of the at least one data element associated with the transaction is more recent than a time stamp of a corresponding data element in a replica instance, replacing a value of the corresponding data element in the replica instance with the value of the at least one data element associated with the transaction, and

if the time stamp of the at least one data element associated with the transaction is not more recent than the time stamp of a corresponding data element in a replica instance, discarding the transaction in the corresponding replica instance.

7. The method of claim 1 , wherein

the transaction is an writing operation on at least one data element of at least some of the plurality of replica instances in response to a read request by a user or an application; and

the transaction includes directive information that controls an application thereof to each of the some replica instances in the distributed system.

8. A system for resolving data inconsistency in a distributed system having a plurality of replica instances, comprising:

a probability assigning module configured to

in response to a read request of at least one data element, retrieve a first probability associated with the at least one data element of the read request, and

compute a second probability associated with the at least one data element of the read request based on a write throughput of the distributed system and the retrieved first probability;

a transaction generating module operatively coupled to the probability assigning module, configured to generate a transaction associated with the at least one data element of the read request based on the second probability associated with the at least one data element; and

a transaction dispatcher operatively coupled to the transaction generating module, configured to apply, via a data replication bus, the generated transaction to at least some of the plurality of replica instances in the distributed system to resolve data inconsistency across the at least some of the plurality of replica instances.

9. The system of claim 8 , wherein

the second probability associated with a data element increases as the write throughput of the distributed system decreases.

10. The system of claim 8 , wherein

the first probability associated with a data element is provided based on a transaction history of the data element;

the second probability associated with a data element decreases when a transaction associated with the data element has been applied; and

the second probability associated with a data element increases when the data element has been updated.

11. The system of claim 8 further comprising a policy checking module operatively coupled to the transaction generating module and the transaction dispatcher, configured to determine whether the transaction is to be applied based on one or more predetermined rules.

12. The system of claim 11 , wherein the policy checking module, in determining whether a self-healing transaction is to be generated, is further configured to:

determine whether a write transaction has been requested, wherein the write transaction is associated with the same at least one data element in the transaction; and

discard the transaction if the write transaction has been requested.

13. The system of claim 8 , wherein

the at least one data element in the transaction includes a key, a value, and a time stamp indicating when the value of the at least one data element was most recently updated; and

the step of applying the generated transaction comprises:

comparing the time stamp of the at least one data element associated with the transaction with a time stamp of a corresponding data element in each replica instance,

if the time stamp of the at least one data element associated with the transaction is more recent than a time stamp of a corresponding data element in a replica instance, replacing a value of the corresponding data element in the replica instance with the value of the at least one data element associated with the transaction, and

if the time stamp of the at least one data element associated with the transaction is not more recent than the time stamp of a corresponding data element in a replica instance, discarding the transaction in the corresponding replica instance.

14. The system of claim 8 , wherein

the transaction is an writing operation on at least one data element of at least some of the plurality of replica instances in response to a read request by a user or an application; and

the transaction includes directive information that controls an application thereof to each of the some replica instances in the distributed system.

15. A machine-readable tangible and non-transitory medium having information recorded thereon for resolving data inconsistency in a distributed system having a plurality of replica instances, wherein the information, when read by the machine, causes the machine to perform the following:

in response to a read request of at least one data element, retrieving a first probability associated with the at least one data element of the read request;

computing a second probability associated with the at least one data element of the read request based on a write throughput of the distributed system and the retrieved first probability;

generating a transaction associated with the at least one data element of the read request based on the second probability associated with the at least one data element; and

applying the generated transaction to at least some of the plurality of replica instances in the distributed system to resolve data inconsistency across the at least some of the plurality of replica instances.

16. The medium of claim 15 , wherein

the second probability associated with a data element increases as the write throughput of the distributed system decreases.

17. The medium of claim 15 , wherein

the first probability associated with a data element is provided based on a transaction history of the data element;

the second probability associated with a data element decreases when a transaction associated with the data element has been applied; and

the second probability associated with a data element increases when the data element has been updated.

18. The medium of claim 15 further comprising determining whether the transaction is to be applied based on one or more predetermined rules.

19. The medium of claim 15 , wherein the step of determining whether the self-healing transaction is to be applied comprises:

determining whether a write transaction has been requested, wherein the write transaction is associated with the same at least one data element in the transaction; and

discarding the transaction if the write transaction has been requested.

20. The medium of claim 15 , wherein

the at least one data element in the transaction includes a key, a value, and a time stamp indicating when the value of the at least one data element was most recently updated; and

the step of applying the generated transaction comprises:

comparing the time stamp of the at least one data element associated with the transaction with a time stamp of a corresponding data element in each replica instance,

if the time stamp of the at least one data element associated with the transaction is more recent than a time stamp of a corresponding data element in a replica instance, replacing a value of the corresponding data element in the replica instance with the value of the at least one data element associated with the transaction, and

if the time stamp of the at least one data element associated with the transaction is not more recent than the time stamp of a corresponding data element in a replica instance, discarding the transaction in the corresponding replica instance.

21. The medium of claim 15 , wherein

the transaction is an writing operation on at least one data element of at least some of the plurality of replica instances in response to a read request by a user or an application; and

the transaction includes directive information that controls an application thereof to each of the some replica instances in the distributed system.

22. The method of claim 1 , wherein the second probability is computed by multiplying the first probability and a scaling factor determined based on the write throughput of the distribution system.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2011
From: BINGOL, TUGRUL; MORTAZAVI, MASOOD; LEVY, JACOB Y.; NIP, PATRICK
To: YAHOO! INC.
Reel/Frame 027069/0049 →
Continuity (1)
Related Publication 20130097130A1 · Apr 18, 2013