您现在的位置:首页 >> 绿色生活

删除 27 万行 C++ code,转用 Rust 重写数据库,真的值得吗?

时间:2023-04-26 12:25:37

营管理很病痛,虽然 CMake 工具可以自动配备 C++ 新项目的程式码,但可用上去还是很麻烦,我们仍然并不需要手动配备并安装依赖奎;STL 奎依赖对一些现代编程语言工具的支持,依赖的社区新项目极少数还依赖长期支持。先前,我们于是便揽到的领导者 C++ 水平参差不弃,每个人都有自己的情调,更是为难以统合,导致阅读标识符的可玩性过大,初审标识符足见劳心劳力。随着愈发多人员的加入,C++ 弊端暴露得愈发频繁,在此之前不断有设计者者明确指出有否可以权衡用 Rust 草稿。

另外,流式数据奎往往用于检视对过多更是为敏故作的关键性任务。因此,构建 RisingWave 的编程语言第二语言必须满足以下建议:意味着零费用直觉,不能有确保保持稳定性限额;不并不需要运行时垃圾收集,可以支配由内存经营管理引起的过多峰值。

起初,我们并不想更是换第二语言,只不过仍未写就了这么久。但最终我们不得不,如果支持用 Rust 草稿的设计者者可以想法草稿一个独立的模组,我们就权衡草稿整个数据奎。与此同时,我也想起在此便所在 AWS Redshift 岗位之中遇上的一个 Bug,三个人不断检修了两周都直到现在,最终找到是内存泄漏的弊端。如果现在新项目无论如何很确有也都会遇上类似的情景,假设那时商品仍未有了很多应用程序,我们还并不需要因为这种内存披露的弊端检修许久,那就这样一来了。所以就在那个时候,我们开始认真权衡有否要用 Rust 草稿。

经过慎重评估,我们并不需要花费大约两个翌年的时长就可以用 Rust 草稿慢慢地七个翌年写就的标识符,这个时长差主要是由于新项目的逻辑框架已在项现今所期分门别类清楚。暑假之前母公司于是便了大量高管,人手比起充足,且很多高管都有 Rust 的基础,这些都增强了草稿的速率。先前,经过全都母公司的表决投票,我们开始草稿。

在替换的步骤之中,我们必需逐个模组替换,这也意味着了整个步骤不都会用到很严重的弊端。

发言:用 Rust 草稿以后,C++ 标识符情调不统合的弊端获取妥善解决了吗?

吴英骏:情调不统合的弊端肯定不是用 Rust 就能妥善解决的,但相对 C++ 都会有很大以往的提高。C++ 之中关于指针等的写就法很难统合,还容易造成确保保持稳定性的弊端。

发言:C++ 之中一些第二语言层面的瑕疵不无关系,在可用 C++ 作为主要共同开发第二语言在此便所,你不能遇上过上述弊端吗?

吴英骏:我在此便所也遇上过,但在我离家之前,Rust 还不完善,应用程序并不多,因此不都会权衡到用 Rust 去共同开发数据奎。此外,我在此便所接触的数据奎都是比起成熟的商品,比如 IBM DB2,所以我的极少岗位时长都在检修,很难有积蓄和时长去草稿一个诞生于几十年前所的数据奎。

在大型跨国企业内部,只有不太不可忽视的新项目或者应用程序数量不多的新项目才也许被草稿,否则就并不需要投入大量的积蓄和能源。对于起步之前的跨国企业母公司来说,还是有机都会草稿的,一旦面对客户订购的压力,草稿就不太确有了。

发言:在草稿在此便所,种系统仍未完成了多少?

吴英骏:简单来说,框架已是比起清晰的水平。草稿不至于找到在此便所的 Bug,但通过草稿,我们确有都会考量各个大部分设计者的必要性。

Rust 的压倒性

发言:Rust 有哪些有压倒性?

吴英骏:首先,确保保持稳定性绝对是一大压倒性,这对数据奎新项目更是为不可忽视。其次,自带经营管理并不需要的岗位量更是为少,C++ 有更是为多的奎,自带经营管理更是为复杂,你并不需要花费几个小时才能搞清楚如何在 CMake 里面配备一个自带经营管理工具,即便在配备便也并不需要花费很多时长,比如未安装,还确有遇上首字的弊端(其他新项目之中可用的变量旧名与我们奎之中的名字重合了),这些弊端都并不需要手动妥善解决,而且改上去费时费力。

草稿的收益

发言:草稿前所后的收益情况如何?

