1. A storage system, comprising: a storage unit comprising a database accessible by a plurality of host systems for reading and writing data; and first and second storage controllers communicatively coupled between the host systems and the storage unit, wherein each of the storage controllers comprises a database manager operable to process input/output (I/O) requests to the database, wherein each of the storage controllers comprises a random access memory (RAM) operable to cache data of the I/O requests, and wherein the database manager of the first storage controller is operable to detect a first of the I/O requests from a first of the host systems, to determine a size of the first I/O request, to lock a portion of the database where the first I/O is directed based on the size of the first I/O request, to break the data of the first I/O request into a plurality of smaller portions, to store the smaller portions of data in the RAM of the first storage controller, to generate a scatter-gather list that identifies where the smaller portions of data are in the RAM of the first storage controller for access by the first host system, and to unlock the portion of the database in response to generating the scatter-gather list such that I/O requests to the portion of the database can resume.