Name Date Size

..11-Jan-20224 KiB

.gitignoreH A D11-Jan-2022741

.mailmapH A D11-Jan-2022720

auditd/H11-Jan-20224 KiB

cbcrypto/H11-Jan-20224 KiB

cbsasl/H11-Jan-20224 KiB

CMakeLists.txtH A D11-Jan-202210.2 KiB

CONTRIBUTING.mdH A D11-Jan-20221.2 KiB

COPYINGH A D11-Jan-20221.5 KiB

CTestCustom.cmakeH A D11-Jan-2022259

daemon/H11-Jan-20224 KiB

docs/H11-Jan-20224 KiB

engines/H11-Jan-20224 KiB

etc/H11-Jan-20224 KiB

include/H11-Jan-20224 KiB

LICENSEH A D11-Jan-20221.5 KiB

logger/H11-Jan-20224 KiB

programs/H11-Jan-20224 KiB

protocol/H11-Jan-20224 KiB

rbac/H11-Jan-20224 KiB

README.mdH A D11-Jan-20222.6 KiB

scripts/H11-Jan-20224 KiB

tests/H11-Jan-20224 KiB

testsuite/H11-Jan-20224 KiB

time/H11-Jan-20224 KiB

tracing/H11-Jan-20224 KiB

utilities/H11-Jan-20224 KiB

xattr/H11-Jan-20224 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* [DCP](docs/dcp/README.md)
46* [Memcached configuration file](docs/memcached.json.adoc)
47
48### Protocols
49
50* [Memcached Binary Protocol](docs/BinaryProtocol.md)
51    * [SASL](docs/sasl.md)
52    * [Duplex mode](docs/Duplex.md)
53    * [External Authentication Provider](docs/ExternalAuthProvider.md)
54    * [DCP](docs/dcp/documentation/protocol.md)
55
56### Policies / Guidelines
57
58* [Coding Standards](docs/CodingStandards.rst)
59* [Error Handling Best Practices](docs/ErrorHandling.md)
60
61## Tools
62
63* [Analyze jemalloc memory statistics](scripts/jemalloc/README.md)
64
65## Related Projects
66
67While the bulk of code making up KV-Engine is in this repo, there are
68a number of other repositories which contribute to the final program:
69
70* [`couchbase/couchstore`](https://github.com/couchbase/couchstore) -
71  Couchbase storage file library.
72* [`couchbase/phosphor`](https://github.com/couchbase/phosphor) -
73  Phosphor: high performance event tracing framework.
74* [`couchbase/platform`](https://github.com/couchbase/platform) -
75  Platform abstraction layer.
76* [`couchbase/subjson`](https://github.com/couchbase/subjson) -
77  subjson - quickly manipulate JSON subfields.
78