git » nmdb » master » tree

[master] / nmdb / nmdb.1

.TH nmdb 1 "11/Sep/2006"
.SH NAME
nmdb - A multiprotocol network database manager
.SH SYNOPSIS
nmdb [-b backend] [-d dbpath]
  [-l lower] [-L upper]
  [-t tcpport] [-T tcpaddr]
  [-u udpport] [-U udpaddr]
  [-s sctpport] [-S sctpaddr]
  [-c nobj] [-o fname] [-f] [-p] [-h]

.SH DESCRIPTION

nmdb is a network database that can use different protocols to communicate
with its clients. At the moment, it supports TIPC, TCP, UDP and SCTP.

It can also be used as a generic caching system (pretty much like memcached),
because it has a very fast cache that can be used without impacting on the
database.

The database is accessed with the
.BR libnmdb (3)
library. Consult its manual page for programming information. Python bindings
are also available.

For additional documentation, go to the project's website at
.IR http://blitiri.com.ar/p/nmdb .

.SH OPTIONS
.TP
.B "-b backend"
Which database library to use as backend. It can be one of tdb, tc, qdbm, bdb,
or null, although not all of them may be available, depending on build-time
options. On doubt, use the default.
.TP
.B "-d dbpath"
Indicate the path to the database file to use. It will be created if it
doesn't exist. If a name is not provided, "database" will be used.
.TP
.B "-l lower"
Lower TIPC port number to bind to. Defaults to 10. It's useful if you want to
run more than one nmdb instance in the same TIPC cluster.
.TP
.B "-L upper"
Upper TIPC port number to bind to. Defaults to the same value
.B lower
is defined. Useful mainly for passive mode.
.TP
.B "-t tcpport"
TCP listening port. Defaults to 26010.
.TP
.B "-T tcpaddr"
IP listening address for TCP. Defaults to all local addresses.
.TP
.B "-u udpport"
UDP listening port. Defaults to 26010.
.TP
.B "-U udpaddr"
IP listening address for UDP. Defaults to all local addresses.
.TP
.B "-s sctpport"
SCTP listening port. Defaults to 26010.
.TP
.B "-S sctpaddr"
IP listening address for SCTP. Defaults to all local addresses.
.TP
.B "-c nobj"
Sets the maximum number of objects the cache will held, in thousands. Note
that the size of the memory used by the cache layer depends on the size of the
object exclusively. It defaults to 128, so the default cache size has space to
hold 128 thousand objects.
.TP
.B "-o fname"
Enable logging into the given file name. By default, output the debugging
information to stdout.
.TP
.B "-f"
Stay in the foreground, don't fork. Useful for debugging. The default is to
fork.
.TP
.B "-p"
Enable passive mode, where the server never replies requests, but acts upon
them. It's useful when you want to have a live database mirror, in case the
main node fails. It still requires a manual restart to became active, but at
least you have a recent up-to-date database. Be aware that it's not widely
tested (although it should work fine), and do
.I not
start an active and a passive server in the same machine (it misbehaves under
some circumstances, and doesn't make much sense anyway).
.TP
.B "-r"
Read-only mode. The server will refuse any request that would alter the
database and/or cache. Useful for redundancy and replication.
.TP
.B "-h"
Show a brief help.

.SH INVOCATION EXAMPLE
To run the server with the database at /var/lib/nmdb-db:
.B "nmdb -d /var/lib/nmdb-db"

Be
.I very
careful not to start more than one nmdb instance on the same port at the same
time, even if it's on different machines. TIPC allows you to bind the same
port many times (and it's a very good feature), and all of them will get the
messages, which will result in several answers, which will confuse the
clients. This behaviour is different from the normal IP networking, where you
can't bind a port twice.

.SH SEE ALSO
.BR libnmdb (3).

.SH AUTHORS
Created by Alberto Bertogli (albertito@blitiri.com.ar).

.SH CONTACT

If you want to report bugs, or have any questions or comments, just let me
know at albertito@blitiri.com.ar.