TDSQL参加全球数据库顶级盛会 VLDB 2018回顾

2018-11-08 17:19:55 浏览数 (2)

作者介绍:卞昊穹(hankbian):腾讯数据库TDSQL团队成员,高级工程师。中国人民大学博士,曾在SIGMOD、ICDE、CIKM等数据库相关领域顶级会议发表论文多篇。目前参与和主导多项TDSQL查询和存储优化的研发工作。

腾讯TDSQL分布式数据库(Tencent Distributed MySQL)是支持自动水平拆分的高性能数据库服务。在TDSQL平台,业务能感受到完整的逻辑表,而数据却被均匀地拆分到多个物理分片中。这一设计有效地解决超大并发、超高性能、超大容量的 OLTP 类场景。同时,TDSQL 的每个分片默认采用主从高可用架构,能提供弹性扩展、备份、恢复、监控等全套解决方案。

值得一提的是,TDSQL 也是腾讯云数据库团队维护的金融级分布式架构 MySQL/MariaDB的内核分支。腾讯 90% 的金融、计费、交易类业务核心系统都承载在 TDSQL 中。目前TDSQL已广泛应用于政府、银行、保险、制造业、物流、电商等用户的核心系统中,通过公有云、专有云两种部署方案,为用户提供关系型、分布式和分析性数据库实例。此外,TDSQL还具备强同步复制、线程池、热点更新、内核优化等能力,充分满足用户事前、事中、事后的全维度安全需求,获得多项国内外技术认证。

论文纵览

一年一届的数据库领域顶级会议VLDB 2018于当地时间8月27日-8月31日在巴西里约热内卢召开。 在本届大会上,腾讯公司TDSQL团队携手中国人民大学、武汉大学共同投中一篇Demo Paper,该工作旨在分布式数据库TDSQL上高效地实现相似查询。我们对本届VLDB的论文佳作进行了分析,在这里和大家分享。

VLDB

VLDB 会议全称Very Large Data Bases Conferences,是由VLDB Endowment主办的数据库领域学术会议,旨在推广全世界数据库及相关领域的研究成果、促进领域内学术交流。从1975年至2017年,VLDB会议已经举办了43届,2014年首次在中国杭州召开。

VLDB是数据库及相关领域研究者、供应商、参与者、应用开发者所广泛关注的主要国际会议,也是公认的数据库领域三大顶级会议 (SIGMOD、VLDB、ICDE) 之一,并且在发表论文难度和受关注程度上,与SIGMOD可谓并驾齐驱。

国内外各高校、研究所和企业都曾在VLDB上发表过很多具有影响力的论文,为业内熟知的数据库系统如Hive、Dremel、F1、C-Store、Vertica的论文都曾发表于VLDB。近年来,中国数据库研究者和企业对VLDB的参与度和关注度也逐渐提高。

VLDB 2018概览

VLDB 2018会议历时5天,其中首尾日是Workshop(子研讨会),正会3天。

我们做了非官方统计,今年VLDB共接收了134篇Research Paper(研究论文)、12篇Industrial Paper(工业论文)、48个Demo(系统演示)、5个Tutorial(辅导报告)、1个Panel(小组会议)。此外会议还邀请了4个Keynote(主题演讲)和9个Industry Talk(工业报告)。在3天的正会上,146篇论文 (Research Paper和Industrial Paper) 将按照研究主题分为30个Research Session进行报告,48个Demo将分为4个Demo Session进行展示。

今年VLDB非常重视学术界和工业界交流。除12篇Industrial Paper之外,在Research Paper中也有大量工作由企业主导和参与。大会程序委员会中也有很多来自企业的Track Chair和审稿人。国内包括腾讯、阿里、华为等在内的多个企业都将在大会上设置展台与参会者进行交流。

