mkpool

Creates a VOB storage pool or modifies its scrubbing parameters

Applicability

Product

Command type

VersionVault

cleartool subcommand

Platform

UNIX®

Linux®

Windows®

Synopsis

  • UNIX® and Linux® only—Create source pool:
    mkpool –sou/rce [ –ln pname ]
    [ –c/omment comment | –cfi/le comment-file-pname | –cq/uery

    | –cqe/ach | –nc/omment ] pool-selector ...

  • UNIX® and Linux® only—Create derived object pool or cleartext pool:
    mkpool { –der/ived | –cle/artext } [ –ln pname ]
    [ –siz/e max-kbytes reclaim-kbytes [ –age hours ]

    [ –ale/rt command ] ]

    [ –c/omment comment | –cfi/le comment-file-pname | –cq/uery

    | –cqe/ach | –nc/omment ] pool-selector ...

  • Windows® only—Create source pool:
    mkpool –sou/rce
    [ –c/omment comment | –cfi/le comment-file-pname | –cq/uery

    | –cqe/ach | –nc/omment ] pool-selector ...

  • Windows® only—Create derived object pool or cleartext pool:
    mkpool { –der/ived | –cle/artext }
    [ –siz/e max-kbytes reclaim-kbytes [ –age hours ]

    [ –ale/rt command ] ]

    [ –c/omment comment | –cfi/le comment-file-pname | –cq/uery

    | –cqe/ach | –nc/omment ] pool-selector ...

  • Update pool parameters:
    mkpool –upd/ate [ –siz/e max-kbytes reclaim-kbytes ] [ –age hours ]
    [ –ale/rt command ]

    [ –c/omment comment | –cfi/le comment-file-pname | –cq/uery

    | –cqe/ach | –nc/omment ] pool-selector ...

Description

The mkpool command creates a source storage pool, derived object storage pool, or cleartext storage pool, and initializes the pool's scrubbing parameters. You can also use this command to update the scrubbing parameters of an existing storage pool.

Note: If ACLs are enabled, this command displays a warning if the file system on which the pool resides does not support ACLs.

Storage pools are directories used as physical storage areas for different kinds of data:

  • A source storage pool stores the data containers that contain versions of elements.
  • A derived object storage pool stores shared derived objects (those that are referenced by more than one view).
  • A cleartext storage pool is a cache of text files. If an element's versions are stored in a compressed format, accessing a particular version involves some processing overhead; a type manager program is invoked to extract the cleartext of that version from the data container. As a performance optimization, the extracted version is cached as a file in a cleartext storage pool. The next access to that same version uses the cached copy, saving the cost of extracting the version from the data container again.

Creating a new VOB with the mkvob command creates one default pool of each kind: sdft (source pool), ddft (derived object pool), and cdft (cleartext pool).

mkpool creates a storage pool as a directory within the VOB storage area. Source pools are always created within subdirectory s of the VOB storage directory; derived object pools are created within subdirectory d; cleartext pools are created within subdirectory c. The –ln option allows you to create pools elsewhere, to be accessed at the standard locations through symbolic links.

Pool allocation and inheritance

Each file element is assigned to one source pool and one cleartext pool. The source pool provides permanent storage, in one or more data container files, for all of the element's versions. If the element's versions are stored in a compressed format, the cleartext pool is used to cache extracted versions of that element, as described earlier. (If each version is stored uncompressed in a separate data container, the cleartext pool is not used.)

Each directory element is also assigned to one source pool and one cleartext pool. But directory versions themselves are not stored in these pools. (They are stored directly in the VOB database.) Rather, a directory's pool assignments are used solely for pool inheritance: each element created within the directory inherits its source and cleartext pool assignments.

Each directory element is also assigned to one derived object pool. All shared derived objects with path names in that directory are stored in that pool. A new directory element inherits the derived object pool of its parent, along with the source and cleartext pools.

The pool inheritance scheme begins at the VOB root directory (top-level directory element) created by mkvob, which is automatically assigned to the default pools.

You can change any of an element's pool assignments with the chpool command.

Scrubbing

Scrubbing is the process of reclaiming space in a derived object pool or cleartext pool. (Source pools are not subject to scrubbing.) This process is performed by the scrubber utility. mkpool initializes or updates these scrubbing parameters:

maximum size

(max-kbytes) Maximum pool size

reclaim size

(reclaim-kbytes) Size to which scrubber attempts to reduce the pool

age

(hours) Threshold to prevent premature scrubbing of recently referenced objects

The default settings for the scrubbing parameters are max-kbytes = 0, reclaim-kbytes = 0, hours = 96. For details on how these parameters are interpreted, see the scrubber reference page.

By default, the scheduler runs scrubber periodically. For information on describing and changing scheduled jobs, see the schedule reference page.

Getting information about storage pools

The lspool command lists a VOB's storage pools. If you include the –long option, the current settings of the scrubbing parameters are listed, as well. (The describe –pool command displays the same information as lspool –long.)

Restrictions

Identities

You must have one of the following identities:

  • VOB owner
  • root (UNIX® and Linux®)
  • Member of the VersionVault administrators group (Windows®)

Locks

An error occurs if one or more of these objects are locked: VOB, pool (for -update only).

Mastership

(Replicated VOBs only) No mastership restrictions.

Options and arguments

Specifying the kind of storage pool / specifying an update

Default
You must specify the kind of pool, unless you use –update and name an existing pool. The following options are mutually exclusive.
–sou/rce
Creates a source pool.
–der/ived
Creates a derived object pool.
–cle/artext
Creates a cleartext pool.
–upd/ate
Asserts that the parameters of an existing pool are to be updated. You must also use a –size and/or –age option.

Local vs. remote storage

