选择语言
< 返回主菜单
08.jpg

智能云原生数据库系统-

张焕晨

课题介绍

我们总体目标是研发下一代智能云原生数据库中的关键技术,其中的两个关键词为“云原生”和“智能”。

云原生所带来的计算和存储资源的弹性伸缩和可扩展性对于数据库的设计理念有着颠覆性的影响。传统数据库的设计是基于有限资源的假设。一台服务器或是一组固定数量的机群所拥有的计算和存储资源是固定的。所以传统数据库的设计理念是最大化地利用有限的固定资源,来提升数据库的性能。然而数据库的性能是多维度的。不同性能维度在共享/争抢固定资源的时候会不可避免地发生“内卷”(trade-off)。这里最为明显的是数据库中读与写的性能冲突。举个例子,数据库会为了优化一些查询 (query) 的性能而建立索引 (index)。这些索引可以提高读取数据的效率和性能。但是在有新数据写入时,数据库需要花费额外的计算资源去更新这些索引以确保查询的正确性。这时,在有限资源的情况下,读与写的性能会发生冲突,难以兼得。

然而资源限制对于云原生数据库来说不再是无法逾越的障碍。对于个体用户来说,云所提供的计算和存储资源近乎是无限的。所以,一个云原生数据库使用多少资源完全取决于它的性能需求 (performance) 和成本效益 (cost-efficiency)。还是以索引为例,云数据库在决定是否建立索引时不需要过多考虑读与写的性能冲突,因为它可以利用云资源的弹性伸缩,让读和写使用不同的计算资源来完成 (甚至在写的时候可以用多个CPU并行更新索引)。因此云原生数据库在设计和运行时的考量将由不同性能之间的权衡 (trade-off),变成数据库整体性能和成本支出上的权衡。引入成本效率,是云原生数据库相比于传统数据库在设计理念上最大的不同。

我们第二个关键词是智能。云数据库智能的核心在于帮助用户自动选择数据库的物理设计 (physical design) 和查询算法,自动扩展和调度云服务资源,来同时满足用户对于性能和成本的需求。在上文趋势判断中,我们认为云数据库未来会大规模以SaaS的形式服务用户。而绝大多数SaaS用户将不会像现在专业的数据库管理员 (database administrator or DBA) 一样,对数据库内部的构造和原理有较深的理解。对于这些普通用户来说,他们缺乏必要的知识和训练,来根据查询需求调整数据库的物理设计和资源使用。因此,一个智能的云原生数据库应该尽可能少地暴露数据库的内部参数:普通用户只需要提交查询需求,数据库便能够自动地在用户所要求的性能和预算限制内完成查询。实现这样一个理想的交互界面是本项目将要研究的一大挑战。即使是目前全球领先的云数据仓库Snowflake,也会要求用户在提交查询需求前明确资源使用量 (比如用多少台虚拟机)。而用户往往无法做出合适的选择,从而导致资源浪费 (如果过高估计) 或是损失查询性能 (如果估计不足)。

云原生和智能这两个关键点在本项目中相辅相成。云原生带来的是数据库设计逻辑和理念上的颠覆。这方面的科研旨在探索在以成本效率为核心的新逻辑下,数据库设计 (相较于传统) 的不同可能性。而云数据库智能方向的科研,则会探究如何基于用户的不同需求,自动地为其选择所有可能性中最为高效的设计和运行策略。

我.png

分享到