在今年VLDB上,中国高校和企业发表的论文数量超过20篇,但主要集中在图数据、空间和轨迹数据、数据挖掘与机器学习等领域,传统关系数据库 (RDBMS) 的研究工作较少。实际上RDBMS作为重要的基础软件,广泛应用在关系国计民生的各行各业,其核心技术的研发和突破也具有重要的意义。国内的一些企业,如腾讯、阿里、华为等正在大力投入RDBMS方面的研发(我们的Demo paper就是基于TDSQL实现的)。

本文主要从论文分布、技术发展动向、奇思妙想三个方面寻找今年VLDB论文中的看点。

1.看论文分布

首先,我们看一下今年VLDB论文的分布情况。

1.1. 各领域论文分布

尽管大会将论文按照主题分成了30个Research Session,但由于每个Session中论文报告个数的限制(4-5个),Session的划分比较简单粗暴,Session间的界限和层级关系并不非常清晰。因此我们阅读了全部论文的内容,根据论文所针对的应用和数据类型,将论文进行了更加细致的分类,便于大家了解各个领域的研究热度。

图1. VLDB 2018各领域论文分布图

从图1可以看出,关系数据库 (RDBMS) 的研究仍然是主流,共包含42篇论文,占到论文总数近1/3。图数据相关论文数量也保持稳定(去年VLDB也有20多篇图数据相关论文)。在很多实际的业务中,关系数据和图数据也是最重要的数据类型。今年VLDB最佳论文也来自图数据领域(下一章中会详细介绍)。而流数据、众包、空间和轨迹数据相关的研究比去年有明显减少,但论文数量的浮动并不完全说明领域的热度。

1.2. RDBMS中各子领域论文分布

在RDBMS中,我们进一步对各个子领域进行细分,参见图2。可见存储优化和查询优化是研究热点,占到了RDBMS中近一半的论文数量。而在同样核心但研究难度更大的事务处理、容错恢复领域,研究工作相对较少。

图2. 关系数据库各个子领域论文分布图

当然,良好的架构也是RDBMS系统研发的关键,而在面向分析的数据库中,用户交互和可视化也是关键的技术。几乎每年VLDB都有这些方面的看点,如Google F1在今年VLDB上发表的论文。此外,云数据库、UDF等方面也有相关论文。

1.3. 来自工业界的论文

据不完全统计,今年会议上企业独立发表论文14篇,企业与高校合作发表论文30篇,总共44篇,占到论文总数的近1/3,可见工业界在数据库研究中参与度之高。实际上,由于企业有更多的机会接触实际业务和生产系统,而高校有更多的新思路和更低的试错成本,企业和高校深入合作经常可以产出高质量的研发工作,这在今年的VLDB上也有体现,很多有看点的论文都来自企业和高校合作。

今年VLDB上,工业界的论文来自Microsoft、SAP、IBM、Google、Amazon、阿里、华为、Facebook、Twitter、HP、Yahoo等企业。在大会接收的48篇Demo中,也有来自微软、腾讯、IBM等企业的系统性研究工作。

2. 看数据库技术发展动向

从VLDB的论文中,可以观察数据库领域的技术发展方向。我们对论文中的研究内容进行了思考,在这里罗列我们观察到的6个数据库技术发展动向。

2.1. 新硬件

由于新的存储和计算硬件,如大内存、NVM、SSD、现代CPU、专用处理器和协处理器(GPU、FPGA等)的发展,除了Scale Out之外,数据库系统的Scale Up也是一个方向。如何利用好新的硬件资源、提高数据库系统的性能是本次大会中的研究热点之一。

例如:

1.CMU和微软研究院、滑铁卢大学合作的论文BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory.

2.多伦多大学与Amazon、LogicBlox合作的论文Query Fresh: Log Shipping on Steroids.

研究了非易失性内存 (NVM) 在数据和日志存储中的应用。

大内存和现代CPU的优化方面的研究工作包括:

