IP Library Granted Patent US 10,884,654
Granted Patent B2
US 10,884,654 · App. 16/237,317 · Granted Jan 5, 2021

System and method for quality of service assurance of multi-stream scenarios in a hard disk drive

Inventors: Shu Li (Bothell, WA); Jianjian Huo (San Jose, CA)
Assignee: Alibaba Group Holding Limited
G06F3/0656G06F3/0619G06F3/0644G06F3/0679G06F11/1004
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,884,654
App. No.
16/237,317
Granted
Jan 5, 2021
Kind
B2
Abstract

One embodiment facilitates data placement in a storage device. During operation, the system receives incoming data from multiple streams, wherein the incoming data includes a plurality of data parts. The system formats the data parts by inserting a header before and a tail after each data part, wherein a formatted data part includes a respective data part, the header, and the tail, and wherein the header and the tail indicate an order and a destination zone for the respective data part within a stream. The system sequentially writes the formatted data parts to a pre-allocated journal zone of a non-volatile memory of the storage device. The system concatenates the data parts in the order indicated by their respective header and tail. The system sequentially writes the concatenated data parts to the non-volatile memory based on the destination zone indicated by their respective header and tail.

Claims (81)

1. A computer-implemented method for facilitating data placement in a storage device, the method comprising:

receiving incoming data from multiple streams, wherein the incoming data includes a plurality of data parts;

formatting the data parts by inserting a header before and a tail after each data part, wherein a formatted data part includes a respective data part, the header, and the tail, and wherein the header and the tail indicate an order and a destination zone for the respective data part within a stream;

sequentially writing the formatted data parts to a pre-allocated journal zone of a non-volatile memory of the storage device;

concatenating the data parts in the order indicated by their respective header and tail; and

sequentially writing the concatenated data parts to the non-volatile memory based on the destination zone indicated by their respective header and tail.

2. The method of claim 1 , wherein prior to sequentially writing the concatenated data parts to the non-volatile memory, the method further comprises:

detecting a fault; and

reconstructing a mapping between a logical address of a data part and a physical address of the data part based on a destination zone identifier and a part length indicated by its respective header.

3. The method of claim 1 , wherein the received incoming data is placed in a first data buffer, and

wherein subsequent to sequentially writing the formatted data parts to the pre-allocated journal zone, the method further comprises:

reading out the formatted data parts from the pre-allocated journal zone into a second data buffer; and

validating the formatted data parts in the second data buffer.

4. The method of claim 3 , wherein validating the formatted data parts in the second data buffer involves, for a respective formatted data part:

confirming that a part identifier indicated by its respective header matches a part identifier indicated by its respective tail; and

checking the respective data part based on a cyclic redundancy check value indicated by its respective tail.

5. The method of claim 1 ,

wherein the header further indicates:

a part start which is a beginning of the respective data part;

a part identifier which is a unique identifier of the respective data part;

a part length which indicates a number of bits included in the respective data part;

a destination zone identifier which is a unique identifier of a zone to which the respective data part is to be written; and

a destination zone offset which indicates a position from the part start at which to begin writing the respective data part, and

wherein the tail further indicates:

a part identifier which matches the part identifier indicated in the header;

a cyclic redundancy check (CRC) value which indicates a signature for the respective data part encoded with an existing CRC codec; and

a part end which indicates an end of the respective data part.

6. The method of claim 1 , wherein in response to determining that a current write pointer is at an end of the pre-allocated journal zone, the method further comprises setting the current write pointer to a start of the pre-allocated journal zone.

7. The method of claim 1 , further comprising:

configuring a spare sector pool region of the non-volatile memory to be utilized by both a pending sector replacement and data which requires additional storage capacity due to the pre-allocated journal zone.

8. The method of claim 1 , wherein the storage drive includes a hard disk drive.

9. The method of claim 1 , further comprising:

allocating a zone of the non-volatile memory of the storage device as the pre-allocated journal zone.

10. A computer system for facilitating data placement, the 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, wherein the computer system is a storage device, the method comprising:

receiving incoming data from multiple streams, wherein the incoming data includes a plurality of data parts;

