IP Library Granted Patent US 8,055,615
Granted Patent B2
US 8,055,615 · App. 12/547,409 · Granted Nov 8, 2011

Method for efficient storage node replacement

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 8,055,615
App. No.
12/547,409
Granted
Nov 8, 2011
Kind
B2
Abstract

Methods and apparatus are described for a horizontally scalable high performance object storage architecture. Metadata are completely decoupled from object storage. Instead of file names, users are given a locator when the object is uploaded and committed. Users can store the locator along with their own metadata or embed it directly in the static content. Clients can choose which storage nodes to store data on based on dynamic measures of node performance. Since there is no coupling among storage servers, performance can scale horizontally by adding more nodes. The decoupling also allows the front end services and storage to scale independently. High service availability is achieved by object-level synchronous replication and having no single point of failure. Failed nodes are rebuilt using copies of data in other nodes without taking the cluster offline. In addition to the replication, the ability to add or remove nodes on-line reduces maintenance-related service downtime.

Claims (24)

1. A computer-implemented method for recreating a first storage node in a cluster comprising a plurality of storage nodes, the computer-implemented method being executed by one or more computing devices, the computer-implemented method comprising:

creating a replica chain for each object stored in the cluster, the created replica chain indicating selected storage nodes in the cluster storing replicas of the object, the created replica chain further identifying a storage address of the object on each selected storage node, wherein each selected storage node has a designated source node in the created replica chain;

identifying objects replicated on the first storage node with reference to other storage nodes of the plurality of storage nodes and without reference to the first storage node;

recreating each of the identified objects on a second storage node with reference to the other storage nodes and without reference to the first storage node, wherein each identified object and its corresponding storage address are copied from the designated source node for the object on the first storage node among the other storage nodes according to the created replica chain for the identified object; and

designating the second storage node as a replacement node for the first storage node.

2. The computer-implemented method of claim 1 wherein the identifying comprises reading a directory of objects on one or more storage nodes among the other storage nodes, wherein each of the one or more storage nodes is designated as a source node by the created replica chain of each object in the directory.

3. The computer-implemented method of claim 1 wherein the storage address of each recreated object on the second storage node matches the storage address of the corresponding object on the first storage node.

4. The computer-implemented method of claim 1 wherein the other storage nodes serve object requests from an application node during the recreating.

5. A system for recreating a first storage node in a cluster comprising a plurality of storage nodes, the system comprising one or more computing devices comprising a processor, a memory, and a network interface attached to a network, the one or more computing devices configured to:

create a replica chain for each object stored in the cluster, the created replica chain indicating selected storage nodes in the cluster storing replicas of the object, the created replica chain further identifying a storage address of the object on each selected storage node, wherein each selected storage node has a designated source node in the created replica chain;

identify objects replicated on the first storage node with reference to other storage nodes of the plurality of storage nodes in the cluster and without reference to the first storage node;

recreate each of the identified objects on a second storage node with reference to the other storage nodes and without reference to the first storage node, wherein each identified object and its corresponding storage address are copied from the designated source node for the object among the other storage nodes according to the created replica chain for the identified object; and

designate the second storage node as a replacement node for the first storage node.

6. The system of claim 5 further configured to identify objects replicated on the first storage node by reading a directory of objects on one or more storage nodes among the other storage nodes, wherein each of the one or more storage nodes is designated as a source node by the created replica chain of each object in the directory.

7. The system of claim 5 wherein the storage address of each recreated object on the second storage node matches the storage address of the corresponding object on the first storage node.

8. The system of claim 5 further configured to serve object requests from an application node with the other storage nodes during the recreating.

9. A computer program product for recreating a first storage node in a cluster comprising a plurality of storage nodes, the computer program product comprising at least one non-transitory computer-readable medium having computer instructions stored therein which are configured to cause a computing device to:

create a replica chain for each object stored in the cluster, the created replica chain indicating selected storage nodes in the cluster storing replicas of the object, the created replica chain further identifying a storage address of the object on each selected storage node, wherein each selected storage node has a designated source node in the created replica chain;

identify objects replicated on the first storage node with reference to other storage node of the plurality of the storage nodes in the cluster and without reference to the first storage node;

recreate each of the identified objects on a second storage node with reference to the other storage nodes and without reference to the first storage node, wherein each identified object and its corresponding storage address are copied from the designated source node for the object among the other storage nodes according to the created replica chain for the identified object; and

designate the second storage node as a replacement node for the first storage node.

10. The computer program product of claim 9 further configured to identify objects replicated on the first storage node by reading a directory of objects on one or more storage nodes among the other storage nodes, wherein each of the one or more storage nodes is designated as a source node by the created replica chain of each object in the directory.

11. The computer program product of claim 9 wherein the storage address of each recreated object on the second storage node matches the storage address of the corresponding object on the first storage node.

12. The computer program product of claim 9 further configured to serve object requests from an application node with the other storage nodes during the recreating.

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 Aug 27, 2009
From: ROBERTS, NATHANIEL DAVID; ZHENG, JEANIE ZHILING; SOHN, CHUNG HAE; LEE, KIHWAL; GEORGE, JOHN VIJOE
To: YAHOO! INC.
Reel/Frame 023154/0830 →
Continuity (1)
Related Publication 20110055156A1 · Mar 3, 2011