IP Library › Granted Patent US 12,730,579
Granted Patent B2
US 12,730,579 · App. 18/758,295 · Granted Sep 8, 2026

Object storage and access management systems and methods

Inventor: Aaron Randolph Bassett (Laconia, NH)
Assignee: NantCell, Inc.
G06F3/0652G06F3/0619G06F3/0635G06F3/064G06F3/067G06F3/0683G06F21/6254H03M13/1515
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 12,730,579
App. No.
18/758,295
Filed
Jun 28, 2024
Granted
Sep 8, 2026
Kind
B2
Art Unit
2137
USPC
711/154
Abstract

A geographically distributed erasure coding system includes multiple computer readable, non-transitory storage memories capable of storing a digital dataset including multiple object blocks, where each storage memory is configured to store one or more of the object blocks of the dataset according to an erasure coding policy. The system includes one or more processors configured to implement the erasure coding policy by distributing the multiple object blocks of the dataset to the multiple storage memories according to distribution criteria of the erasure coding policy, and the distribution criteria include at least one status parameter associated with each storage memory. The multiple storage memories are geographically distributed at different locations from one another.

Claims (34)

1 . A distributed digital object storage system comprising:

at least one non-transitory computer readable memory storing a suite of software instructions; and

at least one processor coupled with the at least one non-transitory computer readable memory and that performs the following operations upon execution of the software instructions:

establishing, in the at least one non-transitory computer readable memory, at least one erasure coding policy for a dataset, the at least one erasure coding policy including distribution criteria defined based on location attributes associated with distributed storage node locations of distributed storage nodes and based on a data chunk type attribute associated with the dataset, wherein the location attributes adhere to a common hierarchical namespace including S2 cell identifiers, each of the distributed storage node includes a location attribute having an S2 cell identifier value indicating a location of the distributed storage node according to a hierarchy of S2 cells, and the at least one erasure coding policy includes at least a specified distance between distributed storage node locations in the hierarchy of S2 cells based on S2 cell identifier values of the location attributes corresponding to each of the distributed storage nodes;

creating multiple object blocks from the dataset, each block of the multiple object blocks having a data chunk type attribute;

establishing separated block storage locations among the distributed storage nodes for the multiple object blocks according to the distribution criteria including the S2 cell identifier values of the location attributes of the distributed storage nodes and the data chunk type attributes of the multiple object blocks, wherein establishing separated block storage locations includes determining a minimum separation distance between separated block storage locations based on an S2 cell identifier value associated with each separated block storage location and at least one risk metric, and determining a maximum separation distance between separated block storage locations based on the S2 cell identifier value associated with each separated block storage location and a constraint associated with the at least one risk metric; and

storing, over a network, the multiple object blocks at their respective separated block storage locations on the distributed storage nodes according to the erasure coding policy.

2 . The distributed digital object storage system of claim 1 , wherein the location attributes comprise location identifiers.

3 . The distributed digital object storage system of claim 2 , wherein the location identifiers comprise geographic location identifiers.

4 . The distributed digital object storage system of claim 2 , wherein the location identifiers comprise at least one of the following: a zip code, a longitude, a latitude, or a plus code.

5 . The distributed digital object storage system of claim 1 , wherein the location attributes adhere to location address space of the distribute storage nodes.

6 . The distributed digital object storage system of claim 5 , wherein each of the multiple object blocks have identifiers adhering to the location address space.

7 . The distributed digital object storage system of claim 6 , wherein the location address space comprises a hash address space.

8 . The distributed digital object storage system of claim 1 , wherein the data chunk type attributes adhere to a common namespace.

9 . The distributed digital object storage system of claim 8 , wherein the common namespace comprises an a priori defined namespace.

10 . The distributed digital object storage system of claim 8 , wherein the common namespace comprises attribute-value pair parameters.

11 . The distributed digital object storage system of claim 1 , where in the at least two of the distributed storage nodes are separated by at least 100 miles.

12 . The distributed digital object storage system of claim 11 , wherein the at least two nodes are separated by at least 1000 miles.

13 . The distributed digital object storage system of claim 1 , wherein the distributed storage nodes comprise at least one of the following: a network area storage system, a storage area network system, or a RAID system.

14 . The distributed digital object storage system of claim 1 , wherein the at least one erasure coding policy enforces a code rate representing a ratio (r) of a number of blocks in the dataset (k) to a total number of block in the multiple object blocks (n), wherein n is greater than k.

15 . The distributed digital object storage system of claim 1 , wherein the data chunk type attribute of at least one block in the multiple object blocks represents a data chunk.

16 . The distributed digital object storage system of claim 15 , wherein the data chunk type attribute of the at least one block in the multiple object blocks represents a redundant data chunk.

17 . The distributed digital object storage system of claim 1 , wherein the data chunk type attribute of at least one block in the multiple object blocks represents a parity chunk.

18 . The distributed digital object storage system of claim 1 , wherein the operations further include recording an event related to at least one block in the multiple object blocks on a notarized ledger.

19 . A method of implementing an erasure coding policy for a distributed digital object storage system, the method comprising:

