IP Library Granted Patent US 10,303,601
Granted Patent B2
US 10,303,601 · App. 15/675,416 · Granted May 28, 2019

Method and system for rearranging a write operation in a shingled magnetic recording device

Inventors: Shu Li (Bothell, WA); Xiaowei Jiang (San Mateo, CA)
Assignee: Alibaba Group Holding Limited
G06F12/0292G06F3/061G06F3/064G06F3/0608G06F3/0611G06F3/0613G06F3/0626G06F3/0676G06F12/0253
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,303,601
App. No.
15/675,416
Granted
May 28, 2019
Kind
B2
Abstract

One embodiment facilitates a write operation in a shingled magnetic recording device. During operation, the system receives, by a controller module of the device, a request to write first data, wherein the device has a plurality of bands with overlapping tracks for storing data. In response to determining that the first data is updated data corresponding to original data stored in a first band, the system appends the updated data to a second band with available storage space. The system merges the updated data with the original data.

Claims (89)

1. A computer-implemented method, comprising:

receiving, by a controller module of a device, a request to write first data, wherein the device has a plurality of bands with overlapping tracks for storing data;

in response to determining that the first data is updated data corresponding to original data stored in a first band;

determining whether an available storage space of a second band is less than a predetermined threshold;

in response to determining that the available storage space of the second band is not less than the predetermined threshold, appending the updated data to the second band; and

in response to determining that the available storage space of the second band is less than the predetermined threshold:

obtaining a new band from a pool of free bands; and

appending a remainder of the first data to the new band;

merging the updated data with the original data; and

updating a mapping of a logical block address of the first data to a physical block address of the device.

2. The method of claim 1 , wherein merging the updated data with the original data comprises:

reading out the original data from the first band;

modifying the original data based on the updated data appended to the second band; and

writing back the modified data to the first band or another band.

3. The method of claim 1 , wherein merging the updated data with the original data is in response to detecting a condition based on one or more of:

a time interval or a frequency;

determining that the available storage space of the second band is less than the predetermined threshold; and

determining that a logical block address of the first data has been mapped to a physical block address more than a predetermined number of times.

4. The method of claim 1 , wherein in response to determining that the first data is updated data corresponding to original data stored in the first band, the method further comprises:

marking as invalid a corresponding portion of the original data of the first band;

performing a defragmentation operation based on the marked data; and

in response to determining an available band based on the defragmentation operation, releasing the available band to the pool of free bands.

5. The method of claim 1 , wherein in response to determining that the first data is not updated data corresponding to original data stored in the bands, the method further comprises:

accumulating new data in a buffer by storing the first data in the buffer; and

in response to determining that the buffer includes data of a size sufficient to fill an entire band:

obtaining a second new band from the pool of free bands;

writing the accumulated data from the buffer to the second new band; and

updating a mapping of a logical block address of the accumulated new data to a physical block address of the device.

6. The method of claim 1 , wherein the updated data is appended to the second band starting sequentially from a first available portion of the second band.

7. The method of claim 1 , wherein in response to determining that the first data is updated data corresponding to original data stored in the first band, the method further comprises:

determining that a spare sector may be allocated for storing the first data:

allocating the spare sector;

writing the first data to the allocated spare sector; and

updating a mapping of a logical block address of the first data to a physical block address of the device.

8. The method of claim 1 , wherein the plurality of bands includes a first group of bands and a second group of bands, and

wherein new data is written to the first group, and wherein updated data corresponding to data stored in the first group is written to the second group.

9. The method of claim 8 , wherein the device includes a spare sector area, and

wherein new data is written to the plurality of bands, and wherein updated data corresponding to data stored in the first group is written to the spare sector area.

10. A computer system, comprising:

a processor; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method, the method comprising:

receiving, by a controller module of the system, a request to write first data, wherein the system has a plurality of bands with overlapping tracks for storing data;

in response to determining that the first data is updated data corresponding to original data stored in a first band;

determining whether an available storage space of a second band is less than a predetermined threshold;

in response to determining that the available storage space of the second band is not less than the predetermined threshold, appending the updated data to the second band; and

in response to determining that the available storage space of the second band is less than the predetermined threshold:

obtaining a new band from a pool of free bands; and

appending a remainder of the first data to the new band;

merging the updated data with the original data; and

updating a mapping of a logical block address of the first data to a physical block address of the device.

11. The computer system of claim 10 , wherein merging the updated data with the original data comprises:

reading out the original data from the first band;

modifying the original data based on the updated data appended to the second band; and

writing back the modified data to the first band or another band.

12. The computer system of claim 10 , wherein merging the updated data with the original data is in response to detecting a condition based on one or more of:

a time interval or a frequency;

determining that the available storage space of the second band is less than the predetermined threshold; and

determining that a logical block address of the first data has been mapped to a physical block address more than a predetermined number of times.

13. The computer system of claim 10 , wherein in response to determining that the first data is updated data corresponding to original data stored in the first band, the method further comprises:

marking as invalid a corresponding portion of the original data of the first band;

performing a defragmentation operation based on the marked data; and

in response to determining an available band based on the defragmentation operation, releasing the available band to the pool of free bands.

14. The computer system of claim 10 , wherein in response to determining that the first data is not updated data corresponding to original data stored in the bands, the method further comprises:

accumulating new data in a buffer by storing the first data in the buffer; and

in response to determining that the buffer includes data of a size sufficient to fill an entire band:

obtaining a second new band from the pool of free bands;

writing the accumulated data from the buffer to the second new band; and

updating a mapping of a logical block address of the accumulated new data to a physical block address of the system.

15. The computer system of claim 10 , wherein the updated data is appended to the second band starting sequentially from a first available portion of the second band.

16. The computer system of claim 10 , wherein in response to determining that the first data is updated data corresponding to original data stored in the first band, the method further comprises:

determining that a spare sector may be allocated for storing the first data:

allocating the spare sector;

writing the first data to the allocated spare sector; and

updating a mapping of a logical block address of the first data to a physical block address of the system.

17. The computer system of claim 10 , wherein the plurality of bands includes a first group of bands and a second group of bands, and

wherein new data is written to the first group, and wherein updated data corresponding to data stored in the first group is written to the second group.

18. The computer system of claim 17 , wherein the device includes a spare sector area, and

wherein new data is written to the plurality of bands, and wherein updated data corresponding to data stored in the first group is written to the spare sector area.

19. A storage device, comprising:

a plurality of bands with overlapping tracks for storing data, wherein the plurality of bands includes a first group of bands and a second group of bands, wherein new data is written to the first group, and wherein updated data corresponding to data stored in the first group is written to the second group; and

a controller module configured to:

receive a request to write first data;

in response to determining that the first data is updated data corresponding to original data stored in a first band;

determine whether an available storage space of a second band is less than a predetermined threshold;

in response to determining that the available storage space of the second band is not less than the predetermined threshold, append the updated data corresponding to the original data to a second band with available storage space; and

in response to determining that the available storage space of the second band is less than the predetermined threshold:

obtain a new band from a pool of free bands; and

append a remainder of the first data to the new band; and

merge the updated data corresponding to the original data with the original data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2017
From: LI, SHU; JIANG, XIAOWEI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 043287/0476 →
Continuity (1)
Related Publication 20190050327A1 · Feb 14, 2019