IP Library Granted Patent US 8,935,761
Granted Patent B2
US 8,935,761 · App. 13/889,942 · Granted Jan 13, 2015

Accessing storage nodes in an on-line media storage system

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,935,761
App. No.
13/889,942
Granted
Jan 13, 2015
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module receiving data objects from a plurality of authorized users and determining a system level storage efficiency preference for a data object. The method continues with the DS processing module selecting a set of storage nodes of an on-line media storage system based on the system level storage efficiency preference and determining dispersed storage error encoding parameters. The method continues with the DS processing module encoding the data object in accordance with the dispersed storage error encoding parameters to produce encoded data slices and generating system addressing information. The method continues with the DS processing module storing the encoded data slices in the set of storage nodes using the system addressing information and updating a user profile for the authorized user to include the system addressing information.

Claims (78)

1. A method for execution by a processing module of one or more computing devices associated with an on-line media storage system, the method comprises:

randomly and continuously receiving, for storage in the on-line media storage system, data objects from a plurality of authorized users, wherein data type of a data object of the data objects is one of a plurality of different data types and wherein memory space within the on-line media storage system is primarily allocated to the plurality of authorized users on an as-needed basis; and

processing the data objects for storage by entering a loop that includes:

for the data object from an authorized user of the plurality of authorized users, determining a system level storage efficiency preference based on system storage node information and one or more of: the data type of the data object, data size of the data object, identity of the authorized user, location of the authorized user, system privileges of the authorized user, storage preferences of the authorized user, and user group affiliation of the authorized user;

selecting a set of storage nodes from a multitude of storage nodes of the on-line media storage system based on the system level storage efficiency preference;

determining dispersed storage error encoding parameters based on the set of storage nodes or based on the system level storage efficiency preference;

encoding the data object in accordance with the dispersed storage error encoding parameters to produce encoded data slices;

generating system addressing information for the encoded data slices based on the encoded data slices, the set of storage nodes, and identity of the data object;

updating a user profile for the authorized user to include the system addressing information for the data object; and

repeating the loop for another data object from another authorized user of the plurality of authorized users as the data object from the authorized user.

2. The method of claim 1 further comprises:

prior to processing the data objects, temporary storing the data objects in a buffer; and

retrieving the data objects from the buffer in accordance with a priority protocol to process the data objects.

3. The method of claim 1 , wherein the system storage node information comprises one or more of:

memory utilization of each of the multitude of storage nodes;

available memory of each of the multitude of storage nodes;

allocated data type storage preference of each of the multitude of storage nodes;

access history of each of the multitude of storage nodes;

geographic location of each of the multitude of storage nodes; and

physical characteristics of each of the multitude of storage nodes.

4. The method of claim 1 , wherein the determining the system level storage efficiency preference comprises:

interpreting the one or more of: the data type of the data object, the data size of the data object, the identity of the authorized user, the location of the authorized user, the system privileges of the authorized user, the storage preferences of the authorized user, and the user group affiliation of the authorized user to produce a user storage preference;

identifying a preliminary set of storage nodes based on the user storage preference;

determining preliminary dispersed storage error encoding parameters based on the user storage preference;

determining the system storage node information for the preliminary set of storage nodes;

when the system storage node information indicates that the preliminary set of storage nodes is appropriate for storing the encoded data slices, utilizing the preliminary set of storage nodes for the set of storage nodes and utilizing the preliminary dispersed storage error encoding parameters as the dispersed storage error encoding parameters; and

when the system storage node information indicates that the preliminary set of storage nodes is not appropriate for storing the encoded data slices, selecting the set of storage nodes based on a compromise between the user storage preference and the system storage node information of the set of storage nodes.

5. The method of claim 1 , wherein the generating the system addressing information for the encoded data slices further comprises:

generating, as the system addressing information, slice names for the encoded data slices, wherein a slice name of the slice names includes identify of one of the encoded data slices, an address of a range of addresses assigned to a storage node of the set of storage nodes, and identity of the data object.

6. The method of claim 1 further comprises:

issuing write commands to the set of storage nodes for storing the encoded data slices therein.

7. The method of claim 1 further comprises:

determining the data type of the data object to be a video file;

determining geographic location of the authorized user;

prioritizing allocated data type storage preference and geographic location of the system level storage efficiency preference;

selecting the set of storage nodes primarily based on the data object being the video file and the geographic location of the authorized user; and

