| CPC G06F 3/0659 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0656 (2013.01); G06F 3/0688 (2013.01)] | 18 Claims |

|
1. A method comprising: creating a plurality of co-resident flush working sets in a data storage system, wherein each one of the flush working sets indicates only host data that was received by the data storage system from at least one host computing device during a period of time corresponding to that flush working set, wherein host data indicated by the flush working sets is to be flushed from a storage processor of the data storage system to non-volatile data storage devices of the data storage system, wherein indications of host data within the flush working sets are organized according to logical block addresses of the indicated host data, wherein each flush working set includes a plurality of leaf nodes, wherein each leaf node stores second indications of page descriptors that are located within a page descriptor ring, wherein each page descriptor stores an indication of a block of received host data to be flushed and having a logical block address within a range of logical block addresses corresponding to the one of the leaf nodes that contains that page descriptor, and wherein the second indications of page descriptors are ordered ascendingly within each leaf node according to the logical block addresses of the blocks of host data indicated by the page descriptors; and flushing, by a plurality of independently executing flusher threads, host data indicated by at least one of the flush working sets from the storage processor to the non-volatile data storage devices of the data storage system.
|