1.CMU的论文Relaxed Operator Fusion for In-Memory Databases: Making Compilation, Vectorization, and Prefetching Work Together At Last.

2.明尼苏达大学与微软合作的论文Exploiting Coroutines to Attack the "Killer Nanoseconds”.

3.马格德堡大学的论文An Eight-Dimensional Systematic Evaluation of Optimized Search Algorithms on Modern Processors.

在FPGA方面,佐治亚理工的论文In-RDBMS Hardware Acceleration of Advanced Analytics研究如何利用FPGA加速分析型查询中的UDF。而在图数据和空间轨迹数据处理中,GPU则具有广泛的应用,今年VLDB中有多篇相关论文。

在SSD方面,CMU的论文SlimDB: A Space-Efficient Key-Value Storage Engine For Semi-Sorted Data介绍了如何针对SSD存储环境进行优化,减少LSM-Tree的写放大、提高吞吐量,该方法的系统实现SlimDB与LevelDB、RocksDB进行了性能对比。

此外,由于RDMA技术的发展,分布式内存也是一个重要的方向。新加坡国立大学与浙江大学合作的论文Efficient Distributed Memory Management with RDMA and Caching研究了如何基于RDMA实现分布式的内存管理并保证缓存一致性。该研究的系统实现GAM提供了统一的分布式内存访问接口,可用以实现事务处理引擎、分布式哈希表等应用。阿里云的PolarFS论文An Ultra-low Latency and Failure Resilient Distributed File System for Shared Storage Cloud Database,以及多伦多大学的Query Fresh论文中也应用了RDMA技术。

2.2. NoSQL向SQL融合

NoSQL曾经是一个火热的方向,而最近几年来却被提及得越来越少,相关研究工作也逐渐减少。那么NoSQL真的过时或者消失了吗?其实NoSQL的特性主要的是高吞吐、低延迟的数据写入与更新,而SQL仍然是开发者和数据分析师所钟爱的查询接口,很多NoSQL所欠缺的强一致性也是很多应用场景所必须的。

于是NoSQL逐渐向SQL融合,成为关系数据库的底层存储,向SQL回归。在RocksDB、BigTable等分布式NoSQL存储上支持SQL的事务处理或者数据分析,对于SQL和NoSQL取长补短是数据库发展的一个重要方向。

今年VLDB上,雅虎和以色列理工学院合作的论文Taking Omid to the Clouds: Fast, Scalable Transactions for Real-Time Cloud Analytics介绍了如何将基于HBase的NoSQL系统Omid集成到Apache Phoenix中,变成支持SQL的实时数据分析系统并提供云服务。近年来在Google F1/Spanner、CockroachDB、TiDB等NewSQL数据库中,也都采用NoSQL底层存储。

2.3. 存算分离

高带宽、低延迟网络技术的发展,逐渐降低了分布式系统中的网络开销,数据和计算的绑定不再那么严格,而存储和计算本身的效率得到了重新的思考。

在云数据库中,存储和计算分离于是成为一个新的发展方向。存储和计算的分离提高了系统架构的灵活度,也便于针对存储和计算分别进行优化,更加充分地发挥硬件的性能、提高存储的可用性和效率。Amazon在云数据库Aurora中采用了存算分离的架构,之后国内外云厂商都有技术跟进,如阿里云发表在今年VLDB上的PolarDB/PolarFS相关工作。

实际上NoSQL与SQL的融合也是存算分离的一种方式,在很多NewSQL系统中,查询引擎和存储引擎实现了解耦。而在大数据分析中,SQL on HDFS也是一种存储和计算分离的方式,将分布式文件系统作为统一的存储,在其上发展MPP或者MapReduce模式的查询分析引擎,从而实现不同系统、不同业务之间的数据共享,降低数据转换代价和额外的存储开销。

2.4. 分布式事务处理