determining the dispersed storage error encoding parameters primarily based on the data object being the video file.

8. A dispersed storage (DS) module comprises:

a first module, when operable within a computing device, causes the computing device to:

randomly and continuously receive, for storage in an on-line media storage system, data objects from a plurality of authorized users, wherein data type of a data object of the data objects is one of a plurality of different data types and wherein memory space within the on-line media storage system is primarily allocated to the plurality of authorized users on an as-needed basis;

a second module, when operable within the computing device, processes the data objects for storage by entering a loop that causes the computing device to:

for the data object from an authorized user of the plurality of authorized users, determine a system level storage efficiency preference based on system storage node information and one or more of: the data type of the data object, data size of the data object, identity of the authorized user, location of the authorized user, system privileges of the authorized user, storage preferences of the authorized user, and user group affiliation of the authorized user;

select a set of storage nodes from a multitude of storage nodes of the on-line media storage system based on the system level storage efficiency preference; and

determine dispersed storage error encoding parameters based on the set of storage nodes or based on the system level storage efficiency preference; and

a third module, when operable within the computing device, processes the data objects for storage by continuing the loop that causes the computing device to:

encode the data object in accordance with the dispersed storage error encoding parameters to produce encoded data slices;

generate system addressing information for the encoded data slices based on the encoded data slices, the set of storage nodes, and identity of the data object;

update a user profile for the authorized user to include the system addressing information for the data object; and

repeat the loop for another data object from another authorized user of the plurality of authorized users as the data object from the authorized user.

9. The DS module of claim 8 further comprises:

the first module further functions to:

prior to processing the data objects, temporary store the data objects in a buffer; and

retrieve the data objects from the buffer in accordance with a priority protocol to process the data objects.

10. The DS module of claim 8 , wherein the system storage node information comprises one or more of:

memory utilization of each of the multitude of storage nodes;

available memory of each of the multitude of storage nodes;

allocated data type storage preference of each of the multitude of storage nodes;

access history of each of the multitude of storage nodes;

geographic location of each of the multitude of storage nodes; and

physical characteristics of each of the multitude of storage nodes.

11. The DS module of claim 8 , wherein the second module functions to determine the system level storage efficiency preference by:

interpreting the one or more of: the data type of the data object, the data size of the data object, the identity of the authorized user, the location of the authorized user, the system privileges of the authorized user, the storage preferences of the authorized user, and the user group affiliation of the authorized user to produce a user storage preference;

identifying a preliminary set of storage nodes based on the user storage preference;

determining preliminary dispersed storage error encoding parameters based on the user storage preference;

determining the system storage node information for the preliminary set of storage nodes;

when the system storage node information indicates that the preliminary set of storage nodes is appropriate for storing the encoded data slices, utilizing the preliminary set of storage nodes for the set of storage nodes and utilizing the preliminary dispersed storage error encoding parameters as the dispersed storage error encoding parameters; and

when the system storage node information indicates that the preliminary set of storage nodes is not appropriate for storing the encoded data slices, selecting the set of storage nodes based on a compromise between the user storage preference and the system storage node information of the set of storage nodes.

12. The DS module of claim 8 , wherein the third module further functions to generate the system addressing information for the encoded data slices by:

generating, as the system addressing information, slice names for the encoded data slices, wherein a slice name of the slice names includes identity of one of the encoded data slices, an address of a range of addresses assigned to a storage node of the set of storage nodes, and identity of the data object.

13. The DS module of claim 8 further comprises:

the third module further functions to issue write commands to the set of storage nodes for storing the encoded data slices therein.

14. The DS module of claim 8 further comprises:

the second module further functions to:

determine the data type of the data object to be a video file;

determine geographic location of the authorized user;

prioritize allocated data type storage preference and geographic location of the system level storage efficiency preference;

select the set of storage nodes primarily based on the data object being the video file and the geographic location of the authorized user; and

determine the dispersed storage error encoding parameters primarily based on the data object being the video file.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2013
From: GLADWIN, S. CHRISTOPHER; MARKISON, TIMOTHY W.; DHUSE, GREG; SHIRLEY, THOMAS FRANKLIN, JR.; LEGGETTE, WESLEY; RESCH, JASON K.; GRUBE, GARY W.
To: CLEVERSAFE, INC.
Reel/Frame 030377/0116 →