IP Library Granted Patent US 10,956,373
Granted Patent B1
US 10,956,373 · App. 15/819,961 · Granted Mar 23, 2021

Page-based metadata system for distributed filesystem

Inventors: Alen Lynn Peacock (Orem, UT); Erik Sean Nolte (Salt Lake City, UT); John Timothy Olds (Sandy, UT); Jeffrey Michael Wendling (West Jordan, UT)
Assignee: Vivint, Inc.
G06F16/182
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 10,956,373
App. No.
15/819,961
Granted
Mar 23, 2021
Kind
B1
Abstract

Methods and systems are described for storing metadata in a network of distributed remote storage devices. An example computer implemented method includes identifying a plurality of metadata inodes, grouping the plurality of metadata inodes into one or more metadata pages, mapping the plurality of metadata inodes and the plurality of metadata pages, and storing the mapping as a manifest page, and storing data to and retrieving data from the distributed remote storage devices using the plurality of metadata inodes.

Claims (50)

1. A computer implemented method for retrieving metadata from a network of distributed remote storage devices, comprising:

referencing a metadata manifest page for a metadata page location of at least one metadata inode within a metadata page based at least in part on an identifier mapping stored at the metadata manifest page, wherein the metadata manifest page is different from the metadata page;

obtaining information associated with the metadata page location of the at least one metadata inode based at least in part on an inode identifier and a page identifier associated with the at least one metadata inode, wherein the identifier mapping comprises a mapping from the inode identifier to the page identifier; and

accessing the at least one metadata inode based at least in part on the obtained information.

2. The method of claim 1 , further comprising:

identifying a plurality of metadata inodes, wherein the at least one metadata inode is included in the plurality of metadata inodes; and

grouping the plurality of metadata inodes into one or more metadata pages based at least in part on at least one criteria.

3. The method of claim 2 , wherein the at least one criteria include a type of metadata inode.

4. The method of claim 2 , further comprising:

mapping the plurality of metadata inodes and the one or more metadata pages, wherein the metadata manifest page is based at least in part on the mapping.

5. The method of claim 4 , further comprising:

storing the mapping as the metadata manifest page; and

storing data to the distributed remote storage devices using the plurality of metadata inodes.

6. The method of claim 2 , further comprising:

conducting a search by first obtaining at least one metadata page associated with the at least one metadata inode followed by obtaining the at least one metadata inode, wherein accessing the at least one metadata inode is based at least in part on the conducted search.

7. The method of claim 2 , wherein the plurality of metadata inodes include inode identifiers, and the one or more metadata pages include page identifiers.

8. The method of claim 7 , further comprising:

mapping the plurality of metadata inodes and the one or more metadata pages based at least in part on the inode identifiers and the page identifiers, wherein the metadata manifest page is based at least in part on the mapping.

9. The method of claim 1 , wherein the at least one metadata inode includes at least one of a directory inode, a file inode, and a symlink inode.

10. The method of claim 1 , further comprising:

creating additional metadata pages when additional distributed remote storage devices are added to the network; and

storing the additional metadata pages on an existing metadata page.

11. The method of claim 10 , further comprising:

creating additional metadata manifest pages with one or more identifiers when additional distributed remote storage devices are added to the network, wherein the one or more identifiers are associated with the additional metadata pages.

12. An apparatus for retrieving metadata from a network of distributed remote storage devices, comprising:

a processor;

a memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable by the processor to:

reference a metadata manifest page for a metadata page location of at least one metadata inode within a metadata page based at least in part on an identifier mapping stored at the metadata manifest page, wherein the metadata manifest page is different from the metadata page;

obtain information associated with the metadata page location of the at least one metadata inode based at least in part on an inode identifier and a page identifier associated with the at least one metadata inode, wherein the identifier mapping comprises a mapping from the inode identifier to the page identifier; and

access the at least one metadata inode based at least in part on the obtained information.

13. The apparatus of claim 12 , wherein the instructions are executable by the processor to:

