IP Library › Granted Patent US 7,783,607
Granted Patent B2
US 7,783,607 · App. 11/863,902 · Granted Aug 24, 2010

Decentralized record expiry

Assignee: Yahoo! Inc.
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 7,783,607
App. No.
11/863,902
Filed
Sep 28, 2007
Granted
Aug 24, 2010
Kind
B2
Art Unit
2166
USPC
707/662
Abstract

A technique is described that reduces the complexity and resource consumption associated with performing record expiry in a distributed database system. In accordance with the technique, a record is checked to see if it has expired only when it has been accessed for a read or a write. If at the time of a read a record is determined to have expired, then it is not served. If at the time of a write a record is determined to have expired, then the write is treated as an insertion of a new record, and steps are taken to treat the insertion consistently with regard to the previous expired version. A background process is used to delete records that have not been written to or actively deleted by a client after expiration.

Claims (39)

1. A method for automatically deleting an expired record in a distributed database system comprising a plurality of nodes, wherein each node comprises one or more processor-based systems and is configured to manage a respective one of a plurality of databases, the method comprising:

receiving a write request for a record at the one of the plurality of nodes, wherein the record is one of a plurality of records within a partition stored in the database managed by the one of the plurality of nodes and wherein the partition comprises a distinct portion of a logical database;

determining whether the record is expired responsive to receiving the write request;

determining if an incarnation number associated with the partition exceeds an incarnation number stored in the record responsive to determining that the record is expired;

responsive to determining that the incarnation number associated with the partition exceeds the incarnation number stored in the record,

generating an updated record based on the write request, wherein generating the updated record comprises replacing the incarnation number stored in the record with the incarnation number associated with the partition and

overwriting the expired record with the updated record; and

responsive to determining that the incarnation number associated with the partition does not exceed the incarnation number stored in the record,

deleting the expired record, wherein deleting the expired record comprises sending a message to a remote node to increment an incarnation number associated with a partition stored in the database managed by the remote node,

generating an updated record based on the write request, and

inserting the updated record.

2. The method of claim 1 , wherein generating an updated record based on the write request further comprises setting a sequence number stored in the updated record to an initial value.

3. The method of claim 1 , further comprising:

sending a message to the other nodes regarding the overwriting of the expired record with the updated record.

4. The method of claim 3 , wherein generating the updated record comprises:

obtaining an incarnation number from a remote node, wherein the incarnation number obtained from the remote node is associated with a partition stored in the database managed by the remote node, and

replacing the incarnation number stored in the record with the incarnation number obtained from the remote node.

5. A distributed database system, comprising:

a plurality of nodes, wherein the plurality of nodes are interconnected via a communication system and wherein each node comprises one or more processors and memory; and

a plurality of databases, wherein each node in the plurality of nodes is configured to manage a respective one of a plurality of databases;

wherein each node in the plurality of nodes is further configured to receive a write request for a record, wherein the record is one of a plurality of records within a partition stored in the database managed by the node and wherein the partition comprises a distinct portion of a logical database, to determine whether the record is expired responsive to receiving the write request, to determine if an incarnation number associated with the partition exceeds an incarnation number stored in the record responsive to determining that the record is expired, and, responsive to determining that the incarnation number associated with the partition exceeds the incarnation number stored in the record, to generate an updated record based on the write request, wherein generating the updated record comprises replacing the incarnation number stored in the record with the incarnation number associated with the partition, and to overwrite the expired record with the updated record, and

wherein each node in the plurality of nodes is further configured to, responsive to determining that the incarnation number associated with the partition does not exceed the incarnation number stored in the record, delete the expired record, wherein deleting the expired record comprises sending a message to a remote node to increment an incarnation number associated with a partition stored in the database managed by the remote node, to generate an updated record based on the write request, and to insert the updated record.

6. The system of claim 5 , wherein each node in the plurality of nodes is configured to generate an updated record based on the write request by setting a sequence number stored in the updated record to an initial value.

7. The system of claim 5 , wherein each node in the plurality of nodes is further configured to send a message to the other nodes via the communication system regarding the overwriting of the expired record with the updated record.

8. The system of claim 5 , wherein each node in the plurality of nodes is configured to generate the updated record by obtaining an incarnation number from a remote node, wherein the incarnation number obtained from the remote node is associated with a partition stored in the database managed by the remote node, and replacing the incarnation number stored in the record with the incarnation number obtained from the remote node.

9. A method for automatically deleting an expired record in a distributed database system comprising a plurality of nodes, wherein each node comprises one or more processor-based systems and is configured to manage a respective one of a plurality of databases, the method being performed by one of the plurality of nodes and the method comprising:

reading a record at the one of the plurality of nodes, wherein the record is one of a plurality of records within a partition stored in the database managed by the one of the plurality of nodes and wherein the partition comprises a distinct portion of a logical database;

determining whether the record is expired;

determining if an incarnation number associated with the partition exceeds an incarnation number stored in the record responsive to determining that the record is expired;

purging the record responsive to determining that the incarnation number associated with the partition exceeds the incarnation number stored in the record; and

deleting the expired record responsive to determining that the incarnation number associated with the partition does not exceed the incarnation number stored in the record, wherein deleting the expired record comprises sending a message to a remote node to increment an incarnation number associated with a partition stored in the database managed by the remote node.

10. The method of claim 9 , further comprising:

sending a message to the other nodes regarding the purging of the record.

11. A distributed database system, comprising:

a plurality of nodes, wherein the plurality of nodes are interconnected via a communication system and wherein each node comprises one or more processors and memory; and

a plurality of databases, wherein each node in the plurality of nodes is configured to manage a respective one of a plurality of databases;

wherein each node in the plurality of nodes is further configured to read a record, wherein the record is one of a plurality of records within a partition stored in the database managed by the node and wherein the partition comprises a distinct portion of a logical database, to determine whether the record is expired, to determine if an incarnation number associated with the partition exceeds an incarnation number stored in the record responsive to determining that the record is expired, and to purge the record responsive to determining that the incarnation number associated with the partition exceeds the incarnation number stored in the record, and

wherein each node in the plurality of nodes is further configured to, responsive to determining that the incarnation number associated with the partition does not exceed the incarnation number stored in the record, delete the expired record, wherein deleting the expired record comprises sending a message to a remote node to increment an incarnation number associated with a partition stored in the database managed by the remote node.

12. The system of claim 11 , wherein each node in the plurality of nodes is further configured to send a message to the other nodes regarding the purging of the record.

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 Sep 28, 2007
From: COOPER, BRIAN; WEAVER, DANIEL; BIGBY, MICHAEL; SRIVASTAVA, UTKARSH; BOHANNON, PHILIP L.; YERNENI, RAMANA
To: YAHOO! INC.
Reel/Frame 019896/0617 →
Continuity (1)
Related Publication 20090089313A1 · Apr 2, 2009