nmdb

NAME

  nmdb - A multiprotocol network database manager  

SYNOPSYS

nmdb [-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]

 

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 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 http://blitiri.com.ar/p/nmdb.

 

OPTIONS

-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.
-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.
-L upper
Upper TIPC port number to bind to. Defaults to the same value lower is defined. Useful mainly for passive mode.
-t tcpport
TCP listening port. Defaults to 26010.
-T tcpaddr
IP listening address for TCP. Defaults to all local addresses.
-u udpport
UDP listening port. Defaults to 26010.
-U udpaddr
IP listening address for UDP. Defaults to all local addresses.
-s sctpport
SCTP listening port. Defaults to 26010.
-S sctpaddr
IP listening address for SCTP. Defaults to all local addresses.
-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.
-o fname
Enable logging into the given file name. By default, output the debugging information to stdout.
-f
Stay in the foreground, don't fork. Useful for debugging. The default is to fork.
-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 not start an active and a passive server in the same machine (it misbehaves under some circumnstances, and doesn't make much sense anyway).
-h
Show a brief help.

 

INVOCATION EXAMPLE

To run the server with the database at /var/lib/nmpc-db: nmpc -d /var/lib/nmpc-db

Be 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.

 

SEE ALSO

libnmdb(3), TIPC (http://tipc.sf.net), qdbm(3).

 

AUTHORS

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

 

CONTACT

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


Alberto Bertogli (albertito@blitiri.com.ar) - Last updated 15/Mar/2009