identify a plurality of metadata inodes, wherein the at least one metadata inode is included in the plurality of metadata inodes; and

group the plurality of metadata inodes into one or more metadata pages based at least in part on at least one criteria.

14. The apparatus of claim 13 , wherein the at least one criteria include a type of metadata inode.

15. The apparatus of claim 13 , wherein the instructions are executable by the processor to:

map the plurality of metadata inodes and the one or more metadata pages, wherein the metadata manifest page is based at least in part on the mapping.

16. The apparatus of claim 15 , wherein the instructions are executable by the processor to:

store the mapping as the metadata manifest page; and

store data to the distributed remote storage devices using the plurality of metadata inodes.

17. The apparatus of claim 13 , wherein the instructions are executable by the processor to:

conduct a search by first obtaining at least one metadata page associated with the at least one metadata inode followed by obtaining the at least one metadata inode, wherein accessing the at least one metadata inode is based at least in part on the conducted search.

18. A computer-program product for storing metadata in a network of distributed remote storage devices, the computer-program product comprising a non-transitory computer-readable medium storing instructions executable by a processor to:

reference a metadata manifest page for a metadata page location of at least one metadata inode within a metadata page based at least in part on an identifier mapping stored at the metadata manifest page, wherein the metadata manifest page is different from the metadata page;

obtain information associated with the metadata page location of the at least one metadata inode based at least in part on an inode identifier and a page identifier associated with the at least one metadata inode, wherein the identifier mapping comprises a mapping from the inode identifier to the page identifier; and

access the at least one metadata inode based at least in part on the obtained information.

19. The computer-program product of claim 18 , wherein the instructions are executable by the processor to:

identify a plurality of metadata inodes, wherein the at least one metadata inode is included in the plurality of metadata inodes; and

group the plurality of metadata inodes into one or more metadata pages based at least in part on at least one criteria.

20. The computer-program product of claim 19 , wherein the at least one criteria include a type of metadata inode.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2025
From: STORJ LABS INTERNATIONAL SEZC
To: STORJ LABS INC.
Reel/Frame 071378/0713 →
AFTER-ACQUIRED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 27, 2025
From: VIVINT LLC; SMART HOME PROS, INC.; VIVINT AMIGO, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS PRIORITY COLLATERAL TRUSTEE
Reel/Frame 070349/0816 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: PEACOCK, ALEN LYNN; NOLTE, ERIK SEAN; OLDS, JOHN TIMOTHY; WENDLING, JEFFREY MICHAEL
To: VIVINT, INC.
Reel/Frame 070333/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VIVINT, INC.
To: PANDO TECHNOLOGIES, INC.
Reel/Frame 070333/0777 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: PANDO TECHNOLOGIES, INC.
To: STORJ LABS INTERNATIONAL SEZC
Reel/Frame 070333/0815 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 049283, FRAME 0566 Recorded Nov 11, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VIVINT, INC.
Reel/Frame 069334/0137 →
RELEASE (REEL 047029/ FRAME 0304) Recorded Nov 1, 2024
From: BANK OF AMERICA, N.A.
To: VIVINT LLC (F/K/A VIVINT, INC.)
Reel/Frame 069289/0468 →
RELEASE OF SECURITY INTEREST Recorded Jul 12, 2021
From: BANK OF AMERICA, N.A.
To: VIVINT, INC.
Reel/Frame 056832/0824 →
SECURITY AGREEMENT Recorded May 23, 2019
From: VIVINT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049283/0566 →
SUPPL. NO. 2 SECURITY AGREEMENT Recorded Sep 6, 2018
From: VIVINT, INC.
To: BANK OF AMERICA N.A.
Reel/Frame 047024/0048 →
SECURITY AGREEMENT Recorded Sep 6, 2018
From: VIVINT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 047029/0304 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: PEACOCK, ALEN LYNN; NOLTE, ERIK SEAN; OLDS, JOHN TIMOTHY; WENDLING, JEFFREY MICHAEL
To: VIVINT, INC.
Reel/Frame 044193/0909 →