IP Library Granted Patent US 10,649,691
Granted Patent B2
US 10,649,691 · App. 15/122,310 · Granted May 12, 2020

Storage system

Inventors: Mitsuo Hayasaka (Tokyo, JP); Ken Nomura (Tokyo, JP); Keiichi Matsuzawa (Tokyo, JP); Hitoshi Kamei (Tokyo, JP)
Assignee: HITACHI, LTD.
G06F3/0659G06F3/064G06F3/0608G06F3/0611G06F3/0673G06F3/0676G06F12/0804G06F12/0871G06F2212/1016G06F2212/312
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,649,691
App. No.
15/122,310
Granted
May 12, 2020
Kind
B2
Abstract

An example of storage system obtains a reference request of a reference request data block that is included in the content and is stored in the medium area. The storage system determines a number of gaps among addresses, in the medium area, of a plurality of data blocks continuous in the content including the reference request data block. The storage system determines, based on the number of gaps, whether or not defrag based on the plurality of data blocks is valid. The storage system writes, when the defrag is determined to be valid, the plurality of data blocks read from the medium area to the memory area, into continuous address areas of the medium area.

Claims (43)

1. A storage system, comprising:

a medium area provided by at least one storage device to store data of a content; and

a controller comprising a memory area for temporarily storing data of the medium area,

wherein the controller is configured to:

obtain, from a source, a reference request of a reference request data block that is included in the content and is stored in the medium area;

read, from the medium area, k data blocks, wherein k is a number larger than the requested reference request data block and is a value predetermined before the reference request;

determine an occupation range in content and a number of gaps among addresses, in the medium area, of a plurality of data blocks continuous in the content including the reference request data block;

determine, based on the occupation range in content and the number of gaps, whether or not defrag based on the plurality of data blocks is valid;

write, when the defrag is determined to be valid, the plurality of data blocks read from the medium area to the memory area, into continuous address areas of the medium area; and

send the reference request data block to the source,

wherein the number of gaps needed for defragment in case of the occupation range in content includes head data or tail end data of the content is fewer than the number of gaps needed for defragment in case of the occupation range in content does not include head data or tail end data of the content.

2. The storage system according to claim 1 , wherein the controller is configured to:

read, when the reference request data block is not cached in the memory area, the plurality of data blocks including the reference request data block from the medium area into the memory area;

determine, based on the number of gaps of the plurality of read data blocks, whether or not the defrag based on the plurality of data blocks is valid; and

return, when the reference request data block is cached in the memory area, the cached reference request data block without reading the plurality of data blocks from the medium area.

3. The storage system according to claim 1 , wherein the controller is configured to write, in processing of an update request of the content accompanied by an update request data block, when a plurality of data blocks continuous in the content and including the update request data block are cached in the memory area, the plurality of data blocks including the update request data block into the continuous address areas of the medium area.

4. The storage system according to claim 1 , wherein the controller is configured to determine, based on an occupation range of the plurality of data blocks in the content, whether or not the defrag based on the plurality of data blocks is valid.

5. The storage system according to claim 1 ,

wherein the controller includes defrag execution control information for controlling execution of the defrag of the content, and

wherein the controller is configured to:

set, when all data in the content has been stored in the continuous address areas of the medium area, the defrag execution control information to invalid defrag; and

determine, when the defrag execution control information indicates valid defrag, based on the number of gaps, whether or not the defrag based on the plurality of data blocks is valid.

6. The storage system according to claim 5 , wherein the controller is configured to determine, based on a type of an update request of the content, whether or not to set the defrag execution control information to invalid defrag.

7. The storage system according to claim 5 , wherein the controller is configured to execute off-line defrag of the content when the defrag execution control information indicates valid defrag, and avoid executing the off-line defrag when the defrag execution control information indicates invalid defrag.

8. The storage system according to claim 1 ,

wherein the controller includes a memory expansion area coupled to the memory area to expand the memory area, and

the controller is configured to migrate the data blocks that are stored in the memory area and are continuous in the content to continuous address areas of the memory expansion area.

9. The storage system according to claim 1 , wherein the controller is configured to:

store released block management information for managing a block that stores past data in the medium area and is to be released; and

execute, in the medium area, release processing of the block registered in the released block management information.

10. A method of controlling a storage system,

the storage system comprising:

a medium area provided by at least one storage device to store data of a content; and

a memory area for temporarily storing data of the medium area,

the method comprising:

obtaining, from a source, a reference request of a reference request data block that is included in the content and is stored in the medium area;

reading, from the medium area, k data blocks, wherein k is a number larger than the requested reference request data block and is a value predetermined before the reference request;

determining an occupation range in content and a number of gaps among addresses, in the medium area, of a plurality of data blocks continuous in the content including the reference request data block;

determining, based on the occupation range in content and the number of gaps, whether or not defrag based on the plurality of data blocks is valid;

writing, when the defrag is determined to be valid, the plurality of data blocks stored in the medium area into continuous address areas of the medium area; and

sending the reference request data block to the source,

wherein the number of gaps needed for defragment in case of the occupation range in content includes head data or tail end data of the content is fewer than the number of gaps needed for defragment in case of the occupation range in content does not include head data or tail end data of the content.

11. The method of claim 10 , wherein k is independent and unrelated to the number of requested reference request data blocks.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2016
From: HAYASAKA, MITSUO; NOMURA, KEN; MATSUZAWA, KEIICHI; KAMEI, HITOSHI
To: HITACHI LTD.
Reel/Frame 039567/0027 →
Continuity (1)
Related Publication 20160371035A1 · Dec 22, 2016