Default
Creates a storage pool as a subdirectory under the VOB storage directory.
–ln pname
Creates a storage pool directory at pname, and creates pool-name in the VOB storage directory as a symbolic link to pname. You can create only one pool when using this option.

Restriction: pname must be a full path name, starting with a slash (/). It must also be a global path name, valid on every host from which users will access the VOB. mkpool attempts to verify that this path name is truly global, using a simple heuristic. (For example, a path name that begins with /net is likely to be global.) If it suspects that pname is not global, mkpool proceeds anyway, but displays a warning message:

Warning: Linktext for pool does not appear to be a global path.

This mechanism is independent of the network storage registry facility. Thus, the path name to a remote storage pool directory must be truly global, not global within a particular network region.

Important: Keep source pools local, within the VOB storage directory. This strategy optimizes data integrity: a single disk partition contains all of the VOB's essential data. It also simplifies backup/restore procedures.

Specifying new parameters

Default
For a new derived object or cleartext pool: the maximum size and reclaim size parameters are set to 0, which enables a special scrubbing procedure. (See the scrubber reference page.) The age parameter is set to 96 (hours). These parameters are meaningless for a source pool.

When updating an existing pool, you must use at least one of –size and –age.

–siz/e max-kbytes reclaim-kbytes
Specifies that the pool is scrubbed if its size exceeds max-kbytes KB; scrubbing will continues until the pool reaches the goal size of reclaim-kbytes KB.
–age hours
Prevents scrubbing of derived objects or cleartext files that have been referenced within the specified number of hours. Specifying –age 0 restores the default age setting (96 hours).

Scrubber failure processing

Default
If scrubber fails to scrub a pool below its max-kbytes level, it logs a warning message in /var/adm/hcl/versionvault/log/scrubber_log (UNIX® and Linux®) or the Windows® event log, but takes no other action.
–ale/rt command
Causes scrubber to run the specified command (typically, a shell script or batch file) whenever it fails to scrub a pool below its max-kbytes level.

Windows®: If you invoke a command built in to the Windows® shell (for example, cd, del, dir, or copy) instead of a batch file, you must invoke the shell with cmd /c. For example:

–alert 'cmd /c cd \tmp & del *.*'

Event records and comments

Default
Creates one or more event records, with commenting controlled by your .versionvault_profile file (default: –cqe). See the comments reference page. Comments can be edited with chevent.
–c/omment comment | –cfi/le comment-file-pname |–cq/uery | –cqe/ach | –nc/omment
Overrides the default with the option you specify. See the comments reference page.

Specifying the pool

Default
Creates or updates a pool in the VOB containing the current working directory unless you specify another VOB with the @vob-selector suffix.
pool-selector ...
One or more names for the storage pools to be created. Specify pool-selector in the form [pool:]pool-name[@vob-selector]

pool-selector

pool-name

Name of the storage pool

See the cleartool reference page for rules about composing names.

vob-selector

VOB specifier

Specify vob-selector in the form [vob:]pname-in-vob

pname-in-vob

Pathname of the VOB tag (whether or not the VOB is mounted) or of any file system object within the VOB (if the VOB is mounted)

Examples

The UNIX system and Linux examples in this section are written for use in csh. If you use another shell, you may need to use different quoting and escaping conventions.

The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.

In cleartool single-command mode, cmd-context represents the UNIX system and Linux shells or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt.

  • Create a source pool that uses the default pool parameters.

    cmd-context mkpool –source –c "pool for c source files" c_pool
    Created pool "c_pool".

  • Create a derived object pool with a maximum size of 10,000 KB (10 MB) and a reclaim size of 8,000 KB (8 MB). Allow the age parameter to assume its default value.

    cmd-context mkpool –derived –nc –size 10000 8000 do1
    Created pool "do1".

  • Update the derived object pool created in the previous example, so that any derived object referenced within the last week (168 hours) is not scrubbed.

    cmd-context mkpool –nc –update –age 168 do1
    Updated pool "do1".

  • On a UNIX® or Linux® system, create a nonlocal cleartext storage pool at the globally accessible location /usr/vobstore/vvault_pools/c2, to be accessed as pool cltxt2.

    cmd-context mkpool –nc –cleartext –ln /usr/vobstore/vvault_pools/c2 cltxt2
    Created pool "cltxt2".

    This command creates this symbolic link:

    vob-storage-dir-pname/c/cltxt –> /usr/vobstore/vvault_pools/c2

  • Create a cleartext pool named my_ctpool that uses the default pool parameters. Then, change all elements using pool cdft (the default cleartext pool) to use my_ctpool instead.

    cmd-context mkpool -cleartext -c "alternate cleartext pool" my_ctpool
    Created pool "my_ctpool".
    cmd-context find . -all -element 'pool(cdft)' -exec 'cleartool chpool ^
    -force my_ctpool $CLEARCASE_PN'

    Changed pool for "/users_hw" to "my_ctpool".
    Changed pool for "/users_hw/bin" to "my_ctpool".
    Changed pool for "/users_hw/bin/hello" to "my_ctpool".
    Changed pool for "/users_hw/bugs" to "my_ctpool".
    Changed pool for "/users_hw/bugs/bug.report.21" to "my_ctpool".
    Changed pool for "/users_hw/doc" to "my_ctpool".
    Changed pool for "/users_hw/doc/util.doc" to "my_ctpool".
    Changed pool for "/users_hw/include" to "my_ctpool".
    Changed pool for "/users_hw/libs" to "my_ctpool".
    Changed pool for "/users_hw/libs/libntx.a" to "my_ctpool".
    Changed pool for "/users_hw/libs/libpvt.a" to "my_ctpool"
    .
    .
    .