# set-ovf-local command

The set-ovf-local command sets and displays
the local overflow cache size.

## Syntax

```
set-ovf-local {ws.max}{,fs.max} {(options}
```

## Parameter(s)

Besides displaying the current
cache status, set-ovf-local can be used to modify
the current cache maximums by specifying the following numeric parameters
on the command line:

| ws.max | Sets the maximum workspace cache size. | |
| --- | --- | --- |
| fs.max | Sets the maximum file space cache size. | |
| options | c | Puts a scrub pattern into the local overflow frames. |
| f | Flushes all caches. All frames held within the current cache are released back to the main table. Note: This operation is automatically invoked when the maximum values are changed. The act of logging off the system automatically flushes all local overflow caches. | |
| g | Copies the current maximum cache settings into the global default. Whenever a new user logs on, they automatically acquire this default value. Note: The global defaults are automatically preset to a factory specified value upon reboot, so if a permanent global change is desired, the user should place the set-ovf-local command in the system-coldstart macro. | |
| s | Suppresses the display. | |
| x | Disables the local overflow scrubbing. | |
The presence of a local overflow cache enhances both performance
and reliability, and is automatically set up to a reasonable default
by the system. Users who want to further tune their overflow usage
can use the set-ovf-local command to change this
cache to tailor it to specific needs. By default, the checking of
local overflow for multiple releases is on. To turn off local overflow
checking, remove this line from the system-coldstart macro in dm, and then reboot D3:

```
set-ovf-local (cgs
```
When specified without any options, the set-ovf-local command displays the cache status for the current line. The display
shows a 2 by 2 grid of numbers.

## Legend

| Current | Current number of frames actually held in a given cache. |
| --- | --- |
| Max | Maximum number of frames that the cache may hold. Any overflow released to the cache when it has reached its maximum size is deposited directly into the main overflow table. |
| WS | Row showing the current and maximum workspace cache sizes. |
| File | Row showing the current and maximum file cache sizes. |

## Cache Descriptions

The workspace cache is
a generalized cache used for virtually all memory needs. It is automatically
set to a default so that simple TCL commands and FlashBASIC programs
do not need to access the global overflow table and can thus avoid
the performance cost of doing so. If the user is repeatedly using
execute statements of more complex programs, then he/she can try boosting
the workspace cache size to see if performance improves.

The
file cache is used only when update-protection is active. The update-protection
scheme deposits frames into this buffer which it guarantees are synchronized
so that no other file or workspace on the disk points to it. This
virtually eliminates the possibility of so-called *doubly linked frame* where two files are attached to the same frame after a power
outage or crash. This cache should be large enough to cover the largest
group or largest pointer item that is protected by the update protection
scheme. For example, if the user has a file with 30 KB byte items
on a 2 KB frame system, then the file cache should be set to
at least 30 KB/2 KB = 15 frames.

## Cache Tuning

Ideally, a system should be
able to operate out of private overflow caches as much as possible.
The less the system accesses the global overflow pool, the greater
the system performance, and the less chance there is for the overflow
to become corrupted in the event of a power outage. To tune the cache
sizes, users can try different cache settings, and run the buffers (s command (**For Windows:** Not Supported)
program to see the change on overflow access. The field `ws ovf locks` displays the number of system-wide references per
second to ws overflow tables. The field `file ovf locks` displays the number of references to the global overflow table per
second.

Warning: All overflow in the local caches
will be lost in the event of a power-outage or a system crash. Therefore,
the user should be careful not to set the cache settings too high.

## Example(s)

Shows that there are currently
two workspace frames in the overflow cache with a maximum capacity
of 20 frames, and 10 file space frames in the overflow cache with
maximum capacity of 30 frames.

```
set-ovf-local

Private Overflow Cache Status:
 Current Max
WS 2 20
File 10 30
```
Sets the maximum workspace cache
size for the current line to 100, and the maximum file space cache
size to 300.

```
set-ovf-local 100,300 (s
```
Releases all frames in the current overflow cache to the
global pool.

```
set-ovf-local (fs
```
Sets the maximum workspace cache size for the current
line to 100, and the maximum file space cache size to 300. The settings
are also copied into the global default area. All users logging into
the system after this command has been executed will automatically
get caches sized to this specification.

```
set-ovf-local 100,300 (sg
```

## See also

- [init-ovf command](https://d3codex.com/tcl/init-ovf-command/)
- [Pointer item](https://d3codex.com/definitions/pointer-item/)
- [set-ovf-reserve command](https://d3codex.com/tcl/set-ovf-reserve-command/)
- [set-runaway-limit command](https://d3codex.com/tcl/set-runaway-limit-command/)
- [ovf-monitor command](https://d3codex.com/tcl/ovf-monitor-command/)

---
Source: https://d3codex.com/tcl/set-ovf-local-command/ - part of the D3Codex reference.
