Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A multi-tenancy meta-engine for Couchbase Server and memcached.
C C++ Shell

This branch is even with membase:master

MB-8729: Add get_engine_vb_map interface for CCCP

Allow the engine to specify the new vbucket map

Change-Id: I2459372d5c958445063d50a4c77c9058b0e34de9
Reviewed-on: http://review.couchbase.org/29845
Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
Tested-by: Trond Norbye <trond.norbye@gmail.com>
latest commit 0a3a9df0a5
@trondn trondn authored
Failed to load latest commit information.
config
docs
m4 Simplify autoconf
management MB-6237 Remove the python client
win32
.gitignore MB-6237 Remove the python client
COPYING
Makefile.am
README.markdown MB-6346: Update the build procedure
bucket_engine.c MB-8729: Add get_engine_vb_map interface for CCCP
bucket_engine.h
bucket_engine.spec Add spec file
bucket_engine_internal.h
configure.ac
genhash.c Move to pandora build system
genhash.h
genhash_int.h
mock_engine.c
python_wrapper.in MB-6347: Move python_wrapper
testapp.c MB-6661: The delete packet returns a cas value
topkeys.c
topkeys.h MB-6089: unbreak build breakage caused by removal of add-with-meta

README.markdown

Bucket Engine

This memcached engine provides multi-tenancy and isolation between other memcached engine instances.

It is designed to have minimal overhead while providing few constraints of its own.

That said, the ACL facilities are currently very limited and thus require SASL support and two security levels (admin, and everybody else).

Building

You will need a storage-engine capable memcached and its included headers. In addition to that you'll need some type definitions from ep-engine.

The easiest way to build bucket_engine is to use repo:

For example, assume you keep all of your projects in ~/prog/, you can do this:

cd ~/prog/couchbase
repo init -u git://github.com/membase/manifest.git -m branch-2.0.xml
gmake make-install-bucket_engine

Running

An example invocation using the bucket engine from your dev tree allowing every connecting user to automatically have his own isolated namespace within the default engine is as follows:

~/prog/couchbase/memcached/memcached -v -S \
    -E ~/prog/couchbase/bucket_engine/.libs/bucket_engine.so \
    -e engine=$HOME/prog/couchbase/memcached/.libs/default_engine.so

Configuration

The following configuration options are available for this engine.

admin

An administrative user can be specified using the admin parameter.

This is the SASL authenticated user permitted to execute administrative commands (see scripts in the management directory for examples).

auto_create

With auto-create enabled, buckets are created automatically when users first attempt to use them.

default

If true, a default bucket exists for unauthenticated users, or users who don't have buckets created for them when auto_create is disabled.

default_bucket_config

The "default_bucket_config" parameter specifies a parameter to send to the default engine (ex: default_bucket_engine=tap_keepalive=500).

engine

The contained engine is configured using the engine parameter (see the example above).

Something went wrong with that request. Please try again.