InnovationQ will be updated on Sunday, September 30, from 10am - noon ET. You may experience brief service interruptions during that time.
Browse Prior Art Database

Autonomically Tuning the Size of a Circular Log or Buffer

IP.com Disclosure Number: IPCOM000029877D
Original Publication Date: 2004-Jul-15
Included in the Prior Art Database: 2004-Jul-15
Document File: 3 page(s) / 33K

Publishing Venue



An algorithm is disclosed that enables a computer system to autonomically and adaptively optimize the amount of space allocated to a circular storage area such that the allocated storage is A. Large enough to contain the largest size active range typically needed but B. Not significantly larger than this, so that large amounts of storage are not wasted.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 50% of the total text.

Page 1 of 3

Autonomically Tuning the Size of a Circular Log or Buffer

1. Background

An invention is disclosed that allows a computer system to autonomically tune, or optimize, the space allocated to a circular log or buffer. (For brevity, in the remainder of this article we may only use the term "log" to refer to any circular storage area, but this invention applies equally to all kinds of logically circular storage areas, for example a circular memory buffer, or even a set of disjoint extents on disk that are logically treated as being in a single circular sequence.)

Define the "active range" of a circular log as the range of the log from the current tail (the newest data in the log) backwards to some cutoff point before which the data in the log is no longer needed. During use of a circular log, new data is added to the active range at the tail, while old data "decays" out of the active range from the head. Since the log is circular, when the end of the storage allocated to the log is reached, new data continues to be written starting from the beginning of the storage area, overwriting the previous data that was logged on the previous traversal of the circular storage area.

There are two qualitatively different types of circular log, both of which can use this invention to autonomically optimize their sizes:

Type I. Logs where the active set is desired to be kept in the log, but if the existing log runs out of space, active range data can be overwritten or discarded without affecting correctness. Typically the active set of this type of log is used only for performance optimization, but is not required for correctness of the algorithm using the log.

Type II. Logs where the active set is required to be kept in the log and cannot be overwritten. The active set of this type of log is required for the correctness of the algorithm using the log. In Type II logs, if the log runs out of space for a new item, either the log must be enlarged immediately, or else some bookkeeping processing must be performed immediately to "decay" some of the old active set off the head end to make room for the new information.

Existing solutions generally allocate a fixed amount of storage for circular logs or buffers, either by the programmers hard-coding some constant or formula into the program, or by the user specifying a fixed size. These solutions generally do not autonomically tune the log size at all. If a log of Type I fills up, desired information may be overwritten. If a log of Type II fills up, the system generally has to interrupt what it is doing to perform actions that consume some of the older data in the log to make room for the new. These actions can be quite expensive and interruptive of service from a user perspective. It may be possible in these systems to resize the log manually, but this is also typically expensive and intrusive, and results in a period of data unavailibility while this maintenance is performed.


Page 2 of 3

The current inven...