CN114168572A - 管理数据库的方法及装置 - Google Patents

管理数据库的方法及装置 Download PDF

Info

Publication number
CN114168572A
CN114168572A CN202210125760.XA CN202210125760A CN114168572A CN 114168572 A CN114168572 A CN 114168572A CN 202210125760 A CN202210125760 A CN 202210125760A CN 114168572 A CN114168572 A CN 114168572A
Authority
CN
China
Prior art keywords
data
tenant
tenants
merging
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210125760.XA
Other languages
English (en)
Inventor
石文铎
万全威
韩富晟
王万红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Beijing Oceanbase Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Oceanbase Technology Co Ltd filed Critical Beijing Oceanbase Technology Co Ltd
Priority to CN202210125760.XA priority Critical patent/CN114168572A/zh
Publication of CN114168572A publication Critical patent/CN114168572A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种管理数据库的方法及装置,所述数据库具有多个租户,且所述数据库中存储有日志合并结构LSM树的增量数据和基线数据,所述方法包括:对所述增量数据和所述基线数据进行租户级合并,以得到所述多个租户中的部分租户的新基线数据。

Description

管理数据库的方法及装置
技术领域
本公开涉及数据存储技术领域,并且更为具体地,涉及一种管理数据库的方法及装置。
背景技术
基于日志合并结构树(log-structured merge tree,LSM-Tree)的存储架构的数据库,可以通过合并LSM树中的增量数据及基线数据,释放存储空间,提高数据库系统的读写性能。在数据库具有多租户的场景下,现有技术在进行数据库增量数据及基线数据合并时,存在租户间相互影响的问题。
发明内容
本公开提供一种管理数据库的方法及装置,以解决在多租户场景下,数据合并带来的租户间相互影响的问题。
第一方面,提供一种管理数据库的方法,所述数据库具有多个租户,且所述数据库中存储有LSM树的增量数据和基线数据,所述方法包括:对所述增量数据和所述基线数据进行租户级合并,以得到所述多个租户中的部分租户的新基线数据。
可选地,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,所述对所述增量数据和所述基线数据进行租户级合并,包括:将所述第一租户在所述多台机器上的数据同时进行合并。
可选地,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,所述对所述增量数据和所述基线数据进行租户级合并,包括:按照设定的机器合并顺序,依次对所述第一租户在所述多台机器上的数据进行合并。
可选地,所述机器合并顺序是基于所述多台机器的负载和/或所述第一租户的用户设定的机器并发度确定的。
可选地,所述部分租户包括至少两个租户,所述对所述增量数据和所述基线数据进行租户级合并,包括:将所述至少两个租户的数据同时进行合并。
可选地,所述部分租户包括至少两个租户,所述对所述增量数据和所述基线数据进行租户级合并,包括:按照设定的租户合并顺序,依次对所述至少两个租户的数据进行合并。
可选地,所述租户合并顺序是基于以下中的一项或多项确定的:所述至少两个租户的负载、所述至少两个租户的数据所在的机器的负载以及所述至少两个租户的用户设定的租户并发度。
可选地,所述租户级合并是基于以下方式中的一种触发的:手动触发,定时触发以及所述数据库根据预设条件自动触发。
可选地,所述数据库为多副本数据库,所述数据库包括所述部分租户的数据的多个副本,在所述对所述增量数据和所述基线数据进行租户级合并之前,所述方法还包括:生成冻结点,以冻结所述多个副本;在所述对所述增量数据和所述基线数据进行租户级合并之后,所述方法还包括:对所述多个副本进行一致性检查。
可选地,所述数据库包括管理模块,用于管理租户的元数据,所述冻结点由所述管理模块执行。
第二方面,提供一种管理数据库的装置,所述数据库具有多个租户,且所述数据库中存储有LSM树的增量数据及基线数据,所述装置包括:合并模块,被配置为对所述增量数据和所述基线数据进行租户级合并,以得到所述多个租户中的部分租户的新基线数据。
可选地,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块将所述第一租户在所述多台机器上的数据同时进行合并。
可选地,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块按照设定的机器合并顺序,依次对所述第一租户在所述多台机器上的数据进行合并。
可选地,所述机器合并顺序是基于所述多台机器的负载和/或所述第一租户的用户设定的机器的并发度确定的。
可选地,所述部分租户包括至少两个租户,所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块将所述至少两个租户的数据同时进行合并。
可选地,所述部分租户包括至少两个租户,所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块按照设定的租户合并顺序,依次对所述至少两个租户的数据进行合并。
可选地,所述租户合并顺序是基于以下中的一项或多项确定的:所述至少两个租户的负载、所述至少两个租户的数据所在的机器的负载以及所述至少两个租户的用户设定的租户并发度。
可选地,所述租户级合并是基于以下方式中的一种触发的:手动触发、定时触发及所述数据库根据预设条件自动触发。
可选地,所述数据库为多副本数据库,所述数据库包括所述部分租户的多个副本,所述装置还包括:生成模块,被配置为在所述合并模块对所述增量数据级所述基线数据进行租户级合并之前,生成冻结点,以冻结所述多个副本;检查模块,被配置为在所述合并模块对所述增量数据和所述基线数据进行租户级合并之后,对所述多个副本进行一致性检查。
可选地,所述数据库包括管理模块,用于管理租户的元数据,所述冻结点由所述管理模块执行。
第三方面,提供一种管理数据库的装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
第四方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
第五方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
本公开实施例提供的数据库管理方法,对具有多个租户的数据库的增量数据及基线数据进行租户级合并,以租户为单位进行数据的合并,避免了合并带来的租户与租户间相互影响的问题。
附图说明
图1是本公开实施例提供的一种数据转储及数据合并机制的示意图。
图2是本公开实施例提供的一种数据合并示意图。
图3是本公开实施例提供的一种管理数据库的方法的流程示意图。
图4是本公开实施例提供的一种多租户数据库的数据分布示意图。
图5是本公开实施例提供的一种多租户多副本数据库的数据分布示意图。
图6是本公开实施例提供的另一种管理数据库的方法的流程示意图。
图7是本公开实施例提供的一种管理数据库的装置的结构示意图。
图8是本公开实施例提供的另一种管理数据库的装置的结构示意图。
具体实施方式
下面将结合本公开实施例的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
大数据时代产生了海量多样化的信息资产,对数据的存储及管理数据的能力提出了更高的需求。数据可以是在计算机中用于描述事物特征的记录,如文字、图形、图像、声音等。数据可以有多种表现形式,可以经过数字化后存入计算机中。数据库可以是存储在计算机存储设备上的数据的集合,数据库可以存放数据,数据库中数据的是数据库系统操作的对象及结果。
数据库系统可以包括数据库、数据库管理系统、应用系统、数据库管理员及用户等。数据库管理系统可以是整个数据库系统的核心,数据库管理系统可以是帮助用户建立、使用和管理数据库的数据管理软件。数据库管理系统还可以用来维护数据库及保障数据的安全性及完整性。用户可以是数据库的最终的使用实体,在一些实施例中,用户可以通过应用系统的用户接口使用数据库。
租户可以是数据库系统中资源的容器,资源例如可以是CPU、硬盘、内存等硬件资源,这些资源可以供多个用户使用。也就是说,租户可以是具有若干软硬资源的数据库功能的集合,用户可以通过租户使用数据库。一个租户中可以有一至多个用户,一个用户也可以属于不同的租户。
租户的硬件资源可以以资源池(Resource Pool)的形式进行描述,资源池可以由资源单元组成,资源单元可以是数据库系统内部分配的 CPU、内存、硬盘等硬件资源。租户的数据可以存储在租户的资源池中,租户的资源池可以以资源单位为单位分布在多台物理机上,同样租户的数据可以分布在多台物理机上。一个数据库系统可以有多个租户,多个租户之间可以是完全隔离的。在数据安全方面,可以通过不允许跨租户的数据访问的方式,确保用户的数据资产没有泄露的风险。
数据库的存储引擎可以是数据库底层的软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。目前,主流的数据库的存储引擎采用的是基于日志合并结构树(log-structured merge tree,LSM-Tree)的存储架构。
LSM-Tree下文简称LSM树,LSM树可以将数据存储在多层结构中,LSM树通过转储及合并的方式,释放存储空间,提高数据库系统的读写性能。下面结合图1介绍一下LSM树的转储及合并机制。如图1所示,基于LSM树的存储架构,数据可以分别存储在内存及磁盘中,存储在内存中的数据可以称为增量数据,该增量数据可以是MemTable,存储在磁盘中的数据可以被称为基线数据,该基线数据可以是SSTable。在一些情况下,例如,内存中的MemTable的大小超过一定阈值时,内存中的MemTable会转存到磁盘中,以释放内存的压力,这一过程称为转储。在一些实施例中,在转储之前,可以生成冻结点,将内存中的MemTable冻结,并生成新的MemTable。新的MemTable可以来用响应数据的写入、删除及修改等请求,可以将冻结的MemTable转储到磁盘中。在转储时,将内存中的MemTable转存到磁盘中,形成增量SSTable,也就是说,磁盘中包括有基线SSTable及增量SSTable,增量SSTable可以是由内存中MemTable转储而来。在一些情况下,例如,增量SSTable的数量超过一定阈值时,增量SSTable会和基线SSTable合并,形成一个新的基线SSTable,这一过程称为合并。如图1所示,磁盘中有内存MemTable转储形成的增量SSTable1、增量SSTable2、增量SSTable3及基线数据SSTable1,合并的过程是将增量SSTable1、增量SSTable2、增量SSTable3及基线数据SSTable1合并,形成新的基线数据SSTable2。
图2是本公开实施例提供的一种数据合并示意图,从图2可以看出,数据合并可以是将增量数据及基线数据合并,得到新基线数据。增量数据例如可以是图1中的增量SSTable,基线数据例如可以是图1中的基线SStable,数据合并的过程可以是将增量SSTable及基线SSTable合并,形成新的基线SSTable的过程。
前文提到,一个数据库系统可以有多个租户,当该数据库系统的数据库中存储有基于LSM树的增量数据及基线数据时,现有技术的合并是将数据库中所有租户的增量数据及基线数据合并,形成新的数据库基线数据。例如,数据库A有2个租户,数据库A存储有租户的增量数据及基线数据,既,租户a在数据库中存储有增量数据a1及基线数据a2,租户b在数据库中存储有增量数据b1及基线数据b2,现有的合并过程时,同时将数据库中增量数据a1a2,合并到基线数据b1b2中,形成数据库新的基线数据。也就时说,现有技术中,合并是全局的操作,通过合并数据库中的增量数据及基线数据,形成一个全局的新的基线数据。
现有的合并技术,没有考虑数据库系统存在多租户的情况下,合并带来的租户之间相互影响的问题。合并的过程耗时且会消耗较多的系统硬件资源,在一些实施例中,在合并过程中,会把当前的基线数据读取出来,和增量数据合并后,再写到磁盘上去作为新的基线数据。合并过程占用了数据库系统CPU及磁盘空间,因此在合并过程中,对租户业务请求会有影响,例如,读写数据或查询数据的响应时间被拉长,影响租户业务的稳定性。在一些情况下,部分租户的数据量较少,内存占用较少,还不需要进行合并以释放内存空间,对不需要合并的租户的进行合并,会消耗租户系统资源且影响这部分租户的业务。在一些情况下,数据库系统会在租户业务低峰期进行合并,例如,凌晨时间,但是,不同的租户的业务低峰期不尽一致。
为了解决现有技术中多租户数据库在进行增量数据及基线数据合并时,带来的租户间相互影响的问题,本公开实施例提供一种租户级的增量数据及基线数据的合并方法,以租户为基本单位进行合并,解决合并过程中租户间相互影响的问题。
图3是本公开实施例提供的一种管理数据库的方法的流程示意图,图3所示的方法可以由数据库系统中的一个或多个控制服务器执行。该数据库可以是前文提到的具有多个租户的数据库。该数据库可以基于前文提到的LSM树存储数据。换句话说,该数据库可以包括LSM树的基线数据和LSM树的增量数据。在一些实施例中,该数据库可以是分布式数据库。作为示例,该数据库为OceanBase数据库。下面对图3中的各个步骤进行详细说明。
在步骤S310,对增量数据和基线数据进行租户级合并,以得到多个租户中的部分租户的新基线数据。
租户级合并可以理解为以一个或一组租户为单位进行合并。作为一个示例,可以以每个租户为单位进行合并。作为另一示例,可以以一组租户为单位进行合并。该一组租户例如可以是属于一个集群的租户。
对多租户中的一部分租户的数据进行合并,不占用其他租户的硬件资源,因此,能够降低合并过程中对其他租户的业务的影响。
可以设定一些合并条件,对满足条件的部分租户进行数据合并,以减少在合并时租户间的相互影响。作为一个示例,可以选择租户的业务低峰期时间一致的租户作为部分租户,对该部分租户的数据在业务低峰期时间内进行合并。作为另一个示例,可以选择租户负载一致的租户,例如,对多租户中内存中MemTable达到阈值的租户的数据进行合并。
由此可以看出,本公开提供的管理数据库的方法,对数据库中的增量数据级基线数据进行租户级的合并,降低了合并带来的租户间的相互影响。
租户的资源可以以资源单元的方式分布在多台机器上,租户的数据存储在租户的资源单元中,也就是说租户的数据可以分布在多台机器上,机器例如可以是一台服务器。租户数据可以只分布在一台机器上,这时,该机器上的数据是该租户完整的数据;租户的数据可以分布在多台机器上,这时,多台机器上可以分别存储了该租户的分片数据。分片数据例如可以是将租户的完整数据按照一定的切分方式进行切分之后形成的数据分片,切分方式例如可以是水平切分,例如还可以是垂直切分。切分后的数据分片可以分布在不同的机器上,这样,可以提高数据库系统的响应效率。
下面结合图4对多租户数据库中数据的分布方式进行介绍。如图4所示,租户1的资源可以分布在机器1、机器2及机器3上,租户2的资源可以分布在机器3、机器4及机器5上。其中,机器1、机器2及器件3上存储有租户1的分片数据,将3台机器上的数据组合起来可以得到租户1存储在数据库中的完整数据。在一些实施例中,多台机器上可以分别部署有基于LSM树的数据存储架构。例如,在图4中,机器1、机器2及器件3上可以分别部署有基于LSM树的数据存储架构,3台机器上的数据可以包括增量数据及基线数据,例如,机器1上可以有分片数据1的增量数据及基线数据。
在租户的数据分布在多台机器上的情况下,本公开实施例提供的方法,还可以根据租户的业务情况及数据负载情况提供不同的租户间数据合并方法。
在一些实施例中,可以将第一租户在多台机器上的数据同时进行合并,第一租户可以是数据库系统中任意一个租户。继续以图4为例,可以将同时将机器1、机器2及机器3上的租户1的数据进行增量数据及基线数据的合并。这样,在合并的同一时间段租户的数据库系统的资源耗费较高,但是租户数据的合并时间短。第一租户在多台机器上数据同时合并的方法可以用在同时合并对租户业务影响比较小的场景中,例如可以是租户的负载比较小,同时合并对租户前台请求的影响较小的场景,例如还可以是租户的增量数据本身比较小,同时合并对租户前台请求影响小的场景。
在另一些实施例中,可以按照设定的机器合并顺序,依次对所述第一租户在所述多台机器上的数据进行合并。例如,图4 中,可以按照设定的机器的合并顺序,对3台机器上的数据进行依次合并。机器合并顺序可以根据多台机器的负载确定,机器的负载例如可以是机器上CPU、内存、磁盘及网络负载中的一项或多项。机器合并顺序也可以根据第一租户的用户设定的机器的并发度来确定。例如,在图4中,第一租户的用户设定的机器的并发度为1,一种可能的合并顺序是机器1、机器2、机器3;第一租户的用户设定的机器的并发度为2,一种可能的合并顺序是机器2&机器3、机器1。对第一租户的数据进行依次合并,可以用在第一租户的负载比较重,租户业务对请求回应时间比较敏感的情况下,未合并的机器可以优先提供服务。
在对部分租户的数据进行增量数据及基线数据进行合并时,本公开实施例提供的方法还可以根据租户的资源及负载提供不同的租户间数据合并的方法。部分租户可以包括第一租户及第二租户,第一租户及第二租户可以是数据库系统中任意一个租户。应当理解,本公开实施例中的部分租户不限制租户的数量。
在一些实施例中,可以将第一租户及第二租户的数据同时合并,例如,图4 中,可以同时对租户1及租户2的数据的进行增量数据及基线数据的合并。部分租户同时合并,可以用在数据库系统空间比较紧张,租户业务对业务响应时间不敏感的场景。
在另一些实施例中,可以按照设定的租户合并顺序,依次对租户的数据进行合并。租户的合并顺序可以是基于租户的负载、租户的数据所在的机器的负载及租户的用户设定的租户的并发度中的一项或多项确定的。例如,图4中,租户的用户设定的租户的并发度为1,一种可能的合并顺序是先合并租户1的数据,再合并租户2的数据;租户的用户设定的租户的并发度为2,一种可能的合并顺序是租户1和租户2同时合并。租户间数据依次合并的方法,适用于部分租户对业务响应时间比较敏感时,通过控制租户的并发度,减少租户资源的消耗。
为了提高数据库系统的可用性,避免系统中机器宕机或意外中断等故障,导致无法读取数据的问题,数据库可以为多副本的数据库,数据库中可以存储有租户的数据的多个副本。图5提供了一种多租户多副本数据库的数据分布示意图。如图5所示,租户1的资源可以分布在机器1、机器2及机器3上,租户2的资源可以分布在机器3、机器4及机器5上。租户1及租户2的数据有3个数据副本,分别为副本1、副本2及副本3。
在一些情况下,为了保证副本数据的一致性,在进行租户级数据合并时,需要将副本数据进行合并。例如,图5中,可以单独将租户1分布在3个副本中的数据进行合并,可以将3个副本同时合并,也可以将3个副本依次合并。作为一个示例,可以先合并副本1中租户1的数据,在合并副本2中租户1的数据,最后合并副本3中租户1的数据。单个副本合并时,3台机器上数据的合并方式可以是3台机器同时合并,也可以是3台机器依次合并。
也可以将租户1及租户2分布在3个副本中的数据进行合并,可以同时合并租户1和租户2 的副本数据,也可以依次合并租户1和租户2 的副本数据。作为一个示例,先合并租户1的3个副本数据,在合并租户2 的3个副本数据,租户1的3个副本数据的合并方式可以如前文所述。
在对数据库中增量数据及基线数据进行租户及数据合并之前,本公开实施例提供的方法还可以生成冻结点,以冻结数据库的多个数据副本;在完成增量数据及基线数据的合并之后,本公开实施例提供的方法还可以对多个副本数据进行一致性检查。下面结合图6对本公开实施例提供的数据库管理方法进行介绍。
在S610,生成冻结点,以冻结多个副本。
可以由数据库系统中的一个或多个控制服务器生成冻结点,可以是租户的控制服务器生成冻结点,在一些实施例中,租户的控制服务器还包括管理模块,该管理模块用于管理租户的元数据。该管理模块还可以用来执行冻结点,在冻结点冻结增量数据。
在S620,对增量数据及基线数据进行在租户级合并。
在一些实施例中,租户资源所在的机器轮询发现了生成的新的冻结点,就以这个冻结点开始,进行增量数据级基线数据租户级数据合并。作为一种可能的实施方式,在图5中,可以由租户1的3个副本中的root service生成冻结点,将3个副本数据冻结。多个副本可以基于相同的冻结点进行合并,这样可以保证多个副本的基线数据物理上是相同的。冻结点可以是一个具体的时间点,例如11点,可以11点时将副本中增量数据进行冻结,并将冻结的增量数据于基线数据进行合并。租户资源所在的机器全部合并完成之后,可以汇报root service。
在S630,对多个副本进行一致性检查。
多个副本数据合并完成之后,root service可以调度副本间一致性检查。例如,图5中,可以由租户1的3个副本中的一个root service通过副本间checksum的比对,校验3个副本数据的一致性。
在进行增量数据级基线数据租户级合并时,租户级合并的触发方式可以是手动触发,定时触发以及数据库根据预设条件自动触发中的一种。手动触发可以适用于运维时系统升级或紧急释放存储空间的场景,手动触发的方式例如可以时手动发送命令发起合并,在一些实施例中,可以发送alter system freeze命令发起手动合并。定时触发的场景可以适用于数据库系统正常运行的通用场景,定时触发的方式例如可以是数据库系统或者租户配置定时合并的时间,例如每日8点定时合并。数据库根据预设条件自动触发可以适用于数据库数据写入高峰或增量数据比较大的场景,自动触发可以由系统自发合并,无需人工干预。自动触发的方式例如可以是根据数据库系统内部负载发起合并,例如,可在存储空间占用达到一定的阈值时自动触发合并。
上文结合图1至图6,详细描述了本公开的方法实施例,下面结合图7和图8,详细描述本公开的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图7是本公开实施例提供的一种管理数据的装置的结构示意图。该装置700可以用于对数据库进行管理,该数据库为多租户数据库,该数据库中存储有LSM树的增量数据及基线数据。装置700包括合并模块710,合并模块710被配置为对增量数据和基线数据进行租户级合并,以得到多个租户中的部分租户的新基线数据。
可选地,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,所述合并模块710对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块710将所述第一租户在所述多台机器上的数据同时进行合并。
可选地,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,所述合并模块710对所述增量数据和所述基线数据进行租户及合并,包括:所述合并模块710按照设定的机器合并顺序,依次对所述第一租户在所述多台机器上的数据进行合并。
可选地,所述机器合并顺序是基于所述多台机器的负载和/或所述第一租户的用户设定的机器的并发度确定的。
可选地,所述部分租户包括至少两个租户,所述合并模块710对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块710将所述至少两个租户的数据同时进行合并。
可选地,所述部分租户包括至少两个租户,所述合并模块710对所述增量数据和所述基线数据进行租户级合并,包括:所述合并模块710按照设定的租户合并顺序,依次对所述至少两个租户的数据进行合并。
可选地,所述租户合并顺序是基于以下中的一项或多项确定的:所述至少两个租户的负载、所述至少两个租户的数据所在的机器的负载以及所述至少两个租户的用户设定的租户并发度。
可选地,所述租户级合并是基于以下方式中的一种触发的:手动触发、定时触发及所述数据库根据预设条件自动触发。
可选地,所述数据库为多副本数据库,所述数据库包括所述部分租户的多个副本,所述装置还包括:生成模块720,被配置为在所述合并模块710对所述增量数据级所述基线数据进行租户级合并之前,生成冻结点,以冻结所述多个副本;检查模块730,被配置为在所述合并模块710对所述增量数据和所述基线数据进行租户级合并之后,对所述多个副本进行一致性检查。
可选地,所述数据库包括管理模块,用于管理租户的元数据,所述冻结点由所述管理模块执行。
图8是本公开实施例提供的另一种管理数据库的装置的结构示意图。图8所述的管理数据库装置800可以包括存储器810和处理器820,存储器810可以用于存储可执行代码。处理器820可以用于执行存储器810中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该装置800还可以包括网络接口830,处理器820与外部设备的数据交换可以通过该网络接口830实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种管理数据库的方法,所述数据库具有多个租户,且所述数据库中存储有日志合并结构LSM树的增量数据和基线数据,其特征在于,
所述方法包括:
对所述增量数据和所述基线数据进行租户级合并,以得到所述多个租户中的部分租户的新基线数据。
2.根据权利要求1所述的方法,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,
所述对所述增量数据和所述基线数据进行租户级合并,包括:
将所述第一租户在所述多台机器上的数据同时进行合并。
3.根据权利要求1所述的方法,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,
所述对所述增量数据和所述基线数据进行租户级合并,包括:
按照设定的机器合并顺序,依次对所述第一租户在所述多台机器上的数据进行合并。
4.根据权利要求3所述的方法,所述机器合并顺序是基于所述多台机器的负载和/或所述第一租户的用户设定的机器并发度确定的。
5.根据权利要求1所述的方法,所述部分租户包括至少两个租户,
所述对所述增量数据和所述基线数据进行租户级合并,包括:
将所述至少两个租户的数据同时进行合并。
6.根据权利要求1所述的方法,所述部分租户包括至少两个租户,
所述对所述增量数据和所述基线数据进行租户级合并,包括:
按照设定的租户合并顺序,依次对所述至少两个租户的数据进行合并。
7.根据权利要求6所述的方法,所述租户合并顺序是基于以下中的一项或多项确定的:所述至少两个租户的负载、所述至少两个租户的数据所在的机器的负载以及所述至少两个租户的用户设定的租户并发度。
8.根据权利要求1所述的方法,所述租户级合并是基于以下方式中的一种触发的:手动触发,定时触发以及所述数据库根据预设条件自动触发。
9.根据权利要求1所述的方法,所述数据库为多副本数据库,所述数据库包括所述部分租户的数据的多个副本,
在所述对所述增量数据和所述基线数据进行租户级合并之前,所述方法还包括:
生成冻结点,以冻结所述多个副本;
在所述对所述增量数据和所述基线数据进行租户级合并之后,所述方法还包括:
对所述多个副本进行一致性检查。
10.根据权利要求9所述的方法,其特征在于,所述数据库包括管理模块,用于管理租户的元数据,所述冻结点由所述管理模块执行。
11.一种管理数据库的装置,所述数据库具有多个租户,且所述数据库中存储有日志合并结构LSM树的增量数据及基线数据,其特征在于,
所述装置包括:
合并模块,被配置为对所述增量数据和所述基线数据进行租户级合并,以得到所述多个租户中的部分租户的新基线数据。
12.根据权利要求11所述的装置,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,
所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:
所述合并模块将所述第一租户在所述多台机器上的数据同时进行合并。
13.根据权利要求11所述的装置,所述部分租户包括第一租户,所述第一租户的数据分布在多台机器上,
所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:
所述合并模块按照设定的机器合并顺序,依次对所述第一租户在所述多台机器上的数据进行合并。
14.根据权利要求13所述的装置,所述机器合并顺序是基于所述多台机器的负载和/或所述第一租户的用户设定的机器的并发度确定的。
15.根据权利要求11所述的装置,所述部分租户包括至少两个租户,
所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:
所述合并模块将所述至少两个租户的数据同时进行合并。
16.根据权利要求11所述的装置,所述部分租户包括至少两个租户,
所述合并模块对所述增量数据和所述基线数据进行租户级合并,包括:
所述合并模块按照设定的租户合并顺序,依次对所述至少两个租户的数据进行合并。
17.根据权利要求16所述的装置,所述租户合并顺序是基于以下中的一项或多项确定的:所述至少两个租户的负载、所述至少两个租户的数据所在的机器的负载以及所述至少两个租户的用户设定的租户并发度。
18.根据权利要求11所述的装置,所述租户级合并是基于以下方式中的一种触发的:手动触发、定时触发及所述数据库根据预设条件自动触发。
19.根据权利要求11所述的装置,所述数据库为多副本数据库,所述数据库包括所述部分租户的多个副本,
所述装置还包括:
生成模块,被配置为在所述合并模块对所述增量数据级所述基线数据进行租户级合并之前,生成冻结点,以冻结所述多个副本;
检查模块,被配置为在所述合并模块对所述增量数据和所述基线数据进行租户级合并之后,对所述多个副本进行一致性检查。
20.根据权利要求19所述的装置,其特征在于,所述数据库包括管理模块,用于管理租户的元数据,所述冻结点由所述管理模块执行。
21.一种管理数据的装置,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现权利要求1-10中任一项所述的方法。
CN202210125760.XA 2022-02-10 2022-02-10 管理数据库的方法及装置 Pending CN114168572A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210125760.XA CN114168572A (zh) 2022-02-10 2022-02-10 管理数据库的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210125760.XA CN114168572A (zh) 2022-02-10 2022-02-10 管理数据库的方法及装置

