old - Open Lock Daemon



old (which means Open Lock Daemon) is a simple lock server which provides central point where to lock resources in a distributed environment by using TCP/IP to communicate with its clients.

Note: this project is currently unmaintained, and the functionality it provides will eventually be added to nmdb.

Objects are identified by strings, so it's really a general purpose server: you can use it to lock from files to pointers, as long as all your apps have a coherent object naming scheme. This makes it useful to any kind of distributed applications, for instance mailservers or databases.

It provides the basic locking primitives (lock, unlock and trylock) and uses a lightweight and simple network protocol, but there are both C and Python libraries which abstract you from handling it directly and provide the normal straightforward functions to use in a very simple and easy way. It's written in plain C and has no dependencies on external libraries, and it has a decent performance (about 7850 lock(A); unlock(A) operations per second on a normal Pentium 4 2.8Ghz). If you're intrested in performance, some measurements have been included inside the package, and you can find a small document in doc/performance (raw data files and scripts used are in doc/perf/ directory); but there are some not included in the tarball, let me know if you want them.

Please read the README file for more information.


Most documentation is inside the 'doc' dir inside the package, and you can check it out here.

Also, there are manpages for both the daemon (old) and the library (libold).


The current version is 0.17 (released on 2006-07-31): You can also browse all released files.

Patches are welcome. The source code is managed using git. You can browse the repository, or clone it by running:

git clone git://blitiri.com.ar/old

Alberto Bertogli (albertito@blitiri.com.ar) - Last updated 10/Nov/2012