# US 2013/0159556 A1 · Storage apparatus and command execution control method

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

- Number: US 2013/0159556 A1
- Document ID: US20130159556A1
- Status: Published application
- Kind: A1
- Application number: 13/672,787
- Filed: 2012-11-09
- Published: 2013-06-20
- Earliest claimed: 2011-12-19
- Assignees: Fujitsu Limited
- Inventors: Masayoshi MIZUMAKI
- Web page: https://patentgrep.com/patent/US20130159556A1

## CPC

- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A determination unit determines the type of a command received via a communication interface. A counting unit counts, among commands received via the communication interface, the number of commands currently being executed. A control unit performs, when the number of commands currently being executed is less than or equal to a limit value corresponding to the type of a command received via the communication interface, data access to a memory device according to the received command. In addition, the control unit prevents the data access according to the received command when the number of commands currently being executed exceeds the limit value corresponding to the type of the received command.

## Claims

### Claim 1

A storage apparatus comprising:
a memory device;
a communication interface configured to receive a command instructing data access to the memory device; and
a processor configured to perform a procedure including:
determining a type of the command received via the communication interface,
counting, among commands received via the communication interface, a number of commands currently being executed,
performing, when the number of commands currently being executed is less than or equal to a limit value corresponding to the type of a command newly received via the communication interface, data access to the memory device according to the newly received command, and
preventing the data access when the number of commands currently being executed exceeds the limit value.

### Claim 2 (depends on 1)

The storage apparatus according to claim 1, wherein
the determining includes determining whether the type of the command received via the communication interface is a copy command transmitted from a different storage apparatus or a non-copy command whose type is other than the copy command, and
the procedure further includes setting a limit value corresponding to non-copy commands to be lower than a limit value corresponding to copy commands.

### Claim 3 (depends on 2)

The storage apparatus according to claim 2, wherein:
as the limit value corresponding to non-copy commands, a first limit value and a second limit value are set, the first limit value being applied when a communication path for data copy has been established between the storage apparatus and the different storage apparatus, and the second limit value having a higher value than the first limit value and being applied when the communication path is not established;
when the communication path has been established,
the performing includes performing data access to the memory device according to a non-copy command received via the communication interface when the number of commands currently being executed is less than or equal to the first limit value, and
the preventing includes preventing the data access according to the non-copy command when the number of commands currently being executed exceeds the first limit value; and
when the communication path is not established,
the performing includes performing data access to the memory device according to a non-copy command received via the communication interface when the number of commands currently being executed is less than or equal to the second limit value, and
the preventing includes preventing the data access according to the non-copy command when the number of commands currently being executed exceeds the second limit value.

### Claim 4 (depends on 1)

The storage apparatus according to claim 1, wherein
the counting further includes counting a number of commands received within a predetermined period of time with respect to each type of commands, and
the procedure further includes determining a limit value corresponding to each type of commands according to a command-type specific ratio of the commands received within the predetermined period of time.

### Claim 5 (depends on 1)

The storage apparatus according to claim 1, wherein:
the determining includes determining whether the type of the command received via the communication interface is a copy command transmitted from a different storage apparatus or a non-copy command whose type is other than the copy command;
the counting further includes counting a number of non-copy commands received within a predetermined period of time; and
the procedure further includes:
acquiring, from the different storage apparatus, information indicating a number of trigger commands received within the predetermined period of time, each of the trigger commands being a trigger of an output of a copy command from the different storage apparatus, and
determining limit values individually corresponding to copy commands and non-copy commands according to a ratio of the number of trigger commands received by the different storage apparatus to the number of non-copy commands.

### Claim 6 (depends on 1)

The storage apparatus according to claim 1, wherein:
the determining includes determining whether the type of the command received via the communication interface is a copy command transmitted from a different storage apparatus or a non-copy command whose type is other than the copy command;
the counting further includes counting a number of non-copy commands received within a predetermined period of time; and
the procedure further includes:
acquiring trigger command information, first time information, and second time information from the different storage apparatus, the trigger command information indicating a number of trigger commands received within the predetermined period of time, each of which is a trigger of an output of a copy command from the different storage apparatus, the first time information indicating a time required by the different storage apparatus to execute each of the trigger commands, the second time information indicating a time required by the different storage apparatus to execute each of commands other than the trigger commands, and
determining limit values individually corresponding to copy commands and non-copy commands according to a ratio of a multiplication result to the number of non-copy commands, the multiplication result being obtained by multiplying the number of trigger commands received by the different storage apparatus by a correction value which is obtained by dividing the time indicated in the second time information by the time indicated in the first time information.

### Claim 7 (depends on 5)

The storage apparatus according to claim 5, wherein
each of the trigger commands is a command instructing data writing to a volume provided inside the different storage apparatus, the volume being configured to redundantly store data together with the memory device.

### Claim 8 (depends on 5)

The storage apparatus according to claim 5, wherein
the procedure further includes instructing the different storage apparatus to limit a number of commands executed by the different storage apparatus to a value according to the determined limit value corresponding to copy commands.

### Claim 9

A command execution control method comprising:
determining, by a storage apparatus, a type of a command received via a communication interface and instructing data access to a memory device;
counting, by the storage apparatus, a number of commands currently being executed among commands received via the communication interface;
performing, by the storage apparatus, data access to the memory device according to a command newly received via the communication interface when the number of commands currently being executed is less than or equal to a limit value corresponding to the type of the newly received command; and
preventing, by the storage apparatus, the data access when the number of commands currently being executed exceeds the limit value.

### Claim 10

A computer-readable storage medium storing a computer program, the computer program causing a built-in computer of a storage apparatus to perform a procedure comprising:
determining a type of a command received via a communication interface and instructing data access to a memory device;
counting, among commands received via the communication interface, a number of commands currently being executed;
performing, when the number of commands currently being executed is less than or equal to a limit value corresponding to the type of a command newly received via the communication interface, data access to the memory device according to the newly received command; and
preventing the data access when the number of commands currently being executed exceeds the limit value.
