Patent ID: 7752362

Claim:
A storage system comprising: a controller connectable to a plurality of computers; a plurality of storage devices connected to the controller; and a cache memory in which a plurality of buffers are set, the buffers corresponding one-to-one to streaming accesses and each buffer of the buffers temporarily storing data when processing the stream accesses, wherein the plurality of storage devices store a plurality of contents, wherein the controller, when receiving multiple streaming accesses which are a set of streaming accesses requested from the respective computers, performing a processing step for each streaming access of the multiple streaming accesses and, in response to a streaming access to the content from at least one of the computers, reading data related to the content in the storage device and storing the data in a relevant buffer, and delivering the stored data to the computer which is a requestor of the streaming access; wherein, the controller: makes a decision, for each access of a plurality of accesses requested by the plurality of computers to the controller, as to whether the access is a streaming access, sets a maximum transfer rate for said each access of the accesses judged as a streaming access, executes, with the computer which is the requestor of the streaming access, an I/O operation related to the streaming access at the maximum transfer rate, measures an amount of data transferred to and from the computer, calculates a transfer rate related to the streaming access based on the measured amount of data, and takes the transfer rate as a transfer rate of the streaming access, determines a size of a relevant buffer so that processing of the streaming access is performed assuring the calculated transfer rate and assigns the size to the cache memory, finds, based on the relevant buffer size and the transfer rate, a required compilation time of a lob which is related to the streaming access and performed for the storage apparatus, calculates a time taken to process the job and, if it is found impossible to perform the job within the required compilation time, increases the size of the relevant buffer, determines, based on the relevant buffer size, an amount of data accessible in one operation set by a command issued to the storage apparatus and, if multiple streams required to be sent at high transfer rates are received, increases the determined amount of data, and calculates, for each job of a plurality of jobs related to the streaming accesses, the time taken to process the lob and the required compilation time and calculates, based on the calculated time, a required start time.