IP Library Granted Patent US 10,198,193
Granted Patent B2
US 10,198,193 · App. 15/124,843 · Granted Feb 5, 2019

Computer program product, method, apparatus and data storage system for controlling write operations in the data storage system

Inventors: Christopher James Aston (Worcester, GB); Trevor Edward Willis (High Wycombe, GB)
Assignee: Hitachi Data Systems Engineering UK Limited
G06F3/0613G06F3/064G06F3/067G06F3/0638G06F3/0643G06F3/0659H04L67/42
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,198,193
App. No.
15/124,843
Granted
Feb 5, 2019
Kind
B2
Abstract

The data storage system includes one or more storage apparatuses and a file system server connected to the one or more storage apparatuses and to one or more host computers. Write operations are controlled by providing a free space object which stores a plurality of indicators, each indicator being associated with one of a plurality of storage units for storing data units in the one or more storage apparatuses and each indicator indicating whether the associated storage unit is free or used, executing a read-ahead examination which comprises examining a set of indicators of the free space object for identifying one or more used storage units associated with indicators of the set, in particular for observing a fragmentation status of the storage units associated with the indicators of the set, and executing an allocation examination which comprises examining one or more indicators.

Claims (75)

1. A computer program product comprising computer-readable program instructions which, when running on or loaded into a file system server or computer connected to the file system server or when being executed by one or more processors or processing units of the file system server or the computer, cause the file system server to execute a method for controlling write operations in a data storage system comprising one or more storage apparatuses and the file system server connected to the one or more storage apparatuses and to one or more host computers, the method comprising:

providing a free space object which stores a plurality of indicators, each indicator being associated with one of a plurality of storage units for storing data units in the one or more storage apparatuses and each indicator indicating whether the associated storage unit is free or used,

executing a read-ahead examination which comprises examining a set of indicators of the free space object for identifying one or more used storage units associated with indicators of the set, in particular for observing a fragmentation status of the storage units associated with the indicators of the set,

executing an allocation examination which comprises examining one or more indicators of the set of the free space map object for identifying one or more free storage units to be allocated upon receiving one or more write instructions from one of the one or more host computers at the file system server, and

controlling one or more write operations to the one or more storage apparatuses on the basis of the read-ahead examination and the allocation examination.

2. The computer program product according to claim 1 , further comprising:

executing a read-ahead operation which comprises:

reading, from the one or more storage apparatuses, one or more data units stored in used storage units being associated with indicators of the set based on the read-ahead examination, and

storing the read data units in a memory of the file system server.

3. The computer program product according to claim 2 , wherein controlling one or more write operations comprises:

storing write data units to the memory of the file system server based on the one or more received write instructions,

executing an allocation operation comprising allocating, for each of the stored write data units, one of the one or more free storage units being associated with indicators of the set based on the allocation examination, and

executing a combined flush write operation of contiguously writing to all storage units associated with indicators of the set including writing the write data units from the file system server to the thereto allocated free storage units and re-writing the read data units from the file system server to the thereto allocated used storage units.

4. The computer program product according to claim 1 , wherein

executing the read-ahead examination further comprises determining whether a read-ahead condition is fulfilled for the examined set of indicators, in particular based on the observed fragmentation status of the storage units associated with the indicators of the set, and,

if the read-ahead condition is fulfilled for the examined set of indicators, the method further comprises executing a read-ahead operation which comprises:

reading, from the one or more storage apparatuses, one or more data units stored in used storage units being associated with indicators of the set based on the read-ahead examination, and

storing the read data units to the memory of the file system server.

5. The computer program product according to claim 2 , wherein

reading, from the one or more storage apparatuses, one or more data units stored in used storage units comprises executing a combined read-ahead operation of contiguously reading data units of a plurality of storage units and/or concurrently issuing a plurality of read instructions to the one or more storage apparatuses.

6. The computer program product according to claim 5 , wherein

a number of data units being read in the combined read-ahead operation is controlled based on at least one of a target read number parameter, a minimum read number parameter, and a maximum read number parameter, and/or

a number of concurrently issued read instructions is controlled based on at least one of a target read request number parameter, a minimum read request number parameter, and a maximum read request number parameter.

7. The computer program product according to claim 4 , wherein

controlling one or more write operations comprises:

storing write data units to the memory of the file system server based on the one or more received write instructions,

executing an allocation operation comprising allocating, for each of the stored write data units, one of the one or more free storage units being associated with indicators of the set based on the allocation examination,

checking whether a flush write condition is fulfilled, the flush write condition being that all data units associated with storage units being associated with indicators of the examined set are stored in the memory of the file system server, and

executing, if the flush write condition is fulfilled for the examined set of indicators, a combined flush write operation of contiguously writing to all storage units associated with indicators of the set including writing the write data units from the file system server to the thereto allocated free storage units and re-writing the read data units from the file system server to the thereto allocated used storage units, or

executing, if the flush write condition is not fulfilled for the examined set of indicators, a write operation of writing the write data units from the file system server to the thereto allocated free storage units.

8. The computer program product according to claim 7 , wherein,

if the flush write condition is not fulfilled for the examined set of indicators and all indicators of the set indicate a free storage unit, the write operation is a combined flush write operation of contiguously writing to all storage units associated with indicators of the set.

9. The computer program product according to claim 4 , wherein

