Skip to content
No description or website provided.
C CMake Perl Shell Python Roff
Branch: master
Clone or download
Latest commit 017778d Jul 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmarks
doc
src
tests Make an int sprintf nicer for static checkers. May 28, 2019
utils
.gitignore Copy in md2man from pmdk-convert. Mar 12, 2019
.travis.yml
CMakeLists.txt add compiler flags Apr 9, 2019
ChangeLog common: 0.8 release Mar 29, 2019
LICENSE
README.md common: 0.8 release Mar 29, 2019
cmake_uninstall.cmake.in
codecov.yml Add codecov configuration. Jan 18, 2019
libvmemcache.pc.in
packages.cmake make packages Mar 26, 2019
travis.yml

README.md

libvmemcache: buffer based LRU cache

Build Status Coverage Status

libvmemcache is an embeddable and lightweight in-memory caching solution. It's designed to fully take advantage of large capacity memory, such as Persistent Memory with DAX, through memory mapping in an efficient and scalable way.

The things that make it unique are:

  • Extent-based memory allocator which sidesteps the fragmentation problem that affects most in-memory databases and allows the cache to achieve very high space utilization for most workloads.
  • Buffered LRU, which combines a traditional LRU doubly-linked list with a non-blocking ring buffer to deliver high degree of scalability on modern multi-core CPUs.
  • Unique indexing structure, critnib, which delivers high-performance while being very space efficient.

The cache is tuned to work optimally with relatively large value sizes. The smallest possible size is 256 bytes, but libvmemcache works best if the expected value sizes are above 1 kilobyte.

Building The Source

Requirements:

  • cmake >= 3.3

Optional:

  • valgrind (for tests)
  • pandoc (for documentation)

For all systems:

$ git clone https://github.com/pmem/vmemcache.git
$ cd vmemcache
$ mkdir build
$ cd build

And then:

On RPM-based Linux distros (Fedora, openSUSE, RHEL, SLES)

$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCPACK_GENERATOR=rpm
$ make package
$ sudo rpm -i libvmemcache*.rpm

On DEB-based Linux distros (Debian, Ubuntu)

$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCPACK_GENERATOR=deb
$ make package
$ sudo dpkg -i libvmemcache*.deb

On other Linux distros

$ cmake .. -DCMAKE_INSTALL_PREFIX=~/libvmemcache-bin
$ make
$ make install

Statistics

Statistics are enabled by default. They can be disabled at the compile time of the libvmemcache library if the STATS_ENABLED CMake option is set to OFF.

See the man page for more information about statistics.

You can’t perform that action at this time.