Abstract:
A storage control system adapted to operate as a remote copy pair by communicating between a primary and a secondary of the remote copy pair comprises: a selector for selecting writes to be placed in a batch based on one or more criteria; a sequence number requester for requesting a sequence number for the batch; a sequence number granter for granting a sequence number for the batch; a batch transmitter for transmitting the batch to the secondary; a permission receiver for receiving a permission to write the batch from the secondary; and a write component responsive to the permission receiver to write the batch to completion; wherein the secondary is responsive to the completion to grant a further permission to write for a further batch.
Abstract:
A storage control system adapted to operate as a remote copy pair by communicating between a primary and a secondary of the remote copy pair comprises: a selector for selecting writes to be placed in a batch based on one or more criteria; a sequence number requester for requesting a sequence number for the batch; a sequence number granter for granting a sequence number for the batch; a batch transmitter for transmitting the batch to the secondary; a permission receiver for receiving a permission to write the batch from the secondary; and a write component responsive to the permission receiver to write the batch to completion; wherein the secondary is responsive to the completion to grant a further permission to write for a further batch.
Abstract:
A method, in a remote copy pair, for resynchronizing data held at a primary and secondary after the pair has undergone separation and reestablishment of a remote copy relationship includes the steps of sending a change record identifying data segments changed at the secondary from the secondary to the primary, merging the change record from the secondary with a change record identifying data segments changed at the primary into a merged change record; and copying all identified changed data segments indicated in the merged change record from the primary to the secondary. The method may be implemented in hardware or software or a combination thereof.
Abstract:
Described is a method and apparatus for processing tasks in a data processing system including a microprocessor and an instruction cache. Tasks of different types are defined in the system with each task type having code associated therewith. The tasks are managed in a queue and are processed in order by loading the associated code into the instruction cache for execution on the microprocessor. The method comprises the steps of scheduling tasks of like type into a batch such that tasks in a batch are processed before processing the next ordered task. In the case where the code associated with a batched task fits within the instruction cache, the tasks in a batch can be processed without incurring the penalty associated with instruction cache misses.
Abstract:
A method for rebuilding meta-data stored in a data storage system (104) having storage devices (106) in which segments of data are located; for example, a storage system in the form of a log structured array. Data is written in segments to the storage devices (106) from a plurality of flows (122) of data and each segment of data contains meta-data relating to that segment. The meta-data stored in the storage system (104) can be rebuilt in the event of a failure by scanning the meta-data in each segment. A first scan of the meta-data in each segment in the storage devices (106) identifies the last segment written from each flow (122) and these segments are excluded from the rebuilding process as they may contain incomplete or inconsistent information. A second scan of the meta-data in each segment in the storage devices (106) identifies any segments which do not contain any live data tracks and these segments are also excluded from the, rebuilding process. The meta-data in the storage system (104) can then be rebuilt using the meta-data in the segments, excluding those segments identified.
Abstract:
A data processing system comprises a master processor 10, a slave processor 30, a memory 50, and a bus subsystem 20 interconnecting the master processor 10, the slave processor 30, and the memory 50. The master processor 10 is configured to generate, in response to a memory access instruction, a read request comprising a read command for execution by the slave processor 30 to read data stored in a location in the memory 50 specified by the memory access instruction, and to write the read request to the slave processor 30 via the bus subsystem 20. The slave processor 30 is configured to execute the read command received in the read request from the master processor 10 to obtain the data stored at the specified location in the memory 50 and to write the data thus obtained to the master processor 10 via the bus subsystem 20.
Abstract:
A method, storage system, and machine-readable medium for resynchronizing data stored among a first storage element and a second storage element of a remote copy pair of storage elements is disclosed. According to one embodiment, a method is provided which includes detecting a reestablishment of a remote copy relationship between the first and second storage elements and performing a resynchronization operation in response to this detection. Performing the resynchronization operation comprises transmitting data of a second change record associated with the second storage element to the first storage element, combining the second change record with a first change record associated with the first storage element, identifying a data segment of the second storage element utilizing the combined change record, and overwriting data of the first storage element with data of the identified data segment.
Abstract:
Described is a method for processing work items in a data processing system. An interrupt is generated in response to receipt of a work item on a queue and the generated interrupt is serviced to schedule a task by placing the task on a task queue for later processing of the queued work item. The interrupt is not enabled at this point and therefore the receipt of further work items will not result in the generation of interrupts. When the scheduled task reaches the head of the queue, the task is executed to process the queued work item (and all other work items that have been added to the queue since the task was scheduled). When all the work items have been processed, a further task is speculatively scheduled for processing of any work items that are subsequently placed on the work item queue. When the speculatively scheduled task reaches the head of the queue, it is executed to process queued work items; if any work items were found, a further task is speculatively scheduled, otherwise the interrupt is enabled.
Abstract:
Garbage collection in a computer (104, Fig 1) having a log structured array (LSA) system of DASD storage units (106, Fig 1) in which information segments 202, 204 are located. Free space collection is carried out in the storage units by using a fitness value to evaluate segments 204. The fitness value is determined as the product of the amount of free space in a segment 204 and the expected time the free space will last (310, Fig 5) given as segment age. Segment age is the average, maximum or minimum of a measure using real time, number of write transactions, number of segments written of destage sequence number and also includes a write interval for the segment. Segments 204 are chosen for free space collection if they have the maximum fitness value (312, Fig 5). The segments 204 are sorted into groups by the amount of used data in each segment 204 and are stored in the groups as a FIFO list or in destage sequence order, the fitness value is determined for the segment at the head of the list or having the greatest age in each group.
Abstract:
Processing tasks in a data processing system including a microprocessor and an instruction cache (Fig. 1), such that the instruction cache efficiency is optimised. Tasks of different types are defined in the system, with each task type having code associated therewith. The tasks are managed in a queue and are processed in order, 42, by loading the associated code into the instruction cache, 44, for execution on the microprocessor, 46. Tasks of like type are scheduled into a batch, preferably at the time that they are identified (Fig. 2), and tasks in a batch are processed, 48, before processing the next ordered task in the queue. In the case where the code associated with a batched task fits entirely within the instruction cache, the tasks in a batch can be processed without instruction cache misses; when the code does not fit, it is logically divided into cache-sized portions by the insertion of break points into the code which, when executed, cause the scheduling of a further task for future execution of the subsequent portion(s) of code.