Patent ID: 8706687

Claim:
A storage controller, comprising: a processor; a Random Access Memory (RAM) coupled to the processor, at least a portion of the RAM configured to be non-volatile, and a portion of the RAM utilized as a staging area for read-modify-write operations to a database; a first network interface coupled to the memory and configured to couple to a communication network, the first network interface configured to perform remote direct memory access (RDMA) to the RAM based on instructions received over the communication network; and a second network interface coupled to the processor and the RAM, the second network interface different than the first network interface, and the second network interface configured to read and write one or more memory disks; the storage controller is configured to: accept a first RDMA write of a log record for a first database transaction across the first network interface; and accept a second RDMA write of a log record for a second database transaction, different than the first database transaction, across the first network interface; and the processor is configured to: write a first set of log and data volumes regarding the first database transaction across the second network interface, contents of the write based only on the first RDMA write of the log record; determine contents of a write to the data volume for the second database transaction based only on the contents of the second RDMA write of the log record; and write a block of data to the data volume, the block of data containing both the content of the first database transaction and the second database transaction; wherein each write to a log or data volume for the first database transaction and the second database transaction is performed off the commit path of the database.