工作

分布式数据库

在 2019 年年底,我从之前负责微服务/云原生方向的团队转到了现在的分布式数据库团队。去年写年终总结时对这个方向的了解还比较少,所以也没有提到具体的工作内容,今年的认知相对清晰很多,可以简单介绍一下。

我们团队的工作是做一个 Share-Nothing 架构的分布式数据库,类似市面上更加知名的 TiDB 或 Oceanbase。在架构层面上是标准的存储计算分离,存储层也是分布式事务型的 KV 存储引擎,使用自己实现的 LSM-Tree 作为单机存储引擎,多个副本间使用 Raft 进行同步,并且也实现了分区动态分裂等功能。

我在加入团队后主要负责存储引擎层的相关工作,其中最重要的一块就是 LSM-Tree 中 Compaction 的实现和优化。

在我看来,LSM-Tree 的 Compaction 机制是非常值得研究的方向。LSM-Tree 的设计提出许久,Compaction 的设计和优化几乎是其中最重要的部分之一,所以也积累了非常多优秀的论文。不仅有 Dostoevsky 这种偏向理论分析的论文,也有像 Facebook 的几篇 MyRocks 论文会介绍很多工程实现层面遇到的问题和优化,都是非常值得学习和实践的。

而在分布式系统,尤其上层是一个分布式数据库的场景,能做的事情又会更多一些。一方面是基于分布式数据库的数据存储方式,KV 层的读写负载相对会更加明确。那么当一个实例中存在上千个不同负载的 LSM-Tree 时,如何提高整体的内存利用率、均衡读写放大、减少缓存失效的影响,Compaction 的调度策略是一个非常有意思的研究方向。

另外,NVM 这样的新型硬件也在挑战着 LSM-Tree 原有的设计,LSM-Tree 在设计之初,在 HDD 上进行随机读写是完全无法接受的行为。而到了 SSD 普及后,随机读的性能劣势相对缓解了很多,所以也才会有像 WiscKey 这种破坏存储强有序以减少写放大的设计。而到了 NVM 中,这种差距在进一步的缩小。另一方面,传统的 LSM-Tree 由于 SST 不可修改的特性,每次 Compaction 后重写一部分文件并产生缓存失效,从而引起系统抖动。而在应用了 NVM 之后,在 NVM 上精心设计的数据结构将会承担起存储系统中「只读暖数据」的职责,使得热数据淘汰更加平滑。

总而言之,我个人还是比较喜欢这个方向的,所以对明年的工作也充满期待。明年主要有两个目标:一个是在自己实现的数据库上应用更多的 Compaction 优化。像是上面描述的分布式数据库下的 Compaction 调度以及 NVM 的引用,希望能够产生一些真正有价值的思考和创新。另一个是希望能够更加了解分布式数据库会遇到的通用问题和解决方法,例如如何优化分布式事务或是尽可能减少分布式事务、如何进行调度能够将热点均匀的分散到整个集群、如何在保证可用性的前提下减少成本,这些都是需要未来几年不断积累和探索的方向。

最后说说心态,今年工作上最大的感受是「孤独」,毕竟从云原生这样一个”网红行业“转到了分布式数据库这种”夕阳产业“,日新月异的变化和交流讨论的人都少了很多。但是其实孤独可能也是件好事,因为同样可以远离一些浮躁的人和不靠谱的事,总算能抽出一些时间静下心来看看论文、跑跑 benchmark、以及在夜深人静的时候和兴趣相投的同事畅谈新的灵感。

大公司

除了技术方向本身之外,从摩拜这样轻松愉快的小团队转到美团这样严肃的大公司团队,我本身也非常不适应(当然现在美团单车也已经成为一个标准的大公司团队了)。

我可能是一个对环境很敏感的人,在 ENJOY 工作时就会非常放松,和同事们每天中午在三里屯闲逛、外出吃饭时可以玩 UNO、团建首选是密室、一起在公司通宵看 WWDC。在摩拜时可以发掘亮马桥的日料店,天气好的时候可以在甲板上发呆(摩拜的办公室是亮马河上的一艘船),还有生日会、万圣节这样偶尔放松一下的活动。

而到了美团,在真正做技术的时间之外。各种完全不感兴趣的培训、晋升(还好今年职级合并了,明年不用操心晋升的事情了)、汇报和会议耗尽了我的所有情绪。但是躲也躲不过,逃也逃不掉,最后就只能躺平了。

焦虑

前一周正好在和老板 one on one,聊完之后汇总了一下我今年所有沟通上的反馈,发现有一个词贯穿了我的一整年,就是焦虑。