吴英骏:一句话总结:收益更是大。从收益比的某种以往看,我们损失的是时长,因为分段草稿大概花费了一个翌年左右,但这些时长并不能白白浪费,这个步骤让我们又反思了一遍相同模组的设计者思路,改掉了其之中不对的大部分。对数据奎种系统而言,这是一个长周期的新项目,早期孵化之前时长的珍贵以往和月团购后肯定是区别于的。当对象是直接应用程序时,数据奎种系统用到任何弊端都是不能竜的。

我们收获的是种系统更是加保持稳定、确保安全都,且标识符清晰,相比较是自带经营管理大部分有更是为大的增强。此外,Rust 本身在较低速其发展之中,整个社区更是为有活力,发言基本都只能获取第一时间仍要,这是 Rust 生态种系统带给我们的压倒性。

可用 Rust 草稿标识符的注意事项学习费用

发言:草稿便,慢慢地那批 C++ 设计者者都研习了 Rust 吗?

吴英骏:小组之中的大部分设计者者在此便所就借助了 Rust,只是未在岗位之中可用,这大部分设计者者还是比起容易转换的。我们也专门让一些设计者者评估早先学 Rust 并不需要多久,绝极少数设计者者基本只能在一个翌年将近借助 Rust,但还达大概全都面借助,只是可以可用 Rust 写就一些标识符。

整个步骤比起顺利,因为大部分设计者者都会为了让业余时长研习 Rust,并将实战经验传播给其他人,这是更是为不可忽视的。我认为,如果母公司不得不草稿,那么母公司内部必须有一到两位,甚至更是多位握有 Rust 实战实战经验的设计者者,或者将近愿意为了让业余时长学习,并将实战经验所创其他人,这可以下降整个母公司的学习可玩性,只不过 Rust 的学习曲线是比起峭壁的。

发言:握有其他编程语言第二语言基础对于学习 Rust 有冲击吗?

吴英骏:都会有差异,而且比起微小。对于其他第二语言,比如 Python,最大者的相同之处是简化编程语言,共同开发工具不并不需要权衡内存经营管理等弊端,但 Rust 并不需要这方面的基础,所以握有相同的第二语言背景,对于学习 Rust 的费用有相同的冲击。

程式码时弊端

发言:Rust 一直存在程式码时的弊端,你们有故作受到吗?

吴英骏:Rust 确有存在程式码时弊端,但 C++ 的程式码相对也极慢,所以现今所还可以竜受。如果程式码时长过多,设计者者都会定期查阅程式码步骤,并想法有否有办法可以变长这个时长。

草稿的不应

发言:你都会建议什么并不一定的母公司或者业务小组在什么但都会必需草稿标识符奎?

吴英骏:如果是大型母公司内部必需草稿,大概率表明新项目本身不是那么不可忽视,或者是核心新项目的大块模组,应用程序不能那么多、母公司又赚钱、有能源、有自力,这种但都会可以权衡草稿。对于跨国企业母公司而言,早期还有积蓄草稿,一旦应用程序量上来就都会面临订购压力,基本不太都会认真这种不得不。

此外,你并不需要搞清楚换编程语言第二语言的不应,出于确保保持稳定性、确保保持稳定性或者其他原因,而不只是因为某种第二语言很火。以数据奎行业为例,现在很多想法的数据奎诞生距今已有十年以上,经历了长时长的磨炼,实际上转 Rust 的市场需求并不大。总的来说,我认为权衡实际的市场需求更是为不可忽视,你并不需要综合权衡再进一步认真不得不。

生态环境

发言:你有点现今所 Rust 的生态环境如何?

吴英骏:整体来看 Rust 的生态环境比起不俗,主要弊端在于依赖大型新项目验证,比如 Go 最想法的新项目是 Kubernetes。但我们也碰到不少科技产业母公司权衡可用 Rust 草稿某些维修服务,比如 InnoDB,也碰到很多母公司加入了 Rust 基金都会,比如 AWS、Google、Facebook 等。我相信,有了这些母公司的长期支持,未来都会用到一些更是为不俗的新项目,Rust 都会变得愈发好。

小组状态

发言:必需用 Rust 草稿与小组数目和状态之间有否有彼此间?

吴英骏:我有点草稿和小组数目的彼此间不是很大,但我更是建议新进的小组必需 Rust,当然这也因人而异。至于最终有否要转,也要权衡小组极少数人的意见,因为在学习了一段时长便,找到还是不能熟练借助 Rust 不都会有很强的挫败故作,这并不需要小组领导者的共同努力,充其量兴趣很难认真好。此外,充其量兴趣不得不跨国企业以及对外获取商业化维修服务,这也是更是为不主要职责的。

☞。

类风湿吃布洛芬好吗
小孩鼻炎吃再林阿莫西林颗粒有用吗
福州男科医院哪个最好
北京甲状腺医院哪家治疗最好
常州妇科
标签:数据库
相关阅读