# US 10,872,622 B1 · Method and system for deploying mixed storage products on a uniform storage infrastructure

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,872,622 B1
- Document ID: US10872622B1
- Status: Granted
- Kind: B1
- Application number: 16/795,410
- Filed: 2020-02-19
- Granted: 2020-12-22
- Earliest claimed: 2020-02-19
- Assignees: Alibaba Group Holding Limited
- Applicants: Alibaba Group Holding Limited
- Inventors: Shu Li
- Web page: https://patentgrep.com/patent/US10872622B1

## CPC

- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G11B 5/09: Digital recording
- G06F 3/0649: {Lifecycle management}
- G06F 3/068: {Hybrid storage device}
- G11B 20/1833: {by adding special lists or symbols to the coded information (G11B20/1806, G11B20/1866 take precedence)}
- G11B 20/1217: {on discs}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)

## Abstract

A system is provided to receive a first request to write data to a hard disk drive (HDD) which comprises a plurality of tracks which can be configured as a conventional magnetic recording (CMR) media or as a shingled magnetic recording (SMR) media, wherein an SMR-configured track stores a greater amount of data than a CMR-configured track. The system writes the data to a first CMR-configured track, and classifies data stored in CMR-configured tracks as hot or cold based on a first or a second predetermined threshold. The system copies cold data from the CMR-configured tracks to an SMR zone, and makes available portions of the CMR-configured tracks previously occupied by the cold data.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving a first request to write data to a hard disk drive (HDD) which comprises a plurality of tracks which can be configured as a conventional magnetic recording (CMR) media or as a shingled magnetic recording (SMR) media, wherein an SMR-configured track stores a greater amount of data than a CMR-configured track;
writing the data to a first CMR-configured track;
classifying data stored in CMR-configured tracks as hot or cold, wherein a hot classification indicates an access frequency greater than a first predetermined threshold, and wherein a cold classification indicates an access frequency less than a second predetermined threshold;
copying cold data from the CMR-configured tracks to a zone associated with SMR-configured tracks; and
making available portions of the CMR-configured tracks previously occupied by the cold data.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
detecting a condition to recycle the first CMR-configured track;
copying hot data from the first CMR-configured track to a volatile memory;
writing the hot data from the volatile memory to a second CMR-configured track by overwriting a next available portion of the second CMR-configured track; and
making available an entirety of the first CMR-configured track.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
classifying the data stored in the CMR-configured tracks as warm, wherein a warm classification indicates an access frequency less than the first predetermined threshold and greater than the second predetermined threshold;
wherein in response to detecting the condition to recycle the first CMR-configured track, the method further comprises:
copying the warm data from the first CMR-configured track to the volatile memory; and
subsequent to writing the hot data from the volatile memory to the second CMR-configured track, writing the warm data from the volatile memory to the second CMR-configured track or a third CMR-configured track with available space by overwriting the next available portion of the second or the third CMR-configured track.

### Claim 4 (depends on 1)

The method of claim 1, wherein prior to writing the data to the first CMR-configured track, the method further comprises:
in response to determining that the data cannot be successfully committed in time to meet a predetermined throughput requirement:
sequentially writing the data into a persistent journal; and
writing the data from the persistent journal to the first or another CMR-configured track.

### Claim 5 (depends on 1)

The method of claim 1,
wherein the cold data stored in the CMR-configured tracks is encoded based on a first erasure code (EC) and a first parity check matrix,
wherein the first parity check matrix includes a user matrix portion and a parity matrix portion,
wherein a first codeword stored as cold data in the CMR-configured tracks comprises a first user portion and a first EC parity,
wherein a second codeword stored as cold data in the CMR-configured tracks comprises a second user portion and a second EC parity, and
wherein copying cold data from the CMR-configured tracks to the zone associated with the SMR-configured tracks comprises:
concatenating the first user portion and the second user portion to form a new user portion;
generating a new parity for the concatenated new user portion by performing a bitwise exclusive-OR operation on the first EC parity and the second EC parity; and
writing a new codeword to the zone associated with the SMR-configured tracks, wherein the new codeword comprises the new user portion and the new parity,
thereby avoiding a first decoding of the first user portion, a second decoding of the second user portion, and a third encoding of the first user portion and the second user portion.

