Welcome to ZLog¶
ZLog is a strong consistent shared-log designed to run at high-performance over distributed storage systems. It is an implementation of the CORFU protocol, and currently operates on top of the Ceph software-defined storage system (with a pluggable storage backend). There are language bindings for C/C++, Java, and Go.
Community¶
- Mailing list: https://groups.google.com/group/cruzdb/
- Tracker: https://github.com/cruzdb/zlog/issues
We welcome and encourage people to learn and contribute to the ZLog project. If you are looking for ways to get started, we use the E-easy and E-intermediate labels to tag issues that are good candidates for new contributors.
Building from source¶
Clone a copy of the source tree which can be found at
https://github.com/cruzdb/zlog.
When cloning the source repository be sure to use --recursive
to also fetch
the sub-modules. If you forget to use --recursive
then you can fetch them
later using git submodule update --init --recursive
.
git clone --recursive https://github.com/cruzdb/zlog.git
The base set of dependencies required to build ZLog can be installed by
running the script install-dep.sh
found in the root of the source tree.
Note
The install-deps.sh
has been tested on Fedora, RHEL/CentOS, Ubuntu,
Debian, and MacOS (using homebrew). Please contact us (see Community)
if you have any issues getting started.
cd zlog
./install-deps.sh
Once the dependencies have been installed the tree can be built using
cmake
. By default only the LMDB storage backend will be built. This
is suitable for development and testing, but in order to run ZLog in
production a distributed storage engine such as Ceph should be used.
cmake .
make
make install
Run a basic set of unit tests using the development backend. For information on testing a specific storage engine refer to the documentation on a given storage engine.
./src/test/zlog_test_backend_lmdb
Next read about the storage engines that ZLog can use to provide high-performance reliable storage for your log.