0%

成长

他没有做过数据开发,但是对新技术很有兴趣。项目刚开始,正是需要有能力的开发人员加入的时候,他加入了团队。

将数据实时接入数据平台可以提升数据导入性能。当前已经有一个实现,但是性能问题很突出。在数据量激增时,延迟会变得很高。他接受了这个挑战。

“搭建一套环境,重现这个性能问题,应该就能解决。”团队初步确定了思路。数据开发用到了很多技术,Oracle、OGG、Kafka、StreamSet、Kudu等等,对于他而言,都是全新的。

接下来几个晚上,他放弃了很多休息时间,学习,学习,学习…

环境终于搭建好。他构造了一个测试场景:生成数据,导入各个模块,搜集性能数据。问题重现了出来。他开始研究各个模块的实现原理,并着手调整各个模块的配置,快速的反馈让他很容易验证配置修改的效果。终于找到了症结:之前的配置没对,不能将系统性能发挥出来!

实时数据接入问题解决之后,他开始转到业务开发。这是一个全新的领域,涉及上游十个以上的复杂系统,数百张数据库表,成千上万个字段。

接下来几周,他放弃了很多休息时间,学习,学习,学习…

团队通过内部分享来检验大家的学习成果,他欣然参与到每天的业务分享中来。

数据建模是一个新的领域,开发工具和编码语言也是新的。他领取了一个相对容易的任务,开始工作。经过几天紧张的适应期之后,他顺利搞定了这个任务。

感觉还不太过瘾,他想要领取一个复杂的任务。他拿到了一个预估需要2到3周才能做完的任务。抽取模型,复用已有模型,简化代码,重新实现,代码重构,数据验证。他投入到这些新的复杂的开发过程中去。他经常一坐下,便是一上午或者一下午不起身。键盘声有节奏地响起,他一会注视屏幕的左边,一会儿又切换到右边。很少看到他上厕所。

经过两周以上紧张的工作,他搞定了这个复杂的任务。

下个月上线,团队准备发布之前的实时数据接入功能。在运行一段时间之后,发现另一个问题:某一个组件会不定时的重启,当数据量激增时,这个重启操作将导致延迟增加20分钟以上,这无法接受。

他主动调查这个问题。

离上线时间越来越近,这个问题必须要尽快解决。

他下载了这个开源组件的代码,并搭建了一套编译环境,根据日志中的报错信息,找到相关代码。他仔细阅读研究这部分代码。代码用了一种异步的方式实现,包含了大量的细节,不易理解。他利用了很多休息时间,学习,学习,学习…

他发现之前的代码实现上有一个小的缺陷。在服务器压力上升时,客户端不仅没有及时停止发送请求,反而发送了更大量的请求。这进一步加剧了服务器压力。最终服务器丢弃了更多的请求,导致客户端超时重启。

找到问题根源之后,他提出一个方案:可以在发生超时时,先等待一段小的时间,然后再发起请求。这可以降低服务器压力,从而让系统在负载较高时也不至于失败。

他实现了这个方案,并验证确实有效。

“你们真是厉害,开源项目的问题也一起改了。要是别的合作商,肯定不会管这个。”在看到他顺利解决了这个问题之后,客户这样说。

他很喜欢徒步,经常在结束了一周紧张的工作之后,参与到一些周末徒步活动中。每次周末回来,他的精神状态都不错。

他也喜欢看书,火车上是他读书的理想场所。每次在火车上同行,总是看到他捧着一本书津津有味的读起来。他也经常分享看过的书。有一本毛主席的警卫写的毛主席回忆录,是他极力推荐给我的。

欢迎关注我的其它发布渠道