Oberon ||
Compiler & Tools ||
Library ||
Module Index ||
Search Engine
Ulm's Oberon System:
cdbd
NAME
cdbd - CDB daemon
SYNOPSIS
cdbd
[-a
authfile]
[-b
basedir]
{-B
bind-address
port}
[-i
intensity]
[-m]
[-r
read-auth]
[-s
shutdown-auth]
[-w
write-auth]
dbname
DESCRIPTION
cdbd
provides a persistent storage for the compiler database (CDB).
All objects are stored using a container (see Containers
and StandardContainers) that is based upon a safe
storage using TransStreams on a regular file named dbname.
The database file dbname will be created if it does not exist yet.
Note that database files basing on StandardContainers and
TransStreams contain holes causing the size returned by
stat(2) to be much larger than the actual disk usage.
These files must be copied with care (either compress them first,
or use options like -sparse of star(1)). It is not
safe, however, to copy a database file while cdbd is running.
All objects of the database are visible through the Oberon name space
system (see Names) and will be mounted at basedir
(default /pub/cdb). Note that basedir must exist already.
The root directory of the name space of cdbd has two entries:
a directory named modules and a maintenance object called
cdbd that can be used by onsstat or onsshut.
Below modules a directory is created for each existing
module with following sub structure:
modname/obj/genkey/arch/archkey/def/srcid/sth unique
modname/obj/genkey/arch/archkey/mod/srcid/sth unique
modname/obj/genkey/gen/def/srcid/sth unique
modname/obj/genkey/gen/mod/srcid/sth unique
modname/src/def/srcid
modname/src/mod/srcid
Following definitions apply:
- modname
-
modname
the full unabridged named of the module
- genkey
-
the architecture-independent key (in ASCII form),
see CompilerKeys
- arch
-
the architecture (in ASCII form), see Architectures
archkey the architecture-dependent key (in ASCII form)
- srcid
-
MD5 checksum of the source
- sth unique
-
an unique name that will be generated by CDBNames
cdbd
may be terminated by killing it (sending SIGTERM is preferred), or
invoking onsshut for the object named cdbd in the base directory.
On termination, cdbd does not necessarily finish any on-going
transactions or requests.
Following options are supported:
- -a authfile
-
specifies a file containing a persistent object of type
Shards.Lid that is to be used for authorization to
insert the root node of CDB into the Oberon name space.
- -b basedir
-
defines the base path of the compiler data base (CDB). Default is
/pub/cdb.
- -B bind-address port
-
add this port to those ports used by RemoteObjects.
By default an ephemeral port address is taken.
- -i intensity
-
allows to set the intensity level for Storage.Intensity
(see Storage). This allows to fine-tune the balance of
memory usage vs CPU time by the garbage collection. By default,
the intensity is 9. Lower intensity values reduce memory usage
but cause CPU overhead by more frequent garbage collections.
Higher intensity values cause more memory to be used while saving
more CPU time. Please note however, that the address space can
also be a significant limit, i.e. at high intensity values it
is possible that no more address space is found by Memory.
- -m
-
asks to setup performance monitoring by SysMonitor.
Statistics are printed to standard output whenever SIGALRM
is received.
- -r read-auth
-
specifies a file containing a persistent pair of shards (of types
Shards.Lid and Shards.Pot). If given, all read-only accesses
must provide a lid that fits to the pot of read-auth. By default no
authorization is required for read-only accesses. If this file does not
exist yet, it is created and initialized with a pair of private shards
(see PrivateShards).
- -s shutdown-auth
-
specifies a file containing a persistent pair of shards (of types
Shards.Lid and Shards.Pot). Shutdown operations on the
cdbd object in the root directory must provide a lid that
fits to shutdown-auth. By default, shutdown-auth equals
write-auth. If this file does not exist yet, it is created and
initialized with a pair of private shards (see PrivateShards).
- -w write-auth
-
specifies a file containing a persistent pair of shards (of types
Shards.Lid and Shards.Pot). If given, all write-accesses
must provide a lid that fits to the pot of write-auth. By default,
write accesses are prohibited to everybody. If this file does not
exist yet, it is created and initialized with a pair of private shards
(see PrivateShards).
ENVIRONMENT
UnixNames is used to find the shared Oberon name space.
This module considers the environment variable ONS_ROOT
to find the Oberon name server.
SEE ALSO
- obload
-
compiles (if necessary) and loads modules.
- obci
-
check in Oberon sources into the CDB.
- obco
-
check out Oberon sources from the CDB.
- pons
-
daemon defining the shared root of the Oberon name space.
Edited by: borchert, last change: 2005/02/10, revision: 1.5, converted to HTML: 2005/02/10
Oberon ||
Compiler & Tools ||
Library ||
Module Index ||
Search Engine