“分布式哈希”和“一致性哈希”的概念与算法实现
摘要:分布式哈希和一致性哈希是分布式存储和p2p网络中说的比较多的两个概念了。介绍的论文很多,这里做一个入门性质的介绍。 分布式哈希(DHT) 两个key point:每个节点只维护一部分路由;每个节点只存储一部分数据。从而实现整个网络中的寻址和存储。DHT只是一个概念,提出了这样一种网络模型。并且说明它是对分布式存储很有好处的。但具体怎么实现,并不是DHT的范畴。 一致性哈希: DHT的一种实现。本质还是一个哈希算法。回想平时我们做负载均衡,按querystring签名对后端节点取模是最简单也是最常用的算法,但节点的增删后所造成的问题显而易见,原有的请求几乎都落不到同一台机器上。优化一点的...
阅读全文
posted @
2013-11-26 16:31
LifeStudio
阅读(926)
推荐(0)
关于Java的数据结构HashMap,ArrayList的使用总结及使用场景和原理分析
摘要:使用,必须要知道其原理,在课堂上学过散列函数的用法及其原理。但一直不知道怎么实践。 后来,在实际项目中,需要做一个流量分析预处理程序。每5分钟会接收到现网抓来的数据包并解析,每个文本文件大概200M左右,数据量颇多。要求根据用户ID和协议ID为key,计算其流量平均值。 起初的想法是按行加载每一条数据并放入ArrayList中,然后写个算法比较每一个数据的用户ID和协议ID,如果一样则累加其流量。测试中发现其效率极低,为此第一反应是改进算法。怎么做才更高效呢?后来想到了课堂中学到的散列函数,于是写了个MD5散列函数将用户ID和协议ID为key进行散列,若得到的结果相同则累加其流量,循环...
阅读全文
posted @
2013-11-23 15:01
LifeStudio
阅读(1349)
推荐(0)
斐波那契数列时间复杂性的近似证明和精确证明(转)
摘要:斐波那契数列可以派生出很多应用,其中,我们知道它的时间复杂性是指数级的,现在就来粗略地证明一下:斐波那契数列递推式:F(n)=F(n-1)+F(n-2)F(1)=F(2)=1粗略证明可以利用Decision_Tree,为了更直观,我引用另一个恒等函数 f(x)=0 ;x=1,2,3,4,5,............所以斐波那契数列递推式变形如下:F(n)=F(n-1)+F(n-2)+f(n)F(1)=F(2)=1画出Decision_Tree//F(n)=f(n)///\//f(n-1)f(n-2)///\/\//f(n-2)f(n-3)f(n-3f(n-4)//....//...f(2)//
阅读全文
posted @
2013-09-29 01:07
LifeStudio
阅读(502)
推荐(0)
使用分治法求X的N次方,时间效率为lgN
摘要:最近在看MIT的算法公开课,讲到分治法的求X的N次方时,只提供了数学思想,于是自己把代码写了下,虽然很简单,还是想动手写一写。 int powerN(int x,int n){if(n==0){ return 1;}int childN = n/2;int result;result = powerN(x,childN);if(n&1){ return result*result;} else{ return result*result*x;} }
阅读全文
posted @
2013-09-29 00:23
LifeStudio
阅读(1397)
推荐(0)