这位挪威博士是如何成为阿里云polardb资深架构师的?

阿里云开发者 阿里云开发者     2022-12-30     270

关键词:

简介:挪威博士倾心传授对于软件架构师角色至关重要的经验,希望能指导和帮助各位技术同学实现成为资深技术架构师。

我叫Øystein Grøvlen,在过去的三年中,我一直在阿里巴巴PolarDB团队的优化器和执行器团队担任资深技术专家。我来自挪威,但在2018年来到中国杭州阿里巴巴公司, 一年后,我搬到了加利福尼亚州桑尼维尔的阿里巴巴公司办公室。


My name is Øystein Grøvlen, and for the last 3 years I have been working as a Senior Staff Engineer in the MySQL Optimizer & SQL group of the POLARDB team at Alibaba. I am originally from Norway, but moved to China to work for Alibaba in 2018. After living one year in Hangzhou, I relocated to Alibaba's office in Sunnyvale, California. 


我的软件开发之旅始于作为美国的一名交换生,在那里我在APPLE II电脑上接触到了BASIC语言。我发现我对能够创建自己的程序来解决不同的问题感到非常满足,这激发了我在Norwegian Institute of Technology的学习期间去学习计算机科学,我发现数据库和信息检索特别有趣,因此我决定在该领域攻读博士学位。我与挪威电信的研究部门取得了联系,最终在他们的研究项目ClustRa上工作了一段时间,同时攻读了基于Compensation-Based Query Processing课题的博士学位。


My journey as a software developer started as an exchange student in the US where I was introduced to programming in BASIC on APPLE II computers. I found it very satisfying to be able to create my own programs in order to solve different kind of problems, and this inspired me to study computer science at the Norwegian Institute of Technology. During my studies, I found databases and information retrieval particularly interesting, and I decided to pursue a PhD in that area. I came in contact with the research department at the Norwegian Telecom, and I ended up working part-time on their research project, ClustRa, while working on my PhD on Compensation-Based Query Processing


获得博士学位后,我开始在一家初创公司工作,该公司旨在将ClustRa数据库系统商业化。ClustRa是针对电信运营的高可用数据库系统。Clustra的体系结构与MySQL集群非常相似,你们中的许多人可能听说过。我们的工作重点是事务、分区、复制、故障容错和恢复。那是一段有趣的时光,解决了许多有趣的问题。不幸的是,当网络泡沫破裂时,我们耗尽了资金,但我们很幸运,Sun Microsystems决定收拾残局。在Sun公司,我继续在Clustra上工作了一段时间,然后开始使用Java实现的数据库Cloudscape的开源版本。当Sun后来购买MySQL时,我切换到MySQL上工作,并且获得了在优化器团队中工作的机会。Sun后来被Oracle收购,我在加入阿里巴巴之前,在Sun/Oracle从事了10年MySQL的工作。


After my PhD, I started working at a start-up that was set up to commercialize the ClustRa database system. ClustRa was a highly available database system targeted at Telecom operations. The architecture of Clustra was pretty similar to MySQL Cluster, which many of you may have heard about. The focus of our work was on transactions, partitioning, replication, fail-over, and recovery. It was a fun time, solving a lot of interesting problems. Unfortunately, we ran out of funding when the dot-com bubble burst, but we were lucky that Sun Microsystems decided to pick up the pieces. At Sun, I continued to work on Clustra for while, before starting to work on Derby, the open-source version of the Cloudscape, a database implemented in Java. When Sun later bought MySQL, I switch to work on MySQL, and I got the opportunity to work in the Optimizer team. Sun was later bought by Oracle, and I worked on MySQL at Sun/Oracle for 10 years before joining Alibaba. 


我发现从事查询优化和处理真的很有趣。我最喜欢的部分是研究如何让查询运行得更快。PolarDB基于MySQL代码,因此我可以运用已有的优化器的经验来使PolarDB成为更好的产品。我觉得为PolarDB团队工作特别有意义的是,阿里巴巴愿意为PolarDB投入大量资源。我们有一大群人在改进产品,我认为我在这里工作的这段时间,我们能做的事情是令人惊叹的。我大部分时间都花在支持并行查询处理项目上; 而MySQL只能使用一个线程来执行查询,PolarDB可以将查询执行划分为多个线程并行执行。


