Patent ID: 7506013

Claim:
A computer-implemented method of defragmenting file allocations on a disk, the method comprising: determining pages to be swapped among various allocations made by an operating system (OS), the determining comprising incorporating proximity information of various OS visible pages into an algorithm executed by an engine that determines pages to be swapped; swapping determined pages responsive to the proximity information by performing a step from a group of steps consisting of: a) manipulating data structures so as to indicate swapping of pages without actually swapping data between physical locations on a medium; and b) moving data on a medium where OS visible data is read and written; updating an OS file system mapping to reflect the swapped pages; and storing an entry in a circular history buffer, the entry comprising historical data about locations of the determined pages prior to swapping such that the disk can be returned to a state of data from an earlier point in time based on the entry.