the read-ahead condition for the examined set of indicators comprises at least one of:

the number of indicators of the set indicating a free storage unit is equal to or larger than a first threshold, the first threshold being one or more,

the number of indicators of the set indicating a used storage unit is equal to or larger than a second threshold, the second threshold being one or more,

the set of indicators comprises a chain of successive indicators indicating free storage units having a length being equal to or larger than a third threshold, the third threshold being two or more, and

the set of indicators comprises a chain of successive indicators indicating used storage units having a length being equal to or larger than a fourth threshold, the fourth threshold being two or more.

10. The computer program product according to claim 1 , wherein

the free space object comprises at least one of:

a free space table, each row or column of the free space table represents one of the indicators, and

a free space bitmap, each indicator being represented by one bit or each indicator being represented by a set of two or more bits.

11. The computer program product according to claim 1 , further comprising:

providing an allocation cursor indicating a position of the allocation examination in the free space object,

providing a read-ahead cursor indicating a position of the read-ahead examination in the free space object, and

controlling the read-ahead cursor so as to be positioned ahead of the allocation cursor in the free space object.

12. The computer program product according to claim 11 , wherein

controlling the read-ahead cursor to be positioned ahead of the allocation cursor comprises:

controlling a distance between the read-ahead cursor and the allocation cursor in the free space object based on a target distance parameter,

controlling a distance between the read-ahead cursor and the allocation cursor in the free space object based on a minimum distance parameter, and/or

controlling a distance between the read-ahead cursor and the allocation cursor in the free space object based on a maximum distance parameter.

13. The computer program product according to claim 12 , further comprising

setting the target distance parameter, the minimum distance parameter and/or the maximum distance parameter on the basis of at least one of a total storage capacity of the memory, a total amount of available storage space of the memory and a filling ratio of the memory.

14. The computer program product according to claim 11 , wherein

controlling the read-ahead cursor to be positioned ahead of the allocation cursor comprises:

detecting whether the read-ahead cursor is positioned ahead of the allocation cursor, and

resetting, if it is determined that the read-ahead cursor is not positioned ahead of the allocation cursor, the position of the read-ahead cursor to the position of the allocation cursor or to a position ahead of the allocation cursor.

15. The computer program product according to claim 11 , wherein

the method further comprises enabling the execution of the read-ahead examination and/or disabling the execution of the read-ahead examination, and, when execution of the read-ahead examination is disabled, the read-ahead cursor is moved through the free space object together with the movement of the allocation cursor.

16. The computer program product according to claim 1 , further comprising: setting a size of the set of indicators.

17. A method for controlling write operations in a data storage system comprising one or more storage apparatuses and a file system server connected to the one or more storage apparatuses and to one or more host computers, the method comprising:

providing a free space object which stores a plurality of indicators, each indicator being associated with one of a plurality of storage units for storing data units in the one or more storage apparatuses and each indicator indicating whether the associated storage unit is free or used,

executing a read-ahead examination which comprises examining a set of indicators of the free space object for identifying one or more used storage units associated with indicators of the set, in particular for observing a fragmentation status of the storage units associated with the indicators of the set,

executing an allocation examination which comprises examining one or more indicators of the set of the free space map object for identifying one or more free storage units to be allocated upon receiving one or more write instructions from one of the one or more host computers at the file system server, and

controlling one or more write operations to the one or more storage apparatuses on the basis of the read-ahead examination and the allocation examination.

18. An apparatus, in particular a file system server, being connectable to one or more storage apparatuses and to one or more host computers, the apparatus being adapted for use in a data storage system comprising the one or more storage apparatuses and the apparatus connected to the one or more storage apparatuses and to the one or more host computers, the apparatus comprising:

a memory storing a free space object which stores a plurality of indicators, each indicator being associated with one of a plurality of storage units for storing data units in the one or more storage apparatuses and each indicator indicating whether the associated storage unit is free or used, and

a controller adapted to control one or more write operations to the one or more storage apparatuses,

wherein the controller is adapted to:

execute a read-ahead examination which comprises examining a set of indicators of the free space object for identifying one or more used storage units associated with indicators of the set, in particular for observing a fragmentation status of the storage units associated with the indicators of the set, and

executing an allocation examination which comprises examining one or more indicators of the set of the free space map object for identifying one or more free storage units to be allocated upon receiving one or more write instructions from one of the one or more host computers at the file system server,

so as to control the one or more write operations to the one or more storage apparatuses on the basis of the read-ahead examination and the allocation examination.

19. A data storage system comprising:

one or more storage apparatuses, and

an apparatus according to claim 18 being connected to the one or more storage apparatuses and being connectable to one or more host computers.

Assignments (3)
MERGER Recorded Jan 28, 2020
From: HITACHI VANTARA CORPORATION
To: HITACHI VANTARA LLC
Reel/Frame 051719/0202 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2019
From: HITACHI DATA SYSTEMS ENGINEERING UK LIMITED
To: HITACHI VANTARA CORPORATION
Reel/Frame 048825/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2016
From: ASTON, CHRISTOPHER JAMES; WILLIS, TREVOR EDWARD
To: HITACHI DATA SYSTEMS ENGINEERING UK LIMITED
Reel/Frame 040367/0812 →
Continuity (1)
Related Publication 20170017413A1 · Jan 19, 2017