author | Alberto Bertogli
<albertito@gmail.com> 2007-06-24 08:09:21 UTC |
committer | Alberto Bertogli
<albertito@gmail.com> 2007-06-24 08:09:21 UTC |
parent | b9cd7e2efd7eb30edf700cac24247d3d4f042d1b |
README | +4 | -4 |
doc/design.rst | +6 | -6 |
doc/guide.rst | +26 | -20 |
nmdb/nmdb.1 | +3 | -5 |
diff --git a/README b/README index a28a44c..bde5926 100644 --- a/README +++ b/README @@ -1,10 +1,10 @@ -nmdb - A TIPC-based database manager +nmdb - A multiprotocol network database manager Alberto Bertogli (albertito@gmail.com) ------------------------------------------ +--------------------------------------------------- -nmdb is a network database that uses the TIPC protocol to communicate with -it's clients. +nmdb is a network database that can use several protocols to communicate with +it's clients. At the moment, it supports TIPC, TCP and UDP. It consists of an in-memory cache, that saves (key, value) pairs, and a persistent backend that stores the pairs on disk. diff --git a/doc/design.rst b/doc/design.rst index e28fc82..105370c 100644 --- a/doc/design.rst +++ b/doc/design.rst @@ -1,16 +1,16 @@ -===================================== -nmdb - A TIPC-based database manager -===================================== +================================================= +nmdb - A multiprotocol network database manager +================================================= :Author: Alberto Bertogli (albertito@gmail.com) Introduction ============ -nmdb_ is a simple and fast cache and database for TIPC clusters. It allows -applications in the cluster to use a centralized, shared cache and database in -a very easy way. It stores *(key, value)* pairs, with each key having only one +nmdb_ is a simple and fast cache and database for controlled networks. It +allows applications to use a centralized, shared cache and database in a very +easy way. It stores *(key, value)* pairs, with each key having only one associated value. This document explains how the server works internally, and why it works that diff --git a/doc/guide.rst b/doc/guide.rst index 112475d..02e3d58 100644 --- a/doc/guide.rst +++ b/doc/guide.rst @@ -30,9 +30,12 @@ Prerequisites Before you install nmdb, you will need the following software: - libevent_, a library for fast event handling. -- `Linux kernel`_ 2.6.16 or newer, compiled with TIPC_ support. - QDBM_, for the database backend. +And, if you're going to use TIPC_: + +- `Linux kernel`_ 2.6.16 or newer, compiled with TIPC_ support. + Compiling and installing ------------------------ @@ -40,9 +43,11 @@ Compiling and installing There are three components of the nmdb tarball: the server in the *nmdb/* directory, the C library in *libnmdb/*, and the Python module in *python/*. -- To install the server, run ``cd nmdb; make install``. -- To install the C library, run ``cd libnmdb; make install; ldconfig``. -- To install the Python module, run ``cd python; python setup.py install``. +To install the server and the C library, run ``make install; ldconfig``. To +install the Python module, run ``make python_install``. + +If you want to disable support for some protocol (i.e. TIPC), you can do so by +running ``make ENABLE_TIPC=0 install``. Quick start @@ -62,7 +67,7 @@ simple way to test it is to use the python module, like this:: Type "help", "copyright", "credits" or "license" for more information. >>> import nmdb # import the module >>> db = nmdb.DB() # create a DB object - >>> db.add_tipc_server() # connect to the TIPC server + >>> db.add_tcp_server("localhost") # connect to the TCP server >>> db['x'] = 1 # store some data >>> db[(1, 2)] = (2, 6) >>> print db['x'], db[(1, 2)] # retreive the values @@ -125,20 +130,6 @@ Starting the server Before starting the server, there are some things you need to know about it: -Port numbers - Each server instance in your network (even the ones running in the same - machine) should get a **unique** port to listen to requests. Ports identify - an application instance inside the whole network, not just the machine as in - TCP/IP. - - The port space is very very large, and it's private to nmdb, so you can - choose numbers without fear of colliding with other TIPC applications. The - default port is 10. - - So, if you are going to start more than one nmdb server, **be careful**. If - you assign two active servers the same port you will get no error, but - everything will act weird. - Cache size nmdb's cache is a main component of the server. In fact you can use it exclusively for caching purposes, like memcached_. So the size becomes an @@ -174,6 +165,20 @@ Distributed queries the queries among them. This is entirely done on the client side and the server doesn't know about it. +TIPC Port numbers + With TIPC, each server instance in your network (even the ones running in + the same machine) should get a **unique** port to listen to requests. Ports + identify an application instance inside the whole network, not just the + machine as in TCP/IP. + + The port space is very very large, and it's private to nmdb, so you can + choose numbers without fear of colliding with other TIPC applications. The + default port is 10. + + So, if you are going to start more than one nmdb server, **be careful**. If + you assign two active servers the same port you will get no error, but + everything will act weird. + Now that you know all that, starting a server should be quite simple: first create the database as explained above, and then run the daemon with @@ -248,7 +253,8 @@ Distributed queries For all examples we will assume that you have three servers running in your -network, in ports 11, 12 and 13. +network, two in TIPC ports 11 and 12, and one TCP listening on localhost on +the default port. The Python module diff --git a/nmdb/nmdb.1 b/nmdb/nmdb.1 index f3fbccf..812c729 100644 --- a/nmdb/nmdb.1 +++ b/nmdb/nmdb.1 @@ -1,14 +1,12 @@ .TH nmdb 1 "11/Sep/2006" .SH NAME -nmdb - A TIPC-based database manager +nmdb - A multiprotocol network database manager .SH SYNOPSYS nmdb [-d dbpath] [-l lower] [-L upper] [-c nobj] [-f] [-p] [-h] .SH DESCRIPTION -nmdb is a TIPC-based database manager. - -It allows all the applications in the cluster to store (key, value) pairs in a -central cache and database in a transparent way. +nmdb is a network database that can use several protocols to communicate with +it's clients. At the moment, it supports TIPC, TCP and UDP. 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