formatting the data parts by inserting a header before and a tail after each data part, wherein a formatted data part includes a respective data part, the header, and the tail, and wherein the header and the tail indicate an order and a destination zone for the respective data part within a stream;

sequentially writing the formatted data parts to a pre-allocated journal zone of a non-volatile memory of the storage device;

concatenating the data parts in the order indicated by their respective header and tail; and

sequentially writing the concatenated data parts to the non-volatile memory based on the destination zone indicated by their respective header and tail.

11. The computer system of claim 10 , wherein prior to sequentially writing the concatenated data parts to the non-volatile memory, the method further comprises:

detecting a fault; and

reconstructing a mapping between a logical address of a data part and a physical address of the data part based on a destination zone identifier and a part length indicated by its respective header.

12. The computer system of claim 10 , wherein the received incoming data is placed in a first data buffer, and

wherein subsequent to sequentially writing the formatted data parts to the pre-allocated journal zone, the method further comprises:

reading out the formatted data parts from the pre-allocated journal zone into a second data buffer; and

validating the formatted data parts in the second data buffer.

13. The computer system of claim 12 , wherein validating the formatted data parts in the second data buffer involves, for a respective formatted data part:

confirming that a part identifier indicated by its respective header matches a part identifier indicated by its respective tail; and

checking the respective data part based on a cyclic redundancy check value indicated by its respective tail.

14. The computer system of claim 10 ,

wherein the header further indicates:

a part start which is a beginning of the respective data part;

a part identifier which is a unique identifier of the respective data part;

a part length which indicates a number of bits included in the respective data part;

a destination zone identifier which is a unique identifier of a zone to which the respective data part is to be written; and

a destination zone offset which indicates a position from the part start at which to begin writing the respective data part, and

wherein the tail further indicates:

a part identifier which matches the part identifier indicated in the header;

a cyclic redundancy check (CRC) value which indicates a signature for the respective data part encoded with an existing CRC codec; and

a part end which indicates an end of the respective data part.

15. The computer system of claim 10 , wherein in response to determining that a current write pointer is at an end of the pre-allocated journal zone, the method further comprises setting the current write pointer to a start of the pre-allocated journal zone.

16. The computer system of claim 10 , wherein the method further comprises:

configuring a spare sector pool region of the non-volatile memory to be utilized by both a pending sector replacement and data which requires additional storage capacity due to the pre-allocated journal zone.

17. The computer system of claim 10 , wherein the storage drive includes a hard disk drive.

18. The computer system of claim 10 , wherein the method further comprises:

allocating a zone of the non-volatile memory of the storage device as the pre-allocated journal zone.

19. An apparatus for facilitating data placement, the apparatus comprising:

a communication unit configured to receive incoming data from multiple streams, wherein the incoming data includes a plurality of data parts;

a data-formatting unit configured to format the data parts by inserting a header before and a tail after each data part, wherein a formatted data part includes a respective data part, the header, and the tail, and wherein the header and the tail indicate an order and a destination zone for the respective data part within a stream;

a journal zone-managing unit configured to sequentially write the formatted data parts to a pre-allocated journal zone of a non-volatile memory of the storage device;

a data-concatenating unit configured to concatenate the data parts in the order indicated by their respective header and tail; and

a data-writing unit configured to sequentially write the concatenated data parts to the non-volatile memory based on the destination zone indicated by their respective header and tail.

20. The apparatus of claim 19 , wherein the journal zone-managing unit is further configured to allocate a zone of the non-volatile memory of the storage device as the pre-allocated journal zone, and wherein the apparatus further comprises:

a fault-managing unit configured to:

detect a fault; and

reconstruct a mapping between a logical address of a data part and a physical address of the data part based on a destination zone identifier and a part length indicated by its respective header; and

a data-validating unit configured to:

read out the formatted data parts from the pre-allocated journal zone into a second data buffer; and

validate the formatted data parts in the second data buffer.

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 Jan 15, 2019
From: LI, SHU; HUO, JIANJIAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 048009/0994 →
Continuity (1)
Related Publication 20200210100A1 · Jul 2, 2020