(本文转载自 CNSys 公众号,欢迎关注 ACM ChinaSys 的官方公众号 CNSys)

ACM ChinaSys Colloquium 于2022年4月29日举办第一期线上学术讲座,以“工业界中的系统研究”为主旨进行了学术讨论交流。阿里巴巴副总裁、阿里云智能数据库产品事业部负责人李飞飞博士、华为中央软件院分布式与并行软件实验室主任谭焜博士作为特邀嘉宾,做学术报告并参加在线访谈。中国科学技术大学李诚特任研究员、华为李博杰博士、华为姚婷博士主持学术讲座。会议以腾讯在线会议室和B站直播的方式进行,共吸引600余人次观看。

首先,阿里巴巴李飞飞博士做题为《云原生数据库2.0:智能化一站式数据管理与服务》的学术报告。他指出,信息技术及其应用已经迈入云计算时代,数据库是数据管理领域最重要的基础软件,分布式、云原生数据库是其未来的重要发展方向。相较传统数据库架构,云原生数据库充分利用资源解耦、池化、计算存储分离等云计算技术,具备了弹性扩容、易用性、快速迭代、节约成本等优势。李飞飞博士以覆盖数据生产处理消费全流程的阿里云自研数据库生态为依托,介绍了云原生关系型数据库PolarDB、基于Shared-Nothing架构和X-Paxos协议的云原生分布式HTAP数据库PolarDB-X、离在线一体化的云原生数据仓库AnalyticDB等关键技术,帮助参会人员理解了云原生数据库架构的最新进展及演进过程中面临的挑战。

随后,华为谭焜博士做《从互联网结构到编程抽象,重新思考分布式异构编程》专题报告。他指出,随着以AI为代表的算力需求增长,计算的异构化和大规模分布式化是必然的演进之路。他进一步总结了构建高效分布式异构系统和应用需要解决的三大挑战:(1)从高效的芯片算力到高效的大规模计算系统的差距;(2)从多元算力集群的复杂性到开发者使用和管理简易性的差距;(3)从快速变化的硬件形态到相对稳定的应用生态的差距。面对这些挑战,谭焜博士介绍了华为的探索与思考,主要涉及“Datacenter as a Computer”的理论抽象, 以及UB互联、MindSpore、元戎等三个技术项目。其中,UB互联项目是关注新一代的通信互联技术,实现总线技术和网络技术的统一融合。MindSpore项目、元戎项目则是分别针对AI和科学计算、通用Serverless计算场景,构建新型的云原生智能系统内核,提供统一的对用户友好的编程框架,可自动进行异构优化和分布式调度,为应用提供便捷使用、任意扩展的分布式异构平台算力平台。

报告结束后,两位嘉宾与线上观众一起深入讨论了云原生和“Datacenter as a Computer”等技术话题。此外,问答环节还讨论了校企合作的具体形式和沟通途径。

未来,ACM ChinaSys Colloquium会继续定期举办学术讲座,秉持传播新技术、新产品、新思想的初心,为青年教师和学生提供职业生涯规划指导机会,搭建学术界与工业界交流互通桥梁,为广大中国计算机系统研究人员服务助力。

访谈实录

问题1

无论是云原生还是datacenter as a computer,其目的都是为用户提供更好的服务支持,隐藏系统细节,请二位老师分别讲一下这两个技术路线的区别和联系。

李飞飞 :听完谭老师的报告,我觉得二者in principle是非常类似的一个逻辑,就是将资源池化,解耦并对资源层进行抽象,从传统的冯诺依曼架构转向data center的架构。谭老师提到的datacenter as a computer,从云原生的数据库系统角度来讲,实际上是在构建disaggregated storage pool和disaggregated memory pool in datacenter level。如果可以抽象到极致,达到datacenter as a computer的层面,也会为数据库系统的构建提供便利。但今天我们仍需要对底层进行细粒度的控制和调度,所以我们采取了分层抽象的逻辑——存储上做持久化存储、共享存储、共享内存池,计算则是将CPU core容器化进行调度管控,这是云原生数据发展的方向。同时也会需要硬件来加速,例如构建持久化存储需要高速的存储、RDMA,复杂的计算需要基于FPGA或新型硬件的硬件加速,而内存池化则利用NVM。这与谭老师提到的datacenter as a computer的设计初衷有异曲同工之妙。

谭焜 :我同意飞飞的观点,二者本质上都是一样的——如何能够构建更大的计算池,如何可以更方便地编写分布式应用,从而将资源池中的资源应用起来。如果我们将云看成一个池,云原生意味着编写的应用可以根据分布式池的特征来构建,这与datacenter as a computer的目标是一致的。我们强调和推广datacenter as a computer,是希望面向分布式应用的编程可以更加抽象化与标准化,形成一个应用编程的窄腰,也就是前面提到的“新的POSIX”。如果实现了这一目标,也就实现了云原生。

问题2

如何在UB支持很多设备时保证cache coherency?云原生数据库支持一写多读,尤其支持很多读instance时,如何做到cache coherency?

谭焜 :在UB中,协议栈是分层的。我们实现的是一个高效的通信协议,它的核心目标是把能被所有的通信看到的内存访问在系统中高效地完成;而cache coherency是在其上叠加的一个能力,其实在很多场景下我们并不需要cache coherency,这是一个可选的能力而不是一个必需的能力。我们也试图在UB中设计一个基于硬件的cache coherency,但此技术在规模和使用上还是存在一定限制。另外我们希望cache的管理可以更加programmable,能够给应用的开发者更强的控制能力,让cache coherency成为一种可在必要时使用的能力而不是像现在的CPU一样默认的能力,我们认为默认coherency的设计在大规模的情况下并不scale。我们希望通过软件能够控制的方式,为特定的高性能的应用提供cache coherency的能力,同时也能保证应用的实现与scalability不受影响。