I find it really interesting to work on query optimization and query processing. My favorite part is investigating how we can get queries to run faster. POLARDB is based on MySQL code, so I can use my knowledge about the MySQL optimizer to make POLARDB a better product. What I find particularly rewarding about working for the POLARDB team, is that Alibaba is willing to put a lot of resources into POLARDB. We have a large group of people working on improving the product, and I think it is amazing what we have been able to do while I have been here. Most of my time I have spent on the project to support parallel query processing; while MySQL can only use one thread to execute a query, POLARDB can partition the query execution across multiple parallel threads. 


我会被问到是否可以给其他研发人员提供一些建议,指导和帮助他们实现成为资深技术架构师的职业目标。


我认为有许多不同的成功之路,有些人可能会认为,一部分可能是因为幸运地在正确的时间出现在正确的地点。但是,根据我的经验,我想讨论一些我认为对于软件架构师的角色至关重要的方面。


I have been asked to give some advice to other developers on what it takes to make a career as a senior architect. I think there are many different paths to success, and some may claim that part of it may be the luck of being at the right place at the right time. However, based on my experience, I will discuss a few aspects that I feel has been essential to prepare myself for the role of software architect.

深入研究 Make deep dives


我认为学习一个软件系统是如何工作的唯一方法就是深入代码进行研究。不要假设你理解代码是如何工作的,而是要通过跟踪执行过程或使用调试逐步执行代码来验证它。


I think the only way to learn how a software system works, is to deep dive into the code. Do not just assume that you understand how the code is working, verify it by tracing the execution or stepping through the code with a debugger. 


我遇到了很多开发人员,当遇到错误时,不去对代码的工作原理有很好的了解,而是尝试不断反复试错来走捷径。他们可能会成功地修复这个BUG,但是他们对代码是如何工作的知之甚少。很多时候,这种方法还导致了似乎可以解决BUG的修复,但是潜在的问题可能仍然存在。不要只是满足于所有测试成功,要通过跟踪/调试验证它是否按预期运行。第一次可能需要更长的时间完成工作,但是当你在同一领域被分配另一项任务时,你就会非常受益。


I have met quite a few developers that when faced with a bug, instead of getting a good understanding of how the code works, try to take short-cuts based on trial and error. They may succeed in fixing the bug, but they have learned very little about how the code works. Many times this approach also leads to bug fixes that seems to solve the problem, but the underlying problem may still exist. Do not just be satisfied when all your tests succeed, verify by trace/debugger that it runs as expected! It may take a bit longer to get the job done the first time, but you will get the reward later when you are assigned another task in the same area.



Optimizer Trace is a great tool to learn about the MySQL Query Optimizer


通过示例学习 Learn by example


每个人是不同的。我发现通过执行一些特定示例来学习新代码更容易,然后推广这种方法。有些人可能仅通过阅读就成功地理解了代码,但是我想我的心智还没有达到这个水平。


People are different. I find it easier to learn new code by following the execution of some specific examples, and then generalize from that. Other people may be successful in understanding the code just from reading it, but I guess my mental capacity is not at that level.


我在ClustRa的第一个任务之一是让事务回滚成功。这个任务的大部分代码已经完成了,但是仍然有一小部分缺失了。通过仔细跟踪事务的执行情况,我花了很长时间才发现缺失的部分并使其正常工作。我认为,如果我仅通过阅读代码来识别缺少的部分,那将花费我更长的时间。


One of my first tasks at ClustRa was to make transaction rollback work. Much of the code was already prepared for the task, but there was still some missing pieces. By carefully tracing the execution of a transaction, it did not take me long to identify the missing pieces and make it work. I think it would have taken me much longer if I were to identify what was missing just by reading the code.


不要害怕问 Be not afraid to ask


当你偶然被一个问题绊住时,不要害怕问你的同事。分享你对问题的理解,并征求他们的意见。大多数开发人员非常乐意分享他们所知道的。但是,在提出问题之前,请确保你已经付出了一些努力来理解问题。否则,你的同事可能会觉得你只是想让他们做你的工作。


When you stumbled on a problem, do not be afraid to ask your co-workers. Share your understanding of the problem and ask for their advice. Most developers are more than happy to share what they know. However, make sure you have put some effort into understanding the problem before you ask. Otherwise, your co-workers may feel you are just trying to make them do your job.


