身处技术创新驱动的时代,只有凋谢合作能力带来巨大进步,发明不凡成就。
We are learning by contributing.
We crowdsource from community.
StarRocks 社区的发动和倒退,正是立足于各个开发者的“奉献”和“集智”。
周康,冯浩桉。一个是在云厂商从业多年的超级奶爸,一个是步入职场不久的“萌新”技术宅。两人都在 StarRocks 社区成立第一天退出,过来五个多月里为 StarRocks 我的项目作出了重要奉献。
近期,通过 StarRocks 社区 PMC 提名与投票,两位开发者承受 StarRocks 社区邀请,正式成为 StarRocks 我的项目的 Committer。
他们在技术上有哪些嗜好,如何对待当下的 OLAP 产品,又如何走上了社区之路?StarRocks 社区和两位有故事的男同学聊了聊。

✨✨✨

周康:私有云时代,要善用业务劣势提出翻新架构

就任于阿里云开源大数据平台,负责 EMR OLAP 产品研发,包含 StarRocks、ClickHouse、Presto(Trino)等开源组件。曾参加基于开源组件构建的散布式调度平台、分布式计算平台、数据分析平台的建设。

他热情帮助社区搭档解决理论应用问题,在我的项目上的次要奉献有:

  • 反对通过表面的形式查问 Apache Iceberg 数据湖中的数据;
  • 反对读取 CSV 文件格式;
  • 反对 GZip 压缩格局;
  • 晋升表面的 HDFS 存储 block size 过大时的查问性能。

集体的多年喜好是篮球,去年减少了一项——遛娃。

  • Committer 首先是开发者,谈起“开发者”的身份,你会怎么说?

从初学者到稍有教训的开发者,我感觉最重要的就是酷爱。作为一个开发者,很多霎时我都会感到兴奋:遇到一个难解决的性能问题,看到一篇新的有意思的论文,看到一段很精妙的代码……

比拟喜爱 Debug 一些自认为简单的问题,对于代码细节会有强迫症和小洁癖。

  • 谈谈你与技术社区的结缘

我最早深度关注的社区是 Redis 和 Cassandra,为了将其作为根底组件应用,看了一些分布式系统的论文和我的项目。我对这两个组件的实现十分感兴趣,在过后激发了我对于分布式系统和开源的趣味。起初,工作中常常接触 Spark,也就会开始不定期把本人的一些想法反馈给社区。


第一个 Spark Jira

最早接触到 Redis 和 Cassandra 社区时,我意识到本人在分布式、计算、存储等方向的实践储备都十分匮乏。于是就带着补课的想法找到了 MIT 6.824 这门课,这门课让我对 CAP 和一致性协定有了最根底的意识,而能发现这门课也得益于社区里的分享。

  • 你在 OLAP 产品方面都有怎么的经验和心得?如何成为了 StarRocks Committer?

最早接触 OLAP 是源于公司外部要基于 Spark SQL+Kudu 构建数据分析平台,尽管我的项目上线了,但撑持起来的业务量不算大,也遇到过很多稳定性问题。经验了技术和产业的变迁,现在作为私有云上 OLAP 产品的开发者,我最大的领会就是,要有发明和扭转的意识,去利用本人的业务洞察能力提出翻新架构,来解决将来可能呈现的问题。

2021年,咱们团队在进行 OLAP 产品选型时接触到了 StarRocks。作为云厂商一侧,我在想应该先给 StarRocks 带来什么能力?首先想到的几点里就蕴含数据湖剖析方向。过后看到 Presto CPP 版本在推动,那么作为曾经具备向量化、CBO 这些能力的 StarRocks 是否能够做得更好呢?

