CN117609177A - 数据库操作方法、装置、设备及介质 - Google Patents
数据库操作方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117609177A CN117609177A CN202311176615.5A CN202311176615A CN117609177A CN 117609177 A CN117609177 A CN 117609177A CN 202311176615 A CN202311176615 A CN 202311176615A CN 117609177 A CN117609177 A CN 117609177A
- Authority
- CN
- China
- Prior art keywords
- partition
- database
- merging
- preset
- information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005192 partition Methods 0.000 claims abstract description 175
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000001816 cooling Methods 0.000 claims description 8
- 238000011017 operating method Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 description 16
- 230000037430 deletion Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 235000019580 granularity Nutrition 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000001771 impaired effect Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种数据库操作方法、装置、设备及介质。本说明书通过收集数据库中各个分区的操作画像,操作画像可以用于指示分区的数据操作性能等级,从而可以根据各个分区的操作画像发现操作画像满足预设合并条件的第一分区,进而对满足预设合并条件的第一分区进行分区合并操作,可以及时发现数据库中需要合并的分区并及时对分区进行合并,以保证执行合并操作时的数据处理难度较小,提高数据库操作效率。
Description
技术领域
本说明书一个或多个实施例涉及数据库技术领域,尤其涉及一种数据库操作方法、装置、设备及介质。
背景技术
数据库作为信息系统的核心基础设置,在数据存储、数据共享、数据安全、数据分析和决策支持等方面发挥着重要的作用。在数据库中,结构化合并树(Log StructuredMerge Tree,LSM-Tree)是一种被广泛应用的数据结构。在以LSM-Tree作为存储引擎时,可以通过优化磁盘写入和读取操作的方式,提供高吞吐量的写入性能和较低的读取成本,以有效应对大规模写入及高并发读写之类的场景。
在以LSM-Tree为架构的信息系统中,在执行数据删除操作时,LSM-tree不会立即从磁盘中删除相应的数据,而是先为待删除数据添加标记,再通过定期执行合并操作的方式实现磁盘数据的删除,合并操作执行完成后数据才会真正被删除掉。
对于删除操作频繁的场景,通过上述删除方式会产生大量的标记,使得在定期执行合并操作时的数据处理难度较大,而且会导致数据库操作效率较低。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据库操作方法、装置、设备及介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据库操作方法,包括:
获取数据库中各个分区的操作画像,对于任一分区,操作画像用于指示分区的数据库操作性能等级;
基于数据库中多个分区的操作画像,确定多个分区中满足预设合并条件的第一分区;
对满足预设合并条件的第一分区进行分区合并操作。
根据本说明书一个或多个实施例的第二方面,提出了一种数据库操作装置,包括:
获取模块,用于获取数据库中各个分区的操作画像,对于任一分区,操作画像用于指示分区的数据库操作性能等级;
确定模块,用于基于数据库中多个分区的操作画像,确定多个分区中满足预设合并条件的第一分区;
合并模块,用于对满足预设合并条件的第一分区进行分区合并操作。
根据本说明书一个或多个实施例的第三方面,提供一种计算设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器通过运行可执行指令以实现如上述第一方面所描述的方法。
根据本说明书一个或多个实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,计算机指令被处理器执行时实现如上述第一方面所描述的方法。
本说明书通过收集数据库中各个分区的操作画像,操作画像可以用于指示分区的数据操作性能等级,从而可以根据各个分区的操作画像发现操作画像满足预设合并条件的第一分区,进而对满足预设合并条件的第一分区进行分区合并操作,可以及时发现数据库中需要合并的分区并及时对分区进行合并,以保证执行合并操作时的数据处理难度较小,提高数据库操作效率。
附图说明
图1是一示例性实施例提供的一种数据库操作方法的流程图。
图2是一示例性实施例提供的一种分层桶机制的原理示意图。
图3是一示例性实施例提供的一种数据库操作方法的流程示意图。
图4是一示例性实施例提供的一种计算设备的示意结构图。
图5是一示例性实施例提供的一种数据库操作装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
为便于理解,下面先对本说明书所涉及的技术术语进行介绍。
内存表(Memtable):在数据库中写入数据时,会先写内存,对应的数据结构被称为Memtable。Memtable是一个纯内存结构,Memtable的数据量达到阈值后会被冻结,同时会创建一个新Memtable接收后续的写入。被冻结的Memtable不可写,需要持久化到磁盘。
字符串表(Sorted String Table,SSTable):Memtable的数据量达到阈值时,需要将Memtable中的数据按顺序写入磁盘,磁盘上等待进行数据写入的数据结构被称为SSTable。
转储:将内存中的Memtable数据持久化到外存,从而生成SSTable的过程。
合并:将LSM-Tree中的增量数据合并到基线数据中的过程。
Compaction:转储和合并的统称。
分区:根据一定的规则,把一个表分解成多个更小的、更容易管理的部分。
在介绍了本说明书的相关技术术语之后,下面对本说明书的方案进行详细介绍。
相关技术中,在以LSM-Tree为架构的系统中,删除数据是通过追加写删除标记的方式实现的,删除标记被添加后,数据并不会被删除,直到分区合并后数据才会被真正删除掉,这种删除方式会带来如下的一些问题:
(1)增加读代价:删除标记的存在会导致查询过程需要扫描的内容增加,损害查询性能;
(2)浪费存储空间:删除标记和尚未被删除的数据都会占用存储空间,导致存储空间浪费;
(3)带来数据安全问题:将数据标记为删除却并没有真正删除数据,对于这部分尚未被真正完成删除的数据,其数据安全性可能无法得到有效保障。
有鉴于此,本说明书期望提供一种数据库操作方法,以实现自适应的分区合并操作。通过本发明所提供的方案,可以在数据库中某个分区在某段时间内出现了删除操作频繁的情况、且删除行为影响到了查询性能时,自动为该分区调度一次分区合并操作,以便可以在用户无感知的情况下,尽早地清理需要删除的数据,回收存储空间,保障查询性能。
上述数据库操作方法可以由计算设备执行,计算设备可以为服务器,如一台服务器、多台服务器、服务器集群、云计算平台,等等,本说明书对计算设备的设备类型和设备数量不加以限定。
可选地,本说明书所提供的数据库操作方法,可以用于在多种类型的数据库中实现分区合并操作。例如,本说明书所提供的数据库操作方法,可以用于在分布式数据库(如分布式关系型数据库、列式存储数据库等)、键值(Key-Value)型数据库、日志型数据库、非关系型(Not Only Structured Query Language,NoSQL)数据库,等等,本说明书对所适用的数据库的具体类型不加以限定。
上述仅为有关本说明书的应用场景的示例性说明,并不构成对本说明书的应用场景的限定,在更多可能的实现方式中,本说明书所提供的方案可以应用于更多以LSM-Tree为存储引擎的数据库中,本说明书对具体的应用场景不加以限定。
在介绍了本说明书的应用场景之后,接下来对本说明书的具体实现过程进行介绍。
参见图1,图1是一示例性实施例提供的一种数据库操作方法的流程图,如图1所示,该方法包括:
步骤101、获取数据库中各个分区的操作画像,对于任一分区,操作画像用于指示分区的数据库操作性能等级。
其中,数据库中可以包括多个数据表,每个数据表中均可以包括多个分区。可选地,可以统计各个分区的数据库操作性能,从而确定每个分区的数据库操作性能等级,以实现灭个分区的操作画像的获取。
步骤102、基于数据库中多个分区的操作画像,确定多个分区中满足预设合并条件的第一分区。
其中,预设合并条件可以是根据实际技术需求预先设置好的,预设合并条件可以用于指示进行分区合并操作的第一分区的操作画像所要满足的条件。
步骤103、对满足预设合并条件的第一分区进行分区合并操作。
本说明书通过收集数据库中各个分区的操作画像,操作画像可以用于指示分区的数据操作性能等级,从而可以根据各个分区的操作画像发现操作画像满足预设合并条件的第一分区,进而对满足预设合并条件的第一分区进行分区合并操作,可以及时发现数据库中需要合并的分区并及时对分区进行合并,以保证执行合并操作时的数据处理难度较小,提高数据库操作效率。
在介绍了本说明书的基本实现过程之后,下面对本说明书的各个可选实施例进行详细介绍。
在一些实施例中,数据库操作性能可以包括数据编辑操作性能等级和/或查询性能等级,可选地,数据库操作性能等级还可以包括其他类型的性能等级,本说明书对数据库操作性能等级所包括的具体性能等级类型不加以限定。
以数据库操作性能等级包括数据编辑操作性能等级和/或查询性能等级为例,对于步骤101,在获取数据库中各个分区的操作画像时,可以通过如下步骤实现:
步骤1011、获取数据库中各个分区的操作统计信息,对于任一分区,操作统计信息基于分区在预设时间区间内的操作信息确定,操作信息用于指示分区的数据编辑操作发生频率和/或查询效率。
其中,操作信息可以包括数据编辑操作在所有数据库操作中所占的比例,以使操作信息可以指示数据编辑操作的发生频率。
可选地,数据库操作可以包括数据编辑操作、数据定义操作、数据查询操作和数据控制操作等,或者,数据库操作还可以包括更多或更少类型的操作,本说明书对数据库操作所包括的操作类型不加以限定。其中,数据编辑操作可以为数据操纵语言(DataManipulation Language,DML)操作,例如,数据编辑操作可以包括数据插入操作、数据更新操作、数据删除操作等;数据定义操作可以为数据定义语言(Data Definition Language,DDL)操作,数据定义操作可以用于创建、修改或删除数据库对象;数据查询操作可以为数据查询语言(Data Query Language,DML)操作,数据查询操作可以用于查询数据库中的数据(包括但不限于选择和提取数据);数据控制操作可以为数据控制语言(Data ControlLanguage,DCL)操作,数据控制操作可以用于定义数据库的安全性、完整性和访问权限。
在一种可能的实现方式中,可以统计数据库中每种数据库操作(包括但不限于数据编辑操作、数据定义操作、数据查询操作和数据控制操作)发生的次数,以确定数据编辑操作的发生次数与这多种数据库操作的发生次数的比值,以实现数据编辑操作在数据库操作中所占的比例的确定,从而可以获取到用于指示数据编辑操作的发生频率的操作信息。
需要说明的是,除可以确定数据编辑操作在所有数据库操作中所占的比例之外,还可以分别确定每种数据编辑操作在所有数据库操作中所占的比例,例如,可以分别确定数据插入操作、数据更新操作和数据删除操作在所有数据库操作中所占的比例,以使操作信息可以指示每种数据编辑操作的发生频率。
操作信息还可以包括数据查询操作中实际返回行数和扫描行数的比值所对应的百分比,以使操作信息可以指示分区中数据查询操作的查询效率。
在一种可能的实现方式中,在获取数据库中各个分区的操作统计信息时,可以通过如下步骤实现:
步骤1011-1、对于任一分区,获取分区在预设时间区间的不同时间子区间内的操作信息。
其中,预设时间区间可以包括多个时间子区间,在获取操作信息时,可以获取预设时间段的每个时间子区间的操作信息,以得到多个操作信息,每个时间子区间均会对应于一个操作信息。
需要说明的是,可以在数据库运行过程中,通过后台任务进行操作信息的实时收集。
可选地,可以通过桶排序机制实现操作信息的收集。例如,可以通过分层的桶机制来实现操作信息的收集。
以通过分层的桶机制来实现操作信息的收集为例,可以为一个分区配置多个桶,这多个桶可以被分为多层,每层中所包括的桶的数量可以相同也可以不同,以通过分层的多个桶实现对所收集的操作信息的存储。需要说明的是,每个桶可以用于存储一个时间子区间所对应的操作信息,不同桶中所存储的操作信息对应的时间子区间的时长可以相同,也可以不同,也即是,不同桶的桶粒度可以相同,也可以不同。
例如,可以为一个分区配置多个桶,并且,可以将这多个桶划分成多层,同一层的桶的桶粒度可以相同,而不同层的桶的桶粒度可以不同。
可选地,可以根据操作信息所对应的时间子区间,将所收集到的操作信息存储到该时间子区间所对应的桶中。层级越高、排序越靠前的桶中所存储的操作信息对应的时间子区间越靠前。
参见图2,图2是一示例性实施例提供的一种分层桶机制的原理示意图,如图2所示,可以为一个分区配置多个桶,这多个桶可以被分成三层,这三层的桶粒度分别为2分钟(min)、16min和32min,每层中所包括的桶的数量不同,每一层中的桶都会有自己的排序,如图2所示,第一层可以包括距离当前时刻0-2min、距离当前时刻2-4min、距离当前时刻4-6min、…、距离当前时刻14-16min的时间子区间所对应的8个桶,第二层可以包括距离当前时刻16-32min以及距离当前时刻32-64min的时间子区间所对应的2个桶,第三层可以包括距离当前时刻64-96min以及距离当前时刻96-128min的时间子区间所对应的2个桶,其中,不同的桶分别用于存储对应时间子区间内所产生的操作信息。
步骤1011-2、基于分区中各个操作信息对应的时间子区间,确定各个操作信息对应的权重信息。
在一种可能的实现方式中,可以预先为不同的时间子区间设置好相应的权重信息,以便可以将分区中各个操作信息对应的时间子区间的权重信息,确定为各个操作信息对应的权重信息。其中,权重信息可以为权重值。
仍以通过分层的桶机制实现操作信息的收集为例,则可以为不同层级的桶设置不同的权重信息,每个桶中所存储的操作信息的权重信息,即可基于该桶所处的层级确定,也即是,将该桶所处的层级的权重信息作为该桶中所存储的操作信息的权重信息。
仍以如图2所示的分层桶机制为例,可以将第一层的桶(也即是距离当前时刻0-2min、距离当前时刻2-4min、距离当前时刻4-6min、…、距离当前时刻14-16min的时间子区间所对应的8个桶)的权重信息设置为第一权重信息,将第二层的桶(也即是距离当前时刻16-32min以及距离当前时刻32-64min的时间子区间所对应的2个桶)的权重信息设置为第二权重信息,将第三层的桶(也即是距离当前时刻64-96min以及距离当前时刻96-128min的时间子区间所对应的2个桶)的权重信息设置为第三权重信息,以便后续可以根据所设置的权重信息,实现不同时间子区间的操作信息所对应的权重信息的获取。
步骤1011-3、按照各个操作信息对应的权重信息,对多个操作信息进行加权求和处理,得到操作统计信息。
上述实施例主要介绍了获取不同时间子区间所对应的操作信息以及基于所获取到的操作信息实现操作统计信息的确定的过程,在更多可能的实现方式中,随着时间的流逝,还可以对多个时间子区间所对应的操作信息进行更新。
在一种可能的实现方式中,还可以每隔预设时长,对多个时间子区间所对应的操作信息进行更新。其中,预设时长可以与时间子区间所对应的时长一致。
仍以通过分层的桶机制实现操作信息的收集为例,假设层级i的桶粒度为Mi(或者说,每个时间子区间所对应的时长为Mi),每经过Mi分钟,层级i会将当前层最后一个桶中所存储的操作信息转移至第i+1层的第一个桶,并将第i+1层以及后续各层中的其他桶后移一位,最高层的桶中所存储的操作信息则会被直接淘汰,以此,实现对多个时间子区间所对应的操作信息的更新。
通过每个预设时长对多个时间子区间所对应的操作信息进行更新,以保证确定操作统计信息时所使用的操作信息都是最新的,从而可以保证所确定出的操作统计信息可以更满足当前的实际情况,提高数据库合并操作的准确性。
步骤1012、对于任一分区,基于分区的操作统计信息,确定分区的操作画像。
在一种可能的实现方式中,可以基于操作统计信息所属的值域范围,确定分区的数据库操作性能等级,作为分区的操作画像。
可选地,可以预先设置好操作统计信息的不同值域范围与数据库操作性能等级之间的映射关系,以便可以直接基于预先设置好的映射关系实现数据库操作性能等级的确定。
需要说明的是,不同类型的操作统计信息可以对应于不同的值域范围,并且,不同类型的操作统计信息所对应的值域范围与数据库操作性能等级之间的映射关系也可以不同,以便可以根据与待进行等级确定的操作统计信息的类型匹配的映射关系,来进行数据库操作性能等级的确定。
例如,要确定的数据库操作性能等级为数据删除操作性能等级,数据删除操作性能等级可以包括删除操作发生频繁、删除操作发生频率正常这两种情况,可以预先设置好删除操作发生频繁、删除操作发生频率正常这两种情况分别对应的值域范围,以实现映射关系的设置,以便后续可以直接基于所设置好的映射关系实现数据删除操作性能等级的确定。
又例如,要确定的数据库操作性能等级为查询操作性能等级,查询操作性能等级可以包括查询性能正常、查询性能受到损害这两种情况,可以预先设置好查询性能正常、查询性能受到损害这两种情况分别对应的值域范围,以实现映射关系的设置,以便后续可以直接基于所设置好的映射关系实现查询操作性能等级的确定。
在通过上述实施例获取到各个分区的操作画像之后,即可通过步骤102,基于数据库中多个分区的操作画像,确定多个分区中满足预设合并条件的第一分区。
其中,预设合并条件可以包括数据编辑操作性能等级满足第一目标等级、以及查询操作性能等级满足第二目标等级中的至少一项。可选地,第一目标等级和第二目标等级可以根据实际技术需求设置。
例如,针对数据编辑操作发生频繁(包括但不限于数据插入操作发生频繁和数据删除操作发生频繁)且查询性能受到损害的场景,需要优先为其进行分区合并,从而即可将第一目标等级确定为删除操作发生频繁,将第二目标等级确定为查询性能受到损害,以便可以及时为删除操作发生频繁且查询性能受到损害的分区进行分区合并。
在一些实施例中,对于步骤103,在对满足预设合并条件的第一分区进行分区合并操作时,可以通过如下方式实现:
对满足预设合并条件的第一分区进行第一合并操作。
其中,第一合并操作可以为分区级合并操作(或称大合并)。第一合并操作可以以单个分区的多个SSTable作为输入,输出一个不包含删除标记和多版本信息的SSTable。
需要说明的是,对于第一合并操作下作为输入的多个SSTable,这多个SSTable可以包括已提交数据和未提交数据。此外,第一合并操作可以包括用于进行数据一致性检查的校验操作,以确保合并后的SSTable数据的完整性和正确性。
在更多可能的实现方式中,可以为第一合并操作设置一个冷却时间,冷却期间内如果分区还需要调度合并,则可以为其进行第二合并操作。
也即是,在冷却时间内,若确定出多个分区中存在满足预设合并条件的第二分区,则对满足预设合并条件的第二分区进行第二合并操作,第二合并操作用于对第二分区中的子分区进行合并。
可选地,第二合并操作可以为小合并。第二合并操作也可以以单个分区的多个SSTable作为输入,输出一个不包含删除标记和多版本信息的SSTable,但是,与第一合并操作有所不同的是,第二合并操作下作为输入的多个SSTable不包括未提交数据,而且,第二合并操作不包括校验操作。
需要说明的是,第二合并操作生成的SSTable在每个分区有且仅有一个,无需副本校验,仅供查询使用,但是,无论是大合并还是小合并,每次合并都会回收掉在先的小合并处理所产生的SSTable。
通过上述实施例,可以实现混合调度的合并策略,通过优先调度分区级合并以保障查询性能,而在分区级合并进入冷却时间的情况下,仍然可以通过小合并保障合并操作的顺利进行,提高数据库操作的效率。
本说明书所提供的数据库操作方法可以参见图3,图3是一示例性实施例提供的一种数据库操作方法的流程示意图,如图3所示,在客户端(Client)请求数据库服务端(OBServer)进行数据读/写操作(也即是数据编辑操作和数据查询操作)的情况下,服务器端可以收集发生读/写操作的分区的操作信息,从而基于所收集到的操作信息生成各个分区的操作画像,以便可以基于所生成的操作画像进行自适应Compaction。
通过本说明书所提供的数据库操作方法,可以自适应地实现数据库分区的合并,在用户无感知的情况下,若一个分区在某段时间内出现了频繁删除的场景,且删除行为影响到了查询性能,即可通过本说明书所提供的方案自动为其调度一次分区级别的合并,以便尽早地清理删除数据,回收存储空间,保证查询性能。并且,整个分区合并过程无需人工干预,从而可以降低数据库操作成本。
与前述方法的实施例相对应,本说明书还提供了对应的设备实施例。
参见图4,图4是一示例性实施例提供的一种计算设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他任务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本说明书还提供了一种数据库操作装置,请参考图5,图5是一示例性实施例提供的一种数据库操作装置的框图,该数据库操作装置可以应用于如图4所示的计算设备中,以实现本说明书的技术方案。其中,该数据库操作装置可以包括:
获取模块501,用于获取数据库中各个分区的操作画像,对于任一分区,操作画像用于指示分区的数据库操作性能等级;
确定模块502,用于基于数据库中多个分区的操作画像,确定多个分区中满足预设合并条件的第一分区;
合并模块503,用于对满足预设合并条件的第一分区进行分区合并操作。
在一些实施例中,数据库操作性能等级包括数据编辑操作性能等级和/或查询性能等级;
获取模块501,在用于获取数据库中各个分区的操作画像时,用于:
获取数据库中各个分区的操作统计信息,对于任一分区,操作统计信息基于分区在预设时间区间内的操作信息确定,操作信息用于指示分区的数据编辑操作发生频率和/或查询效率;
对于任一分区,基于分区的操作统计信息,确定分区的操作画像。
在一些实施例中,预设时间区间包括多个时间子区间;
获取模块501,在用于获取数据库中各个分区的操作统计信息时,用于:
对于任一分区,获取分区在预设时间区间的不同时间子区间内的操作信息;
基于分区中各个操作信息对应的时间子区间,确定各个操作信息对应的权重信息;
按照各个操作信息对应的权重信息,对多个操作信息进行加权求和处理,得到操作统计信息。
在一些实施例中,该装置还包括:
更新模块,用于每隔预设时长,对多个时间子区间所对应的操作信息进行更新;
其中,预设时长与时间子区间所对应的时长一致。
在一些实施例中,确定模块502,在用于基于分区的操作统计信息,确定分区的操作画像时,用于:
基于操作统计信息所属的值域范围,确定分区的数据库操作性能等级,作为分区的操作画像。
在一些实施例中,预设合并条件包括下述至少一项:
数据编辑操作性能等级满足第一目标等级;
查询操作性能等级满足第二目标等级。
在一些实施例中,合并模块503,在用于对满足预设合并条件的第一分区进行分区合并操作时,用于:
对满足预设合并条件的第一分区进行第一合并操作。
在一些实施例中,第一合并操作对应于冷却时间;
合并模块503,还用于在冷却时间内,若确定出多个分区中存在满足预设合并条件的第二分区,则对满足预设合并条件的第二分区进行第二合并操作。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(Central ProcessingUnit,CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read-Only Memory,ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase Change Random AccessMemory,PRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CompactDisc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (11)
1.一种数据库操作方法,包括:
获取数据库中各个分区的操作画像,对于任一分区,所述操作画像用于指示所述分区的数据库操作性能等级;
基于所述数据库中多个分区的操作画像,确定所述多个分区中满足预设合并条件的第一分区;
对满足所述预设合并条件的第一分区进行分区合并操作。
2.根据权利要求1所述的方法,所述数据库操作性能等级包括数据编辑操作性能等级和/或查询性能等级;
所述获取数据库中各个分区的操作画像,包括:
获取所述数据库中各个分区的操作统计信息,对于任一分区,所述操作统计信息基于所述分区在预设时间区间内的操作信息确定,所述操作信息用于指示所述分区的数据编辑操作发生频率和/或查询效率;
对于任一分区,基于所述分区的操作统计信息,确定所述分区的操作画像。
3.根据权利要求2所述的方法,所述预设时间区间包括多个时间子区间;
所述获取所述数据库中各个分区的操作统计信息,包括:
对于任一分区,获取所述分区在所述预设时间区间的不同时间子区间内的操作信息;
基于所述分区中各个操作信息对应的时间子区间,确定各个操作信息对应的权重信息;
按照各个操作信息对应的权重信息,对多个操作信息进行加权求和处理,得到所述操作统计信息。
4.根据权利要求3所述的方法,所述方法还包括:
每隔预设时长,对所述多个时间子区间所对应的操作信息进行更新;
其中,所述预设时长与所述时间子区间所对应的时长一致。
5.根据权利要求2所述的方法,所述基于所述分区的操作统计信息,确定所述分区的操作画像,包括:
基于所述操作统计信息所属的值域范围,确定所述分区的数据库操作性能等级,作为所述分区的操作画像。
6.根据权利要求2所述的方法,所述预设合并条件包括下述至少一项:
所述数据编辑操作性能等级满足第一目标等级;
所述查询操作性能等级满足第二目标等级。
7.根据权利要求1所述的方法,所述对满足所述预设合并条件的第一分区进行分区合并操作,包括:
对满足所述预设合并条件的第一分区进行第一合并操作。
8.根据权利要求7所述的方法,所述第一合并操作对应于冷却时间;
所述方法还包括:
在所述冷却时间内,若确定出所述多个分区中存在满足所述预设合并条件的第二分区,则对满足所述预设合并条件的第二分区进行第二合并操作。
9.一种数据库操作装置,包括:
获取模块,用于获取数据库中各个分区的操作画像,对于任一分区,所述操作画像用于指示所述分区的数据库操作性能等级;
确定模块,用于基于所述数据库中多个分区的操作画像,确定所述多个分区中满足预设合并条件的第一分区;
合并模块,用于对满足所述预设合并条件的第一分区进行分区合并操作。
10.一种计算设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-8中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311176615.5A CN117609177A (zh) | 2023-09-12 | 2023-09-12 | 数据库操作方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311176615.5A CN117609177A (zh) | 2023-09-12 | 2023-09-12 | 数据库操作方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117609177A true CN117609177A (zh) | 2024-02-27 |
Family
ID=89950374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311176615.5A Pending CN117609177A (zh) | 2023-09-12 | 2023-09-12 | 数据库操作方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609177A (zh) |
-
2023
- 2023-09-12 CN CN202311176615.5A patent/CN117609177A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169083B (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
US11182356B2 (en) | Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems | |
CN106484906B (zh) | 一种分布式对象存储系统闪回方法及装置 | |
KR102564170B1 (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
EP2199935A2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
US10896177B2 (en) | Database statistics based on transaction state | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
US11372568B2 (en) | System and method for storing and accessing blockchain data | |
CN113901279B (zh) | 一种图数据库的检索方法和装置 | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
CN117033424A (zh) | 慢sql语句的查询优化方法、装置和计算机设备 | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
CN110019870B (zh) | 基于内存图像集群的图像检索方法及系统 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN117609177A (zh) | 数据库操作方法、装置、设备及介质 | |
CN114428776A (zh) | 一种面向时序数据的索引分区管理方法和系统 | |
CN114896250A (zh) | 一种键值分离的键值存储引擎索引优化方法及装置 | |
Taşyürek | Regenerating large volume vector layers with a denormalization-based method | |
Kvet | Database Block Management using Master Index | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
Luan et al. | Towards effective 3D model management on hadoop | |
CN117216059A (zh) | 数据表合并方法、装置、设备及介质 | |
Kvet | Identifying, Managing, and Accessing Undefined Tuple States in Relational Databases | |
CN115794960A (zh) | 关系型数据库的管理方法及装置 | |
CN117909550A (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 |