摘要: 分布式哈希和一致性哈希分布式哈希和一致性哈希是分布式存储和p2p网络中说的比较多的两个概念了。介绍的论文很多,这里做一个入门性质的介绍。分布式哈希(DHT) 两个key point:每个节点只维护一部分路由;每个节点只存储一部分数据。从而实现整个网络中的寻址和存储。 DHT只是一个概念,提出了这样一种网络模型。并且说明它是对分布式存储很有好处的。但具体怎么实现,并不是DHT的范畴。一致性哈希: DHT的一种实现。本质还是一个哈希算法。回想平时我们做负载均衡,按querystring签名对后端节点取模是最简单也是最常用的算法,但节点的增删后所造成的问题显而易见,原有的请求几乎都落不到同一台机器上 阅读全文
posted @ 2012-08-20 20:34 vivianC 阅读(236) 评论(0) 推荐(0)
摘要: 有这样一个面试题——请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。更不能写1000个printf或是cout。用C/C++语言。我相信,大多数人一开始你可能想到的是递归算法:1234567void f(int n){ printf("%d\n",n); (1000-n) ? f(n+1) : exit(0) ; } int main(){ f(1); }当然,题目中说了不能使用条件语句,所以,上面那种解法的不符合题意的,因为还是变向地使用了条件表达式。不过,我们可以用别的方法来让这个递归终止,比如:除以零,当程序crash,呵呵。12345void 阅读全文
posted @ 2012-08-20 20:11 vivianC 阅读(184) 评论(0) 推荐(0)
摘要: 二叉树:一个根节点,每个节点下挂着最多2个子节点。、概念:度:结点的分支数,二叉树度为2。深度:树的层次。二叉排序树:二叉树的基础上,每个节点上都有一个数字,节点上的数字都比右节点上的大。应用场景:基于内存的排序数据结构,写入时将数据写入到对应的位置。数据可能会出现倾斜,可以想到数字写入顺序如果不是50-20-60-18-55,而是18-20-50-55-60,那么二叉树就会退变为链表。B-树:B-树每个节点上包含着数据和指针,每个指针指向其一个子节点的位置,并且数据的个数为指针的2d-1个。这里的d是指针的个数,同时也是树的“度”。B-树的查找需要一次对每个节点进行二分查找,直至找到或返回n 阅读全文
posted @ 2012-08-20 19:16 vivianC 阅读(149) 评论(0) 推荐(0)
摘要: linux内核在使用fork创建进程时,基本上会使用Copy-On-Write(COW)技术。这里解释一下COW技术以及为什么在fork中使用。WIKI上对COW的解释:Copy-on-write(sometimes referred to as "COW") is anoptimizationstrategy used incomputer programming. The fundamental idea is that if multiple callers ask for resources which are initially indistinguishable 阅读全文
posted @ 2012-08-20 09:25 vivianC 阅读(141) 评论(0) 推荐(0)
摘要: 个人觉得php最方便的就是deployment了,只要把php文件丢到支持php的路径里面,然后访问那个路径就能使用了;无论给主机添加多少php应用,只要把目录改好就没你的事了,完全不用关心php-cgi运行得如何,deployment极为方便。反观python,部属起来真是头痛,常见的部署方法有:fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动wsgi:利用http服务的mod_wsgi模块来跑各个project无论哪种都很麻烦,apache的mod_wsgi配置起来很麻烦,内存占用还大,如果要加上nginx作为静态页面的服务器那 阅读全文
posted @ 2012-08-20 09:13 vivianC 阅读(273) 评论(0) 推荐(0)