通过和社区 PMC、Committer 们的交换,咱们决定先开始这方面的初步摸索。目前,极速数据湖剖析在 StarRocks 中曾经迈出了第一步。(产品详情:https://help.aliyun.com/document_detail/404790.html)

作为 Committer,我是真的感觉目前的工作还不够,有很多想法还没落地。对于如何成为 Committer 这件事,最重要的是在社区踊跃发声,咱们团队在数据湖剖析方向迈出第一步的过程就是例证。

还有一次,我基于 Spark 的教训判断过后 HDFS Scan 局部存在优化空间,于是就提出了本人的 PR,发现刚好社区搭档也在尝试优化这个问题。最终通过探讨,我的实现被 Merge 了。所以,踊跃发现问题并怯懦提出来吧!

  • 作为最早退出 StarRocks 社区的开发者之一,遇到过哪些问题?最有成就感/取得感的事件是什么?

接触到 StarRocks 时,我对向量化、CBO、并行执行引擎等技术方向很感兴趣,很想疾速退出做出奉献。然而过后我对这个零碎的内核简直没有理解,而我的项目曾经公布了一两个版本,想参加这些事件对我来说短期内不太事实。那么我应该先给这个我的项目带来些什么呢?
为了找到答案,我尝试和PMC与Committer沟通,最终判断作为云厂商能够先立足数据湖剖析这个方向去做尝试。而下面提到的向量化等技术对于数据湖剖析都是至关重要的。(戳《如何打造一款极速数据湖剖析引擎》)

最有成就感的事件是什么?Good First Issue 就挺有里程碑意义的,是我在社区最早的摸索。


Good First Issue

  • 作为首批 StarRocks Committer,对这个社区有怎么的感想和倡议?
    作为还处在倒退晚期阶段的技术社区,StarRocks 机会很多,须要大家一起致力去实现的工作有十分多。然而作为一个数据库畛域的根底软件系统,参加的门槛也是绝对有点高的。

因而,我倡议社区的 PMC 、Committer 们可能多分享一些源码、原理级别的内容给大家,让更多人可能参加共创。(上 B 站搜寻“StarRocks_labs”,探访 StarRocks 技术底细 )

随着社区用户越来越多,心愿能有更多使用者共建生态,社区须要发明机会让他们参加。

对于将来,我次要会集中在云原生、存算拆散、数据湖、极速等方面进行具体工作的开展和摸索。


技术教育从娃娃抓起

冯浩桉:何谓开发者?天生不诚实,总想搞事件!

StarRocks 外围研发工程师,“萌新”数据库开发者。

他在StarRocks很多重大 Feature 实现和改良上做出了奉献,包含:

  • 全局低基数字典性能的外围开发者
  • 主导实现了 Java UDF,UDAF,UDTF
  • 实现了 Insert into MySQL 表面 BE 局部
  • 优化了 Hive 表面 Scan 性能
  • 优化了 多个日期函数计算性能
  • 优化了 Sum(case when)表达式计算性能

热衷敲敲打打,做过一些游戏 demo,加入过游戏开发界的“华山论剑 ” GAMEJAM。喜爱察看不同的畛域思考与解决问题的形式。

  • Committer 首先是开发者,谈起“开发者”的身份,你会怎么说?

天生不诚实,总想搞事件。心田极度渴望想要反对更酷的性能、更好的性能,把一个 Query 的执行从上到下优化到极致。总之,想做很多事件。

  • 谈谈你与技术社区的结缘

最早接触技术社区是两年前,那时候组内做我的项目用到了一个 redis-cluster-proxy 的组件。邻近上线遇到了一个小 Bug,就连夜排查修复了。过后还不会提 PR,就在 Issue 里截图阐明,而后就收到了第一条来自社区的反馈。


收到的第一条来自技术社区的反馈

之后工作遇到过 CRoaring/gperftools/brpc/wasmer 等第三方库的问题,提过一些小的批改,尽管有的解决过程比拟波折,最终还是失去了社区的反对和反馈,非常感谢这些社区的技术大牛违心 review 我的 PR。

在这里夸一下 CRoaring 社区和 GCC 社区的大佬!我睡觉之前发 Issue,基本上起床后就能收到反馈。


起床后收到的社区反馈

  • 你在 OLAP 产品方面都有怎么的经验和心得?如何成为了 StarRocks Committer?

我在社区外面灌水比拟多哈哈哈图片 运气比拟好,手速比拟快,解决了一些 Bad Case,例如优化了聚合函数以及某些表达式执行性能。同时也跟社区的同学一起合作开发了全局字典优化和一些工夫函数的优化。

2020 年毕业后进入 OLAP 畛域,对向量化执行比拟感兴趣。去年 9 月份就退出到 StarRocks 的开发者营垒中,给 StarRocks 做了一些小改良。在社区里接触了很多大佬,给了我十分多的帮忙和倡议。

StarRocks 社区目前除了要在性能上发力外 ,比方云原生、数据湖、更好的易用性,在性能上仍在持续深度摸索,例如排序/JOIN 性能,甚至将来还会去反对 Codegen,晋升在高并发的场景下的性能和稳定性体现。这也是能引起我激情、共同进步的中央。

  • 作为最早退出 StarRocks 社区的开发者之一,遇到过哪些问题?最有成就感/取得感的事件是什么?

最开始还是对代码不相熟,在尝试优化 Shuffle 或者是优化表达式的时候疏忽了很多场景和非凡的 Case,给社区提的几个 PR 中间接被肉眼 Review 出问题了。

  • 作为首批 StarRocks Committer,对这个社区有怎么的感想/倡议/摸索打算?

社区气氛比拟凋谢,和我交换过的不少海内地区的小伙伴都有提过 Commit,一天之内就解决了社区整顿过的 Good First Issue。

对新人比拟敌对,Reply 和 Review 都很快,新同学能够很快融入社区建设中。80% 的 Issue 问题当天就会有人 Reply,Slack 上几个小时就有人回复。

作为深刻参加的开发者,对于须要改良的中央也能及时感触到,比方:

社区文档还需进一步欠缺,很多曾经反对的函数或者是性能的形容都须要进一步优化。

易用性上能够持续摸索,争取早日摈弃手动指定分桶,另外数据导入的易用性也有进一步提高的空间。

反对 DataFrame 的形式能够再摸索,某些场景下 SQL 对数据分析人员还存在肯定局限性。

如何对用户屏蔽参数、让产品用起来更加无脑?一些性能的设计还须要更加人性化。

将来对社区的冀望嘛,就是大家一起把 StarRocks 做成最强最好用的产品,让接触到它的一瞬间就感到惊艳的应用体验。遇到感觉性能或者性能不佳的 Case 能够甩在 Issue 外面,我置信很快这些问题都会一一优化掉。

✨✨✨

让代码为更多人所用是不少工程师的幻想

两位在社区根深叶茂的 StarRocks Committer

也是从 Good First Issue 开始:

https://github.com/StarRocks/...

理解 StarRocks 社区标准和奉献流程:

https://github.com/StarRocks/...

祝各位开发者领有正向循环的社区之旅

欢送在 GitHub 为 StarRocks 点亮你的