establishing, in at least one non-transitory computer readable memory, at least one erasure coding policy for a dataset, the at least one erasure coding policy including distribution criteria defined based on location attributes associated with distributed storage node locations of distributed storage nodes and based on a data chunk type attribute associated with the dataset, wherein the location attributes adhere to a common hierarchical namespace including S2 cell identifiers, each of the distributed storage node includes a location attribute having an S2 cell identifier value indicating a location of the distributed storage node according to a hierarchy of S2 cells, and the at least one erasure coding policy includes at least a specified distance between distributed storage node locations in the hierarchy of S2 cells based on S2 cell identifier values of the location attributes corresponding to each of the distributed storage nodes;

creating multiple object blocks from the dataset, each block of the multiple object blocks having a data chunk type attribute;

establishing separated block storage locations among the distributed storage nodes for the multiple object blocks according to the distribution criteria including the S2 cell identifier values of the location attributes of the distributed storage nodes and the data chunk type attributes of the multiple object blocks, wherein establishing separated block storage locations includes determining a minimum separation distance between separated block storage locations based on an S2 cell identifier value associated with each separated block storage location and at least one risk metric, and determining a maximum separation distance between separated block storage locations based on the S2 cell identifier value associated with each separated block storage location and a constraint associated with the at least one risk metric; and

storing, over a network, the multiple object blocks at their respective separated block storage locations on the distributed storage nodes according to the erasure coding policy.

20 . A non-transitory computer-readable medium comprising computer-executable instructions configured to, when executed by at least one processor, cause the processor to perform operations including:

establishing, in at least one non-transitory computer readable memory, at least one erasure coding policy for a dataset, the at least one erasure coding policy including distribution criteria defined based on location attributes associated with distributed storage node locations of distributed storage nodes and based on a data chunk type attribute associated with the dataset, wherein the location attributes adhere to a common hierarchical namespace including S2 cell identifiers, each of the distributed storage node includes a location attribute having an S2 cell identifier value indicating a location of the distributed storage node according to a hierarchy of S2 cells, and the at least one erasure coding policy includes at least a specified distance between distributed storage node locations in the hierarchy of S2 cells based on S2 cell identifier values of the location attributes corresponding to each of the distributed storage nodes;

creating multiple object blocks from the dataset, each block of the multiple object blocks having a data chunk type attribute;

establishing separated block storage locations among the distributed storage nodes for the multiple object blocks according to the distribution criteria including the S2 cell identifier values of the location attributes of the distributed storage nodes and the data chunk type attributes of the multiple object blocks, wherein establishing separated block storage locations includes determining a minimum separation distance between separated block storage locations based on an S2 cell identifier value associated with each separated block storage location and at least one risk metric, and determining a maximum separation distance between separated block storage locations based on the S2 cell identifier value associated with each separated block storage location and a constraint associated with the at least one risk metric; and

storing, over a network, the multiple object blocks at their respective separated block storage locations on the distributed storage nodes according to the erasure coding policy.

Assignments (2)
CHANGE OF NAME Recorded Jul 1, 2024
From: IMMUNITYBIO, INC.
To: NANTCELL, INC.
Reel/Frame 068079/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2024
From: BASSETT, AARON RANDOLPH
To: IMMUNITYBIO, INC.
Reel/Frame 067880/0945 →
Continuity (4)
Continuation 18125890 · Mar 24, 2023
Continuation 17316262 · May 10, 2021
Provisional Application 63022652 · May 11, 2020
Related Publication 20240354026A1 · Oct 24, 2024
References Cited (24)
US 8683591B2 · Wittenschlaeger · 2014 [cited by applicant]
US 9858325B1 · Suver · 2018 [cited by examiner]
US 10133742B2 · Soon-Shiong · 2018 [cited by applicant]
US 10140683B2 · Vaske et al. · 2018 [cited by applicant]
US 10607343B2 · Song et al. · 2020 [cited by applicant]
US 10637799B2 · Wittenschlaeger · 2020 [cited by applicant]
US 11476874B1 · Li · 2022 [cited by examiner]
US 20140317053A1 · Grube · 2014 [cited by examiner]
US 20150261455A1 · Gough · 2015 [cited by examiner]
US 20190079869A1 · Baldi et al. · 2019 [cited by applicant]
US 20190332473A1 · Yang · 2019 [cited by examiner]
US 20200034040A1 · Garman · 2020 [cited by applicant]
US 20210034264A1 · Ali · 2021 [cited by examiner]
US 20210081403A1 · Tian · 2021 [cited by examiner]
US 20210097107A1 · Patel · 2021 [cited by examiner]
US 20210141759A1 · Mahony · 2021 [cited by examiner]
US 20210263667A1 · Whitlock · 2021 [cited by examiner]
US 20210405908A1 · Bassett · 2021 [cited by applicant]
US 20230229335A1 · Bassett · 2023 [cited by applicant]
S2geometry, S2 Cells, Mar. 17, 2018, https://web.archive.org/web/20180317155431/https://s2geometry.io/devguide/s2cell_hierarchy (Year: 2018). [cited by examiner]
S2 Geometry, S2 Cells & Overview, Feb. 2020, https://web.archive.org/web/20200219143238/http://s2geometry.io/about/overview (Year: 2020). [cited by examiner]
Staff Contributor, “What is Network Topology? Best Guide to Types and Diagrams,” p. 1-20 (2019). [cited by applicant]
Office Action from corresponding U.S. Appl. No. 17/316,262 dated Oct. 13, 2022. [cited by applicant]
Office Action from corresponding U.S. Appl. No. 17/316,262 dated Nov. 18, 2022. [cited by applicant]