Using ChubbyGo !Join in ChubbyGo!
这个可爱的龙猫的名字叫做Go!
一切的一切都得从大一的说起。在第一次参加软件自由日的时候,犹记得学长和老师迫不及待的把开源的前世今生向懵懂的我们娓娓道来,那一幕至今仍不时在脑中回荡,也就在那一时刻,他们在我心中以一种他们自己也未必感知的方式埋下了一颗向往开源的种子。
伴随着对于计算机进一步的学习,也逐渐的了解了"自由软件","开源许可证"等等这些以前看来抽象难懂的概念,但是我有时会对于开源这个词感到陌生,感到一种遥不可及却又触手可得的距离,所以我时常会质问自己:什么是开源呢?答案也许是不确定的。因为就目前我所看到的事实来看,可以说我们绝大多数人都在参与开源,享受着开源带给我们物质上的一切。同时又偏移了开源,忘记了开源本身的意义。
大到Linux系统,Golang语言,小到一次github上随意提交的练习代码等等开源的例子数不胜数。如此看来我们确实是亲身参与了开源的,那么为什么会有一种疏远的感觉呢?本质就是因为我们只是无意识的,被动的参与,这就宛如女神早就对舔狗的行为感到常态化了,又怎么会重视呢?
回到我们的问题,到底什么是开源呢?最初开源是Stallman带领着一群极客为了"自由"与微软抗争所衍生的概念,再后来伴随着Eric Raymond对于大教堂模式与集市模式的思考变得初具规模,最后当Bruce Parens提出了The Open Source Definition
的九项定义时变的真正流行起来。
这些也许比较官方,我们通俗一点,其实到不妨和我一起思考,在一个普通学生或者公司员工眼中的开源到底意味着什么呢?我想在我心中逐渐有了一个完整的答案,那就是自由的学习权利与纯粹的合作机会。前者允许我们在对某些文字上的抽象概念感到困惑时有实体可循;后者允许我们能够与来自天南海北的人针对于某件事情能够就事论事的,纯粹的合作。
本着主动参与开源的想法,带着对于开源的思考,也为了小组后辈更好的发展,我着手开发了ChubbyGo。
大家也许知道Chubby其实是2006年谷歌发表的论文《The Chubby lock service for loosely-coupled distributed systems》中描述的分布式锁服务。其提供了在低耦合分布式系统中粗粒度的锁定和可靠的存储,且语义非常简单。但是很遗憾它是闭源的,后来雅虎研究院开发了一个名为ZooKeeper的项目,并捐赠给了Apache基金会,于2010年11月正式成为Apache的顶级项目。虽然ZooKeeper和Chubby并不是一个东西,但不可否认的是前者肯定在一定程度上借鉴了Chubby。伴随着Redis 2.6.12为setnx操作添加超时参数,ZooKeeper与Redis就成了开源界分布式锁的首选。
因为Chubby闭源的,所以大家好像已经忘了这个 “万物” 的开始。我想伴随着ChubbyGo的诞生,这一切应该有所改善了。
ChubbyGo是我根据Chubby的论文实现的开源版本,但是精力有限,目前只实现了部分功能,欢迎有兴趣的朋友使用ChubbyGo,加入ChubbyGo,一起让ChubbyGo更加完善!