摘要:
【什么是Bit-map】所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,... 阅读全文
摘要:
【什么是Hash】Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不 同的输入可能会散列成相同的输出,而不可能从... 阅读全文
摘要:
布隆过滤器[1](Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组 成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率(假正... 阅读全文
摘要:
阅读目录背景要求基于lease的设计基本原理服务器与客户端节点交互基本流程优点优化点本节主要通过设计一个分布式的cache系统,来介绍Lease的使用,甚至可以作为一个分布式cache系统,在工程中使用。如果在介绍中涉及到的一些概念,可以参考前面两篇本文:http://www.cnblogs.com... 阅读全文
摘要:
1 设计分布式系统需要考虑的异常1.1 节点宕机1.2 网络异常消息丢失、消息乱序(可以通过增加序列号解决)以及数据错误1.3 分布式系统三态在单机,只要不宕机,一个函数执行要么成功、要么失败,但是分布式系统共下存在成功、失败和超时。下面解释一下超时的不确定性:某个节点 A 向另一个节点 B 发送一... 阅读全文
摘要:
一、Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl、PHP为主。 仅仅memcached网站上列出的语言就有:Perl、PHP、Python、Ruby、C#、C/C++以及Lua等。 那么,我们作为.Net... 阅读全文
摘要:
一、Memcached是何方神圣? 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存 是解决这个问题的好办法。但是ASP.NET中的HttpRuntime.Cache虽然已经可以实现对页面局部进行缓存,但还是不够灵活,此时 Memcached或许是... 阅读全文
摘要:
======张峻崇 原创。转载请注明出处。====== 又是快一年没写博客了,2013年也只剩尾巴,也不知道今年都忙了些什么。写这篇文章的目的,主要是把今年以来学习的一些东西积淀下来,同时作为之前文章 《高性能分布式计算与存储系统设计概要》的补充与提升,然而本人水平非常有限,回头看之前... 阅读全文