童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

一程序员在阿里HBase团队的所感所悟

3月11日 桃花醉投稿
  “committer为开源社区的一个光荣和义务的职务。拥有对某项目拥有直接提交代码、代码审核与提交、投票否决代码、参加核心会议、决定项目未来走势、加入committer邮件列表等多个重要权利。”
  “hadoop社区的committer主要来自于两个项目:hadoop以及hbase,几乎是清一色来自西8区(BayArea)的同学,天梧同学的加入是第一个来自东8区的同学。”
  赞赏总能让本人激动,熟人开心,生人好奇。进公司前,HR会和你说,“在阿里,你可以得到快速地成长”,我信了,也不乏有同学反应,“进了公司后,自己越长越着急了”。在日复一日的工作中,两年很短也很快,而回头想想,不论成败与否,未来如何,这段职业生命的开始之路,就是我人生中的第一桶金。
  阿里很大,HBase团队很小,而我就停留在这个小小的团队里面,没有出奇的经历,没有精彩的故事,没有业务上的激情澎湃,也没有过人的牛逼之处,平淡的记录权当是对工作、对同事、对团队发展的回忆与总结。
  11年4月从学校毕业后进入了淘宝,和不少应届同学相比,我很幸运地知道团队是做啥的,也和老板有过简单地交流,再加上杭州待了7年,从学校切换到公司很自然,自然得工作日会去学校吃个午饭。。。
  入职后,幸运地搭上了HBase团队成立的班车,那时对于HBase的理解程度是“听过”。团队总共三个人,毕玄、竹庄、我。毕玄是我师兄,花名他起的,有一天若牛了都没机会让人猜猜花名来由!!我在很长一段时间后才知道他是淘宝的大牛,哈哈,又幸运了一把,让人羡慕的暗喜。。。牛人负责Carry,菜鸟负责辅助,所以尽管坐着第三把交椅,我也只能打打酱油,那个时候他们群里沟通的内容我是简单明了的不懂。毕玄和竹庄,两人性格相似,谦顺温和,感受不到啥牛气,团队也处于刚成立的调研测试期,没有太多的规矩要学(不像现在新同学进来的话,业务、环境、文档等需要熟悉的东西很多。。。),他们忙着测试、部署,我也不善于搭讪,所以就默默地干着领的活,谷歌百度编码,就是一天的工作内容。
  我的第一份活是做监控系统,要求很低,毕玄说能看就行了,指标也已经放在百科上了。没有苛刻的用户,一个人做东西很美好,需求、设计、开发、测试、运维自己说了算,唯一的那么点遗憾就是和周围的人干着两个世界的活,还好有伟大的搜索引擎。最近也时常有人问我监控系统是怎么做的,简单地说就是在HBase代码中植入要监测的指标,将监控数据发送到Ganglia,后台另一进程从Gmond中拉取数据持久化存储,然后前端使用Highcharts进行数据绘图。为什么不直接用Ganglia,相信很多搞后端的同学都用过或用着。关于这个问题,第一,你想从监控系统中得到什么;第二,Ganglia能不能满足你的需求。
  没多久,团队新来了两个实习生,之前就是研究HBase的,所以上手很快,做自动化测试和服务端计算方面的工作,话说其中的刘佳现在已经是新成立公司的CTO了。这个时候开始陆续上线了HBase最初的几个项目,像是数据魔方以及TT3,想想那时的工作真美好,专注在一块工作上,没有人找你,所以竹庄肯定很忙,而我虽然游离在团队核心工作之外,干着一个产品要干的活,但也不忘自己所在的庙,时常研究学习一下HBase的源码细节。
  搞了一个月,监控系统第一版做好了,也给了个好评。这时,竹庄是主开发,毕玄要负责运营项目,也没有安排HBase方面的活给我,我就自我翻新,找到了一套好的绘图工具Highcharts一套jqueryUI大大地改进了一下前端,后端进行了一些数据存储优化及运维优化,顺便又开发了一套HBase运维页面:实时统计展现系统的关键数据及常用管理操作,差不多可以转岗去前端工程师发展了。。。话说某次大团队开会的时候,老板剑英夸我能前端能后端,那是第一次工作上的喜悦,傻傻又天真的美好。。。
  6月后,参加了新人培训百技、百淘,第一次听到了马总的名言,“今天是残酷的,明天是残酷的,后天是美好的,但是很多人都死在明天晚上”,“态度比能力重要,选择同样也比能力重要”。培训很美好:不用干活;培训很有意义:树立价值观,增强存在感;培训很愧疚:很多要做的工作落下了。
  不久,团队加入了测试神秀和新的开发务挺、飞云,神秀的加入对整个Team以及个人都意义重大,话说“术业有专攻”,他帮我们构建了自动化测试系统,有了日常Hudson构建、详细的性能基准、严格的异常测试,值得赞叹的是他不仅仅是测试,和我们一起探讨问题、解决问题、codereview。在这个Team,我们向着共同的目标,做着不同的分工。除了日常开发,飞云兼顾了Zookeeper的研究,而务挺之前从事Mysql、C方向的工作,落地了HBase跨机房容灾相关的工作。外部的竞争力可以给内部很大的凝聚力,我们依靠着开源这颗大树,容易想到马总的话,“今天,HBase在公司发展好、服务好,跟我们可能无关,但反之,那肯定是我们的责任”。
  到了9月中,HBase也已经从半年前的零发展到了好几十个项目,团队的需求也越来越多,而我也开始改行了,重心投入到HBase的开发中,而这第一次与HBase的亲密接触是二级索引,这是一次不成功的接触。HBase本身不支持二级索引,一般都是由业务端自己维护索引表。HBase实现二级索引的难点是数据一致性,因为这需要分布式事务保证。当然我也没有去解决分布式事务而实现二级索引,经过讨论,采用了异步读取log,重放客户端行为的方式构建索引,这样可以不牺牲HBase良好的写入性能。最后开发完成了,自测性能也还行,但是没有上线,现在回头看看原因:1。异步索引对业务使用会有一定地变扭;2。修改了HBase的内核逻辑,不利于与社区同步更新;3。客户自己构建索引更灵活。当然,个人在这过程中收获还是不小的,而HBase的二级索引目前社区还是没有计划及进展,在今年的中国HADOOP大会上华为介绍的二级索引实现方案可能是迄今为止我见过最好的,没有实现分布式事务,却保证了原数据与索引数据的强一致性。如果这方案那时就出来了,或许HBase的一大需求现在解决已久,而现在这一需求实现在我们正在开发的新项目wasp中,随之还有SQL、事务特性。
  到了10月中,随着异常测试的投入,HBase在稳定性、正确性方面似乎表现得十分脆弱,大量地issue宠幸给了我,这些case的定位及解决之于我都是对HBase的又一层理解。那段时间,我和神秀基本就扑在这些问题上,他主要通过log梳理流程,我主要通过代码找出疑迹,有些bug,几天几周才能触发一次,我们通过想象、推测、debug日志等手段加大bug重现的几率,也开发了一些有用的分析工具,这过程中很大的体会是:1。问题很可能发生在你忽略的代码处;2。概率性问题就是问题;3。原理现象这是一个理解的过程,现象原理,这是一个经验累积的过程。
  随着对代码理解的加深,我开始尝试选择一个比较重要的patch,提交给开源社区。很幸运地是,社区committerTedYu很快review了issue及patch,提出了意见,反复修改review后,最终第7个版本合并到了社区Trunk中。成功的第一次总是让人兴奋,随着后来在社区提交patch的增多,也感受到了团队内提交patch与社区提交patch的明显不同点:1。团队中的patch更强调逻辑正确性,社区的patch更强调代码规范性、可读性,包括命名、注释、格式等;2。社区patch带单元测试是基本要求;4。社区patch,review很严格,你能从多人多方面获益。
  进入2012年后,毕玄开始专职做T4去了,竹庄开始负责整个团队的运营与管理,而我则成为了HBase的主力开发,团队中也新加入了叔宝、天照、慕飒、济万、伏波、一苇,团队规模与业务规模相比1年前已经扩大了很多,内部分工也明确起来,济万、慕飒、伏波着手着NamenodeHA及实时化HDFS,叔宝着手HBase的权限认证、coprocessor研究及产品服务,天照从专职HIVE过来兼顾了Hadoop、HBase、Hive的开发,一苇成为了我们第二位测试。我们渐渐有了完善的版本发布体制,有了值班制度,有了完善的review及precommit机制。随之向我咨询的同学变多了,运维及DBA也爱找我了,而我想说的是服务是成长的另一途径,让我对HBase的理解更加全面与深刻,对不足与需求更加清晰。
  HBase在公司的快速发展,当然这归功于毕玄、竹庄,促成了我在社区上的积极活跃,提交与合并的patch渐渐变多,也与很多committer,像是Stack、TedYu、ram、larsh等混了眼熟,经过在社区一段时间的交流后,慢慢地学会了如何英语解释、沟通代码上的琐碎细节,慢慢地明白了这个圈子中的短语、术语,慢慢地习惯了被质疑,不再害怕说错观点,而我也开始去质疑别人,在别人的issue上留下自己的声音,当然也给他们纠正过一些错误。记得有一段时间,华为公司的印度人committerRam,经常会我,问我有没有碰到过这个issue,或者在我的issue中让我帮看相似的issue。这是一段有意思的经历,和一群相同的人,在社区上讨论着共同的问题,分享着各自的理解,和大学期间水论坛的感觉很像。。。值得一提的是有一个issue,涉及到的事务很多,前前后后总共提交了10多个版本后才合并,原因是总有人能‘挑出刺’,最后结果是那个issue的comments中水了一大坨。
  或许会有同学疑问,以后的绩效考核就定发文章、参加会议分享吧。这里我需要解释一下,也给各位工作在开源系统上的一个权衡的建议:1。问题及需求来源于、解决于实际工作本身;2。反馈于社区可以增强patch的健壮性,会有很多人帮你免费review,这是最主要的;3。与同业者的近距离交流能让人成长;4。扩大影响,增强团队的被认可度,维稳在公司的发展;5。适当的放弃,不要浪费口舌在无意义地争议上,所以我有很多patch提交了,但没有被合并。
  进入2012下半年,HBase的稳定性与正确性已经可以得到有效保证,除了继续增强外,也开始进行了对HBase的优化工作,像是加快宕机恢复、多线程flush、动态compaction、groupsync、lazyseek、coprocessor优化等,比较值得一提的是,从社区移植过来的groupsync功能让写的极限TPS提升了100,这个效果连作者自己都没在issue中提及,而我则是在一次社区代码浏览中意识到这个改动的作用,“Groupsync”也是我们起的名字,在很久以后的一次私人邮件中,我向TedYu提及这个特性,他尚不知道。。。动态compaction则让运维人员对系统的控制更加游刃有余,多线程Flush进一步提升了写的性能等等。我们的HBase版本与社区版本保持同步的原则是:1。patch尽量提交给社区,减少同步社区版本时候的工作;2。社区发布大版本的时候,我们维护相应的分支,对于小版本则只选取有用的patch打到我们的版本上。
  作为一个初级码农,在这一年的码农工作中,我对自己的一个总结是:1。写代码;2。看代码;3。写让人易懂的代码,而现在及很长一段时间内都会处在第三阶段。
  在监控系统上,团队新来了专职的前端人员,重构了前端,添加了更加丰富的数据展现,而我也改进了后端,使得更加高效、可靠,依赖于监控之上的报警系统也有了,成为团队内外的常用系统,用于监控、报表、账单、趋势对比等。
