3.3

Table Of Contents
Monitoring Free Space
49
Monitoring the Free List
The free list is the list of free space on the disk. By keeping track of space in the free list, the
system can detect when it is running low on space. It runs an automatic
dbserver
program,
which removes the oldest stories from the Dead queue and adds the space to the free list,
where it is made available to the system. This way, dbserver maintains the volume of free
space available in the database.
The free list measures space in blocks (a block=1024 bytes), and has a lower limit called the
lowwater mark, which represents the least amount of free space available. When the space
available drops below the lowwater mark, the system runs dbserver to reclaim enough space
from the Dead queue to rebuild the free list to the highwater mark.
Together, the highwater and lowwater marks determine the free list’s normal operational
range. If the system cannot get back up to the highwater mark after reclaiming free space,
the user will get a low on space message. Create free space immediately, as explained in the
following section.
Understanding How the System Copies Stories
You can configure iNEWS to distribute a wire story to several queues when it is received.
Likewise, two or more users can put copies of the same story into their personal queues. If
you copy and distribute enough stories, a large portion of the database can become cluttered
with the copies.
To avoid filling up the disk with copies of stories, your system keeps only the original story
on the disk. When a story is copied to another queue, your system puts a reference to the
original story in the queue that will hold the copy.
When someone opens a copy of a story, the system uses the reference to find the original
story. It makes a working copy of that story, which it sends to the user. If the user examines
the working copy and makes no changes, the working copy is deleted when the user closes
the story.
However, if the user makes changes to the working copy and saves it, the system saves that
copy as a story, replacing the reference.
In most cases, you can treat a reference to an actual story as if it were the story. The only
time you need to take references into consideration is when setting purge intervals. When the
system references a story to several different queues, each reference takes on the purge
interval of the queue. When a reference becomes older than its queue’s purge interval, the
computer puts the reference, not the actual story, in the Dead queue.