Skip to content

cybozu/yrmcds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.
  • GCC or clang with C++17 support.
  • 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).