### Claim 6 (depends on 5)

The method of claim 5,
wherein the new codeword is encoded based on a new parity check matrix which comprises a first copy of the user matrix portion, a second copy of the user matrix portion, and the parity matrix portion.

### Claim 7 (depends on 1)

The method of claim 1,
wherein a distributed storage system comprises a plurality of storage clusters,
wherein a respective storage cluster does not include any reserved capacity and does include a plurality of control servers and a plurality of Ethernet just a bunch of disks (E-JBODs),
wherein a control server includes a persistent journal and a first number of hard disk drives with tracks configurable as CMR or SMR media,
wherein an E-JBOD includes a custom network interface card (NIC) and a plurality of HDD groups,
wherein an HDD group comprises a plurality of hard disk drives (HDDs) with tracks configurable as CMR or SMR media, and
wherein a total number of HDDs of the E-JBOD is greater than the first number of HDDs in the control server.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
detecting a condition which requires adding an additional control server or an additional E-JBOD to the respective storage cluster;
extending resources within the respective storage cluster by deploying the additional control server or the additional E-JBOD in the respective storage cluster;
detecting a condition which requires adding an additional storage cluster to the distributed storage system; and
extending resources within the distributed storage system by adding the additional storage cluster to the distributed storage system.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving a second request to read data from the hard disk drive (HDD);
performing a search in a data structure based on a logical address for the requested data to obtain a corresponding physical address; and
reading the requested data from the HDD based on the obtained physical address.

### Claim 10 (depends on 1)

The method of claim 1, wherein prior to writing the data to the first CMR-configured track, the method further comprises:
determining whether the data of the first request is new data or an update to existing data;
in response to determining that the data is new data:
writing the new data to the first CMR-configured track at a first physical address; and
creating an entry in a data structure which maps a logical address of the data to the first physical address; and
in response to determining that the data is updated data:
performing a search in the data structure based on the logical address of the data to obtain a second physical address;
writing the updated data to a CMR-configured track at the second physical address.

### Claim 11

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 a first request to write data to a hard disk drive (HDD) which comprises a plurality of tracks which can be configured as a conventional magnetic recording (CMR) media or as a shingled magnetic recording (SMR) media, wherein an SMR-configured track stores a greater amount of data than a CMR-configured track;
writing the data to a first CMR-configured track;
classifying data stored in CMR-configured tracks as hot or cold, wherein a hot classification indicates an access frequency greater than a first predetermined threshold, and wherein a cold classification indicates an access frequency less than a second predetermined threshold;
copying cold data from the CMR-configured tracks to a zone associated with SMR-configured tracks; and
making available portions of the CMR-configured tracks previously occupied by the cold data.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the method further comprises:
detecting a condition to recycle the first CMR-configured track;
copying hot data from the first CMR-configured track to a volatile memory;
writing the hot data from the volatile memory to a second CMR-configured track by overwriting a next available portion of the second CMR-configured track; and
making available an entirety of the first CMR-configured track.

### Claim 13 (depends on 12)

The computer system of claim 12, wherein the method further comprises:
classifying the data stored in the CMR-configured tracks as warm, wherein a warm classification indicates an access frequency less than the first predetermined threshold and greater than the second predetermined threshold;
wherein in response to detecting the condition to recycle the first CMR-configured track, the method further comprises:
copying the warm data from the first CMR-configured track to the volatile memory; and
subsequent to writing the hot data from the volatile memory to the second CMR-configured track, writing the warm data from the volatile memory to the second CMR-configured track or a third CMR-configured track with available space by overwriting the next available portion of the second or the third CMR-configured track.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein prior to writing the data to the first CMR-configured track, the method further comprises:
in response to determining that the data cannot be successfully committed in time to meet a predetermined throughput requirement:
sequentially writing the data into a persistent journal; and
writing the data from the persistent journal to the first or another CMR-configured track.