李飞飞 :实际上,操作系统层面的cache coherency和数据库层面cache coherency本质上存在一定差距。操作系统层面的cache coherency以remote memory的概念已经研究了很多年,对于学术界与工业界都不是一个新问题——其关键在于如何去满足TSO(Total Store Order)或PSO(Partial Store Order)。如果在操作系统层面可以构建一个满足TSO级别的cache coherency的remote memory pool,就可以直接解决其上层数据库系统的remote memory共享问题。但目前从操作系统来说,该问题并没有被解决,还未能实现一个成熟的、能够满足TSO/PSO的高效memory pool技术。既然操作系统没有提供这样的能力,我们就考虑在数据库层面上来做,其问题就是buffer pool的cache consistency。而我们关注的是,在持久化共享存储中,为了实现一写多读或多写多读跨节点的数据访问,其一致性的实现方法——这可以根据有无共享内存架构分两种情况讨论。对于不存在共享内存架构的数据库,例如polarDB 1.0,主节点和READ RO节点之间的数据一致性通过底下的共享存储来实现。在读入已写入存储的数据时,会有一个日志的可见性机制来维护一致性——每一个transaction都有一个transaction number,通过与持久化访问的数据最后commit日志的log sequence number进行比较,从而判断可见性。在有共享内存的条件下,数据的一致性由共享内存确保——在共享内存上做读写一致性更新,例如有锁的控制、有并发的控制,通过共享内存来解决一致性的问题。

问题3

在二位老师分享的这两个方向上,有计划开展校企合作吗?如果有,可否告知我们一些可能的途径?很多ChinaSys的老师在校企合作上都做得很好,如果有机会我们愿意搭建沟通的桥梁。

李飞飞 :阿里巴巴和阿里云非常欢迎和高校开展合作,我目前主要是负责阿里云的数据库团队和达摩院下的数据库与存储实验室,而这两个团队都非常欢迎校企合作。主要的合作途径是通过阿里巴巴的一个叫AIR(Alibaba Innovation Research)的高校合作项目。AIR项目的支持额度是一年五十万人民币,感兴趣的老师可以通过官方途径申请,更有效的方式是可以直接联系我。在AIR项目中有了两到三年的合作基础后,会在一些重点方向部署A类项目与联合实验室,支持额度会提升到一年一百到一百五十万。还有访问学者项目,推荐老师们可以在假期或空闲时间做访问学者,可以获得薪酬上的支持并且可以深入到阿里巴巴的工业项目中。另外还有为同学们提供的三到六个月不等的实习。

谭焜 :华为同样对于和各个学校的合作都非常支持,我个人的实验室也非常乐于和大家合作。首先最主要的合作方式和飞飞说的大致一致,都会有长期的合作和联合项目。大家在学校可以和实验室的项目负责人联系,我们的联合实验室都是对大家开放的。也可以与我或李博杰联系,和专家讨论后可以建一些单点的合作项目。第二的话,目前华为软件院有一个叫openlab的组织,是由上海交通大学的陈海波老师负责,老师们可以申请openlab的岗位,利用学术休假或者其他机会,以顾问或part-time的形式参与进来。第三则是实习生的岗位,目前也是开放的。实习是三个月起,更欢迎长期的(例如一年或者更长时间)实习。另外,我的实验室分布很广,在北京、上海、杭州、深圳、武汉、西安都有office,做的方向各有侧重,有合作倾向的老师可以选定不同的地域作为接入口。

问题4

什么才是好的系统研究?学术界和工业界的衡量标准是否有所不同?工业界是如何选定未来投入的方向的?

谭焜 :在工业界的研究与在学术界的研究是不一样的两个问题。在学术界的研究更鼓励大家可以大胆去尝试更多新想法,希望能够不受任何限制地去探索。我觉得从系统研究来讲,在各种项目、系统上面允许存在任何想法,之后可以做非常solid的验证,你可以证明他可行,也可以证明它不可行,但都可以尝试。只要方法是合理的、结果是清晰的,我觉得都是非常好的研究,可以为工业界的架构师和工程师提供非常好的设计源泉和思路。而工业界的系统设计就不能这么不加限制,以我们实验室为例,我们不止是一个纯粹研究的部门,更是一个平台和产品预研的部门。主要存在这么几个限制:一是要遵从公司商业上的事实与选择,我们要解决的问题是与公司相关的问题;二是要尊重公司现状,尤其是在产业中的位置与产品的现状,我们研究的价值一定是要可以产品化,且产品要有可落地的途径。所以工业界的研究往往start small,但目标长远。不过工业界的研究的系统投入非常大,这是我们的优势之一。

问题5

目前,很多系统领域的研究生在毕业后都选择了去工业界工作,少数优秀的同学还拿到了华为天才少年、阿里星等较高的荣誉,请问工业界比较看重他们哪些方面的能力?

谭焜 :对于新人的要求,首先他得非常开放,要有对研究的热情,并且有团队的合作精神。这几点是我觉得我们长期职业生涯中比较重要的一些品格。其次,我们会看他的研究经历,包括他的基础知识、研究经历和当前的一些技能。但是我觉得相比于前面来讲,如果一个人足够聪明,并且他也很开放,非常勤奋,很有研究热情,那么其实他可以在工作中学习,不断地提高自己,最后一定也能成为非常优秀的研究员和工程师,甚至是一个项目的领导者。

Comments