01 2012 档案

摘要:Lamport's Logical Clocks为了同步logical clocks,Lamport 定义了一个关系叫做happens-before.记作 ->a->b意味着所有的进程都agree事件a发生在事件b之前。在两种情况下,可以很容易的得到这个关系:1 如果事件a和事件b是同一个进程中的并... 阅读全文
posted @ 2012-01-11 20:32 吴镝 阅读(4230) 评论(0) 推荐(0)
摘要:转载自:http://hi.baidu.com/quest2run/blog/item/38e1328e3c7a5404b21bba6e.htmlAmazon'sDynamo 中文原著:Werner Vogels 翻译:quest.run(翻译本文,旨在讨论NoSQL时会有一个共同的Terminology,对于要实现NoSQL方案的同学,建议啃啃原文,因为很多术语在翻译成中文后语义差异很大,如quorum, replica/replication, read-repair, anti-entropy, partition/partitioning/networkpartition, h 阅读全文
posted @ 2012-01-11 00:10 吴镝 阅读(3348) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2012-01-10 16:07 吴镝 阅读(1570) 评论(2) 推荐(0)
摘要:在原文上作了一些红色注解以适应我的系统。原文:http://www.ningoo.net/html/2010/use_systemtap_on_ubuntu.html虽然很早以前听说过,但基本没用过,最近褚霸同学的介绍,勾起了我对这个东西的兴趣。最近在工作笔记本上装了个Ubuntu10.10做为主操作系统,因此正好在上面也实验学习下SystemTap。安装systemtapsudo apt-get install systemtapUbuntu Desktop默认没有安装kernel debug info的包,systemtap无法追踪内核信息。查看内核版本ningoo@ning:~/stap 阅读全文
posted @ 2012-01-08 20:41 吴镝 阅读(466) 评论(0) 推荐(0)
摘要:对Megastore做了简要的笔记,语言通俗易懂些,只关注了一部分,比如数据模型,如何解决应用对数据的需求,join的处理,事务机制等。摘要开发Megastore是为了满足现在的交互式在线服务的需求。它混合了NoSQL的可扩展性和RDBMS的方便性,从而既提供了强一致性也提供了高可用性。它在数据分区内实现了完全的串行化的ACID语义。This partitioning(分区方法) 允许我们在不同的数据中心之间同步的复制每次写,并且有较好的延迟,同时能够支持数据中心之间的无缝故障恢复。这篇文章描述了Megastore的语义和复制算法。也描述了google在使用Megastore方面的经验介绍交互 阅读全文
posted @ 2012-01-08 14:49 吴镝 阅读(713) 评论(0) 推荐(0)
摘要:转载自:http://timyang.net/architecture/yahoo-pnuts/在分布式领域有个CAP理论(Brewer’s CAP Theorem) ,是说Consistency(一致性), Availability(可用性), Partition tolerance(分布) 三部分在系统实现只可同时满足二点,没法三者兼顾。所以架构设计师不要把精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍,选取最适合应用需求的其中之二。比如MySQL 5.1 cluster设计前显然不知道有CAP理论这样的经验, 所以MySQL cluster表面看来尽管可提供所有分布式特性 阅读全文
posted @ 2012-01-07 15:42 吴镝 阅读(519) 评论(0) 推荐(0)
摘要:疑点已标红BigTable 是的数据模型类似于mysql中的表,只是每个cell可以有多个版本。(rowkey,column key, timestamp) 唯一的决定一个 value,每个value就是一连串的Bytecolumn key的结构是column family:qualifier,co... 阅读全文
posted @ 2012-01-06 21:31 吴镝 阅读(2313) 评论(0) 推荐(0)
摘要:疑点已标红,基本都是多客户端并发追加相关。设计假设:1 系统构建在成百上千台机器上,节点故障是常态2 系统需要存储很多大文件,大概百万千万级别,每个文件大约100MB或者更大。GB级别的文件很常见,应该被有效管理,需要支持小文件,但是不必做优化。3 workload主要由两种读操作组成,1.小量数据随机读,每次从文件的某个偏移开始大概读几KB2.单次读操作 读上百KB甚至1MB或更多,来自同一个客户端的连续读通常读文件的某一个连续的区域。对性能敏感的应用程序通常batch它们的小量随机读操作,对读操作进行排序,offset由小到大4 workload还有两种写操作组成: 1.追加写,大小和读差 阅读全文
posted @ 2012-01-05 17:34 吴镝 阅读(2276) 评论(1) 推荐(0)