1、云计算环境中面向 OLTP 应用的数据分布研究 王晓燕 陈晋川 杜小勇 中国人民大学数据工程与知识工程教育部重点实验室 最高人民法院信息中心 中国人民大学信息学院 北京航空航天大学软件开发环境国家重点实验室 摘 要: 云计算为大型 OLTP 应用中分布式数据的高效存储和管理带来了新的机遇,大数据则对分布式数据的存储与管理提出了新的挑战,自动数据分布逐渐成为分布式系统中的研究重点和难点.该文对影响数据分布问题的三要素数据、负载和节点进行分析,将该问题抽象为数据分片、数据分配和负载执行 3 个相互关联的子问题,提出了数据分布问题的三角架构 DaWN.由于不同的系统有不同的应用需求,DaWN 架构以
2、代价模型为枢纽,对特定应用需要达到的效能目标和资源限制进行调配,并提出了数据分布问题所面临的技术挑战.该文对 DaWN 架构中以顶点为代表的 3 个基本要素进行详细分析,着重对以边为代表的 3 条关联关系进行阐释,并据此对云环境中大规模 OLTP 应用的数据分片、数据分配和负载执行 3 个数据分布子问题的研究成果和进展进行归纳和总结.基于以上分析,该文以数据分片、数据分片和负载执行为变量,使用真值表覆盖数据分布问题中的 8 种类型,并采用三维立体坐标系的方式对相关工作的分布进行归纳总结和呈现.最后,该文从代价模型研究、测试基准研究、自动化数据分布技术研究、特定应用研究等 4个角度,对数据分布问
3、题的未来发展方向进行展望.关键词: 数据分布; 三角架构; 数据分片; 数据分配; OLTP; 大数据; 作者简介:王晓燕,女,1981 年生,博士研究生,中国计算机学会(CCF)会员,主要研究方向为大数据管理与分析.E-mail:.作者简介:陈晋川,男,1978 年生,博士,副教授,中国计算机学会(CCF)会员,主要研究方向为不确定性数据管理、大数据管理等.作者简介:杜小勇,男,1963 年生,博士,教授,博士生导师,中国计算机学会(CCF)会士,主要研究领域为数据库系统、智能信息检索等.E-mail:.收稿日期:2014-07-20基金:软件开发环境国家重点实验室开放基金(SKLSDE-2
4、012KF-09)Survey on OLTP Application Oriented Data Distribution in Cloud ComputingWANG Xiao-Yan CHEN Jin-Chuan DU Xiao-Yong Key Laboratory of Data Engineering and Knowledge Engineering,Renmin University of China,MOE; Abstract: Cloud computing raises new opportunities and challenges in efficient distr
5、ibuted data storage and management for large scale OLTP applications.In the fields of Data Management,data distribution is one of the most famous technologies for platform scalability.With the dramatic increase of data volume,automatic data distribution has been one of the key techniques and intract
6、able problem for distributed systems.Focusing on the problem of data distribution in cloud environment,this work first studies the three essential elements in this field,which are data,workload and node.Based on these analyzing,it summarizes their relationships with each other as data fragmentation,
7、data allocation and workload processing,and abstracts the problem of data distribution as a triangle model called DaWN,which uses the three essential elements as the triangles vertexes separately,and encodes their relationships as the edges.As different systemsmay have different requirements,DaWN ut
8、ilizes cost model as the core to obtain the performance goals under certain resource limitations for any specific application,and presents the main challenges in data distribution.This work analyzes the various characters of the three key elements in DaWN,elaborates their relationships separately in
9、cluding data fragmentation,data allocation and workload processing,and provides a taxonomy and peroration of the latest research for large scale OLTP applications in cloud environment.Based on these analyses,this work uses data fragmentation,data allocation and workload processing as parameters,prov
10、ides a truth table to cover all 8 kinds of possibilities in data distribution,and presents these with related works in a cube like three-dimensional coordinate system.Meanwhile,this work also prospects the future work in the problem of data distribution in cloud environment,including direction studi
11、es on cost models,benchmarks,automatic technologies and specific applications.Keyword: data distribution; triangle model; data fragmentation; data allocation; OLTP; big data; Received: 2014-07-201 引言作为一种动态演进的复杂架构,云计算通过有效整合、共享和利用分布式数据环境中的软硬件资源,构建应对多种服务需求的应用平台,是当前大规模应用研究的重点.随着信息技术的普及,云环境中各类应用系统平台的数据管理
12、量级正从TB 级向 PB 级甚至 EB 级规模迈进.根据 IDC 的预测,到 2020 年全球数据存储量极可能达到 35ZB.很多大型在线事务级应用处理平台都面临着迅速膨胀的数据规模和日益沉重的事务级计算的双重压力.举例来说,在 2013 年淘宝双十一狂欢节中,淘宝网在短短一天内便完成了约 1.88 亿笔在线交易,最繁忙时须完成的订单量达 79 万笔/min,峰值流量 1.3 万笔/s;国内火车票预定官网 12306 每次出票都需要计算该车次在全线每个站点上的各类车票数量,每年春节前夕会车票预定进入高峰期,以春节预定高峰期 2014 年 1 月 6 日为例,全天网络出票 400万张,峰值时刻出
13、票量超过 1700 张/s.大型联机事务处理(On-Line Transaction Processing,OLTP)应用的业务需求对分布式数据管理提出了新的挑战,如何有效地存储和管理业务系统中迅猛增加的海量数据是很多应用平台上亟待解决的重要问题,其中一项关键任务就是如何进行数据分布,即如何合理地将不断增加的数据分配到不同的数据节点上,保证系统的高吞吐量、高可用性和高可扩展性.根据数据管理与分析领域的发展历史和研究趋势,我们从数据规模和数据处理复杂度两个维度上进行分解,将云计算时代的数据管理体系划分为如图 1 所示的 4类领域.图 1 云计算时代的数据管理体系 下载原图A.传统数据库.应用于数
14、据规模较小、数据处理复杂程度不高的应用中,可采用传统的数据库系统进行数据管理,如图 1 中 A 域所示.B.数据仓库.应用于数据规模较小、数据分析处理复杂程度较高的应用中,可采用传统的数据仓库系统进行数据管理,如图 1 中 B 域所示.C.云环境中的各类 NoSQL 数据库.应用于大规模或超大规模数据的非关系型分布式存储与管理,主要提供复杂分析操作,可采用诸如基于 Hadoop 的 NoSQL 数据库进行数据管理,如图 1 中 C 域所示.D.云环境中的各类分布式数据库.应用于大规模或超大规模数据的关系型分布式存储与管理,主要提供相对简单的事务或查询操作,通常需要在毫秒甚至亚秒级完成,需要采用
15、面向云的分布式数据管理方式,如图 1 中 D 域所示.本文重点关注 D 类应用中的数据分布问题.随着数据量的增长,对大数据进行管理的基本策略是将计算推向数据而不是移动大量的数据来提高计算性能1.在这类应用中,单纯依靠增加高性能计算存储节点的向上扩展(Scale-Up)方式或者升级分布式数据库系统的方法已经不能适用于当前的应用需求,将大量的廉价存储和处理设备通过分布式应用系统进行整合的向外扩展(Scale-Out)方式因其高性价比和高可扩展性逐渐受到推崇.有效管理跨越数千台服务器的大规模分布式数据不是一项简单的任务,它需要基于系统工程观点的有效技术来识别和修复在系统的实际实施和运行中可能不断出现
16、的各种问题.根据 CAP 原理2-3,分布式系统中的一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)三者不可兼得.对于分布式系统而言,分区容忍性是业务应用的基本要求和实施策略.如果片面追求系统并行中的高度一致性和分区容忍性(比如分布式事务机制),很难获得良好的系统扩展性和可用性,而这正是云计算环境中大规模 OLTP 应用的重要前提.因此,当前分布式数据存储与管理系统的设计趋势之一是转向支持符合 ACID(Atomicity 原子性、Consistency 一致性、Isolation 隔离性、Durability 持久性)
17、约束的事务级应用.令人遗憾的是,虽然分布式并行计算及其执行引擎的迅速发展(如 MapReduce4、Hadoop5和 Dryad6)和高层次的语言支持(Pig7、Hive8和 DryadLINQ9)极大地简化了大规模分布式数据密集型应用的发展,但这是以牺牲数据的强一致性为代价.在每时每刻都要处理大量订单的淘宝网和 12306 等在线交易系统中,数据管理必须服从强一致性,而目前大规模分布式数据管理系统大多数仅提供非常有限的事务处理功能.举例来说,Dynamo10、MongoDB11、CouchDB12和Cassandra13等尚未提供事务级支持;Bigtable14、Spanner15和PNUT
18、S16等只提供单排的事务或事务更新,不能处理多表事务查询,难以推广到OLTP 系统中,像 Azure17、Megastore18、Oracle NoSQL 数据库19等这类较小规模的子集数据库也因为不完全支持传统的事务级应用而无法提供线性的向外扩展性能,而基于 H-Store20的 VoltDB21-22虽然支持完全的 ACID,但是它在执行并发操作时需要停止(或限制)所处理的事务来访问跨越多个分区的数据.减少事务性支持大大简化了线性可扩展的分布式存储解决方案,然而对于不易分割事务的应用程序,保证原子性和隔离性的要求可能产生代码复杂性增加、应用程序开发速度慢、客户端事务调度性能低等弊端.数据分
19、布的目的是将数据分片为一系列不相交的数据片段,并按照一定的数据分配策略分散放置到各个数据节点上.对于分布式应用而言,数据分布是决定大型OLTP 系统性能的关键因素.由于事务锁的存在,完成跨节点事务所需的时间开销往往远大于单节点事务.因此,数据的并行处理能力很大程度上取决于数据分布的状况,也就是说,数据分布的优劣直接影响到大规模分布式 OLTP 系统的运行效率23-24.例如,文献25-26的验证结果显示,在相同软硬件环境设置下,不同的数据分布策略可以带来 10 倍以上的性能差异.对于大多数 OLTP 应用而言,数据分布实施的主要压力来自于系统运行中的动态变化:数据量迅猛增长,数据间的关联关系随
20、着工作负载的访问频次和使用模式不断变化,物理节点的存储和处理能力也随着系统运行起伏不定.因此,一个数据分布策略的设计目标是不仅要在系统运行的初始状态下找到一个合适的数据分布策略,而且要在数据、负载、节点等因素不断发生变化的时候进行动态调整,从而全力提升运行环境中的系统性能,并尽可能地保证全局范围内的负载均衡.本文的第 2 节将详细阐述数据分布问题的三角架构和当前面临的键挑战;第 3 节对影响数据分布的数据分片、数据分配和负载执行 3 个关键问题的研究进展进行分类、对比和总结;第 4 节主要展望未来的研究工作;最后,在第 5 节对全文进行总结.2 数据分布数据分布(Data Distributi
21、on)是指在分布式系统中,按照一定的策略将数据分片成逻辑片段,并将这些片段分配存储到不同的物理节点上,使分布式系统对数据的并行处理能力得以充分发挥.数据分布通常包括 3 个步骤:即数据分片、数据分配和负载执行.其中,数据分片(Data Fragmentation)从逻辑上将全体数据按照其相互关系划分为逻辑片段,即子关系.数据分配(Data Allocation)从物理上将划分好的逻辑片段分配存储到不同节点上.而负载执行(Workload Processing)则是将需要执行的工作负载按照节点的实际执行能力及所存储的数据片段进行调度和运行.数据分布就是通过数据分片、数据分布和负载执行来统一管理分
22、布式系统中的数据和节点,并处理工作负载的综合过程,如图 2 所示.图 2 数据分布问题示意图 下载原图2.1 问题描述为了进一步阐述面向大规模 OLTP 应用的数据分布问题,我们考虑以下应用场景:一个具有大规模数据量和工作负载的数据中心需要将系统中不断产生的数据和需要执行的事务配置到多个存储节点上.针对大规模 OLTP 应用,需要解决的关键问题是如何分布存储所有的数据,使得单个事务尽可能在单一存储节点上完成以避免跨节点的通信代价,并尽可能保证各节点能够相对均衡的执行不同事务请求并能充分发挥每一个存储节点的运算能力.根据研究和分析,我们提出了称为 DaWN(表示数据 data、负载 worklo
23、ad 和节点nodes)的三角架构来刻画数据分布问题,如图 3 所示.通过数据、负载和节点 3 个基本要素来回答数据分布过程中“分什么”、“怎么分”和“分到哪”这 3个基本问题,并以代价模型为枢纽,将三要素间的相互关联关系分别抽象为数据分片、数据分配和负载执行这 3 条纽带.图 3 数据分布问题的三角架构 下载原图(1)数据(Data).是指系统中运行的所有数据,包括元数据、实例数据、日志数据、中间数据等.假设所有数据均以关系形式存储,且关系及关系中的属性有明确的说明,对于每一个关系,其元数据包括关系的属性集、平均元组的大小、元组的数量.对于每个属性,其元数据包括该属性是否唯一、每个不同取值的
24、估计数目、数据类型、存储属性值所需的字节数、主外键设置等信息.(2)负载(Workload).是指使用数据运行于节点上的各类应用操作,通常由一组事务或者查询构成,其元数据包括所使用的事务或者查询的基本模式,及其在负载执行中所占的比重.(3)节点(Nodes).是指数据存放和负载运行的物理节点,其元数据包括节点的组织方式、节点的物理信息,如磁盘容量、CPU 频率、CPU 个数、内存大小、网络带宽等特征.根据要素间的相互关联与制约关系,数据分布问题需考虑以下 3 个关键问题:(1)数据分片(Data Fragmentation).又称数据划分(Data Partitioning),是指将全局概念上
25、的数据关系逻辑地划分为若干个大小相同或者不同的局部逻辑片段(又称子关系或数据子集),分片后的每一个部分称为一个数据碎片(Data Fragment),它是数据存放的基本单位.它介于数据与负载之间,侧重于逻辑层面,主要影响系统的可扩展性(Scalability).(2)数据分配(Data Allocation).数据分片将数据集逻辑地划分为数据片段,之后需要通过一定的数据分配策略将数据物理地存放到存储节点上.它介于数据与节点之间,侧重于物理层面,主要影响系统的可用性(Availability).(3)负载执行(Workload Processing).它是指工作负载通过访问数据节点上的数据完成负
26、载的执行过程.它介于节点与负载之间,侧重于实施层面,主要影响系统的吞吐量(Throughput).此外,从静态的角度来看,数据分布需要按照从数据分片到数据分配再到负载执行的顺序来完成;从动态的角度来看,在数据生成、负载访问和节点存储的系统运行过程中,3 条纽带间存在着因三要素的变化而带来的动态制衡关系.因此,在DaWN 架构中,我们使用代价模型来表示系统运行的基本目标和限制,基于数据、节点和工作负载的信息进行数据分片、数据分配和负载执行,处于架构的枢纽位置.尽管我们对数据分布问题的研究主要针对云环境中的大型 OLTP 应用,但是所提出的 DaWN 架构对于各种类型的数据分布问题研究具有普遍意义
27、上的适用性.在此基础上,我们定义数据分布问题如下.定义 1. 数据分布(Data Distribution).在给定的数据集 D、负载集 W 和节点集N 的约束下,根据数据分片策略 stfrag、数据分配策略 stallo及负载执行策略stproc,基于代价模型 CM 找到合适的数据分布解决方案 sol.在此,我们进一步形式化定义数据集 D=F1,F2,F|D|,其中,F i表示按照数据分片策略 stfrag得到的数据片段;负载集 W =T1,T2,T|W|,其中,T j表示负载执行中第 j 种事务模式;节点集 N=N1,N2,N|N|,其中,N k表示系统中第 k 个存储节点;代价模型 CM
28、=CMCost-CMThroughout(详细形式化表示见 3.4 节),其中 CMCost表示依照数据分配策略 stallo得到的系统执行成本,CM Throughout表示依照负载执行策略 stproc得到的系统吞吐量;对于数据分布问题解空间 SOLD,W ,N,stfrag,stallo,stproc中的解决方案 sol,其最优解的目标函数可以表示为solBest=minCM.一些早期研究27-29已经证明,数据分布问题及其子问题均为 NP-Hard 问题,因此,很难找到一个最优的数据分布解决方案.同时,由于不同的应用系统有不同的实施目标,在设计不同的解决方案时,会在目标的达成中存在一定
29、的妥协和折中.任何系统都不是完美的,所有解决方案必然会有相应的侧重点及需要权衡的地方,如何进行取舍是通过代价模型来决定的,这也正是其作为枢纽的意义所在.2.2 关键挑战数据分布的主要目的是通过数据的合理分布,使尽可能多的数据就地存放,减少跨越逻辑分区或物理节点的数据访问,即提高访问的局部性.如何处理 DaWN 架构中 3 条边上数据分片、数据分配和负载执行之间的相互依存和制约,是解决数据分布问题的重点和难点.(1)不同的数据分片策略对应不同的数据分配方案,数据分布需要考虑有关数据、场地、应用及它们之间的关联信息,与服务器能提供的支持有关,所以,在设计系统解决方案之前对用户与系统需求进行总体预测
30、和估计,用以确定什么样的分布策略最为合适.(2)实际应用中,根据选定的数据分布策略,数据按照相互关系分布在不同的节点上,负载根据应用需求千变万化,节点的存储和处理能力也随行就市,需要随系统运行动态描述和维护数据分布特性及其相关信息.(3)用户的应用需求千变万化,节点服务器可能出现升级或宕机,且每个节点处理能力都有一定的承受限度,应用的业务负载和数据量可能面临瞬时激增等问题.作为一个 NP-Hard 问题,需要在条件限定下得到数据分布问题的可行解,并从中选择一个相对较优的解决方案,需要遵守的策略有两个:一是最大限度地提高并行;二是尽可能减少通信.以代价模型为核心的数据分布策略强调以实际应用需求为
31、基础进行数据分片、数据分配和负载执行,从容应对数据、负载和节点间的制衡和挑战.3 研究进展根据 DaWN 架构,以下主要从数据分片、数据分配和负载规划这 3 个方面,对数据分布问题的相关研究和进展进行归纳和总结.3.1 数据分片数据分片30-33的研究始于 20 世纪 70 年代,是目前提供持久数据管理可扩展性的最优方法之一.在逻辑上,每一个数据片段都具有一定的独立性,可以在一个或多个数据分区中进行数据存取操作.采用合适的数据分片策略,可以大大提高数据查询速度,简化大型关系数据管理,提高系统整体性能、事务吞吐量和可扩展性34.文献27,35认为,无论采用什么方法进行数据分片,都需要参考以下 3
32、 个准则以保证其有效性和合理性.(1)完整性原则(Completeness).全局关系中的所有数据项必须通过数据分片划分到对应的数据片段中,不允许出现某个数据项属于全局关系却不属于任何一个数据片段,即对于关系 DS 分片后形成的所有|D|个数据片段 F1,F2,F|D|应满足F1F 2F |D|=D,或者说,对于每一个数据关系元组 t 有 tD, 有 tF i.(2)可重构原则(Reconstruction).被划分的数据片段必须可以通过某种方式重新构成分片前的全局关系,即存在重构函数 g 使得 D =g(F1,F2,F|D|),也即对于每一个数据关系元组 t 有 tD,tg(F 1,F2,F
33、|D|).(3)不相交原则(Disjointness).划分全局关系 D 后所得的各数据片 Fi互不重叠,即各个分片都应该是不相交的 Fi1F i2=(i 1i 2,0i 1,i2|D|),或者说,对于每一个数据关系元组 t 有 tF i1且 (i1i 2,0i 1,i2|D|).分片的基本逻辑形式有两种:水平分片(Hori-zontal Partitioning)32和垂直分片(Vertical Parti-tioning)33.他们分别对具有相同性质的元组(行关系)或属性(列关系)进行划分,使具有相同划分特性的数据划分到一组,每组都构成一个数据片段.由于数据分片的逻辑特性,不相交原则并不适
34、用于垂直分片.对于大规模 OLTP 应用而言,主要采用水平分片以保证数据访问的完整性和独立性,减少节点间的连接操作,从而提高执行性能,降低通信代价.通常,水平分片方案的设计可归纳为两步:一是分片键选择策略;二是分片实施策略.3.1.1 分片键选择策略在实现分片之前,首先需要指定分片键作为系统索引依据,系统将根据分片键将数据划分为数据碎片并聚集到对应的数据片段中,而后这些数据片段将根据该索引的大致顺序分布存储到物理节点上.由于数据的物理存储位置依赖于此,所以合理的选择分片键非常重要.分片键选择策略是指如何选择合适的分片键来实施数据划分.理想的解决方案是在无需人工干预和配置的情况下对数据进行分片,
35、同时,能够使得分片后的系统性能尽可能达到最优.随着分布式技术在数据库领域的应用和研究,数据分片技术有了非常多的进展25-27,32-33,35-36.虽然不当的分片键选择会大大影响查询性能26,然而大多数研究通常假定认为适当的分片键已被选定而专注于分片实施策略37,对于分片键的选择问题却鲜有涉及.在实际应用中,虽然许多商业数据库系统(如Oracle38、DB239、SQL Server40、SAP HANA41等)都提到分片键选择的重要性,并内置相应建议机制,但是其策略通常与系统底层深刻的结合在一起且不开源,因此很难在其他应用中直接使用.在新近出现或者开源的大多数数据管理体系结构中,数据分片键
36、的选择主要采用无差别的系统默认方式或者进行人工设置27,42.根据对已有研究和商业系统的应用分析,现有的分片键选择策略可分为以下 4 类:(1)主键选择法(Primary Key Selection).这是工业界最广泛采用的分片键选择策略,其变体有诸如使用外键、关系表中的第 1 列等作为分片键.(2)随机选择法(Random Selection).没有足够的数据库管理经验或没有任何约束条件的指定分片键时,可能采用这种方式.这可能导致系统性能受到极大影响.(3)遍历选择法(Exhaustive Selection).尝试遍历所有可能的分片键组合以获得分片键(组),使得分片后的系统性能最佳.为了获
37、取有效信息以降低遍历空间复杂度,它需要使用样本数据集和负载模拟真实世界中的系统运行状态,然而现实应用并非一成不变,因此这种方法很难正确预测系统实时运行时的系统成本,仅适用于数据及访问模式稳定的应用类型.(4)分析选择法(Analytical Selection).这种方法基于对数据和工作负载的模式分析,通常采用人工或自动优化辅助工具进行设置.比如文献43提出 ASAWA方法进行自动分片键的选择,不仅考虑了数据和工作负载模式,同时结合了设计和执行信息,从而使得经常共同出现在同一个查询中的数据元组更有可能被划分到相同的数据分片中,从而减少跨节点连接操作,提升系统性能.随着数据量的迅速增加以及负载中
38、各式各样的用户需求,实际应用中究竟采用哪种分片键选择策略,要根据具体业务场景决定.这一部分的工作将集中于以自上而下的视角,根据具体的数据和负载要求自动选择.3.1.2 分片实施策略分片实施策略是指采用什么样的策略将数据划分到不同的分区中.文献26,44的研究表明:对于分布式事务,系统吞吐量受制于节点发送和接收两阶段提交消息的速度,同时,由于系统必须等待来自多个节点的消息,其性能与分区数量是相关的.因此,如果采用的数据分片策略能够最大限度地减少分布式事务数量和每笔事务访问的分区数量,可以减少事务执行的通信和协调成本,提高系统性能25,35.根据对已有应用和研究的归纳和总结,相关研究中的水平分片实
39、施策略可以抽象为图 4 所示的层次架构.(1)简单分片.这类方法以数据为中心,对表结构进行划分,是较为成熟的数据分片类型,采用的分片策略27主要有 Hash、Range、Round-Robin 等.其中,只使用一种方法划分数据一次的模式是一次分片模式,采用一种或多种基本划分方法进行两次及以上划分的方式是混合分片模式,如 List-Hash、Range-Range 等.已有的混合分片优化研究45-47能够在单表划分时取得较好的效果,但是随着采用不同分片方法的顺序不同,得到的结果会各有差异,而且多表环境中的优化效果不甚理想26.目前,大多数商业数据库系统和工业界的应用中(如 Oracle38、DB
40、239、SQL Server40,48等)所支持的是单表分片模式,它们通常与自身的查询优化器紧密结合48,根据输入数据的属性和索引策略,充分推理并集成到统一的优化框架中,完成数据分片.简单分片策略不依赖于数据、负载和节点间的相互关系,也不依赖于数据分片、分配和负载执行的先验知识,操作简单,执行方便.但是,由于没有考虑到数据访问模式(特别是该模式不均匀时),可能会造成严重的节点过载和数据倾斜.图 4 水平分片模式的层次分类 下载原图(2)参照分片.这类方法通常依赖于数据、负载和节点间的相互关系,或者数据分片、分配和负载执行的先验知识,根据数据与负载间的相关性及具体应用特点进行数据分片,寻求获得最优解的可能性.与工业界应用多采用单表分片的方式不同,学术界研究大多集中于此,主要分为两类. 遍历式参照分片.根据给定的数据、负载和节点特性,对所有可能的划分方案进行蛮力式遍历搜索,以求找到最合适的分片方案.然而,如果有问题的搜索空间