Name Date Size

..19-Aug-20204 KiB

.gitignoreH A D19-Aug-2020741

.mailmapH A D19-Aug-2020720

auditd/H19-Aug-20204 KiB

cbcrypto/H19-Aug-20204 KiB

cbsasl/H19-Aug-20204 KiB

CMakeLists.txtH A D19-Aug-202010.2 KiB

CONTRIBUTING.mdH A D19-Aug-20201.2 KiB

COPYINGH A D19-Aug-20201.5 KiB

CTestCustom.cmakeH A D19-Aug-2020259

daemon/H19-Aug-20204 KiB

docs/H19-Aug-20204 KiB

engines/H19-Aug-20204 KiB

etc/H19-Aug-20204 KiB

include/H19-Aug-20204 KiB

LICENSEH A D19-Aug-20201.5 KiB

logger/H19-Aug-20204 KiB

programs/H19-Aug-20204 KiB

protocol/H19-Aug-20204 KiB

rbac/H19-Aug-20204 KiB

README.mdH A D19-Aug-20202.6 KiB

scripts/H19-Aug-20204 KiB

tests/H19-Aug-20204 KiB

testsuite/H19-Aug-20204 KiB

time/H19-Aug-20204 KiB

tracing/H19-Aug-20204 KiB

utilities/H19-Aug-20204 KiB

xattr/H19-Aug-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* [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