分布式事务处理可以说是数据库领域的珠穆朗玛峰。要支持大规模的分布式事务处理,分布式数据一致性、并发控制等方面的研究挑战都非常大。在高吞吐的分布式数据库系统中,事务处理模块往往也是性能开销最大的部分。

今年的VLDB上与分布式事务处理相关的研究工作主要有:

1.EPFL与Oracle合作的论文Analyzing the Impact of System Architecture on the Scalability of OLTP Engines for High-Contention Workloads.

2.MIT与CMU合作的论文Sundial: Harmonizing Concurrency Control and Caching in a Distributed OLTP Database Management System.

3.EPFL与悉尼大学合作的论文Causal Consistency and Latency Optimality: Friend or Foe?.

2.5. In-database Computation

在数据库内支持复杂计算也是一个发展方向。目前数据分析人员通常需要从数据库中提取数据,再将查询结果导入到各种计算引擎中进一步处理。如果在数据库中可以执行复杂的计算,就可以节省数据拷贝、传输和转换的代价,也降低了维护和学习多套系统的成本。其实UDF也算是一种In-database Computation的形式。

今年VLDB在这个方向上的研究工作主要有:

1.微软的论文Froid: Optimization of Imperative Programs in a Relational Database.研究关系数据库中如何将UDF转换成关系操作符并进行优化。

2.佐治亚理工的论文In-RDBMS Hardware Acceleration of Advanced Analytics.研究如何在PostgreSQL中利用FPGA加速分析型查询中的UDF。

3.McGill University的论文AIDA - Abstraction for Advanced In-Database Analytics.研究如何在数据库中集成NumPy等算法库,从而支持在数据库中进行必要的复杂计算,降低传统数据分析中数据转换和数据拷贝的代价。

此外,本次会议上中国人民大学、武汉大学与腾讯TDSQL团队合作的Demo论文MSQL : A Plugin Toolkit for Similarity Search under Metric Spaces in Distributed Relational Database Systems也在分布式数据库中对近似对象搜索等复杂的计算操作进行了实现,后续我们将有文章介绍这一工作。

2.6. 图数据库

图数据在很多实际应用中也是非常重要的数据类型,图数据相关领域多年以来都是研究热点。据可靠消息,今年VLDB的最佳论文就是来自图数据领域的The Ubiquity of Large Graphs and Surprising Challenges of Graph Processing,作者是来自滑铁卢大学的Siddhartha Sahu等人。

这篇论文实际上是一篇综述论文,总结了大规模图数据的特征、大图处理中的挑战以及各种图算法、图数据库和图计算系统的应用和特性。综述论文被选为VLDB最佳论文还是很少见的。可见一方面图数据是非常重要的,受到了足够的重视,另一方面目前对于图数据处理,大家还没有看的很清楚,没有统一的标准,还处于百花齐放百家争鸣的阶段。

正如这篇论文指出的,在实际应用中,人们对图数据库的需求往往高于具体的算法和分布式图计算引擎。相对于具体算法和计算层面的优化,实际上图数据应用可能更需要统一的管理和访问接口,以及在图数据库中解决存储处理效率和扩展性问题。Neo4j等纯图数据库,以及Facebook TAO等基于关系数据库的图数据库在未来可能继续发展,以往用于管理RDF(本质上也是图)的数据库系统在图数据管理中可能也会有一席之地。

3. 看奇思妙想

除了技术的主要发展方向,在一些具体的技术点上,今年VLDB也有一些有意思的论文。这里介绍几个。

3.1. 大数据中间件

数据库中间件、消息队列中间件相信大家并不陌生,但是大数据中间件是什么?这只是一个形象的比喻。

在今年的VLDB上,有两篇有意思的论文:

1.斯坦福大学、MIT和Imperial College London合作的论文Evaluating End-to-End Optimization for Data Analytics Applications in Weld. 介绍了一个叫做Weld的运行时环境,负责优化运行在其上的各种库,从而提高系统的运行效率。人们在数据分析中会用到很多第三方库,这些库被拼凑在一起,往往缺少库之间的协同优化(库内部的优化可能很多),导致数据分析系统的运行效率不高。而作为一个统一的运行时环境,Weld有更多的机会对库间的协同性能进行优化。

