Browse Prior Art Database

Retry of Memory Cleanup on Reuse When Initial Cleanup Fails After Previous Use

IP.com Disclosure Number: IPCOM000126448D
Original Publication Date: 2005-Jul-18
Included in the Prior Art Database: 2005-Jul-18
Document File: 6 page(s) / 118K

Publishing Venue

IBM

Abstract

Disclosed is an algorithm of how to cleanup a multiple-system shared memory resource for reuse. A program tries to cleanup the resource, when it is no longer needed. If the cleanup fails because the program is temporarily unable to access the memory, the algorithm will leave the resource as is. The algorithm will then wait to perform the cleanup operation when the resource is needed again, and the memory is available. Described below are the details of the algorithm, and how it can be implemented using the *z/OS operating system and a Coupling Facility multiple-system shared memory resource.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 34% of the total text.

Page 1 of 6

Retry of Memory Cleanup on Reuse When Initial Cleanup Fails After Previous Use

Background - Specific operational or error scenarios can result in a condition where System Logger may not clean up structure lists in a coupling facility. This publication addresses a new method to handle this clean up. System Logger is a product that manages log data across multiple systems. The data is managed in log streams, and is stored in a coupling facility, as well as secondary storage. The coupling facility is a high speed volatile memory device shared between multiple systems. Logger utilizes the coupling facility to store log stream data in list structures. List structures are areas of storage within the coupling facility.

    There are situations where the coupling facility is unavailable for use. During a log stream delete operation, the lists in the coupling facility are cleaned up, and if the clean up is unable to be completed due to the coupling facility being unavailable, the delete will fail. New function was implemented to allow a log stream delete to succeed with only the essential operations necessary for its success. With the new functionality, for the delete to succeed, Logger does not let intermediate failures of cleanup operations prohibit the deletion of the log stream as a whole. The coupling facility list cleanup is not essential. If this part fails, it is still possible to delete the log stream with the new function. However, the problem arises when the lists are not cleaned up.

    If a new log stream was defined in the same coupling facility structure, it is possible for the log stream to attempt to use the old (not cleaned up) lists. Using the old lists for a new log stream would cause data integrity problems, and it could create the logically inconsistent case of data already existing in a newly defined log stream.

    It was also possible for certain problematic Logger configurations to cause this problem to occur. Switching to a different couple data set may allow a log stream to use an old log stream's lists, and the solution would solve this problem as well. The solution should close the window of residual data existing in the coupling facility for System Logger's use.

    This problem can be generic to any shared memory device that can become unavailable. If a portion of the memory is unable to be cleaned up when the memory is no longer needed, a method is necessary to determine how to use the portion of memory when the same memory is needed again by a new process.

    Our initial solution was to mark the list headers that are unable to be cleaned up as unusable in the Logger couple data set. The Logger couple data set is a file in secondary storage that maintains records about log streams and coupling facility information for System Logger. In this solution when Logger attempts to clean-up the lists during a force delete of a log stream, and the cleanup is unable to be completed, Logger would mark the lists as unusable in the couple...