IP Library Granted Patent US 9,952,918
Granted Patent B2
US 9,952,918 · App. 14/815,889 · Granted Apr 24, 2018

Two level addressing in storage clusters

Inventors: Paul R. M. Carpentier (Boechout, BE); Russell Turpin (Corpus Christi, TX)
Assignee: CARINGO INC.
G06F11/0709G06F3/061G06F3/0604G06F3/064G06F3/067G06F3/0607G06F3/0613G06F3/0626G06F3/0635G06F3/0659G06F3/0667G06F3/0683G06F11/2084G06F12/1009H04L45/745H04L67/1097G06F2212/206
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 9,952,918
App. No.
14/815,889
Granted
Apr 24, 2018
Kind
B2
Abstract

Digital objects are stored and accessed within a fixed content storage cluster by using a page mapping table and a pages index. A stream is read from the cluster by using a portion of its unique identifier as a key into the page mapping table. The page mapping table indicates a node holding a pages index indicating where the stream is stored. A stream is written by storing the stream on any suitable node and then updating a pages index stored within the cluster responsible for knowing the location of digital objects having unique identifiers that fall within a particular address range. The cluster recovers from a node failure by first replicating streams from the failed node and reallocating a page mapping table to create a new pages index. The remaining nodes send records of the unique identifiers corresponding to objects they hold to the new pages index.

Claims (18)

1. A method of recovering from a node failure within a storage cluster, said method comprising:

detecting within said storage cluster that a first computer node out of a plurality of computer nodes is unavailable, said storage cluster including stored digital objects in persistent storage, each of said digital objects being identified by a unique identifier (UID), and wherein said unique identifiers having ranges of possible values, wherein a first UID range being mapped to said first computer node;

replacing said mapping of said first UID range to said first computer node with a mapping of said first UID range to a second computer node within said storage cluster different from said first computer node;

causing each computer node within said storage cluster other than said first computer node to determine a set of unique identifiers falling within said first UID range indicating digital objects stored upon said each computer node;

receiving, at said second computer node from said each computer node, said sets that identify said unique identifiers and said each computer nodes where the digital objects corresponding to said unique identifiers are stored; and

updating a disk index in RAM on said second computer node to indicate on which of said each computer nodes said unique identifiers are stored, said disk index including unique identifiers of digital objects stored on said second computer node and locations on a disk of said second computer node of said digital objects that are stored on said second computer node.

2. The method as recited in claim 1 wherein said storage cluster is a write-once read-many (WORM) fixed-content storage cluster.

3. The method as recited in claim 1 wherein said steps of claim 1 do not require a disk access.

4. The method as recited in claim 1 wherein said first UID range being mapped to said first computer node in a table of said storage cluster, and wherein said replacing occurs in said table.

5. A non-transitory computer-readable storage medium comprising computer code for recovering from a node failure in a storage cluster, said computer code of said non-transitory computer-readable storage medium executable by a machine to perform the following:

detecting within said storage cluster that a first computer node out of a plurality of computer nodes is unavailable, said storage cluster including stored digital objects in persistent storage, each of said digital objects being identified by a unique identifier (UID), and wherein said unique identifiers having ranges of possible values, wherein a first UID range being mapped to said first computer node;

replacing said mapping of said first UID range to said first computer node with a mapping of said first UID range to a second computer node within said storage cluster different from said first computer node;

causing each computer node within said storage cluster other than said first computer node to determine a set of unique identifiers falling within said first UID range indicating digital objects stored upon said each computer node;

receiving, at said second computer node from said each computer node, said sets that identify said unique identifiers and said each computer nodes where the digital objects corresponding to said unique identifiers are stored; and

updating a disk index in RAM on said second computer node to indicate on which of said each computer nodes said unique identifiers are stored, said disk index including unique identifiers of digital objects stored on said second computer node and locations on a disk of said second computer node of said digital objects that are stored on said second computer node.

6. The non-transitory computer-readable storage medium as recited in claim 5 wherein said storage cluster is a write-once read-many (WORM) fixed-content storage cluster.

7. The non-transitory computer-readable storage medium as recited in claim 5 wherein said steps of claim 5 do not require a disk access.

8. The non-transitory computer-readable storage medium as recited in claim 5 wherein said first UID range being mapped to said first computer node in a table of said storage cluster, and wherein said replacing occurs in said table.

Assignments (4)
SECURITY INTEREST Recorded May 29, 2024
From: DATACORE SOFTWARE CORPORATION
To: VISTARA TECHNOLOGY GROWTH FUND V MASTER, LP
Reel/Frame 067563/0884 →
SECURITY INTEREST Recorded Oct 28, 2021
From: DATACORE SOFTWARE CORPORATION
To: STIFEL BANK
Reel/Frame 057969/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2021
From: CARINGO, INC.
To: DATACORE SOFTWARE CORPORATION
Reel/Frame 055607/0754 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2018
From: CARPENTIER, PAUL R. M.; TURPIN, RUSSELL
To: CARINGO INC.
Reel/Frame 044744/0284 →
Continuity (3)
Division 14200183 · Mar 7, 2014
Continuation 13517523 · Jun 13, 2012
Related Publication 20160028629A1 · Jan 28, 2016