分享你的智慧 Share your wisdom


与你的同事分享你的知识。欢迎他们提出问题; 在这个过程中,你经常会学到一些东西。

Share your knowledge with your co-workers. Welcome their questions; you will often learn something yourself in the process。


另外,在技术文章中记录你的工作内容,并寻求机会在公开场合分享。这是让其他团队或公司以外的人了解你和你的工作的好方法。


Also, write about your work in articles and blog posts, and seek for opportunities to talk about it in public. This is a good way to make people outside your team or company aware of you and your work. 



了解你的用户 Understand your users


我发现许多开发人员在理解用户需求方面投入的努力太少了。通常开发人员更喜欢要么快速直接的解决方案,要么在技术上更 “有趣”,而不是解决实际问题。问问自己:“这将如何使用?”,“选择的交互对用户实用吗?”,等等。


I feel many developers put too little effort into understanding the needs of their users. Often the developer prefer solutions that are either more straight-foward to implement, or more technically "interesting", over solving the real problem. Ask yourself: "How will this be used?", "Will the chosen interface be practical to the users?", and so on.


在开始设计之前,最好指定一些客户场景,来描述将如何使用此新功能以及它将解决什么问题。


Before starting the design, it is a good idea to specify a few uses cases that describes how this new feature will be used, and what problem it will solve.


保持耐心 Stay around


成为技术、产品或代码库的专家需要时间。我花了很多年才认为自己是MySQL查询优化器的专家。虽然拥有丰富的经验当然很好,但我认为如果你经常换工作或技术,你将错过获得深刻见解的机会,而这是自己成为专家的必要之路。换句话说,要有耐心,并为自己设定长期目标!


It takes time to become an expert on a technology, a product, or a code base. It took me several years before I could consider myself an expert on the MySQL query optimizer. While it is certainly good to have a wide experience, I think that if you change jobs or technologies too often, you will miss the opportunity to get the deep insights that will be necessary to establish yourself as an expert. In other words, be patient, and set long-term goals for yourself! 


相关阅读:

删库跑路?别怕!PolarDB-X 轻松拯救误删数据的你

阿里13篇论文入选数据库顶会 PolarDB创新技术架构获认可

上海ACE同城会演讲实录|云原生分布式数据库PolarDB-X

PolarDB-X 是如何用15M内存跑1G的TPCH

顶会点赞!PolarDB Serverless实现了哪些突破?

云原生分布式数据库PolarDB技术深度解密

原文链接:https://developer.aliyun.com/article/789290?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

十年阿里资深架构师教你如何做到年薪50万的程序员

...牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲 查看详情

“如何成为阿里云p8架构师?“”当然是考取阿里云新版ace认证啊”

...;对云计算架构师ACE认证进行了里程碑式升级重构!“如何成为阿里云P8架构师?”"当然是考取阿里云新版ACE认证啊!”阿里云新版云计算架构师ACE认证全面重构上线!为建立云计算生态领域含金量第一的专家... 查看详情

阿里云polardb如何助力轻松筹打造5亿用户信赖的大病筹款平台?

...的各种数据。面对这样数据量所造成的巨大挑战,阿里云POLARDB是如何帮助轻松筹践行“善DNA”的呢?本文就为大家分享。关于轻松筹2014年9月,轻松筹成立。“轻松筹& 查看详情

阿里资深架构师私下峰会:了解这几点,人人皆是优秀架构师

前言:最近有好多人问我说:“George,怎样才能成为公司里的前线主力架构师,我现在在公式已经干了快五年了,现在还是一个默默无闻的程序员,我也通过很多种渠道来突破我现在瓶疾,但就是走不出来,技术也一直没有突破... 查看详情

数据库polardb开源之路该如何走?听听他们怎么说

...数据库事业部负责人李飞飞出席了沙龙并致开场辞:PolarDB是阿里云的明星产品,做出将PolarDB开源的决策需要非常大的勇气。将最核心的数据库产品对外开源,且使用了最友好的协议,阿里云是全球头部云厂商的... 查看详情

深度干货|云原生分布式数据库polardb-x的技术演进

简介: 深入解读PolarDB-X的产品架构,以及分布式事务、透明分布式、水平扩展等技术内幕。一、PolarDB-X是什么PolarDB-X最早起源于阿里集团2009年提出用分布式架构替代传统商业数据库,阿里研发了TDDL分库分表中间件... 查看详情