Publications (1)

Publication Number Publication Date
CN114168572A true CN114168572A (zh) 2022-03-11

Family

ID=80489589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210125760.XA Pending CN114168572A (zh) 2022-02-10 2022-02-10 管理数据库的方法及装置

Country Status (1)

Country Link
CN (1) CN114168572A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547859A (zh) * 2016-10-21 2017-03-29 杭州朗和科技有限公司 一种多租户数据存储系统下的数据文件的存储方法及装置
US20180032567A1 (en) * 2015-02-27 2018-02-01 Alibaba Group Holding Limited Method and device for processing data blocks in a distributed database
CN110347613A (zh) * 2019-06-26 2019-10-18 华中科技大学 多租户固态盘中实现raid的方法、控制器及多租户固态盘
CN110799961A (zh) * 2017-06-27 2020-02-14 易享信息技术有限公司 在数据库中创建和删除租户的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180032567A1 (en) * 2015-02-27 2018-02-01 Alibaba Group Holding Limited Method and device for processing data blocks in a distributed database
CN106547859A (zh) * 2016-10-21 2017-03-29 杭州朗和科技有限公司 一种多租户数据存储系统下的数据文件的存储方法及装置
CN110799961A (zh) * 2017-06-27 2020-02-14 易享信息技术有限公司 在数据库中创建和删除租户的系统和方法
CN110347613A (zh) * 2019-06-26 2019-10-18 华中科技大学 多租户固态盘中实现raid的方法、控制器及多租户固态盘

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IT小岛: "OceanBase存储引擎高级技术", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/399181835》 *
李琳等: "软件即服务模式下租户多副本数据存储完整性问题研究", 《南京大学学报(自然科学)》 *
樊秋实等: "基线与增量数据分离架构下的分布式连接算法", 《计算机学报》 *

