CN115114294B 数据库存储模式的自适应方法、装置、计算机设备 (深圳市腾讯计算机系统有限公司)_第1页
CN115114294B 数据库存储模式的自适应方法、装置、计算机设备 (深圳市腾讯计算机系统有限公司)_第2页
CN115114294B 数据库存储模式的自适应方法、装置、计算机设备 (深圳市腾讯计算机系统有限公司)_第3页
CN115114294B 数据库存储模式的自适应方法、装置、计算机设备 (深圳市腾讯计算机系统有限公司)_第4页
CN115114294B 数据库存储模式的自适应方法、装置、计算机设备 (深圳市腾讯计算机系统有限公司)_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本申请涉及一种数据库存储模式的自适应述查询语句的语义信息,确定存储区的分区方2获取工作负载的运行参数和各键值对的读写操作性能参数;所述根据所述读写操作比例和所述读写操作性能参数,确定所述键值对所确定各所述查询语句的数量与所述查询语句根据所述数据分布确定候选分组范围下的数据密度,所述数据密度包括第一数据密获取工作负载的运行参数,以及基于所述性能模型获取所述根据所述读写操作比例和所述读写操作性能参数,确定所述工作将所述目标总体耗时所对应的键值对所占用的空间大小作为所述基于所述分区方式、所述候选分组范围以及所述3第二空间大小对应的分区方式和候选分组范围确定在运行所述工作负载时数据库中数据按照所述目标存储模式所对应的编码方式,对所述数据表中的数据重新编码将所述数据表的表标识、所述数据表中目标行的行标识以及所述数据表中目标以所述数据表的表标识、所述目标列的列标识和所述至少两个单元格的分组标识为将位于所述数据表中第二方向上的每行中至少两个每列中至少两个单元格中的数据和所述每行中至少两个单元格中的数据为4将所述查询请求路由至所述第二存储模式对应的副本节点,以使所处理时间和所述元组构建时间确定所述查询请求获取所述查询请求的请求队列时间、机器负载延迟时间和从节点确定所述范围查询请求对应的查询表中的列总数,以基于所述列数量、所述列总数和预设阈值,确定所述范围查询请求将所述范围查询请求路由至所述第三存储模式对应的副本节点,以使获取模块,用于获取工作负载的运行参数和各键值对的读写指占用不同的空间大小的键值对所对应的读确定模块,用于根据所述读写操作比例和所述读写操作性能5被处理器执行时实现权利要求1至15中任一项所述的6工作负载的运行参数和各键值对的读写操作性能参数;所述运行参数包括读写操作比例、述数据密度和所述第一空间大小,确定在运行所述工作负载时数据库中数据表的存储模工作负载的运行参数和各键值对的读写操作性能参数;所述运行参数包括读写操作比例、7述数据密度和所述第一空间大小,确定在运行所述工作负载时数据库中数据表的存储模8[0028]本申请实施例提供的数据库存储模式的自适应方法,可以应用于如图1所示的应器上。服务器104可以从终端102获取工作负载的运行参数和各键值对的读写操作性能参立的服务器或者是多个服务器组成的服务器集群[0032]云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构9上可以部署PaaS(PlatformasaService,平台即服务)层,PaaS层之上再部署SaaS[0035]云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘TransactionProcessing)型负载对数据有很多写操作,OLAP(On_LineAnalyticalProcessing)操作一般有很多范围查询操作。OLTP(On_LineTransactionProcessing)是参数可以包括工作负载中各个I/O操作的比例、工作负载中涉及的全部查询语句以及工作[0051]具体的,服务器获取工作负载的运行参数和各键值对的负载A的运行参数,运行参数中包含1000个点查询操作、10个涉及100000行的全表扫描操描操作和更新操作中的耗时分别为tb1和表扫描操作和更新操作中的耗时求和后即为总耗时T3=ta3+tb3+tc3。由于T3<T1<T2,因服务器根据当前负载A中各个读写操作比例和不同KV对的读写操作性能参数,确定键值对[0056]分区(Partition)是指将数据库中某个数据表的各属性划分为若干组。分区方式占比最高的前n位的查询语句作为目标查询语句。服务器可以从占比最高的目标查询语句务器可以根据当前工作负载运行时的数据分布情况,求出各个候选分组范围下的数据密24的数据密度的均值P作为该候选分组范围为24下的数据密度,即候选分组范围为16时的数[0066]存储模式是指数据库中数据表的存放方式,本申请中的存储模式包括行存模式、组范围下的数据密度,估算出各个候选分组范围下的键值对所占用空间的第二空间大小,服务器可以将各个候选分组范围下的键值对所占用空间的第二空间大小与步骤204中确定值满足预设的差值条件时,服务器获取该第二空间大小所对应的分区方式和候选分组范[0068]此外,服务器确定在运行当前工作负载时数据库中数据[0078]具体的,服务器获取工作负载的运行参数和各键值对的[0086]具体的,服务器获取工作负载的运行参数和各键值对的服务器可以根据运行参数中的读写操作比例和预先建立的性能模型中的各键值对的读写征总体性能参数的参数可以包括:延迟时间、带宽或者IOPS(Input/OutputOperationsPerSecond)中的至少一种。本申请中在确定不同空间大小的键值对所对应的总体性能参而可以从中选择总体性能最高的KV对大小作为系统设负载B的运行参数,运行参数中包含1000个点查询操作、10个涉及100000行的全表扫描操作中,16B大小的KV对所对应的IOPS即每秒读写表扫描操作和更新操作中每秒读写次数分别为Ib1和Ic1,服务器将16B的KV对在点查操作、和不同KV对的读写操作性能参数,确定当前工作负载B下键值对所占用空间的最优取值范[0092]具体的,服务器获取工作负载的运行参数和各键值对的服务器可以根据运行参数中的读写操作比例和预先建立的性能模型中的各键值对的读写[0093]举个例子,以总体性能参数为总体耗时为例进行说明。假设当前工作负载A包含类推,服务器可以估算出16B的KV对在全表扫描操作和更新操作中的耗时分别为tb1和tc1,服务器将16B的KV对在点查操作、全表扫描操作和更新操作中的耗时求和后即为总耗时T1tb2+tc2务器根据当前工作负载A中各个读写操作比例和不同KV对的读写操作性能参数,确定当前查询语句为40个,则服务器可以获取到该数据表A上所涉及的所有查询语句和查询语句总类查询语句的占比为S3=40/100=0.4,则服务器可以根据上述各种查询语句的占比对各{212和23用哈希函数,以哈希函数为整除函数为例进行说明,即分组函数为y=主键数值÷分组范统计出该数据分组即组1的数据密度为1/8,服务器逐一统计候选分组范围为8时的各个数出分组范围为4和分组范围为2时所对应的第一数据密度为S4和S2,即服务器最终得到了各中确定的分区方式、步骤208中确定的各个候选分组范围和数据密度,可以求出KV对的大KV对的第二空间大小与步骤204中确定的最优的第一空间大小之间的差值满足预设差值阈表的数据按照上述得到的最优存储模式重新编用空间的第二空间大小L8=分组范围*数据密度*分区大小=8*1/8*8=1;当分组范围为4可以基于该第二空间大小L2对应的分区方式A和候选分组范围2确定在运行当前工作负载务器可以根据本申请中提供的数据库存储模式的自适应方法,确定在运行工作负载A时数以根据本申请中提供的数据库存储模式的自适应方法,重新确定在运行工作负载B时数据前服务集群中的3个服务器节点中没有列存模式,则需选择出其中一个服务节点进行存储务器读取数据表A中的数据,将数据表A的表标识tableA、数据表A中每列数据的列标识[0135]其中,单元格存是指将一行或一列中的单元格作为KV对存储在底层存储引擎为值进行存储,即可得到按照列段存模式存储的两个键值对,即第一个键值对的key为:个单元格中的数据和每行中至少两个单元格中的数据为值族标识columnfamily1以及数据分组的组标识group1_6作为第一个键值对的键,以左边列族的族标识columnfamily2以及数据分组的组标识group7_12作为第二个键值对的键,[0168]其中,第一存储模式是指在运行某个工作负载时数据库中数据表的最优存储模本优先,则服务器可以将查询请求路由至第二存储模式对应的某个负载较小的副本节点,以将查询请求A路由至行存模式对应的副本节点即A服务节点,以使A服务节点基于查询请应的查询表A中的列总数为Col_num,以及确定该范围查询请求A所需目标列的列数量为[0185]假设服务器确定范围查询请求A所对应的第三存储模式为列存模式,由于当前服以基于LSM_TreeKV存储引擎的分布式数据库存储模式的优化场景为例,对本申请实施例(HybridTransactional/AnalyticalProcessing)数据库中存储模式的选择和优化是一数据库存储模式的优化方法,以解决数据库系统的整体性能较差的问题。本方法中根据共识组的不同副本上存放不同模式的数据,可以为不同的工作负载选择最合适的存储节规则和事务处理流程就可以直接兼容本方法的改动,使系统获得对多样化存储模式的支[0196]本方法适用于采用了LSM_TreeKV作为底层存储引擎的数据库。系统可以采用分布式服务系统中常见的存算分离架构,将存储层和计算层分离开来。如图8所示的SQL服务器可以基于本申请实施例中提出的LSM_TreeKV存储引擎的分布式数据库存储模式的的状态机的存储模式为行存,即此时的数据库中的存储模式是以行存模式作为基准模式,服务器可以获取当前负载A的运行参数,运行参数包括读写操作比例、查询语句和数据分布;服务器可以根据当前负载A运行参数中的读写操作比例和各键值对的读写操作性能参即计算层中的SQL引擎负责处理用户发起的不同查询请求所对应的SQL语句,将SQL语句解由至列段存模式对应的副本节点即存储节点2,以使存储节点2基于查询请求A进行数据查发生故障变为不可用时,则服务器可以将查询请求A路由至行存模式对应的其他副本节点[0202]通过该计算层可以确定出最优的存储模式,可参考上述图2的实施例中的步骤续性,如图10所示,为单元格列存示意图。图10中第1列第一行中的第一个单元格中的多行聚集在更新时也会出现问题,对多行中的某一行进行更新,意味着要做更大粒度的RMW。针对这种问题提出了Merge方案,即将要更新的某行先存放在Memtable中,等待1列第一行中的第一个单元格中的row1co1,表示第一行第一列,图11中key为:tableID+图12中第1列第一行中的第一个单元格中的row1co1,表示第一行第一列,图12中key为:即RowID作为Key,将这一行中的数据作为Value存放。在实现中,Key中可以包括时间戳、放。同理,如果按照TableID、ColumnID和RowID的顺序编码为Key,使得KV对按照相同[0247]多行存将数据表中的若干行分为一组,存放在同一个KV对中。在编码上,将该分组标识即GroupID以及该行所对应的行标识即RowID作为Key,该行中的某几个属性作[0252]列族段存将数据表中一行里的一个属性组聚集为列族,再将连续若干个列族聚[0254]列段存将数据表中同一列中的连续若干单元格聚集成一个KV对。在编码上,将理时间Tio和元组构建时间Tcons组成,即Tproc=Tsearch+Tio+Tcons;等待时间由请求队列时间Tqueue因此按多行聚集的存储模式将数据存储在一起,相比其它存储模式可以有效减少Tsearch和模式还是多行聚集都需要在上层对数据进行拆分,会导致Tcons增加,行存可以同时保证Tsearch[0277]6近计算节点优先。与副本所在节点的物理距离影响传输时间Ttrans,距离越近,[0280]C=a1(tsearch+tio)+1/a1(tco[0284]本节将承接第2小节中讨论的多种存储结构,继续讨论如何在数据库的实际系统每一种KV对大小下的总体性能,进而可以从中选择总体性能最高的KV对大小作为系统设[0302]这一步骤求出的分组范围和平均数据密度会在步骤6中进行综合决策。对于顺序协同计算方案。在应用多副本异构之后会引入不同副本之间如何相互转换存储模式的问[0310]目前大多数NewSQL数据库(CockRoachDB和TiDB)对于副本读的实现都采用了[0311]而从副本读事务和主副本上写事务的并发控制则主要有分布式锁和快照读安全时间戳之外,还会同时维护一个安全的事务冲突时间立新副本过程中及新副本建立后数据分片的可用性和副本数据的正确性共会转换成Candidate并发起Leader选举,获得集群中大多数选票的Candidate将成为[0327]Raft把时间分割成任意长度的任期,每个任期都有一个任期号,每进行一次[0329]Raft通过心跳机制触发Leader选举。在初始状态下,每个节点都是Follower。Follower节点与Leader节点通过心跳机制保持连续,如果一段时间内未接收到任何消息,[0330]发起选举的Follower节点增加本地的当前任期号,由Follower状态切换到节点可能会受到多个投票请求,但它只能按照先到先得的原则投出一票,且获得投票的Candidate节点所拥有的日志信息[0331]Candidate等待其他Follower节点的投票回复,收到的回复可能会出现以下三种[0333]Candidate节点收到了其他节点发来的任期号更大的消息,这表示其他节点当选时间的算法,每个Candidate开始一次选举时,会设置一个随机选举超时时间,防止多个[0337]每个服务器节点都由基于复制日志实现的复制状态机,若状态机的起始状态相条目发送给Follower。此外,Leader为每个Follower维护了一个NextIndex,用来表示将NextIndex初始化为它最新日志条目索引+1,如果Follower在一致性检查的锅中发现自减,然后重试,知道nextIndex达到一个Leader和Follower日志一致的位置。此时,来自[0344]为了防止已提交的日志被覆盖,Raft要求Candidate需要拥有所有已提交的日志变内存组件(Memtable)中,当Memtable达到某个阈值后,会转变成不可变内存驻留组件以时间戳作为标记插入一条新数据,因此LSM_Tree中无法显示地区分插入操作与更新操(Compaction)操作减少重复数据。基本的合并策略有两种,分别是TieredCompaction与[0366]TieredCompaction:每层允许的SSTable文件的最大数据结构来说,最多只能同时优化读放大(ReadAmplification)、写放大(WriteAmplification)和空间放大(SpaceAmplification)中的两项,并需要以牺牲另一项作为[0379]LeveledCompaction由于固定了SSTable的大小,但其合并策略不是将整层的所[0382]行存与多行存模式受影响较大,需要将该列中的数据添加到逐一添加到行存/多开销。存储的开销。[0395]对于多样化存储的异构多副本方案,其他的分布式副本自适应装置实施例中的具体限定可以参见上文中对于数据库存储模式的自适应方法的限[0400]获取模块1502,用于获取工作负载的运行参数和各键值对的体耗时所对应的键值对所占用的空间大小作述第二空间大小对应的分区方式和候选分组范围确定在运行所述工作负载时数据库中数向

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论