LixingTie的博客


人生就是在谱写一个程序,不必完美,有几个小bug,有酸,有甜,有苦,也有辣,这样才算是一个完整的人生.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年7月27日

摘要: 原文地址:http://www.ningoo.net/html/2011/mongodb_in_a_nutshell_1.html作者:NinGoo | 【转载须以超链接形式标明文章原始出处和作者信息】 按照官方的说法,MongoDB是一种可扩展的高性能的开源的面向文档(document-oriented )的数据库,采用C++开发。注意mongo不是mango(芒果),这个词是从humongous中截取出来的,其野心不言而明,直指海量数据存储。和其他很多NoSQL不太一样,MongoDB背后有一个专门的商业公司在提供支持和推广,有点类似MySQL AB的模式。这一系列文章,是为入门者写的,已 阅读全文

posted @ 2011-07-27 11:22 LixingTie 阅读(283) 评论(0) 推荐(0)

摘要: 原文地址: http://www.ningoo.net/html/2011/some_tips_about_hbase.html作者:NinGoo | 【转载须以超链接形式标明文章原始出处和作者信息】 随着Facebook使用HBase来构建实时消息系统,基于Hadoop的面向列存储的HBase持续升温。目前稳定版本的HBase0.90.2只能基于Hadoop0.20.x系列版本,暂不支持最新的0.21.x。而且官方版本的Hadoop0.20.2(或者0.203.0)缺少一个重要的特性,HDFS不支持sync模式的持久,这样HBase就有较大的丢失数据的风险。要在生产环境使用HBase,有两个 阅读全文

posted @ 2011-07-27 11:19 LixingTie 阅读(266) 评论(0) 推荐(0)

2011年7月15日

摘要: 原文地址: http://timyang.net/distributed/paxos-scenarios/在分布式算法领域,有个非常重要的算法叫Paxos, 它的重要性有多高呢,Google的Chubby [1]中提到all working protocols for asynchronous consensus we have so far encountered have Paxos at their core.关于Paxos算法的详述在维基百科中有更多介绍,中文版介绍的是choose value的规则[2],英文版介绍的是Paxos 3 phase commit的流程[3],中文版不是从 阅读全文

posted @ 2011-07-15 00:58 LixingTie 阅读(293) 评论(0) 推荐(0)

摘要: 原文地址:http://timyang.net/architecture/consistent-hashing-practice/最近项目中一个分布式应用碰到一些设计问题,听过上次技术沙龙key value store漫谈的同学可能会比较容易理解以下说明。场景假定一个有状态的服务,可以理解成web或者socket服务器,每个用户在这个服务上登录后是有状态的,我们把它的状态连同其他加载到内存的用户数据统称用户session。由于session数据实时会变化,加上程序访问session频率大,几乎所有的操作都跟session数据相关,因此不适合放在远程memcached中第一阶段考虑到单服务器不能 阅读全文

posted @ 2011-07-15 00:51 LixingTie 阅读(246) 评论(0) 推荐(0)

摘要: 原文地址:http://timyang.net/data/multi-idc-design/在前文《多IDC的数据分布设计(一)》中介绍了多IDC数据一致性的几种实现原理,遗憾的是,目前虽然有不少分布式产品,但几乎都没有开源的产品专门针对IDC来优化。本文从实践的角度分析各种方法优缺点。背景资料 Latency差异Jeff Dean提到不同数据访问方式latency差异Numbers Everyone Should KnowL1 cache reference 0.5 nsBranch mispredict 5 nsL2 cache reference 7 nsMutex lock/unloc 阅读全文

posted @ 2011-07-15 00:34 LixingTie 阅读(349) 评论(0) 推荐(0)

摘要: 原文地址: http://timyang.net/distributed/multi-idc-consensus/上个月跟某个朋友谈及多IDC数据同时读写访问的问题(tweet),当时觉得有不少解决方案,但觉得思路还不够清晰。最近看了Google App Engine工程师Ryan Barrett介绍GAE后端数据服务的演讲稿Transactions Across Datacenters(视频),用Ryan的方法来分析这个问题后就豁然开朗。按Ryan的方法,多IDC实现有以下几种思路。一、Master/slave这个是多机房数据访问最常用的方案,一般的需求用此方案即可。因此大家也经常提到“pr 阅读全文

posted @ 2011-07-15 00:32 LixingTie 阅读(232) 评论(0) 推荐(0)

2011年7月14日

摘要: 原文地址: http://timyang.net/data/redis-diskstore/Redis作者antirez是一个非常勤奋的开发者,在Redis性能已经非常惊人的情况下持续不断开发新的特性,比如从新的cluster源代码看到,作者已经把Dynamo及Paxos一些核心的思想考虑进去并进行了一些简洁的实现。相比其它产品如Memcached则几年没什么大变化,在Web 2.0时代,Memcached已经非常不够用,技术人员需要考虑做很多额外工作才能让Memcached适应新的变化和需求。antirez在1月5日Google Groups发表了一篇Redis diskstore文章,对R 阅读全文

posted @ 2011-07-14 23:58 LixingTie 阅读(485) 评论(0) 推荐(0)

摘要: 原文地址: http://timyang.net/data/redis-capacity/在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。(本文主要讨论Redis未启用VM支持情况)1. SchemaMySQL: 需事先设计Memcached: 无需设计Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划数据项: value保存的内容是什么,如用户资料Redis数据类型: 如String, List数据大小: 如100字节记录数: 如100万条(决定是否需要拆分)⋯⋯上面的规划就是一种schema 阅读全文

posted @ 2011-07-14 23:57 LixingTie 阅读(390) 评论(0) 推荐(0)

摘要: 原文地址: http://timyang.net/data/redis-misunderstanding/前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概括的那几个范围,James第一条经验“Design for failure”是所有互联网架构成功的一个关键。互联网系统的工程理论其实非常简单,James paper中内容几乎称不上理论,而是多条实践经验分享,每个公司对这些经验的理解及执行力决定了架构成败。题外话说完,最近又研究了 阅读全文

posted @ 2011-07-14 23:46 LixingTie 阅读(237) 评论(0) 推荐(0)

2011年7月12日

摘要: 原文地址:http://blogclosed.iteye.com/blog/611976百度百科一致性哈希:http://baike.baidu.com/view/1588037.html在大型web应用中,缓存可算是当今的一个标准开发配置了。在大规模的缓存应用中,应运而生了分布式缓存系统。分布式缓存系统的基本原理,大家也有所耳闻。key-value如何均匀的分散到集群中?说到此,最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据请求很简单的应该路由到hash(K) mod N对应的机器。的确,这种结构是简单的,也是实用的。但是在一些高速发展的web系统 阅读全文

posted @ 2011-07-12 12:38 LixingTie 阅读(328) 评论(0) 推荐(0)