### Claim 15 (depends on 11)

The computer system of claim 11,
wherein the cold data stored in the CMR-configured tracks is encoded based on a first erasure code (EC) and a first parity check matrix,
wherein the first parity check matrix includes a user matrix portion and a parity matrix portion,
wherein a first codeword stored as cold data in the CMR-configured tracks comprises a first user portion and a first EC parity,
wherein a second codeword stored as cold data in the CMR-configured tracks comprises a second user portion and a second EC parity, and
wherein copying cold data from the CMR-configured tracks to the zone associated with the SMR-configured tracks comprises:
concatenating the first user portion and the second user portion to form a new user portion;
generating a new parity for the concatenated new user portion by performing a bitwise exclusive-OR operation on the first EC parity and the second EC parity; and
writing a new codeword to the zone associated with the SMR-configured tracks, wherein the new codeword comprises the new user portion and the new parity,
thereby avoiding a first decoding of the first user portion, a second decoding of the second user portion, and a third encoding of the first user portion and the second user portion.

### Claim 16 (depends on 11)

The computer system of claim 11,
wherein the computer system comprises a plurality of storage clusters,
wherein a respective storage cluster does not include any reserved capacity and does include a plurality of control servers and a plurality of Ethernet just a bunch of disks (E-JBODs),
wherein a control server includes a persistent journal and a first number of hard disk drives with tracks configurable as CMR or SMR media,
wherein an E-JBOD includes a custom network interface card (NIC) and a plurality of HDD groups,
wherein an HDD group comprises a plurality of hard disk drives (HDDs) with tracks configurable as CMR or SMR media, and
wherein a total number of HDDs of the E-JBOD is greater than the first number of HDDs in the control server.

### Claim 17 (depends on 16)

The computer system of claim 16, wherein the method further comprises:
detecting a condition which requires adding an additional control server or an additional E-JBOD to the respective storage cluster;
extending resources within the respective storage cluster by deploying the additional control server or the additional E-JBOD in the respective storage cluster;
detecting a condition which requires adding an additional storage cluster to the distributed storage system; and
extending resources within the distributed storage system by adding the additional storage cluster to the distributed storage system.

### Claim 18 (depends on 11)

The computer system of claim 11, wherein the method further comprises:
receiving a second request to read data from the hard disk drive (HDD);
performing a search in a data structure based on a logical address for the requested data to obtain a corresponding physical address; and
reading the requested data from the HDD based on the obtained physical address.

### Claim 19 (depends on 11)

The computer system of claim 11, wherein prior to writing the data to the first CMR-configured track, the method further comprises:
determining whether the data of the first request is new data or an update to existing data;
in response to determining that the data is new data:
writing the new data to the first CMR-configured track at a first physical address; and
creating an entry in a data structure which maps a logical address of the data to the first physical address; and
in response to determining that the data is updated data:
performing a search in the data structure based on the logical address of the data to obtain a second physical address;
writing the updated data to a CMR-configured track at the second physical address.

### Claim 20

An apparatus, comprising:
a non-volatile memory of a hard disk drive,
wherein the hard disk drive comprises a plurality of tracks which can be configured as a conventional magnetic recording (CMR) media or as a shingled magnetic recording (SMR) media, wherein an SMR-configured track stores a greater amount of data than a CMR-configured track; and
a controller configured to:
receive a first request to write data to the hard disk drive;
write the data to a first CMR-configured track;
classify data stored in CMR-configured tracks as hot or cold, wherein a hot classification indicates an access frequency greater than a first predetermined threshold, and wherein a cold classification indicates an access frequency less than a second predetermined threshold;
copy cold data from the CMR-configured tracks to a zone associated with SMR-configured tracks; and
make available portions of the CMR-configured tracks previously occupied by the cold data.
