Patent ID: 9383941
Filing Date: 2016-07-05
CPC Classification: G06F

Claim Text:
1. A computer-implemented method comprising: storing in a primary storage a plurality of list entries of a list, wherein the plurality of list entries of the list reside in a primary storage, wherein the list is a work queue, and wherein each of the plurality of list entries of the list represents an item of work; monitoring free space in the primary storage to determine whether a first predetermined condition related to the free space is met; allocating for migration a storage block of a predetermined size in a secondary storage, in response to the first predetermined condition being met; positioning a cursor at a cursor location, the cursor pointing to a first list entry in the plurality of list entries of the list in primary storage, wherein the positioning the cursor at the cursor location comprises identifying that one or more unprocessed list entries at the cursor location are not ready for processing and that the one or more unprocessed list entries have a size that would fill the storage block of the first predetermined size in the secondary storage; selecting the one or more unprocessed list entries at the cursor, the one or more unprocessed list entries being selected from the plurality of list entries of the list ordered in the primary storage; migrating, with a computer processor, the one or more unprocessed list entries, which were selected from the plurality of list entries of the list, to the storage block while maintaining their order in the list, wherein the migrating leaves one or more remaining list entries of the plurality of list entries of the list ordered in the primary storage; wherein, as a result of the migration, the one or more remaining list entries of the list are stored and ordered in the primary storage, while the one or more unprocessed list entries of the list are stored and ordered in the secondary storage, such that the one or more unprocessed list entries in the secondary storage are ordered relative to the one or more remaining entries in the primary storage such that the one or more remaining list entries and the one or more unprocessed list entries together form at least an ordered portion of the list; determining that the list has reached a too-empty state in the primary storage; determining a location of the one or more unprocessed list entries in the secondary storage corresponding to a current position of the cursor, responsive to determining that the list has reached the too-empty state in the primary storage; returning the one or more unprocessed list entries to the current position of the cursor in the primary storage while maintaining their order in the list, responsive to determining the location of the one or more unprocessed list entries in the secondary storage; and processing, from the primary storage, the items of work represented by the one or more unprocessed list entries returned to the primary storage.