Patent ID: 7725611

Claim:
A storage system comprising: a host computer that executes a plurality of database application programs and a storage controller including a CPU, a control memory, a plurality of disk drives, and an interface for receiving commands from the host computer, the host computer being external to said storage controller, wherein said storage controller receives a write command for writing data from said host computer to a disk drive of said plurality of disk drives, due to a first database application program of said plurality of database application programs being executed on said host computer, wherein a data verification program is designated for each of said plurality of database application programs, wherein said write command comprises a logical address corresponding to a location at which storage is to start for said data to be written to said disk drive, and a data length of said data to be written to said disk drive, wherein said storage controller stores addresses, including at least a start address and an end address, said addresses designating a candidate area for verification, said candidate area for verification being an area designated from a whole storage region of said disk drive, wherein said storage controller determines whether said logical address is within said addresses of said candidate area for verification, and when said logical address is within said addresses of said candidate area for verification, said storage controller further determines whether a whole area of a write destination, which is defined by said logical address and said data length received from said write command, is within said addresses of said candidate area for verification, wherein if said whole area of said write destination is within said addresses of said candidate area for verification, said storage controller sets said whole area of said write destination as a target area for a first data verification, wherein if said whole area of said write destination is not within said addresses of said candidate area for verification, said storage controller sets an area, which starts from said logical address and ends at said end address of said candidate area for verification, as the target area for said first data verification, wherein after said target area for said first data verification is set, said storage controller performs said first data verification on said data within said storage controller before said data is written to said disk drive, using a data verification program corresponding to said first database application program, wherein if an error is detected by said first data verification, said host computer is provided with notification of said error, and wherein after said storage controller receives a read command from said host computer to read said data written to said disk drive as a result of said write command, said storage controller reads said data, and a second data verification is performed on said data read from said disk drive.