IP Library Granted Patent US 10,235,083
Granted Patent B1
US 10,235,083 · App. 15/678,278 · Granted Mar 19, 2019

Systems and methods for efficiently moving data within a filesystem

Inventors: Anurag Vora (Sunnyvale, CA); Brad A Boyer (San Jose, CA); Madhav Buddhi (Sunnyvale, CA); Freddy James (Thrissur, IN); Ajay P Salpekar (Hayward, CA)
Assignee: Veritas Technologies LLC
G06F3/0647G06F3/0604G06F3/064G06F3/065G06F3/067G06F3/0644G06F17/30135
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,235,083
App. No.
15/678,278
Granted
Mar 19, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for efficiently moving data within a filesystem may include (1) partitioning, on a storage device, physical address space of a filesystem into a plurality of logical partitions, (2) allocating, on the storage device, at least one container of data block identifiers representing data blocks for each of the logical partitions, (3) maintaining, on the storage device, a partition map of values identifying the container of data block identifiers, the logical partitions, and at least one offset associated with each of the logical partitions, (4) sending, on the storage device, the data blocks from a source logical partition within the logical partitions to a target logical partition within the logical partitions, and (5) updating, on the storage device, the partition map based on the data blocks sent from the source logical partition to the target logical partition. Various other methods, systems, and computer-readable media are also disclosed.

Claims (36)

1. A computer-implemented method for efficiently moving data within a filesystem, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

partitioning, on a storage device, a physical address space of a filesystem into a plurality of logical partitions;

allocating, on the storage device, at least one container of data block identifiers representing data blocks for each of the logical partitions;

maintaining, on the storage device, a partition map of values identifying the container of data block identifiers, the logical partitions, and at least one offset associated with each of the logical partitions;

sending, on the storage device, the data blocks from a source logical partition within the logical partitions to a target logical partition within the logical partitions; and

updating, on the storage device, the partition map based on the data blocks sent from the source logical partition to the target logical partition.

2. The method of claim 1 , wherein the container of data block identifiers corresponds to a virtual device created in each of the logical partitions.

3. The method of claim 1 , wherein the container of data block identifiers comprises a set of contiguous logical block numbers.

4. The method of claim 1 , wherein sending, on the storage device, the data blocks from the source logical partition to the target logical partition comprises performing a bulk copy operation of the data blocks from the source logical partition to the target logical partition.

5. The method of claim 1 , wherein the data blocks are sent from the source logical partition to the target logical partition during a shrink operation associated with the storage device.

6. The method of claim 1 , wherein the data blocks are sent from the source logical partition to the target logical partition during a storage device defragmentation operation.

7. The method of claim 1 , wherein updating, on the storage device, the partition map based on the data blocks sent from the source logical partition to the target logical partition comprises updating the values identifying the container of data block identifiers, the logical partitions, and the offset associated with each of the logical partitions.

8. A system for efficiently moving data within a filesystem, the system comprising:

a partitioning module, stored in memory, that partitions, on a storage device, a physical address space of a filesystem into a plurality of logical partitions;

an allocation module, stored in memory, that allocates, on the storage device, at least one container of data block identifiers representing data blocks for each of the logical partitions;

a maintaining module, stored in memory that maintains, on the storage device, a partition map of values identifying the container of data block identifiers, the logical partitions, and at least one offset associated with each of the logical partitions;

a sending module, stored in memory, on the storage device, that sends the data blocks from a source logical partition within the logical partitions to a target logical partition within the logical partitions;

an updating module, stored in memory, on the storage device, that updates the partition map based on the data blocks sent from the source logical partition to the target logical partition; and

at least one physical processor that executes the partitioning module, the allocating module, the maintaining module, the sending module, and the updating module.

9. The system of claim 8 , wherein the container of data block identifiers corresponds to a virtual device created in each of the logical partitions.

10. The system of claim 8 , wherein the container of data block identifiers comprises a set of contiguous logical block numbers.

11. The system of claim 8 , wherein the sending module sends the data blocks from the source logical partition to the target logical partition by performing a bulk copy operation of the data blocks from the source logical partition to the target logical partition.

12. The system of claim 8 , wherein the data blocks are sent from the source logical partition to the target logical partition during a shrink operation associated with the storage device.

13. The system of claim 8 , wherein the data blocks are sent from the source logical partition to the target logical partition during a storage device defragmentation operation.

14. The system of claim 8 , wherein the updating module updates the partition map based on the data blocks sent from the source logical partition to the target logical partition by updating the values identifying the container of data block identifiers, the logical partitions, and the offset associated with each of the logical partitions.

15. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

partition, on a storage device, a physical address space of a filesystem into a plurality of logical partitions;

allocate, on the storage device, at least one container of data block identifiers representing data blocks for each of the logical partitions;

maintain, on the storage device, a partition map of values identifying the container of data block identifiers, the logical partitions, and at least one offset associated with each of the logical partitions;

send, on the storage device, the data blocks from a source logical partition within the logical partitions to a target logical partition within the logical partitions; and

update, on the storage device, the partition map based on the data blocks sent from the source logical partition to the target logical partition.

16. The non-transitory computer-readable medium of claim 15 , wherein the at least one container of data block identifiers comprises a set of contiguous logical block numbers.

17. The non-transitory computer-readable medium of claim 15 , wherein the data blocks from the source logical partition to the target logical partition are sent by performing a bulk copy operation of the data blocks from the source logical partition to the target logical partition.

18. The non-transitory computer-readable medium of claim 15 , wherein the data blocks are sent from the source logical partition to the target logical partition during a shrink operation associated with the storage device.

19. The non-transitory computer-readable medium of claim 15 , wherein the data blocks are sent from the source logical partition to the target logical partition during a storage device defragmentation operation.

20. The non-transitory computer-readable medium of claim 15 , wherein the partition map is updated based on the data blocks sent from the source logical partition to the target logical partition by updating the values identifying the container of data block identifiers, the logical partitions, and the offset associated with each of the logical partitions.

Assignments (15)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0938 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 051594/0529 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0412 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 2, 2019
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 051594/0529 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 044682/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: VORA, ANURAG; BOYER, BRAD; BUDDHI, MADHAV; JAMES, FREDDY; SALPEKAR, AJAY
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 043304/0259 →