Adaptive, time-based synchronization mechanism for an...

Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000

Reexamination Certificate

active

06308245

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to computer operating system file handling mechanisms and, more specifically, to synchronization of changed pages of data in memory to disk or other permanent storage.
2. Description of the Related Art
Synchronization is the process by which the operating system of a computer, typically a minicomputer or mainframe, from time to time writes out to disk or other non-volatile direct access storage device (DASD) pages of data in main memory that have been altered by the operation of an application program. (For convenience, the term “disk” is used herein to refer to all such DASD and other non-volatile storage devices, but the actual storage medium may be other than a disk.) Synchronization is important because it minimizes the likelihood that data will be irretrievably lost in the event of a catastrophic system crash resulting from, for example, a power outage. Minicomputers and mainframes typically do not respond to an application program altering data in main memory by immediately writing the altered pages of data to disk. Rather, they typically let the data age for some amount of time before writing the altered pages to disk because it enhances system performance. Severe I/O bottlenecks would occur in system performance if data in memory were always immediately written to disk in response to an application program altering the data.
There is a well-known tradeoff between writing changed pages immediately to disk and delaying or aging changed pages. The advantages of greater delay or aging include greater utilization of main memory, bundling multiple changes to the same page into a subsequent input/output (I/O) operation to disk and, because I/O devices usually write sequential or closely located blocks as a single I/O operation, a fundamental reduction in overall system I/O. The advantages of less delay include maximizing data recovery from system crashes and preventing main memory from becoming over-committed. Once main memory has become over-committed, caching additional data in main memory forces other data out of main memory.
A synchronization daemon is a software process or job controlled by the operating system that performs the synchronization task in the background, i.e., transparently from the perspective of a user. The daemon, in accordance with an algorithm, sweeps changed pages out to disk and updates metadata such as file allocation size and the offset of the end-of-file. A prior synchronization daemon that has been included in versions of the IBM OS/400 operating system alternated between five minute intervals of inactivity or “sleep” and intervals in which it would “wake up” and perform synchronization. The operating system maintained a synchronization list (“sync list”) that listed all files that had been changed since the last synchronization. Such pending changes included both actual data and metadata. The operating system placed a file on the sync list after ten writes to that file had occurred or at the time the file was closed. A disadvantage of this approach is that when the daemon woke up after its five minute sleep interval, it caused a significant strain on available system resources. A spike of CPU and I/O activity occurred at regular five minute intervals, thus degrading the response time of applications using the system. Another prior synchronization daemon that has been included in another version of the IBM OS/400 operating system attempted to alleviate this problem by waking up every 15 seconds and then only performing synchronization of files in the sync list during a subsequent interval comprising one second of CPU time before going back to sleep. During the awake interval, it swept as many changed pages as possible to disk before returning to sleep. When it again woke up, it resumed the process of synchronizing files on the list where it had left off. If it reached the end of the list before the end of the one-second interval, it returned to the top of the list and continued synchronizing any unsynchronized files until the end of the one-second interval. Although this method reduced the size of the spike in system resources, it unnecessarily limited the time that files remained unsynchronized or “exposed” in main memory. It also made no distinction between files that had been changed very recently and files that had been changed as much as fifteen seconds earlier.
It would be desirable to provide a synchronization mechanism that does not cause a spike in system resources and that is adaptable to system conditions. These problems and deficiencies are satisfied by the present invention in the manner described below.
SUMMARY OF THE INVENTION
The present invention relates to synchronization software in a computer operating system that evaluates with respect to a predetermined exposure goal the ages of byte stream files queued for synchronization, and dynamically adjusts synchronization (“sync”) capacity in response to the evaluation. The synchronization of byte stream files occurs at rates responsive to the sync capacity. It is believed that the synchronization mechanism is operating optimally when synchronization is sufficiently spread over time that it does not cause spikes in the system workload and, on average, the age of files being synchronized neither exceeds nor falls short of the exposure goal.
When the software detects alteration of a byte stream file in main memory, it adds information identifying the byte stream file to a synchronization list. The altered byte stream file is placed on this list or queue because it needs to be synchronized to direct-access storage, i.e., it is exposed. A system operator or similar user can specify an exposure goal, which represents the length of time within which the user prefers synchronization of each byte stream file to be completed.
At predetermined intervals, the software performs an evaluation, and may initiate synchronization of one or more byte stream files in the synchronization list. During the evaluation, the software determines the age of a file in the synchronization list, i.e., the amount of time elapsed since the file was placed in the synchronization list. If the file is relatively old, the result of the evaluation may be to increase synchronization capacity. If the file is not old, the result may be to decrease synchronization capacity. For example, if the age of the file is more than a certain percentage less than the exposure goal, then the software may decrease synchronization capacity. In an exemplary embodiment of the invention, the evaluation considers not only the age of the file relative to the exposure goal, but also whether the goal of synchronizing files within the exposure goal is improving. For example, if the age of the file is more than a predetermined percentage greater than the exposure goal, i.e., synchronization is lagging, and there is not at least a certain percentage improvement between the age of this file and the age of the file evaluated during the previous evaluation, then the software may increase synchronization capacity. Synchronization capacity determines, in essence, the speed or rate with which files are synchronized after they are altered.
Adjusting synchronization capacity may, for example, be performed by increasing or decreasing the priority of a synchronization task, or by increasing or decreasing the number of such tasks. Synchronization may be adjusted in other ways in addition to or alternatively to these ways. For example, a variable that adds a bias or lead time to the exposure goal may be adjusted. In an exemplary embodiment, the adjustments are made in accordance with an algorithm that makes the least aggressive type of adjustment predicted to meet the exposure goal.
During the evaluation interval, the software initiates synchronization of one or more of the byte stream files in the synchronization list. For example, in an embodiment of the invention in which independently executing synchronization tasks are used to perform the synchronization, the s

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Adaptive, time-based synchronization mechanism for an... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Adaptive, time-based synchronization mechanism for an..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Adaptive, time-based synchronization mechanism for an... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2555212

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.