Grouping and dispatching scans in cache
AssigneeInternational Business Machines Corporation
InventorsMichael Thomas Benhase, Susan Kay Candelaria, Lokesh Mohan Gupta, Kenneth Wayne Todd
Life of this patent
Estimating the term…
Abstract
A method, system, and computer program product for grouping and dispatching scans in a cache directory of a processing environment is provided. A plurality of scan tasks is aggregated from a scan wait queue into a scan task queue. The plurality of scan tasks is determined by selecting one of (1) each of the plurality of scan tasks on the scan wait queue, (2) a predetermined number of the plurality of scan tasks on the scan wait queue, and (3) a set of scan tasks of a similar type on the scan wait queue. A first scan task from the plurality of scan tasks is selected from the scan task queue. The scan task is performed.
Claims9
A method for grouping and dispatching scans in a cache directory of a processing environment, comprising:
- performing, by a processor device operational in the processing environment:
- aggregating a plurality of scan tasks from a scan wait queue into a scan task queue, the plurality of scan tasks determined by selecting a set of scan tasks of a similar type on the scan wait queue;
- selecting from the scan task queue a first scan task from the plurality of scan tasks according to an order;
- subdividing the first scan task into a plurality of child tasks for each of a plurality of processors in the processing environment, the cache directory organized according to each of the plurality of child tasks;
- parsing through each entry in the cache directory for each child task of the plurality of child tasks, and for each track in a collision chain of the cache directory:
- acquiring a track ownership,
- determining if a track meets a criteria for any of the plurality of scan tasks in the scan task queue, wherein:
- if the track meets the criteria for any of the plurality of scan tasks, a processing code is applied for the track, and
- if the track does not meet the criteria for any of the plurality of scan tasks, the track ownership is released and a subsequent track in the collision chain is analyzed to determine if the subsequent track meets the criteria;
- passing the scan task queue to each child task of the plurality of child tasks;
- and
- performing the child task of the plurality of child tasks;
- wherein the similar type includes discard scan tasks, and the similar type precludes commit scan tasks from being aggregated and small extent scan tasks from being aggregated.
A system for grouping and dispatching scans in a cache directory of a processing environment, comprising:
- a processor operational in the processing environment, the processor:
- aggregates a plurality of scan tasks from a scan wait queue into a scan task queue, the plurality of scan tasks determined by selecting one of (1) each of the plurality of scan tasks on the scan wait queue, (2) a predetermined number of the plurality of scan tasks on the scan wait queue, and (3) a set of scan tasks of a similar type on the scan wait queue,
- selects from the scan task queue a first scan task from the plurality of scan tasks according to an order;
- subdivides the first scan task into a plurality of child tasks for each of a plurality of processors in the processing environment, the cache directory organized according to each of the plurality of child tasks;
- parses through each entry in the cache directory for each child task of the plurality of child tasks, and for each track in a collision chain of the cache directory:
- acquires a track ownership,
- determines if a track meets a criteria for any of the plurality of scan tasks in the scan task queue, wherein:
- if the track meets the criteria for any of the plurality of scan tasks, a processing code is applied for the track, and
- if the track does not meet the criteria for any of the plurality of scan tasks, the track ownership is released and a subsequent track in the collision chain is analyzed to determine if the subsequent track meets the criteria;
- passes the scan task queue to each child task of the plurality of child tasks;
- and
- performing the child task of the plurality of child tasks;
- wherein the similar type includes discard scan tasks, and the similar type precludes commit scan tasks from being aggregated and small extent scan tasks from being aggregated.
A computer program product for grouping and dispatching scans in a cache directory of a processing environment, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
- a first executable portion that aggregates a plurality of scan tasks from a scan wait queue into a scan task queue, the plurality of scan tasks determined by selecting one of (1) each of the plurality of scan tasks on the scan wait queue, (2) a predetermined number of the plurality of scan tasks on the scan wait queue, and (3) a set of scan tasks of a similar type on the scan wait queue;
- a second executable portion that selects from the scan task queue a first scan task from the plurality of scan tasks according to an order;
- and
- a third executable portion that subdivides the first scan task into a plurality of child tasks for each of a plurality of processors in the processing environment, the cache directory organized according to each of the plurality of child tasks;
- a fourth executable portion that parses through each entry in the cache directory for each child task of the plurality of child tasks, and for each track in a collision chain of the cache directory:
- a fifth executable portion that acquires a track ownership,
- a sixth executable portion that determines if a track meets a criteria for any of the plurality of scan tasks in the scan task queue, wherein:
- if the track meets the criteria for any of the plurality of scan tasks, a processing code is applied for the track, and
- if the track does not meet the criteria for any of the plurality of scan tasks, the track ownership is released and a subsequent track in the collision chain is analyzed to determine if the subsequent track meets the criteria;
- a seventh executable portion that passes the scan task queue to each child task of the plurality of child tasks;
- and
- an eighth executable portion that performs the child task of the plurality of child tasks;
- wherein the similar type includes discard scan tasks, and the similar type precludes commit scan tasks from being aggregated and small extent scan tasks from being aggregated.
Dependencies are inferred from the claim text.