Similar Documents

Publication Publication Date Title
US20210056074A1 (en) File System Data Access Method and File System
US11068187B2 (en) Systems and methods for data migration in a clustered file system
US9996427B2 (en) Parallel backup for distributed database system environments
CN109284069A (zh) 一种存放备份数据的分布式存储系统及方法
US11093387B1 (en) Garbage collection based on transmission object models
US8499004B2 (en) File system with optimistic I/O operations on shared storage
US9189493B2 (en) Object file system
CN108021717B (zh) 一种轻量级嵌入式文件系统的实现方法
US20240126651A1 (en) Restoring a directory to a state prior to a past synchronization event
CN109726264A (zh) 用于索引信息更新的方法、装置、设备和介质
US20080201525A1 (en) RAID capacity expansion handling method and system with concurrent data access capability
CN113885809B (zh) 数据管理系统及方法
EP3811225A1 (en) Centralized storage for search servers
CN110058923B (zh) 一种基于动态预取策略的Docker容器COW机制优化方法及系统
CN114741449A (zh) 一种基于分布式数据库的对象存储方法及装置
CN112579550B (zh) 一种分布式文件系统的元数据信息同步方法及系统
US11442663B2 (en) Managing configuration data
US20070061530A1 (en) Method for storage of digital data in a mainframe data center and associated device
CN114168572A (zh) 管理数据库的方法及装置
CN111078643B (zh) 一种批量删除文件的方法、装置及电子设备
CN109241011B (zh) 一种虚拟机文件处理方法及装置
US11645333B1 (en) Garbage collection integrated with physical file verification
CN108376104B (zh) 节点调度方法及装置、计算机可读存储介质
CN114237507B (zh) 管理数据的方法及装置
CN109343928A (zh) 虚拟化集群中虚拟机的虚拟内存文件重定向方法及其系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20220311