Skip to content

t-ichihara/yrmcds

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yrmcds

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.
An upstart script and a logrotate configuration file are installed too.

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).

About

memcached compatible KVS with master/slave replication.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.3%
  • Makefile 0.7%