2.QCRI的论文RHEEM: Enabling Cross-Platform Data Processing - May The Big Data Be With You! 介绍了一个跨平台的优化器RHEEM。目前各种大数据平台层出不穷,各自适合于处理不同类型的计算任务。企业在实际应用中往往需要同时维护多个系统来满足自己多样的业务需求,成本很高。RHEEM提供一个统一的应用开发接口,支持将计算任务根据需要拆分成子任务,再将子任务分配到合适的大数据平台上完成计算。

3.2. 数据库社区如何做区块链

区块链是当前的热门话题,那么做数据库的人会怎么做区块链呢?可以看看本次大会上新加坡国立大学、北京理工大学、浙江大学合作的论文ForkBase: An Efficient Storage Engine for Blockchain and Forkable Applications.

在区块链应用(如比特币、以太坊)、协同编辑(如Dropbox、GoogleDoc)、版本控制(如git)、协同分析(如Datahub)等等这些应用中,多版本数据的高效存储和查询,以及Fork语义的支持都是比较大的挑战。现有的存储系统,如key-value存储、关系数据库、文件系统等都无法直接为这一类的应用提供很好的支持。应用中需要进行存储层的定制开发,开发成本高,定制化程度高、系统难以复用,存储性能的优化也不够专业。而这篇论文提出的系统实现ForkBase,支持多版本数据的存储,可以对存储中重复的内容进行去重,提高存储效率,同时抽象出此类应用的通用语义,并提供支持和优化。

3.3. 压缩数据的直接分析

在大数据分析中,从序列化和压缩的数据中将数据解压并解析成应用程序可处理的数据对象的开销很大。

本次VLDB上,斯坦福大学和Databricks合作的论文Filter Before You Parse: Faster Analytics on Raw Data with Sparser研究如何在原始的序列化的数据上,直接执行谓词过滤,避免不必要的数据解析。中国人民大学、清华大学、北卡州立大学和ETHZ合作的论文Efficient Document Analytics on Compressed Data: Method, Challenges, Algorithms, Insights研究如何在压缩的文档数据上不经过解压,直接进行分析。在Flink、CarbonData等系统中,也有这一类的优化技术。

3.4. 把多表连接优化用在CEP上

复杂事件处理 (CEP) 根据预定义的模式制定执行计划,将流数据中的多个基本的数据项组合起来,识别出复杂的事件。这是一个研究多年的领域,在流数据处理和实时数据分析中有很多应用。在这个方向上,今年VLDB上有一篇来自以色列理工学院的论文很有意思: Join Query Optimization Techniques for Complex Event Processing Applications.

这篇论文论证了在有限的CEP模式类型上,CEP优化问题等价于数据库中的多表连接优化问题,并且将数据库的连接优化技术应用到CEP优化中,有效提高了CEP吞吐量、降低了延迟,并且减少了内存消耗。

3.5. 帮数据分析师找代码

数据分析人员要分析数据时,首先需要编写脚本和查询去各种数据源中抽取和转换数据。这是一个非常辛苦、非常无聊的过程。那么有人想过如何帮助分析师编写数据预处理的代码吗?

Microsoft、佐治亚理工和Twitter合作的论文Transform-Data-by-Example (TDE): An Extensible Search Engine for Data Transformations就研究了如何帮助数据分析人员从Github等源码库中找到合适的数据转换工具。

以上介绍了这么多,大家对VLDB是不是有了更多的了解呢?TDSQL团队将持续为大家带来更多的数据库技术分享,期待大家继续关注和使用腾讯云数据库TDSQL!

更多数据库前沿技术可关注 我们公众号:腾讯云数据库CDB

0 人点赞