Patent ID: 9032181
Filing Date: 2015-05-12
Classification: G06F

Abstract:
1. A method of processing read I/O requests in a computer system having applications running therein, the applications including virtual memory pages mapped to machine memory pages, the method comprising: maintaining a tracking data structure for a first group of machine memory pages, each having at least two virtual memory pages mapped thereto, and a second group of machine memory pages, each having only one virtual memory page mapped thereto, the tracking data structure indicating, for each of said machine memory pages, a corresponding location in a storage volume from which its contents were read or are being read; receiving a read request; identifying a first location of the storage volume indicated in the read request; calculating, using the tracking data structure, a likelihood that the first location of the storage volume will be shared; determining that the likelihood exceeds a threshold value; based on the determination that the likelihood exceeds the threshold value; in response to a first memory write request, copying the contents of a machine memory page in the first group to a first machine memory page, and mapping a virtual memory page associated with the first memory write request to the first machine memory page; and in response to a second memory write request, copying the contents of a machine memory page in the second group to a second machine memory page, and mapping a virtual memory page associated with the second memory write request to the second machine memory page.