Skip to content

cybozu/yrmcds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

90bdefe · Nov 19, 2024
Aug 17, 2024
Aug 17, 2024
Nov 8, 2024
Jan 29, 2024
Jan 29, 2024
Aug 28, 2024
Aug 19, 2024
Aug 19, 2024
Feb 25, 2015
Aug 28, 2024
Aug 17, 2024
Aug 28, 2024
Nov 17, 2015

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