Name Date Size

..11-Feb-20204 KiB

.gitignoreH A D11-Feb-2020733

.mailmapH A D11-Feb-2020720

auditd/H11-Feb-20204 KiB

cbcrypto/H11-Feb-20204 KiB

cbsasl/H11-Feb-20204 KiB

CMakeLists.txtH A D11-Feb-20208.6 KiB

config.h.inH A D11-Feb-20202.7 KiB

CONTRIBUTING.mdH A D11-Feb-20201.2 KiB

COPYINGH A D11-Feb-20201.5 KiB

CTestCustom.cmake.inH A D11-Feb-2020259

daemon/H11-Feb-20204 KiB

docs/H11-Feb-20204 KiB

engines/H11-Feb-20204 KiB

etc/H11-Feb-20204 KiB

include/H11-Feb-20204 KiB

LICENSEH A D11-Feb-20201.5 KiB

logger/H11-Feb-20204 KiB

man/man4/H11-Feb-20204 KiB

memcached_dtrace.dH A D11-Feb-202010.4 KiB

programs/H11-Feb-20204 KiB

protocol/H11-Feb-20204 KiB

rbac/H11-Feb-20204 KiB

README.mdH A D11-Feb-20202.5 KiB

scripts/H11-Feb-20204 KiB

support-files/H11-Feb-20204 KiB

tests/H11-Feb-20204 KiB

testsuite/H11-Feb-20204 KiB

time/H11-Feb-20204 KiB

trace.hH A D11-Feb-20203.2 KiB

tracing/H11-Feb-20204 KiB

utilities/H11-Feb-20204 KiB

xattr/H11-Feb-20204 KiB

README.md

1# KV-Engine
2
3Welcome to the Couchbase _KV-Engine_ project.
4
5This started as Couchbase's fork of the upstream `memcached` project,
6but has substantially evolved since then. It contains the bulk of the
7code for the Key/Value service of Couchbase Server.
8
9## Repository Layout
10
11Areas of interest in the repository:
12
13* [`include/`](include/) - Public header files.
14* `daemon/` - Source for the main daemon process (also known as the
15  _server_). This is where [`main()`](daemon/memcached.cc) lives.
16* `engines/` - Source for the different engines (aka bucket types)
17  supported. Includes:
18    * [`default engine`](engines/default_engine/) - The original
19      _memcache_ engine. Powers the _Memcache_ bucket type.
20    * [`ep`](engines/ep/) - _Eventually Persistent_ Engine. Powers the
21    _Couchbase_ and _Ephemeral_ bucket types.
22    * [`ewouldblock engine`](engines/ewouldblock_engine) - Test engine
23      which interposes a real engine and can perform various types of
24      error-injection.
25* `tests/` - Test cases.
26
27## Building
28
29KV-Engine has a number of external dependancies, as such it should be
30built via the Couchbase
31[top-level Makefile](https://github.com/couchbase/tlm).
32
33## Documentation
34
35### Architecture
36
37* [KV-Engine Architecture](docs/Architecture.md)
38* [CBSASL](cbsasl/CBSASL.md)
39* [Audit](auditd/README.md)
40* [Event Tracing / Phosphor](docs/Tracing.md)
41* [Document attributes](docs/Document.md)
42* [Environment variables](docs/EnvironmentVariables.md)
43* [Role Based Access Control (RBAC)](docs/rbac.md)
44* [SSL Client Certificate](docs/ssl_client_cert.md)
45
46### Protocols
47
48* [Memcached Binary Protocol](docs/BinaryProtocol.md)
49    * [SASL](docs/sasl.md)
50    * [Duplex mode](docs/Duplex.md)
51
52### Policies / Guidelines
53
54* [Coding Standards](docs/CodingStandards.rst)
55* [Error Handling Best Practices](docs/ErrorHandling.md)
56
57## Tools
58
59* [Analyze jemalloc memory statistics](scripts/jemalloc/jemalloc_analyse.md)
60
61## Related Projects
62
63While the bulk of code making up KV-Engine is in this repo, there are
64a number of other repositories which contribute to the final program:
65
66* [`couchbase/couchstore`](https://github.com/couchbase/couchstore) -
67  Couchbase storage file library.
68* [`couchbase/phosphor`](https://github.com/couchbase/phosphor) -
69  Phosphor: high performance event tracing framework.
70* [`couchbase/platform`](https://github.com/couchbase/platform) -
71  Platform abstraction layer.
72* [`couchbase/subjson`](https://github.com/couchbase/subjson) -
73  subjson - quickly manipulate JSON subfields.
74