Skip to content
memcached compatible KVS with master/slave replication.
Branch: master
Clone or download
ymmt2005 Merge pull request #73 from herumi/parse_unlock_is_equal_to_lock
parse_unlock calls parse_lock to remove duplicated code
Latest commit 5b57fe4 Oct 6, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cybozu std::function requires #include <functional> Feb 1, 2017
docs
etc Fix logrotate script for systemd. Oct 3, 2016
src
test Refactor tests. Mar 19, 2016
.gitignore
.travis.yml Run integration tests on travis-ci. Mar 19, 2016
COPYING
ChangeLog
Makefile Sort list of files to allow reproducible building Nov 3, 2016
README.md Fix link in README.md Oct 26, 2016
detect_tcmalloc.sh Detect libtcmalloc header by a shell script. Nov 17, 2015

README.md

Build Status

yrmcds is a memory object caching system with master/slave replication.

Currently, yrmcds supports two protocols: the first is an enhanced memcached, and another is a protocol to implement distributed resource counters.

Since the memcached protocol is perfectly compatible with the original implementation, yrmcds can be used as a drop-in replacement for memcached. Thanks to its virtual-IP based replication system, existing applications can obtain high-available memcached-compatible service without any modifications.

A companion client library libyrmcds and a PHP extension are also available.

yrmcds was developed originally for kintone.com.

License

yrmcds is licensed under the BSD 2-clause license.

The source code contains a SipHash implementation borrowed from csiphash which is licensed under the MIT license.

Features

  • Complete memcached text and binary protocols with these extensions:
  • Distributed resource counter protocol.
  • Optional memory security to store confidential information like SSL session data.
  • Large objects can be stored in temporary files, not in memory.
  • Virtual-IP based master-slave replication.
    • Automatic fail-over
    • Automatic recovery of redundancy.
  • Global LRU eviction / no slab distribution problem.
    • Unlike memcached, yrmcds is not involved with slabs problems. (1, 2)

A companion client library and a PHP extension are also available.

See also usage guide, future plans, differences from memcached, design notes and some benchmark results.

Prerequisites

  • Linux.
  • C++11 compiler (gcc 4.8.1+ or clang 3.3+).
  • GNU make.

Build

Just run make.

yrmcds runs faster when linked with TCMalloc. On Debian/Ubuntu, install libgoogle-perftools-dev package to prepare TCMalloc.

The makefile automatically detects TCMalloc if available.

Install

On Ubuntu, sudo make install installs yrmcds under /usr/local. What make install does are:

  • Install yrmcdsd under /usr/local/sbin.
  • Install service start script for systemd or upstart.
  • Install logrotate script.
  • Create /etc/yrmcds.conf.

About the name

The name yrmcds was taken from "Ymmt's Replicating MemCacheD for Sessions".
As it reads, yrmcds was developed mainly for session storage.

The correct pronunciation sounds like: "Yo-Ru-Mac-Do" (夜マクド in Japanese).

You can’t perform that action at this time.