本文基本上是对现有的图计算框架论文或文档的一个综述。由于附图较多,未上传至相册,此处有pdf版本:http://pan.baidu.com/s/1uvjHW。
转载请注明作者:phylips@bmy
出处:http://duanple.blog.163.com/blog/static/7097176720123215230365/
银河里的星星
本文基本上是对现有的图计算框架论文或文档的一个综述。由于附图较多,未上传至相册,此处有pdf版本:http://pan.baidu.com/s/1uvjHW。
转载请注明作者:phylips@bmy
出处:http://duanple.blog.163.com/blog/static/7097176720123215230365/ read more
4.Concurrency and Recovery in the LSM-tree
本节我们来研究下用于LSM-tree并发访问和恢复的技术。为此,我们需要更深入地描述出rolling merge过程。我们将该并发访问和恢复算法正确性的形式化证明作为以后的工作,目前只是在此处简单地描述下它们的具体过程。 read more
3.3 Multi-Component LSM-Trees
对于给定的LSM-tree,参数M代表了rolling merge过程中插入到每个C1树的叶子节点中的C0树的平均记录数。在merge到C1树的节点中之前,这些新记录会首先在C0中积累一段时间,因此通常我们认为M是大于1的。但是,通过公式(3.2){! M=(Sp/Se)·(S0/(S0+S1))}能够看出,如果与C0树相比C1树足够大,或者是单条记录非常大以至于单个page中只能放下很少的记录,那么M的值就可能会小于1。这样的一个M值意味着,为了能将C0中的一条记录移出内存将不得不读入多个C1的page。根据公式(3.4){! COST(LSM-ins)/ COST(B-ins)=K1·(COSTπ/COSTp)·(1/M)},在M< K1·(COSTπ/COSTp)的情况下,将会抵消掉multi-page的批处理效果,此时对于插入操作来说使用B-树要比使用LSM-tree更划算。 read more
周六的早晨,下着雪,窗外一片雪白。
到而今来京已三个多年头,工作也已一年多了。工作之后大部分的时间都放在了工作和学习上,于是很少有时间去写下各种心情,如钟所言,我已经很久没写她能看懂的文字了。岁末年初,还是总结一番吧,为了追忆过去,也为了更好地把握未来。 read more
说明:转载请保留全部信息
作者:Patrick O’Neil &Edward Cheng etc. 1996
原文:http://www.springerlink.com/content/rfkpd5yej9v5chrp/
译者:phylips@bmy 2011-12-25
译文:http://duanple.blog.163.com/blog/static/7097176720120391321283/
【随着NoSql系统尤其是类BigTable系统的流行,LSM-Tree这个名词也开始变得不再陌生。相信大多数了解NoSql系统的人,基本上都会听到过LSM-Tree这个名词,但是读过其原始论文的人估计就不是很多了。在我看来,LSM-Tree之于BigTable的重要性就像一致性hash之于Dynamo。溯本求源一向是本人的追求,希望可以从最初的文字中找到蕴含在结构之下的更多思考。老实说,这篇论文也算是很长的了,原文共30页,涉及了不少公式,因此翻起来也不会那么简单。 read more
作者: Terence Parr
译者:Nicholas @ NirvanaStudio
译文出处:http://www.cnblogs.com/me-sa/articles/766533.html
原文出处:http://www.cs.usfca.edu/~parrt/course/652/lectures/antlr.html
另有一篇不错的文章:http://www.cppblog.com/morya/archive/2009/12/07/102681.html
介绍
自1980年以来我手工编写了很多识别程序(recognizer)和翻译程序(translator)但最终我感到很恶心并且尝试将这个过程自动化:来源于我的座右铭: "Why program by hand in five days what you can spend five years of your life automating." read more
作者:phylips@bmy 2011-11-06
出处:http://duanple.blog.163.com/blog/static/7097176720111141085197/
1. 序
最近在折腾各种.so,碰到了一些问题,一开始对于很多错误也没有头绪,茫然不知所措。索性化了一天多时间将<<程序员的自我修养—链接、装载与库>>中部分内容略读了一遍,主要是关于编译,链接和加载这块的。于是顺便做个笔记,方便以后回顾。基本上知道了这些,对于编译,链接和加载过程中产生的各种问题,应该就能从根本上理解并解决了。其实以前上学时也看过那本经典的<<Linker and loader>>,当时还写了篇<<链接器和加载器原理>>,不过此次会更细致深入地了解下整个编译链接和加载过程,并结合经常碰到的问题,提出一些解决方案。 read more
zz from:http://blog.sina.com.cn/s/blog_406d9bb00100ui5p.html
Storm简介
Storm是一个分布式的、容错的实时计算系统,遵循Eclipse Public License 1.0,Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。可以使用任意编程语言来做开发。
主要商业应用及案例:Twitter
Storm的优点
1. 简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。
2. 服务化,一个服务框架,支持热部署,即时上线或下线App.
3. 可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。
4. 容错性。Storm会管理工作进程和节点的故障。
5. 水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
6. 可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。
7. 快速。系统的设计保证了消息能得到快速的处理,使用ZeroMQ作为其底层消息队列。
8. 本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。这让你可以快速进行开发和单元测试。
Storm目前存在的问题 read more
zz from:http://www.cloudera.com/blog/2010/04/cap-confusion-problems-with-partition-tolerance/
by Henry Robinson April 26, 2010 14 comments Tweet
The ‘CAP’ theorem is a hot topic in the design of distributed data storage systems. However, it’s often widely misused. In this post I hope to highlight why the common ‘consistency, availability and partition tolerance: pick two’ formulation is inadequate for distributed systems. In fact, the lesson of the theorem is that the choice is almost always between sequential consistency and high availability. read more
zz from:http://www.codinglabs.org/html/consistent-hashing.html
摘要
本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。 read more
【原题】COMPUTING MACHINERY AND INTELLIGENCE
【译题】计算机器和智能
【作者】阿兰图灵
1. 模仿游戏(The Imitation Game)
我提出来考虑个问题“计算机可以思考么?”这个句子需要对“机器”和“思考”的意义作出定义。这种定义可能受到了框制以反映出到目前为止一般意义上的使用之或然性(The definitions might be framed so as to reflect so far as possible the normal use of the words),但是这种态度是危险的,如果“机器”和“思考”这些单词的意义是通过“检测它们一般是被怎么使用的(examining how they are commonly used)”来找到话,“计算机可以思考么?”这个问题的意义和答案就很难逃出这样的结论:需要从一种统计意义上的审视去寻找,例如一次盖洛普民意测验(a Gallup poll)。不过这很荒唐。代替这样一种定义的尝试,我要把问题作另一个替换,其和问题很接近,而且是可以以相对不含糊的单词来表达。 read more
【原题】 The Paradigms of Programming
【译题】 编程范式
【作者】 Robert W.Floyd
【题注】
Paradigm … [a. F. paradigme, ad.L. paradigma, a. Gr. παραδειγμα, pattern, example, fπαραδεικγν ? γαι to exhibit beside, show side by side …] read more
from:http://blog.sciencenet.cn/home.php?mod=space&uid=449420&do=blog&id=483860
【原题】Above the Clouds: A Berkeley View of Cloud Computing
【译题】 云之上:伯克利对云计算的一个观点
【作者】Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz,
Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia
(Comments should be addressed to abovetheclouds@cs.berkeley.edu)
UC Berkeley Reliable Adaptive Distributed Systems Laboratory
http://radlab.cs.berkeley.edu/
February 10, 2009 read more
【译题】谦卑的程序员
经过一系列巧合,我在1952年春天的第一个早上正式开始了职业编程领域,而且就我所了解,我是第一个在我们国家做这一行的荷兰人。在回顾最叫人惊奇的事上,就是编程职业缓慢的涌现出来,至少在我那部分的世界中是如此,一种于今让人难以想象的缓慢。但是我很感谢来自那个“建立了不容置疑的缓慢的”时期的两个生动回忆。 read more
【原文】 One Man’s View of Computer Science
【作者】R.W.HAMMING
Bell Telephone Laboratories,
【原刊】Journal of the Association for Computing Machinery Vol l6, No1. Juauary 1969, pp. 3-12.
一系列的观察以及评论直接对“考虑到计算机科学的普通工程学的品位”提出建议。工程学的角度之所以重要,是因为当前该领域大多数难点都还没有涉及到“特定的事情是否可以完成”的理论问题,但更实际的问题是它们可以怎样即简洁有有效的完成。 read more
【原题】Finite Automata and Their Decision Problems
【译题】有限自动机及其判定问题
【作者】Michael O. Robin ,D scott
摘要:这篇文章中把有限状态机(Finite automata)当作对有限磁带的分类设备来考虑。每个一磁带自动机定义了一个磁带集(Each onetape automaton defines a set of tapes),一个两磁带自动机定义了一对集,诸如此类。将研究被定义的集之结构。介绍了一自动机的各种一般概念,而且它们到经典自动机的关系被决定了。一些关注自动机的判定问题显示可通过有效算法来解决;其它则显示为通过算法不可解决。 read more
【原题】Reflections on Software Research
【译题】对软件研究的反思
【题注】孕育了UNIX项目的贝尔实验室环境是可以再次产生的么?
UNIX1操作系统突然之间变成新闻了,不过它不是新闻。它始自1969年,当 Ken Thompson 发现了一台很少使用的 PDP-7 计算机,并着手鼓捣出一个他喜欢的计算机环境。他的工作很快就吸引了我;我加入到了该事业,关于那件事的大多数想法和大多数工作都要归于他。不久以后,来自AT&T贝尔实验室的我们研究领域组织的其他人开始使用该系统;Joe Ossanna, Doug McIlroy, 和Bob Morris 做出了特别突出的贡献。在1971年,我们搞到了一台PDP-11,而且在该年年末我们就开始支持我们第一个真实用户了:授予专利应用的三个打字员。在1973年,系统用C语言重写了,也是在那一年,系统第一次公开的在操作系统 原理会议(the Operating Systems Principles conference)上被做出描述;结果文献【参见8】就出现在下一年的ACM通讯上了。 read more
版权声明: 允许非商业性转载,但转载时必须标明原作者 fcicq、原始链接 http://www.fcicq.net/wp/?p=892 及本声明。
2009 年以索引技术创业的 TokuTek 发布了 TokuDB for MySQL, 看性能参数是挺不错的.当时就对它产生了极大的兴趣. 但非常不幸偶没有理解它的索引原理 (Tokutek 也不说). 再加上它不是很成熟, 没有 ACID, 多核支持也不好, 所以暂时搁置了. read more
Items\Projects
Yahoo! s4
Twitter Storm
协议
Apache license 2.0
Eclipse Public License 1.0
开发语言
Java
Clojure,Java,Clojure编写了核心代码 结构
去中心化的对等结构
有中心节点nimbus,但非关键 通信
可插拔的通讯层,目前是基于UDP的实现 基于twitter开源的thrift框架 事件/Stream
<K,A>序列,用户可自定义事件类 提供Tuple类,用户不可自定义事件类,
但是可以命名field和注册序列化器 处理单元 Processing Elements,内置PE处理
count,join和aggregate等常见任务 Bolt,没有内置任务,提供IBasicBolt处理
自动ack 第三方交互
提供API,Client Adapter/Driver,第三方客户端输入或者输出事件 定义Spout用于产生Stream,没有标准输出API 持久化 提供Persist API规范,可根据频率或者次数做
持久化
无特定API,用户可自行选择处理
可靠处理 无,可能会丢失事件 提供对事件处理的可靠保证(可选) 路由 EventType + Keyed attribute + value匹配
内置count,join和aggregate标准任务 Stream Groupings:
Shuffle,Fields,All,Global,None,Direct
非常灵活的路由方式 多语言支持 暂时只支持Java 多语言支持良好,本身支持Java,Clojure,
其他非JVM语言通过thrift和进程间通讯 Failover
部分支持,数据无法failover 部分支持,数据同样无法failover Load Balance
不支持 不支持 并行处理 取决于节点数目,不可调节 可配置worker和task数目,storm会尽量将worker和task均匀分布 动态增删节点 不支持
支持 动态部署
不支持 支持 web管理 不支持 支持 代码成熟度 半成品 成熟 活跃度 低 活跃 编程 编程 + XML配置
纯编程
参考文档
http://docs.s4.io/
https://github.com/nathanmarz/storm/wiki/
http://xumingming.sinaapp.com/category/storm/ (非常好的中文翻译)
read more