投诉 评论

阿里再下封杀令,围剿微信二维码互联网江湖烽烟再起,虽说北派阿里基于淘宝、支付宝撑起了“平台数据金融”蓝图,南派腾讯也凭借QQ和微信雄踞PC及……“伟大”的新商业模式:如何优雅地骗傻子钱?最近周鸿祎的路由器出了个孕妇模式,很多人说这是骗傻子钱、收智商税,科技圈和科普圈瞬间炸了锅,周鸿祎又双叒一次成为了众矢之的。要我说啊,骗傻子的钱并不可耻,老周唯一的错,在……【人人早报】443期:360突然启动私有化,原因竟是老周嫌8早报导语随着次新股迅游科技今日的一则投资公告,以“情怀”作为卖点的锤子手机,通过一种情理之中,又意料之外的方式,与A股市场联系在了一起。本次投资完成后,迅游科技持有锤子科……易信初体验:风格小清新可发免费短信〔导读〕目前易信上不同运营商用户之间的短信传输还存在一定问题。今天,即时通讯产品领域又诞生了一个新生儿易信。据了解,易信是由中国电信和网易联合推出的新一代移动即时通……【人人晚报】78期:大佬说股价要降就必须降【导读】最近大家有没有炒股啊,如果炒股的话肯定知道疯股事件吧。哈哈,今天小编就为大家带来一些股价变换的最大的因素。入股需谨慎啊。【正文】1。【大佬一句话之后,……易信VS微信巨头的跨界联姻能否逆袭巨头今天上午,中国电信联合网易召开新闻发布会,双方共同打造的IM工具“易信”终于从传闻变成现实。对于一款IM来讲,易信的整体用户体验不错,但要想挑战微信还有很多地方需要不断改进,不……【人人早报】第21期:“微信”和“易信”你“信”谁?早报导语上班了,周末两天又快速结束了。为什么上帝就不能把周末的时间调慢一点点呢?星期一,我们来看点什么呢?今日看点,微信现已迎来国内的最强对手,作为产品行业的就业者,大家……互联网大会嘉宾眼中的十大创业趋势连续三年,谈起互联网大会最热门的话题,总是听到一个词移动互联网。难道这个行业真没人说点新鲜的东西吗?其实,事实没这么无趣。据不完全统计,参与演讲和接受腾讯科技专访的嘉宾已……软件开发周期为何通常是预期的23倍?导读:有国外开发者在Quora提了这个问题:“为什么软件开发周期通常是预期的两三倍?”并补充问:“这是开发人员的错误?是管理失误?是因为做事方法不对,或者说缺乏好的方法?还是说……【人人早报】442期:老罗身价又翻倍了!早报导语随着次新股迅游科技今日的一则投资公告,以“情怀”作为卖点的锤子手机,通过一种情理之中,又意料之外的方式,与A股市场联系在了一起。本次投资完成后,迅游科技持有锤子科……一程序员在阿里HBase团队的所感所悟“committer为开源社区的一个光荣和义务的职务。拥有对某项目拥有直接提交代码、代码审核与提交、投票否决代码、参加核心会议、决定项目未来走势、加入committer邮件列表……原来,真的是“Tao”不出它家手心!上周网上疯传的淘宝修改搜索销量计算的调整规则终于落下帷幕,其中关于给淘宝卖家引流的第三方平台的规则改为,“对于口袋购物、折800等低价引流的网站和U站将不计入主搜索排序和展示所……
外媒:俄乌战争已陷入后果难料的国际漩涡5月4日报道外媒称,俄乌战争已经陷入了后果难以预料的国际漩涡,俄总统普京正让俄罗斯准备与北约的战争。据西班牙《国家报》网站5月1日报道,俄乌战争已经陷入了超越两国冲突的漩……蓝翔校长遭前妻举报私藏枪支5月5日,据杭州日报视频报道:5月4日,孔素英实名举报前夫山东蓝翔校长荣兰祥。孔素英在举报视频中手持身份证表示:自己实名举报山东蓝翔技校校长荣兰祥,指控其涉嫌私藏枪支、强……刘畊宏“草原抖肩操”抖音上线台湾歌手刘畊宏因为健身视频在抖音爆红。一周前写那篇稿子的时候,我看到刘畊宏的抖音粉丝数是4600多万人,而现在才刚过一周,他的粉丝数已经6000万了,这个涨粉速度实在是恐怖。甚……从蓝翔家族内斗谈起,富豪家族为什么如此近日,山东蓝翔校长女儿实名举报母亲的新闻冲上新闻热搜榜,蓝翔家族内斗再次引发热议。在持续十余年的家族内斗中,蓝翔家族上演了夫妇反目、财产争夺、跨省群殴、互相揭发……泽连斯基与普京一样对俄乌冲突负有责任综合俄罗斯卫星通讯社、“今日俄罗斯”(RT)报道,巴西前总统卢拉当地时间周三(4日)接受美国《时代》周刊采访时称,乌克兰总统泽连斯基和俄罗斯总统普京一样,对俄乌冲突负有责任,他……美战略司令部司令声称中俄令美面临“核威慑风险”〔环球网报道〕据美国《防务新闻》报道,美国战略司令部司令查尔斯理查德当地时间5月4日在国会发出所谓“警告”,提及俄罗斯和中国时声称华盛顿正面临着更高的“核威慑风险”。针对美方炒……亚速钢铁厂的北约“大鱼”快要浮出水面?自俄乌冲突以来,马里乌波尔一直是关注的焦点。乌克兰曾数次采取行动企图将被包围在亚速钢铁厂地下工事中的人员救出,这不免让外界猜测,被包围的人员中可能有北约高级军官。近日,一些国外……岸田文雄回应被俄罗斯制裁:不能接受针对俄罗斯宣布永久禁止包括日本首相岸田文雄在内的63名日本公民入境俄罗斯一事,据日本NHK今日(5日)报道,当地时间4日,在罗马访问的岸田文雄称,不能接受俄方这一决定。此……美防长称中国是“步步紧逼的挑战”,外交部驳斥5月5日,外交部发言人赵立坚主持例行记者会。有记者提问,据报道,3日,美国国防部长奥斯汀在听证会上说,中国是美国步步紧逼的挑战,而俄罗斯是紧急威胁。美军参谋长联席会议主席……3名中国教师在巴遇难外交部:谴责据外交部消息,4月27日,外交部发言人就卡拉奇大学孔子学院班车遭遇恐怖袭击答记者问。问:据报道,卡拉奇大学孔子学院班车遭遇自杀式恐怖袭击,请你介绍有关情况和中方采取的应对……马斯克发布收购推特后的第一条推文当地时间4月25日,世界首富马斯克与推特董事会达成最终收购协议,以每股54。2美元,总计约440亿美元的价格收购推特。这一消息瞬间引发网络热议,也让美国社会热闹起来。马斯……3名中方教师在巴遭袭遇难身份公布昨天发生的巴基斯坦卡拉奇大学恐袭事件,受害者和施害者的细节都出来了,看后心里真是五味杂陈,不是滋味啊!为受害者感到心痛和惋惜。三位中方孔子学院的老师们都来自四川师范大学。……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界