libmemcached中的consistent hash算法~

原创 2012年03月24日 18:22:10

翻了下libmemcached的源码,看了下consistent hash的算法实现,贴出来:

static uint32_t dispatch_host(const memcached_st *ptr, uint32_t hash)
{
  switch (ptr->distribution)
  {
  case MEMCACHED_DISTRIBUTION_CONSISTENT:
  case MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED:
  case MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA:
  case MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY:
    {
      uint32_t num= ptr->ketama.continuum_points_counter;
      WATCHPOINT_ASSERT(ptr->ketama.continuum);

      memcached_continuum_item_st *begin, *end, *left, *right, *middle;
      begin= left= ptr->ketama.continuum;
      end= right= ptr->ketama.continuum + num;

      while (left < right)
      {
        middle= left + (right - left) / 2;
        if (middle->value < hash)
          left= middle + 1;
        else
          right= middle;
      }
      if (right == end)
        right= begin;
      return right->index;
    }

主要是二分法查找,比起用stl的库省空间,速度上面基本持平~

memcached的分布式算法

memcache的分布式 memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客...
  • tonyXf121
  • tonyXf121
  • 2012年08月26日 11:01
  • 1395

一致性hash(consistent hashing)

使用的基本场景:假设现在有N个服务器,如何将一个对象映射到这个N个服务器上呢,一般我们都会想到这样的方法:hash(object)%N来计算对象的Hash值,然后来均匀的映射到这N个服务器上,如你所想...
  • u010185262
  • u010185262
  • 2015年11月12日 20:23
  • 645

memcache客户端“一致性hash算法”设置

memcache客户端“一致性hash算法”设置 Memcache  修改php.ini添加:  [Memcache]  Memcache.allow_failover = 1  Memca...
  • zkaipmoo
  • zkaipmoo
  • 2013年09月15日 22:47
  • 1852

jump Consistent hash:零内存消耗,均匀,快速,简洁,来自Google的一致性哈希算法

jump Consistent hash:零内存消耗,均匀,快速,简洁,来自Google的一致性哈希算法 2015-03-13 简介 jump consistent hash是一...
  • innobase
  • innobase
  • 2016年06月12日 12:59
  • 2189

Cassandra的一致性哈希(Consistent Hashing)和虚拟节点(Virtual Nodes)的关系

Cassandra的一致性哈希(Consistent Hashing)和虚拟节点(Virtual Nodes)的关系一致性哈希所要解决的问题一般的哈希算法存在的问题是:当“模”发生变化时,所有的值都需...
  • bluishglc
  • bluishglc
  • 2016年10月18日 11:47
  • 5113

一致性hash算法(consistent hashing)

1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object ...
  • cangyingzhijia
  • cangyingzhijia
  • 2011年02月13日 16:21
  • 512

一致性Hash算法(Consistent Hash)

原文地址 1 分布式算法 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connec...
  • Yan456jie
  • Yan456jie
  • 2016年10月21日 16:59
  • 216

一致性hash算法 - consistent hashing

consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个...
  • sunnydogzhou
  • sunnydogzhou
  • 2010年05月16日 11:39
  • 525

一致性hash算法(consistent hashing )

转载自http://blog.csdn.net/sparkliang/article/details/5279393,英文版本的位于http://www.codeproject.com/Article...
  • linygood
  • linygood
  • 2013年05月06日 10:27
  • 629

一致性hash算法 - consistent hashin

一致性hash算法(consistent hashing)张亮consistent hashing算法早在1997年就在论文Consistent hashing and random trees中...
  • stoneson
  • stoneson
  • 2010年11月22日 18:38
  • 407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:libmemcached中的consistent hash算法~
举报原因:
原因补充:

(最多只允许输入30个字)