当然焦虑本身没有错,我会把焦虑分为三级,即良性焦虑 > 恶性焦虑 > 完全不思考。我很享受因为焦虑的情绪迫使我去思考更多问题,尽更多的努力,并最终获得更好的结果,这便是良性焦虑。但是我每天的焦虑仍有很大一部分都是担忧不会遇到的或是无法解决的问题,这便是恶性焦虑。

举个栗子,我的一部分恶性焦虑源于对「努力」的认知上,认为只要足够努力就能缩短和他人的差距,就能做好所有事,尤其是在今年刚刚转换工作方向的背景下,基本上就是无时无刻都在焦虑自己是否足够努力,遇到技术问题心态就会很崩溃,和周围一些优秀的同事相比总觉得自己什么都不会。但其实只靠努力是解决不了所有问题的。

到写这篇文章时仔细想想,我对今年的工作产出以及技术成长还是比较满意的,所以也希望明年能够减少这些无意义的恶性焦虑,对自己有更清晰的认知。

学习

今年基本没有学习工作外的技术,博客也写得很少,主要还是把大部分的精力放在掌握工作所需的知识上了。

我之前没有看论文的习惯,今年大概看了十篇左右的论文,基本都是分布式数据库和 LSM-Tree 的一些知名论文。其实大部分论文阅读后都有对应的雷竞技最新网站,但是却没有放在博客中。一方面是觉得自己积累还不够,可能很多理解会有偏差,另一方面是觉得现有的论文基本上在网上都有相关的雷竞技最新网站了,相比之下也没有什么新的思考。

今年印象里也只看了《数据库系统内幕》这一本技术书,相比论文,一直没有找到比较感兴趣的书籍。团队内部还有《Oracle Core》的读书计划,但是我对这本书实在一点兴趣都提不起来,也就没有去参加。

明年可能主要还是以追踪论文为主,还是想把一些论文的雷竞技最新网站发到博客中,尽量多输出自己的想法。另外其实今年在内网还是记录了不少的思考和雷竞技最新网站,不过这些大多涉及到内部项目的背景,很难写成博客。明年希望能够找到一些合适的专题,总结一下现有开源项目的实现方式,尽量剥离开内部项目的实现去讲明白一个知识点。

生活

不得不说,和大多数人相比,疫情对我的影响已经很小了,所以我今年的生活还算安稳且充实。

日常

在我刚刚转到美团总部,完全适应不了工作环境的时候,疫情发生了,立马切换成了舒适的远程办公环境。我个人还是比较喜欢远程工作的,早上能够自己做点早饭吃,中午能够高质量的休息,而且我一般晚上状态会比较好,自己在家时晚上会更加放松,不像在公司时总觉得加班很压抑。

从 2018 年三刻停止营业后我就很少再因为兴趣爱好做料理了,但是今年疫情有了大把时间让我自己解决伙食,也把之前失去的热情又找了回来,直到现在我还在坚持着每周末从盒马买菜自己做一顿饭吃。

另外自从上班地点搬到了望京,我在三里屯的健身卡就彻底废了,而我又不愿意在公司的健身房锻炼,最后深思熟虑还是选择了买了一台划船机,让我家本不富裕的使用面积雪上加霜。不过偶尔能够在家边划船边看美剧,可能也是我目前最好的运动选择了。

旅行

今年最意料之外的事情是旅行,本来我今年的大部分旅行计划都是去日本,一直等到下半年彻底放弃了,就把攒下来的年假都放到了国内旅行上。最终整理的时候发现还是去了不少地方,随便贴点废照片记录一下。

镇江的一碗锅盖面,当地的鹅肉也非常好吃,但是应季的河豚却比在日本吃过的感觉差了很多。

在丽江的几天是我今年旅行遇到过最好的天气,几乎每天都是蓝天白云。

有一天在天津闲逛,偶然发现了海河边上老大爷跳水这项神奇的运动,不知不觉看了一下午,是我今年过得最安逸的下午。

在西安临潼的悦椿泡温泉时刚好在下小雨,人很少并且气温很舒适。很推荐这家悦椿,住一晚还能参观一下兵马俑。

泉州虽然是沿海城市,但是却不临海,当地也不怎么吃海鲜,反而是鸭子和牛肉比较受欢迎。除了当地的宗教文化给我留下了很深的印象之外,上图的粽子是我至今为止吃过的最好吃的粽子。

