carp协议

4 篇文章 0 订阅

http://icp.ircache.net/carp.txt

 

对url做hash

 

For (each char in URL):
	URL_Hash +=  _rotl(URL_Hash, 19) + char ; 
 
对proxy做hash 

 For (each char in MemberProxyName):
	MemberProxy_Hash +=  _rotl(MemberProxy_Hash, 19) + char ; 
MemberProxy_Hash += MemberProxy_Hash * 0x62531965 ;
  MemberProxy_Hash = _rotl (MemberProxy_Hash, 21) ;
合并url和proxy的hash
Combined_Hash = (URL_hash ^ MemberProxy_Hash) ;  
  Combined_Hash += Combined_Hash * 0x62531965 ; 
  Combined_Hash = _rotl(Combined_Hash, 21) ; 
 
计算负载因子
  
 
All X_n values are 32 bit floating point numbers.

  X_1 = pow ((K*p_1), (1/K))

  X_k = ([K-k+1] * [P_k - P_{k-1}])/(X_1 * X_2 * ... * X_{k-1})
  X_k += pow ((X_{k-1}, {K-k+1})
  X_k = pow (X_k, {1/(K-k+1)})

  where:

  X_k = Load Factor Multiplier for proxy k
  K = number of proxies in an array
  P_k = relative percent of the load that proxy k should handle
 
计算最终得分
Resultant_value = Combined_Hash * X_k
 
路由选择
得分最高的url和哪个proxy计算得分最高,这个url就被路由到哪个proxy。
 
增减proxy时,url落点的迁移量为1/N, N为proxy数目。
  

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值