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 wheremain()
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.licenses/
- The various licenses in use
Building
KV-Engine has a number of external dependancies, as such it should be built via the Couchbase top-level Makefile.
Documentation
Architecture
- KV-Engine Architecture
- CBSASL
- Audit
- Event Tracing / Phosphor
- Document attributes
- Environment variables
- Role Based Access Control (RBAC)
- SSL Client Certificate
- DCP
- Memcached configuration file
- Network interfaces
- HiFi MFU Eviction Policy
- Throttling
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:
couchbase/couchstore
- Couchbase storage file library.couchbase/phosphor
- Phosphor: high performance event tracing framework.couchbase/platform
- Platform abstraction layer.couchbase/subjson
- subjson - quickly manipulate JSON subfields.