在汕头几乎每天都吃十顿饭,给我留下很深印象的是有一天晚上去喝白粥,看到这个排挡就随意的摆在一个小区里。想起了我小时候也会偶尔吃这样的排挡,只是现在的北京已经几乎见不到了。

十一的最后请了两天假顺道去了东山岛,只要错开游客和网红店体验真的很好,当地的海鲜好吃又便宜,上图是当时住的民宿,真的超出预期。

最后是年底去了三亚,之前没去过三亚,可能是我见识少,去了之后感觉旅游业(尤其是酒店)真的是吊打国内其他城市。这一个礼拜除了泡在酒店里哪里也没去,就随便贴几张酒店的照片吧。

海棠湾的亚特兰蒂斯,水世界太好玩了,就是爬楼太累了,傍晚时分在水族馆里静静地看着游来游去的鱼也很有治愈。

香水湾的君澜,人很少很安静,步行五分钟就是海滩,每天都能看到十几对情侣在酒店的各个角落拍婚纱照。

亚龙湾的鸟巢度假村,住在山里的小木屋很有感觉,司机一个个都是秋名山车神。

ACG

今年几乎没玩什么游戏,在疫情发生前我屯了一堆游戏,最后也只玩了《幻影异闻录 FE》,剩下的游戏到现在都没有拆封。后来到了三月,跟风玩了一波《动物森友会》,但是发现对社畜实在不太友好,现在就只是偶尔上去随便逛逛了。

和去年一样,今年也没有什么感兴趣的动画,不过倒是看了不少漫画。其中很多都不是长篇连载,但确实很有意思。想了下我去年没有推荐过漫画,所以今年可以连带着去年的份一起推荐一下。

我个人非常喜欢的漫画:

  • 《极道主夫》:今年还真人化了,不过电视剧没有发挥出漫画的笑点,还是更推荐看漫画
  • 《地狱乐》:剧情一般般,但是画风很喜欢,也算比较长篇了,而且快完结了
  • 《天地创造设计部》:欢乐又带有科普,脑洞很有意思,可惜太短了
  • 《公主大人,接下来是“拷问”时间》:欢乐向漫画,汉化组加持
  • 《疑似后宫》:很有意思的短篇漫画
  • 《擅长捉弄人的(原)高木同学》:比起高木同学我个人更喜欢这部
  • 我个人一般喜欢,但是普遍接受程度很高的漫画:

  • 《电锯人》:精神病
  • 《女儿的朋友》:抑郁症
  • 《刃牙道》:不知道该说啥……
  • 《BEASTARS》:去年很火的动画,我很早之前就开始追漫画了,但是感觉后面没有一开始那么惊艳了
  • 《辉夜大小姐想让我告白》:是不是没必要推荐?其实这个看动画就挺好
  • 最后是日剧,今年依旧看了不少日剧,但是一整年下来竟然没有什么印象深刻的,只好再加几部二刷的老剧凑凑数。

    我个人非常喜欢的日剧:

  • 《机动搜查队 404》:第一集很无聊,差点就弃了,但是从第二集开始渐入佳境
  • 《极道主夫》:提一下只是为了再次推荐看漫画,电视剧就算了
  • 《下町火箭2》:很中二、很圣母、但是同时也很热血,联想到自己的工作,我也想在佃制作所这样的团队工作啊
  • 《到了 30 岁还是处男,似乎会变成魔法师》:I’m Not Gay!但是确实挺有意思的
  • 《派遣员的品格 2》:谁又不想成为一个万能打工人呢?
  • 我个人一般喜欢,但是普遍接受程度很高的日剧:

  • 《半泽直树 2》:我觉得这一季不太好看,但是依旧是我身边人看的最多的日剧,而且下限也很高绝对能让人坚持看完
  • 《还是要将恋爱进行到底》:虽然我不太喜欢看这类剧,但是这部也是同类型剧集的标杆了
  • 《我的家政妇渚先生》:同上
  • 《金装律师 2》:日版的 SUITS,比起美剧更喜欢看日剧的话可以考虑
  • 《BG:贴身保镖 2》:木村大神粉丝可以看
  • 结尾

    写完发现我的年终总结真的是一年比一年水… 你看了开头以为我要聊一大堆技术话题,聊聊自己新的一年又卷了多少人,没想到我中途画风一转,直接跳到旅游和推荐日剧/漫画了吧。总之,这一年我仍然能够时刻保持对技术的热情,工作压力和焦虑都是客观存在的,而享受生活也是不可缺少的,在此也祝大家在新的一年也都能够 Work hard, Play hard!