gaussdb(formysql)如何快速创建索引?华为云数据库资深架构师为您揭秘

...L和GaussDB(forMySQL)内核功能的设计和研发。云服务环境下,如何解决客户基于大量数据创建索引的性能问题,成为云服务厂商的一个挑战。华为云GaussDB(forMySQL)通 查看详情

阿里云云计算33polardb的优势产品架构

阿里云云计算33PolarDB的优势参考https://edu.aliyun.com/lesson_547_21900#_21900 查看详情

阿里云polardb数据库将云原生进行到底!业内首次实现三层池化

...2021云栖大会上,阿里云宣布自研云原生关系型数据库PolarDB重磅升级,实现内存池化、多主架构、HTAP实时分析等创新功能,进一步引领云原生数据库技术的持续创新。阿里云智能数据库事业部总负责人李飞飞表示࿰... 查看详情

斩获大奖|阿里云polardb-x引领云原生分布式数据库新时代

简介:阿里云原生分布式数据库PolarDB-X荣获“2021年度最佳分布式数据库”。12月15-16日,以“引领分布式云变革助力湾区数字经济”为主题的全球分布式云大会在深圳隆重召开,本届大会由全球分布式云联盟、深圳科... 查看详情

gaussdb(formysql)如何快速创建索引?华为云数据库资深架构师为您揭秘

摘要:云服务环境下,如何解决客户基于大量数据创建索引的性能问题,成为云服务厂商的一个挑战。华为云GaussDB(forMySQL)通过引入并行创建索引技术,很好地解决了批量索引创建和临时添加索引等性能瓶颈问题&#... 查看详情

多维度创新打造领先阿里云技术生态

...发展”的技术论坛。论坛上,阿里云技术战略架构师陈绪博士从构建目标、构建基石、构建要点三个方面详细陈述了阿里云开放的技术生态。目前阿里云正在全力打造一个由阿里云引导、驱动、赋能的多赢开放技术生态。10月26... 查看详情

股博士学院:工业云厚积薄发

股博士学院新闻,股博士学院表示,放眼互联网,“云”曾经成为全球科技巨头亚马逊、微软、谷歌、阿里、腾讯、百度、华为的第二增长曲线。股博士学院指出,近期,阿里、百度、腾讯都对外发布了他们... 查看详情

前沿分享|阿里云资深技术专家魏闯先:analyticdbpostgresql年度新版本发布

...-云原生数据仓库AnalyticDB技术与实践峰会分论坛中,阿里云资深技术专家魏闯先关于“AnalyticDBPostgreSQL年度新版本发布”的分享。本篇内容将通过三个部分来介绍AnalyticDB PG年度新版本发布。一、AnalyticDB PG云原生架构二、云... 查看详情

向大牛学习——如何快速成长为技术大牛?阿里资深技术专家的总结亮了(转)

如何快速成长为技术大牛?阿里资深技术专家的总结亮了阿里妹导读:你是否有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?”今天,阿里资深无线开发专家李运华,系统梳理了自己的... 查看详情

阿里云polardb开源数据库社区与tapdata联合共建开放数据技术生态

简介:近日,阿里云PolarDB开源数据库社区宣布将与Tapdata联合共建开放数据技术生态。近日,阿里云PolarDB开源数据库社区宣布将与Tapdata联合共建开放数据技术生态。在此之际,一直专注实时数据服务平台的Tapdata&#... 查看详情

《口袋奇兵》开发商引入阿里云polardb数据库it成本降幅达50%

...:3月2日,游戏厂商江娱互动日前通过引入阿里云PolarDB云原生数据库,顺畅支撑旗下《口袋奇兵》等游戏产品日均5亿次用户请求3月2日,记者采访获悉,游戏厂商江娱互动日前通过引入阿里云PolarDB云原生数据... 查看详情

前沿分享|阿里云数据库资深技术专家姚奕玮:analyticdbmysql离在线一体化技术揭秘

...-云原生数据仓库AnalyticDB技术与实践峰会分论坛中,阿里云数据库资深技术专家姚奕玮关于“AnalyticDBMySQL离在线一体化技术揭秘”的分享。本篇内容将通过三个部分来介绍AnalyticDBMySQL离在线一体化技术。一、传统大数据架构... 查看详情