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的库省空间,速度上面基本持平~

相关文章推荐

libmemcached一致性hash算法详解(1)----php-memcached客户端一致性哈希与crc算法共用产生的bug分析

author: selfimpr blog: http://blog.csdn.net/lgg201 mail: lgg860911@yahoo.com.cn 事情的起源, 是同事使用下...
  • lgg201
  • lgg201
  • 2011年10月09日 17:09
  • 7716

一致性hash算法 - consistent hashing

出处: http://blog.csdn.net/sparkliang/archive/2010/02/02/5279393.aspx  一致性 hash 算法( consistent hashing...

一致性hash算法 - consistent hashing .

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛; ...

基于一致性hash算法(consistent hashing)的使用详解

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

一致性hash算法(consistent hashing)

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

一致性hash算法 —— consistent hashing

consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出,目前在cache系统中应用越来越广泛; 1基本场景 比如你有...

转: 一致性hash算法 - consistent hashing

转自 http://blog.csdn.net/sparkliang/article/details/5279393 一致性hash算法(consistenthashing) 张亮 ...

一致性hash算法( consistent hashing )

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛; ...

一致性hash算法(consistent hashing)

consistent hashing算法早在1997年就在论文Consistent hashing and random trees中被提出,目前在cache系统中应用越来越广泛; 1基本场景 比...
  • qcdcool
  • qcdcool
  • 2012年07月17日 21:17
  • 462

Hash算法MD5

  • 2012年05月23日 08:58
  • 18KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:libmemcached中的consistent hash算法~
举报原因:
原因补充:

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