IP Library Granted Patent US 12675219
Granted Patent B2
US 12675219 · App. 18/819,487 · Granted Jul 7, 2026

Enhanced workload management using internal copy and/or zone-append technologies

Inventors: Vishal Jose Mannanal (Renton, WA); Eric Shobe (Kihei, HI); Sandeep Kumar R. Ummadi (Issaquah, WA)
Assignee: Dropbox, Inc.
G06F3/061G06F3/0655G06F3/0676
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 12675219
App. No.
18/819,487
Granted
Jul 7, 2026
Kind
B2
Abstract

The present technology enhances workload management of data storage systems by using an internal copy function and/or a zone-append technology. The internal copy function is used, e.g., in merge operations to move data between locations on a disk without using off-disk resources (e.g., processing or memory of a CPU). Zone-append technology uses nameless writes (e.g., write instruction without an assigned destination address on the disk) to combine IO units from different threads to be written to a common zone of a disk (e.g., a shingled magnetic recording (SMR) disk). Sequential addresses are assigned to IO units from different threads based on their order in the write queue, reducing the latency and seek time typically associated with random writes. The zone-append technology, e.g., uses sequential write operations within specified zones, allowing the disk to determine the actual write location and to report post-write logical block addresses (LBAs).

Claims (53)

1 . A method of writing to a disk, the method comprising:

receiving, at the disk, nameless write instructions including a plurality of threads for writing disk input-output (IO) units to the disk, the plurality of threads including a first thread and a second thread, the first thread comprising first instructions to write to the disk IO units of the first thread, and the second thread comprising second instructions to write to the disk IO units of the second thread, wherein arrival times of the disk IO units of the first thread overlap arrival times of the disk IO units of the second thread, and wherein the nameless write instructions do not specify where the disk IO units are to be written;

determining, as the disk IO units of the plurality of threads are added to a write queue on the disk, a common zone for the disk IO units to be written;

assigning, by the disk, write addresses in the common zone to the disk IO units; and

providing, by the disk, a post-write logical block address (LBA) representing the write addresses in the common zone to which the disk IO units were written.

2 . The method of claim 1 , wherein providing the post-write LBA further comprises reporting, from the disk, the post-write LBA comprising locations in the common zone where the disk IO units were written.

3 . The method of claim 1 , wherein receiving the nameless write instructions further comprises:

receiving the nameless write instructions at respective time intervals, one disk IO unit per thread of the plurality of threads being received per time interval; and

appending the disk IO units of the plurality of threads sequentially to the write queue such that a subset of the disk IO units received during a same time interval are arranged as a consecutive sequence within the write queue and assigned sequential addresses in the common zone.

4 . The method of claim 1 , wherein the disk comprises:

a plurality of zones spatially separated from neighboring zones, each zone of the plurality of zones comprising spatially abutting stored bits; and

a head that moves from a first zone to a second zone when transitioning from writing to the first zone to writing to the second zone.

5 . The method of claim 1 , wherein determining the common zone further comprises adding the disk IO units to the write queue comprising a queue depth for writing to the common zone that is proportional to a number of threads in the plurality of threads.

6 . The method of claim 1 , wherein receiving the nameless write instructions further comprises receiving the nameless write instructions at the disk comprising a Small Computer System Interface (SCSI) disk, a Serial attached SCSI (SAS) disk, or a Serial Advanced Technology Attachment (SATA) disk.

7 . The method of claim 1 , further comprising:

receiving, at the disk, unnamed disk IO units; and

assigning addresses to the unnamed disk IO units in the common zone as the disk IO units are added to an object storage device mapped timeline of the write queue.

8 . The method of claim 1 , wherein receiving the nameless write instructions further comprises:

receiving the nameless write instructions including the plurality of threads comprising object storage device threads at the disk comprising an object storage device.

9 . The method of claim 1 , wherein assigning the write addresses further comprises:

receiving, at the disk, an instruction from a processor to perform a data copy request, the data copy request requesting to move stored data from a source address to a destination address, the source address and the destination address being on the disk; and

performing, at the disk, the data copy request using an internal copy function that moves the stored data from the source address to the destination address, the internal copy function being performed entirely on the disk without transferring the stored data off the disk.

10 . The method of claim 9 , wherein performing the data copy request using the internal copy function further comprises performing the internal copy function without using resources of the processor and without using resources of a host bus adapter.

11 . The method of claim 9 , further comprising:

determining, at the processor, whether the source address and the destination address are both on the disk, and

signaling from the processor to the disk that the data copy request is to be performed using the internal copy function, when the source address and the destination address are determined to both on the disk.

12 . The method of claim 9 , further comprising, upon completion of performing the data copy request, reporting, by the disk, a post-write logical block addresses (LBA) representing a location to which the stored data was copied.

13 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by one or more processors, cause the one or more processors to:

receive, at a disk, nameless write instructions including a plurality of threads for writing disk input-output (IO) units to the disk, wherein the nameless write instructions do not specify where the disk IO units are to be written;

determine, as the disk IO units of the plurality of threads are added to a write queue on the disk, a common zone for the disk IO units to be written;

assign, by the disk, write addresses in the common zone to the disk IO units; and

provide, by the disk, a post-write logical block address (LBA) representing the write addresses assigned to the disk IO units in the write queue to write to the common zone.

14 . The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further cause the one or more processors to provide the post-write LBA by:

reporting, from the disk, the post-write LBA comprising locations in the common zone where the disk IO units were written.

15 . The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further cause the one or more processors to receive the nameless write instructions by:

receiving the nameless write instructions at respective time intervals, one disk IO unit per thread of the plurality of threads being received per time interval; and

appending the disk IO units of the plurality of threads sequentially to the write queue such that a subset of the disk IO units received during a same time interval are arranged as a consecutive sequence within the write queue and assigned sequential addresses in the common zone.

16 . The non-transitory computer-readable storage medium of claim 13 , wherein the disk comprises:

a plurality of zones spatially separated from neighboring zones, each zone of the plurality of zones comprising spatially abutting stored bits; and

a head that moves from a first zone to a second zone when transitioning from writing to the first zone to writing to the second zone.

17 . The non-transitory computer-readable storage medium of claim 13 , wherein:

determining the common zone further comprises adding the disk IO units to the write queue comprising a queue depth for writing to the common zone that is proportional to a number of threads in the plurality of threads.

18 . A computing system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, configure the computing system to:

receive, at a disk, nameless write instructions including a plurality of threads for writing disk input-output (IO) units to the disk, the plurality of threads including a first thread and a second thread, the first thread comprising first instructions to write to the disk IO units of the first thread, and the second thread comprising second instructions to write to the disk IO units of the second thread, wherein arrival times of the disk IO units of the first thread overlap arrival times of the disk IO units of the second thread, and wherein the nameless write instructions do not specify where the disk IO units are to be written;

determine, as the disk IO units of the plurality of threads are added to a write queue on the disk, a common zone for the disk IO units to be written; and

assign, by the disk, write addresses in the common zone to the disk IO units.

19 . The computing system of claim 18 , further comprising instructions that, when executed by the one or more processors, configure the computing system to:

report, from the disk, post-write logical block addresses (LBAs) comprising locations in the common zone where the disk IO units were written.

20 . The computing system of claim 18 , further comprising the instructions that, when executed by the one or more processors, configure the computing system to:

receive the nameless write instructions at respective time intervals, one IO unit per thread of the plurality of threads being received per time interval; and

append the disk IO units of the plurality of threads sequentially to the write queue such that a subset of the disk IO units received during a same time interval are arranged as a consecutive sequence within the write queue and assigned sequential addresses in the common zone.