/kv_engine

Couchbase Key-Value Engine

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

KV-Engine

Welcome to the Couchbase KV-Engine project.

This started as Couchbase's fork of the upstream memcached project, but has substantially evolved since then. It contains the bulk of the code for the Key/Value service of Couchbase Server.

Repository Layout

Areas of interest in the repository:

  • include/ - Public header files.
  • daemon/ - Source for the main daemon process (also known as the server). This is where main() lives.
  • engines/ - Source for the different engines (aka bucket types) supported. Includes:
    • default engine - The original memcache engine. Powers the Memcache bucket type.
    • ep - Eventually Persistent Engine. Powers the Couchbase and Ephemeral bucket types.
    • ewouldblock engine - Test engine which interposes a real engine and can perform various types of error-injection.
  • tests/ - Test cases.

Building

KV-Engine has a number of external dependancies, as such it should be built via the Couchbase top-level Makefile.

Documentation

Architecture

Protocols

Policies / Guidelines

Tools

Related Projects

While the bulk of code making up KV-Engine is in this repo, there are a number of other repositories which contribute to the final program: