范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

数据库公司疯狂行为删掉7个月开发的27万行C代码,用Rust重写

  C++编程语言已经不是用来构建数据库的最佳选择了吗?
  数据库初创企业 Singularity Data Inc.(中文简称奇点无限)最近发表了一篇博客文章,宣布他们完全删除掉了 RisingWave 的 27 万行 C++代码库,并用 Rust 语言从头开始重写了一遍系统。
  RisingWave 于 2021 年初开始创建,决定重写时,他们已经花了 7 个月的时间进行开发。按创始人的话说,用 Rust 重写也意味着"七个月的努力都白费了。对于早期创业公司来说,这是一个疯狂的决定。特别是在竞争激烈的环境中,对科技初创公司来说,时间几乎就是一切。"
  C/C++ 是用来构建数据库系统的最流行的编程语言之一。大多数知名的数据库系统,包括 MySQL、PostgreSQL、Oracle 和 IBM Db2,都是用 C/C++ 创建的。对于现在的数据库创业企业来说,选择使用 C++已经不是一个最佳的选择了吗?
  RisingWave 是什么?
  RisingWave 是初创企业"奇点无限"开发的云原生流式数据库,主要服务于需要超低延迟实时数据分析应用。
  创始人 &CEO 吴英骏博士认为,因为 Flink 有几个关键特性,比如,作为流计算引擎,不提供数据持久化能力;计算和存储耦合,虽有极高的可扩展性,但弹性难以管理和实现,使用 Flink 来支持流式应用程序可能会非常昂贵等等......所以在云时代,"Flink 可能不再是流处理的最佳答案"。
  为了简化流处理,他们重新审视了一个古老的研究方向:流式数据库。流式数据库的思想可以追溯到数据流管理系统 (DSMS)的早期提议,它用与数据库中的数据管理相同的方式管理数据流。与许多其他数据库一样,RisingWave 被设计为可以提取数据、存储数据并回应来自最终用户的并发访问请求,所有这些请求都可以用 PostgreSQL 风格的 SQL 来表达。
  因此,RisingWave 的定位不仅是一个 SQL 数据库系统,还提供流处理能力:使用流数据,执行连续查询,并以物化视图的形式动态维护结果。另外,它还采用分层架构,建立在现代云基础架构之上,利用云资源为用户提供对成本和性能的细粒度控制。与传统的 SQL 数据库相比,RisingWave 最终目标是给用户提供以低延迟处理流数据的能力,如在大数据场景下实现亚秒级商业分析。
  据国内媒体报道,"奇点无限"于 2021 年 7 月宣布获种子轮近千万美元融资,由云启资本领投,融资用于产品开发和团队组建。该公司在北京、上海、旧金山湾区设有办公室,媒体报道将之定位为"一家国际化的数据库初创公司"。
  2022 年 4 月,"奇点无限"开源了 Rust 编写的 RisingWave :https://github.com/singularity-data/risingwave
  其博客文章显示,RisingWave 开源后就很快成为了"使用 Rust 编写的第一大热门项目"。
  为什么换掉 C++?
  2021 年初开始构建该数据库时,RisingWave 团队选择了用 C++ 来实现自己的新一代的流式数据库。当时的创始团队由多位具有 10 年以上相关经验的资深 C++ 工程师组成。
  随着公司规模扩大,工程师人员的增加,他们开始被 C++的"缺点"所困扰:代码可读性差、存在内存泄露和 segmentation fault 等。于是,经过约 7 个月的开发阶段后,团队开始有了质疑:"C++ 语言是编写新数据库系统的正确选择吗?"
  C/C++ 无疑是用于构建数据库系统的最流行的编程语言之一,大多数著名的数据库系统都是用 C/C++ 创建的。因此对于这么一家从零开始构建大规模数据库系统的早期创业公司来说,既然大量的数据库是用 C/C++ 构建的,那么它就已被证明是一种可行的系统编程语言;除此之外,C++ 还为开发人员提供了开发高性能程序的机会,提供了对内存和计算的细粒度控制。
  但坏处是:
  虽然 C++ 为程序员提供了很大的灵活性,但它是有代价的。非常容易写出 bug,还极其难以调试,尤其是并发编程。 依赖管理可能很麻烦。虽然如 CMake 工具可以自动配置 C++ 项目的编译,但开发者仍然需要手动配置和安装依赖库。
  更为麻烦的是:
  STL 库缺乏对一些现代编程工具的支持,依赖的社区项目大多数还都缺乏长期支持。 质量保证具有挑战性。C++ 支持的特性如此之多,以至于不同的开发人员可以以截然不同的风格编写 C++。不同背景的开发人员在一个团队中,保持代码可读性有困难。此外,C++ 代码中的 bug 很难识别,因此审查代码会变得令人生畏。
  另外,流式数据库通常用于对延迟非常敏感的关键任务。因此只能使用以下语言构建 RisingWave:保证零成本抽象,不会有性能上限;不需要运行时垃圾收集,可以控制可能由内存管理引起的延迟峰值。
  考虑到这两个性能目标,经过一个月的讨论之后,RisingWave 做出了从 C++ 迁移到 Rust 的决定。
  (截图来自网络)
  虽然 Rust 也含有不好的一面,比如"碎片化的异步生态系统、繁琐的错误处理"等,但出于"安全、易于使用、易于学习、易于管理"四大原因,所以 RisingWave 认为 Rust 是一个更好的选择,可以减轻开发人员的精神负担,为高效的大规模协作铺平道路。
  (图片来源:https://singularity-data.com/blog/building-a-cloud-database-from-scratch-why-we-moved-from-cpp-to-rust)
  作出决定后,RisingWave 团队花了约两个月的时间完全删除之前的 C++ 代码库,并用 Rust 重写了一遍系统,总共删除了 276,406 行代码。
  写在最后
  尽管 Rust 带来了明显的好处,但重写整个代码库并不是一件好玩的事情,而且这件事也不代表"每个数据库团队都可以放弃 C++转而选择用 Rust"。
  吴英骏博士在文中表示,其实还有些关键因素存在:一是当时他们正在重构代码库以适应新的系统架构,重写(至少一部分)代码库是不可避免的事情;二是团队中有一些 Rust 爱好者不断向其他工程师宣传 Rust,并说服整个团队用 Rust 重写是一个实用的选择;三是 2021 年夏天后工程团队迅速扩大,大大加快了代码库的重写速度。如果缺少这些因素,就不会让他们作出迁移到 Rust 的决定。
  Rust 是很酷的编程语言,值得每个人都尝试一下,但是重写项目却要认真考虑,"Rust(或任何其他语言)永远不会决定项目的命运,但做出明智的选择可能会为你节省数百甚至数千人月"。
  参考链接:
  https://singularity-data.com/blog/building-a-cloud-database-from-scratch-why-we-moved-from-cpp-to-rust
  https://singularity-data.com/blog/is-risingwave-the-next-apache-flink/
  https://mp.weixin.qq.com/s/lfqH3rJjMpRPKpIp-9__kw

换季室内空气差怎么办?马上就要换季了,空气又不可避免地要变差,各种灰尘雾霾接踵而至,让家里的空气变得十分糟糕。与其默默忍受浑浊的室内空气,为什么不考虑入一台空气净化器呢?一只眼睛就能搞定室内空气问题,这这是要干嘛,为何小米不再使用MIlogo,全面改用xiaomi在logo方面,我觉得就佩服苹果,苹果并没有过多强调与字母logo,更多是图形logo,在很多商品上都用图形logo来呈现,我觉得很简约很方便,曾经还在想,如果小米全方面的在硬件设小米11T系列规格出炉,小米11首当其冲跌至大米价刷新发烧纪录8月25日,mysmartprice公布了小米11T系列的参数。消息称,小米11T和小米11TPro两款旗舰有8GB128GB和8GB256GB两种选择。其中,小米11T搭载联发科微信更新边写边译支持中文英文日文韩语近日,微信进行了新版本更新,虽然更新详细只提到解决了一些已知问题。但小编还是发现了一个新功能边写边译,该功能可以在对话框输入时实时提供翻译,目前支持的语言繁体中文英文日文韩语等。具同款IMX766,华为P50ProiQPO8ProFindX3Pro夜景拍照横评随着OPPO独占期的结束,索尼IMX766传感器被多家手机厂商使用,华为P50Pro也放弃了超大底RYYB传感器IMX700,转投IMX766,下面我们对比iQOO8ProOPPO长安全新电动轿车C385发布全新架构打造外形科幻8月24日,长安汽车官方正式发布了旗下的全新纯电动轿车,新车的内部代号是C385,但具体命名还没有公布。官方称,新车是基于长安全新专用电动车平台打造的,也是该平台旗下的首款车型。从2800卖掉iPhone11,老果粉最后入了OPPOFindX3,高刷快充真香换机原因直接开门见山地说吧,作为一个老的iphone手机用户,用了多年的iphone手机,5c开始到最新的11。一年半前买过三部安卓机,都是不过一周就出掉了,总体使用下来感觉并不好科技巨头又一个新战场机器人时代正在开启纵观人类生产力的发展历程,先后经历了手工劳动时代机械化时代电气化时代自动化时代,现如今正加速进入到智能化时代。在这一时代背景下,以机器人为代表的智能产业正蓬勃兴起,科技巨头纷纷将目从4999元跌至1899元,鸿蒙OS麒麟980,从高端市场跌至低端市场华为公司在8月份上架了两次新机都引发了热议,第一次上架的是华为P50Pro,这也是华为公司最新的顶尖旗舰,而第二次上架的手机并不只有一款,而是多款,只不过这些手机都是华为旗舰二手机自研才是国产手机的唯一出路这十几年间,国产手机经历了如何的发展?其中又有哪些技术革新,对整个行业产生如何的影响,想必各位也都不会陌生。从大局观来看,淘汰了劣质的山寨手机,将智能手机推向大众化品质化的消费市场黑鲨游戏手机4怎么样?黑鲨游戏手机4(8GB256GB5G版)最新价格是2999元,再加上它亲民的售价,显得性价比颇高!上市时间为2021年03月23日。这款手机大电池的加持告别了低电量的焦虑。首先,我
天玑1000,天玑1100和天玑1200之间的差距到底有多大?了解一下相信大家也知道,在联发科没有天玑之前,还是默默无闻地给人的一种低端,顶多是个中端的感觉,但是自从有了天玑,有了天玑1000,就让我们看到了联发科的崛起。那么这篇文章我们来分别对比一电脑自助提速现在又要开始上网课了,家里的电脑可能有的网络链接有异常,有的可能是老电脑多度的卡。现在提供网络链接异常问题1使用360的断网急救箱进行急救,这个适合小白进行使用,不需要太多操作。2新电脑到手,跳过联网进入Windows11的方法来了新电脑到手,跳过联网进入Windows11的方法来了大家买的天选3或者ROG枪神6到了吗?不知道大家在首次开机的时候,有没有发现电脑在登录的过程中,会进入到连接网络的步骤,没有可以ios15。3。1为何不能升级?网友评论很精彩,也很真实苹果iOS15。3。1正式版已经更新了有一阵子了,关注的用户会发现,该版本的网评口碑并不好,不少用户都因此望而却步。那么iOS15。3。1正式版为何不能升级?网友评论很精彩,但也很最后我选择了小米mixfold一开始我用得是华为mate40标准版,我是从iPhone12mini转过来的,之前也一直用得苹果手机,但是由于万年不变的设计还有没有创新的操作系统,我转战安卓阵营,当鸿蒙系统出现以手机进化1980年的手机长啥样?什么!它就长这样?原标题ElaGame手机进化跑酷游戏PhoneEvolution展现手机发展史你知道1980年的手机是什么样的么?在过去的40多年里手机到底经历了怎样的进化历史呢?今天为大家推荐一东数西算将带来哪些改变?来源人民网人民日报海外版宁夏可再生能源丰富,吸引了不少企业在此布局数据中心。图为位于宁夏银川黄河东岸的一处光伏电站。袁宏彦摄(人民视觉)在全国首个大数据综合试验区贵州,数据中心发展让诚信的人先富诚信是世上最大的财富在阿里巴巴一年一度的全体员工大会上,董事局主席马云像往常一样以充满激情的语调,向员工们宣布了公司新一年的三大主题第一,诚信建设和知识产权保护第二,以高科技网络技术为社会创造更多就业聚焦科技兴电,助力现代能源体系建设近日,国网山东省电力公司第三批18项发明专利通过山东省产权交易中心进行挂牌交易,通过专利许可形式成功实现成果推广,并获得转化收益,有效促进了电力创新成果现场应用。十四五以来,国网山华为手机的落幕,是手机圈的悲哀前几年国内手机市场华为是绝对的老大哥,全球市场份额一度赶超安卓机皇三星,当初余大嘴还说出未来只有两三家手机厂商能生存,华为是第一当时余承东也确实不是打打嘴炮,按照当时华为的进攻速度为什么有人用过苹果手机后,不再换回安卓手机,原来是这3个原因笔者作为一个手机行业的行内人,发现一个非常奇怪的现象,那就是安卓手机用户买了苹果手机,使用一段时间后不会再换回安卓手机,而原来的苹果手机用户买了安卓手机以后,大多数人使用一段时间后