CN112612415B - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents
一种数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112612415B CN112612415B CN202011527639.7A CN202011527639A CN112612415B CN 112612415 B CN112612415 B CN 112612415B CN 202011527639 A CN202011527639 A CN 202011527639A CN 112612415 B CN112612415 B CN 112612415B
- Authority
- CN
- China
- Prior art keywords
- group
- compact operation
- time
- size
- current
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置、电子设备及存储介质,该方法应用于OSD,该方法包括:在当前次对其磁盘上的KV数据库中的目标层上需要执行compact操作的元数据对象执行compact操作时,按照预设的划分规则,将元数据对象划分为第一组和第二组;获取第一组和第二组对应的IO大小;使用第一组对应的IO大小的读写IO,对相应的元数据对象执行compact操作,使用第二组对应的IO大小的读写IO,对相应的元数据对象执行compact操作;在完成compact操作后,确定下一次的第一组和第二组对应的IO大小,将下一次作为当前次,执行划分步骤,直到目标层上不存在相关元数据对象。本申请可提高用户体验。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
键值(Key-Value,KV)数据库,用于存储无结构化的数据,即,以键码(即,Key)作为索引,对Key对应的数据记录(即,Value)进行读、写、删除等操作。
目前,在存储集群中,对象存储设备(Object Storage Device,OSD)通常将用户设备的业务数据对应的元数据对象存储到该OSD对应的磁盘上的KV数据库中,该KV数据库以分层形式存储元数据对象,每层均设定有可存储的元数据对象的大小阈值。
在需要对该KV数据库中某层的元数据对象执行压缩合并(compact)操作时,该OSD通常使用固定大小的读写输入输出(Input Output,IO),完成对该层上需要执行compact操作的元数据对象的compact操作。
但是,这种处理方式会出现如下问题:
1、如果设定的固定大小较大,该OSD执行compact操作的耗时越短,但是,短时间内将占用大量的磁盘资源,这样一来,容易导致该OSD处理用户设备的业务数据的时延较长,进而影响用户体验。
2、如果设定的固定大小较小,该OSD执行compact操作的耗时越长,虽然可以减少对磁盘资源的占用,但是,在用户设备的业务数据较多的情况下,容易导致compact操作无法及时完成,以至于该层的元数据对象的总大小达到大小阈值,最终出现写阻塞现象,严重影响用户业务。
发明内容
为克服相关技术中存在的问题,本申请提供了一种数据处理方法、装置、电子设备及存储介质。
根据本申请实施例的第一方面,提供一种数据处理方法,所述方法应用于OSD,所述方法包括:
在当前次对所述OSD对应的磁盘上的KV数据库中的目标层上需要执行compact操作的元数据对象执行compact操作时,按照预设的划分规则,将所述元数据对象划分为第一组和第二组;
获取上一次执行完所述目标层上需要执行compact操作的元数据对象的compact操作后确定出的当前次的第一组和第二组对应的IO大小;
使用获取到的第一组对应的IO大小的第一读写IO,对当前次的第一组中的元数据对象执行compact操作,以及使用获取到的第二组对应的IO大小的第二读写IO,对当前次的第二组中的元数据对象执行compact操作;
在执行完当前次的第一组和第二组中的元数据对象的compact操作后,根据计算出的执行当前次的第一组中的元数据对象的compact操作的第一执行速率、计算出的执行当前次的第二组中的元数据对象的compact操作的第二执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第一新增速率,确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,并将下一次作为当前次,开始执行按照预设的划分规则,将所述元数据对象划分为第一组和第二组的步骤,直到目标层上不存在需要执行compact操作的元数据对象;
其中,在当前次为首次时,当前次的第一组对应的IO大小为第一初始值,当前次的第二组对应的IO大小为第二初始值,所述第二初始值大于所述第一初始值;
在当前次为非首次时,当前次的第一组和第二组对应的IO大小均为所述OSD根据计算出的执行上一次的第一组中的元数据对象的compact操作的第三执行速率、计算出的执行上一次的第二组中的元数据对象的compact操作的第四执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第二新增速率确定出的。
根据本申请实施例的第二方面,提供一种数据处理装置,所述装置应用于OSD,所述装置包括:
划分模块,用于在当前次对所述OSD对应的磁盘上的KV数据库中的目标层上需要执行compact操作的元数据对象执行compact操作时,按照预设的划分规则,将所述元数据对象划分为第一组和第二组;
获取模块,用于获取上一次执行完所述目标层上需要执行compact操作的元数据对象的compact操作后确定出的当前次的第一组和第二组对应的IO大小;
执行模块,用于使用获取到的第一组对应的IO大小的第一读写IO,对当前次的第一组中的元数据对象执行compact操作,以及使用获取到的第二组对应的IO大小的第二读写IO,对当前次的第二组中的元数据对象执行compact操作;
确定模块,用于在执行完当前次的第一组和第二组中的元数据对象的compact操作后,根据计算出的执行当前次的第一组中的元数据对象的compact操作的第一执行速率、计算出的执行当前次的第二组中的元数据对象的compact操作的第二执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第一新增速率,确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,并将下一次作为当前次,开始执行所述划分模块执行的步骤,直到目标层上不存在需要执行compact操作的元数据对象;
其中,在当前次为首次时,当前次的第一组对应的IO大小为第一初始值,当前次的第二组对应的IO大小为第二初始值,所述第二初始值大于所述第一初始值;
在当前次为非首次时,当前次的第一组和第二组对应的IO大小均为所述OSD根据计算出的执行上一次的第一组中的元数据对象的compact操作的第三执行速率、计算出的执行上一次的第二组中的元数据对象的compact操作的第四执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第二新增速率确定出的。
根据本申请实施例的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述数据处理装置的装置步骤。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法的方法步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,OSD在每次需要对该OSD对应的磁盘上的KV数据库中的同一层上需要执行compact操作的元数据对象执行compact操作时,会先将需要执行compact操作的元数据对象划分为第一组和第二组;然后,该OSD使用上一次确定出的第一组对应的IO大小的读写IO,对这一次的第一组中的元数据对象进行compact操作,以及该OSD使用上一次确定出的第二组对应的IO大小的读写IO,对这一次的第二组中的元数据对象进行compact操作;最后,在执行完这些元数据对象的compact操作后,会进一步结合相关compact操作的执行速率和基于用户业务产生的需要执行compact操作的元数据对象的新增速率,确定出下一次对该层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,以便于下一次对该层上需要执行compact操作的元数据对象执行compact操作时使用。
可见,在这种处理方式中,通过划分同一层上需要执行compact操作的元数据对象,可以结合实际的用户业务适应性地调整每次执行compact操作时的第一组和第二组对应的IO大小,以进一步减少对用户业务的影响,从而提高了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种数据处理装置的结构示意图;
图3为本申请实施例提供的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
本申请实施例提供了一种数据处理方法,该方法应用于OSD,如图1所示,该方法可以包括如下步骤:
S11、在当前次对OSD对应的磁盘上的KV数据库中的目标层上需要执行compact操作的元数据对象执行compact操作时,按照预设的划分规则,将元数据对象划分为第一组和第二组。
S12、获取上一次执行完目标层上需要执行compact操作的元数据对象的compact操作后确定出的当前次的第一组和第二组对应的IO大小。
S13、使用获取到的第一组对应的IO大小的第一读写IO,对当前次的第一组中的元数据对象执行compact操作,以及使用获取到的第二组对应的IO大小的第二读写IO,对当前次的第二组中的元数据对象执行compact操作。
S14、在执行完当前次的第一组和第二组中的元数据对象的compact操作后,根据计算出的执行当前次的第一组中的元数据对象的compact操作的第一执行速率、计算出的执行当前次的第二组中的元数据对象的compact操作的第二执行速率、和获取到的最近一次统计的目标层上需要执行compact操作的元数据对象的第一新增速率,确定下一次对目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,并将下一次作为当前次,开始执行上述步骤S11,直到目标层上不存在需要执行compact操作的元数据对象。
具体地,在上述步骤S11中,目标层可以是指KV数据库中的顶层,也可以是指KV数据库中除顶层以外的其他层。
在上述步骤S11中,OSD可以通过以下方式将元数据对象划分为第一组和第二组:
按照元数据对象的存储顺序,将元数据对象均衡地划分为第一组和第二组。
当然,OSD还可以采用其他方式划分元数据对象,在此不再一一列举。
具体地,在上述步骤S12中,在当前次为首次时,当前次的第一组对应的IO大小为第一初始值,当前次的第二组对应的IO大小为第二初始值。其中,第二初始值大于第一初始值。
优选地,第一初始值可以被设定为初始最小值,例如,4K等,第二初始值可以被设定为初始最大值,例如,2M等。
在这种情形下,OSD可以直接从本地获取为首次执行compact操作设定的上述第一初始值和上述第二初始值。
在当前次为非首次时,当前次的第一组和第二组对应的IO大小均为OSD根据计算出的执行上一次的第一组中的元数据对象的compact操作的第三执行速率、计算出的执行上一次的第二组中的元数据对象的compact操作的第四执行速率、和获取到的最近一次统计的目标层上需要执行compact操作的元数据对象的第二新增速率确定出的。
在这种情形下,OSD可以直接从本地获取上一次确定出的当前次的第一组和第二组对应的IO大小。
需要说明的是,对于上一次的目标层上需要执行compact操作的元数据对象,OSD对这些元数据对象的处理操作,与对当前次的目标层上需要执行compact操作的元数据对象的处理操作相同,在此不再一一详述。
进一步需要说明的是,在上述步骤S13中,OSD对当前次的第一组和第二组中的元数据对象执行compact操作的具体操作过程为现有技术,在此不再一一详述。
具体地,在上述步骤S14中,OSD可以通过以下方式计算第一执行速率:
计算第一组中的元数据对象的总大小与执行完当前次的第一组中的元数据对象的compact操作所用的第一时间的第一比值,并将计算出的第一比值作为所述第一执行速率。
OSD可以通过以下方式计算第二执行速率:
计算第二组中的元数据对象的总大小与执行完当前次的第二组中的元数据对象的compact操作所用的第二时间的第二比值,并将计算出的第二比值作为所述第二执行速率。
OSD在计算出第一执行速率和第二执行速率之后,具体可以通过以下方式确定下一次对目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小:
若第一执行速率等于第一新增速率的一半,则说明使用当前次的第一组对应的IO大小的第一读写IO,对第一组中的元数据对象执行compact操作,刚好满足用户业务增长需求,在这种情形下,可以确定下一次的第一组和第二组对应的IO大小均为当前次的第一组对应的IO大小。也就是说,在这种情形下,下一次的第一组和第二组均继续使用当前次的第一组对应的IO大小。
若第一执行速率大于第一新增速率的一半,则说明使用当前次的第一组对应的IO大小的第一读写IO,对第一组中的元数据对象执行compact操作,足以满足用户业务增长需求,在这种情形下,可以确定下一次的第一组对应的IO大小为第一大小阈值(该第一大小阈值小于当前次的第一组对应的IO大小且不小于所述第一初始值,具体的取值可根据实际经验设定),以及确定下一次的第二组对应的IO大小为当前次的第一组对应的IO大小。也就是说,在这种情形下,下一次的第一组使用的IO大小比当前次的第一组对应的IO大小偏小些,下一次的第二组继续使用当前次的第一组对应的IO大小。
若第一执行速率小于第一新增速率的一半、且第二执行速率等于第一新增速率的一半,则说明使用当前次的第一组对应的IO大小的第一读写IO,对第一组中的元数据对象执行compact操作,无法满足用户业务增长需求,使用当前次的第二组对应的IO大小的第二读写IO,刚好满足用户业务增长需求,在这种情形下,可以确定下次的第一组和第二组对应的IO大小均为当前次第二组对应的IO大小。也就是说,在这种情形下,下一次的第一组和第二组均继续使用当前次的第二组对应的IO大小。
若第一执行速率小于第一新增速率的一半、且第二执行速率大于第一新增速率的一半,则说明使用当前次的第一组对应的IO大小的第一读写IO,对第一组中的元数据对象执行compact操作,无法满足用户业务增长需求,使用当前次的第二组对应的IO大小的第二读写IO,足以满足用户业务增长需求,在这种情形下,可以确定下次的第一组对应的大小为第二大小阈值(该第二大小阈值大于当前次的第一组对应的IO大小,具体取值可根据实际经验设定),以及确定下次的第二组对应的IO大小为第三大小阈值(该第三大小阈值小于当前次的第二组对应的IO大小,具体取值可根据实际经验设定)。也就是说,在这种情形下,下一次的第一组使用的IO大小比当前次的第一组对应的IO大小偏大些,下一次的第二组使用的IO大小比当前次的第二组对应的IO大小偏小些。
若第一执行速率和第二执行速率均小于第一新增速率的一半,则说明使用当前次的第一组对应的IO大小的第一读写IO,对第一组中的元数据对象执行compact操作,无法满足用户业务增长需求,使用当前次的第二组对应的IO大小的第二读写IO,也无法满足用户业务增长需求,在这种情形下,确定下次的第一组对应的IO大小为当前次的第二组对应的IO大小,以及确定下次的第二组对应的IO大小为第四大小阈值(该第四大小阈值大于当前次的第二组对应的IO大小且不大于所述第二初始值,具体的取值可根据实际经验设定)。也就是说,在这种情形下,下一次的第一组使用当前次的第二组对应的IO大小,下一次的第二组使用的IO大小比当前次的第二组对应的IO大小偏大。
由以上技术方案可以看出,在本申请实施例中,OSD在每次需要对该OSD对应的磁盘上的KV数据库中的同一层上需要执行compact操作的元数据对象执行compact操作时,会先将需要执行compact操作的元数据对象划分为第一组和第二组;然后,该OSD使用上一次确定出的第一组对应的IO大小的读写IO,对这一次的第一组中的元数据对象进行compact操作,以及该OSD使用上一次确定出的第二组对应的IO大小的读写IO,对这一次的第二组中的元数据对象进行compact操作;最后,在执行完这些元数据对象的compact操作后,会进一步结合相关compact操作的执行速率和基于用户业务产生的需要执行compact操作的元数据对象的新增速率,确定出下一次对该层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,以便于下一次对该层上需要执行compact操作的元数据对象执行compact操作时使用。
可见,在这种处理方式中,通过划分同一层上需要执行compact操作的元数据对象,可以结合实际的用户业务适应性地调整每次执行compact操作时的第一组和第二组对应的IO大小,以进一步减少对用户业务的影响,从而提高了用户体验。
基于同一发明构思,本申请还提供了一种数据处理装置,所述装置应用于OSD,其结构示意图如图2所示,具体包括:
划分模块21,用于在当前次对所述OSD对应的磁盘上的KV数据库中的目标层上需要执行compact操作的元数据对象执行compact操作时,按照预设的划分规则,将所述元数据对象划分为第一组和第二组;
获取模块22,用于获取上一次执行完所述目标层上需要执行compact操作的元数据对象的compact操作后确定出的当前次的第一组和第二组对应的IO大小;
执行模块23,用于使用获取到的第一组对应的IO大小的第一读写IO,对当前次的第一组中的元数据对象执行compact操作,以及使用获取到的第二组对应的IO大小的第二读写IO,对当前次的第二组中的元数据对象执行compact操作;
确定模块24,用于在执行完当前次的第一组和第二组中的元数据对象的compact操作后,根据计算出的执行当前次的第一组中的元数据对象的compact操作的第一执行速率、计算出的执行当前次的第二组中的元数据对象的compact操作的第二执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第一新增速率,确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,并将下一次作为当前次,开始执行所述划分模块21执行的步骤,直到目标层上不存在需要执行compact操作的元数据对象;
其中,在当前次为首次时,当前次的第一组对应的IO大小为第一初始值,当前次的第二组对应的IO大小为第二初始值,所述第二初始值大于所述第一初始值;
在当前次为非首次时,当前次的第一组和第二组对应的IO大小均为所述OSD根据计算出的执行上一次的第一组中的元数据对象的compact操作的第三执行速率、计算出的执行上一次的第二组中的元数据对象的compact操作的第四执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第二新增速率确定出的。
优选地,所述划分模块21,具体用于:
按照所述元数据对象的存储顺序,将所述元数据对象均衡地划分为第一组和第二组。
优选地,所述装置还包括:
第一计算模块(图2中未示出),用于通过以下方式计算所述第一执行速率:
计算第一组中的元数据对象的总大小与执行完当前次的第一组中的元数据对象的compact操作所用的第一时间的第一比值,并将计算出的第一比值作为所述第一执行速率;
第二计算模块(图2中未示出),用于通过以下方式计算所述第二执行速率:
计算第二组中的元数据对象的总大小与执行完当前次的第二组中的元数据对象的compact操作所用的第二时间的第二比值,并将计算出的第二比值作为所述第二执行速率。
优选地,所述确定模块24,具体用于通过以下方式确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小:
若所述第一执行速率等于所述第一新增速率的一半,则确定下一次的第一组和第二组对应的IO大小均为当前次的第一组对应的IO大小;
若所述第一执行速率大于所述第一新增速率的一半,则确定下一次的第一组对应的IO大小为第一大小阈值,以及确定下一次的第二组对应的IO大小为当前次的第一组对应的IO大小,其中,所述第一大小阈值小于当前次的第一组对应的IO大小且不小于所述第一初始值;
若所述第一执行速率小于所述第一新增速率的一半、且所述第二执行速率等于所述第一新增速率的一半,则确定下次的第一组和第二组对应的IO大小均为当前次第二组对应的IO大小;
若所述第一执行速率小于所述第一新增速率的一半、且所述第二执行速率大于所述第一新增速率的一半,则确定下次的第一组对应的大小为第二大小阈值,以及确定下次的第二组对应的IO大小为第三大小阈值,其中,所述第二大小阈值大于当前次的第一组对应的IO大小,所述第三大小阈值小于当前次的第二组对应的IO大小;
若所述第一执行速率和所述第二执行速率均小于所述第一新增速率的一半,则确定下次的第一组对应的IO大小为当前次的第二组对应的IO大小,以及确定下次的第二组对应的IO大小为第四大小阈值,其中,所述第四大小阈值大于当前次的第二组对应的IO大小且不大于所述第二初始值。
由以上技术方案可以看出,在本申请实施例中,OSD在每次需要对该OSD对应的磁盘上的KV数据库中的同一层上需要执行compact操作的元数据对象执行compact操作时,会先将需要执行compact操作的元数据对象划分为第一组和第二组;然后,该OSD使用上一次确定出的第一组对应的IO大小的读写IO,对这一次的第一组中的元数据对象进行compact操作,以及该OSD使用上一次确定出的第二组对应的IO大小的读写IO,对这一次的第二组中的元数据对象进行compact操作;最后,在执行完这些元数据对象的compact操作后,会进一步结合相关compact操作的执行速率和基于用户业务产生的需要执行compact操作的元数据对象的新增速率,确定出下一次对该层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,以便于下一次对该层上需要执行compact操作的元数据对象执行compact操作时使用。
可见,在这种处理方式中,通过划分同一层上需要执行compact操作的元数据对象,可以结合实际的用户业务适应性地调整每次执行compact操作时的第一组和第二组对应的IO大小,以进一步减少对用户业务的影响,从而提高了用户体验。
本申请实施例还提供了一种电子设备,如图3所示,包括处理器31和机器可读存储介质32,所述机器可读存储介质32存储有能够被所述处理器31执行的机器可执行指令,所述处理器31被所述机器可执行指令促使:实现上述数据处理方法的步骤。
上述的机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法应用于对象存储设备OSD,所述方法包括:
在当前次对所述OSD对应的磁盘上的键值KV数据库中的目标层上需要执行压缩合并compact操作的元数据对象执行compact操作时,按照预设的划分规则,将所述元数据对象划分为第一组和第二组;
获取上一次执行完所述目标层上需要执行compact操作的元数据对象的compact操作后确定出的当前次的第一组和第二组对应的输入输出IO大小;
使用获取到的第一组对应的IO大小的第一读写IO,对当前次的第一组中的元数据对象执行compact操作,以及使用获取到的第二组对应的IO大小的第二读写IO,对当前次的第二组中的元数据对象执行compact操作;
在执行完当前次的第一组和第二组中的元数据对象的compact操作后,根据计算出的执行当前次的第一组中的元数据对象的compact操作的第一执行速率、计算出的执行当前次的第二组中的元数据对象的compact操作的第二执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第一新增速率,确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,并将下一次作为当前次,开始执行按照预设的划分规则,将所述元数据对象划分为第一组和第二组的步骤,直到目标层上不存在需要执行compact操作的元数据对象;
其中,在当前次为首次时,当前次的第一组对应的IO大小为第一初始值,当前次的第二组对应的IO大小为第二初始值,所述第二初始值大于所述第一初始值;
在当前次为非首次时,当前次的第一组和第二组对应的IO大小均为所述OSD根据计算出的执行上一次的第一组中的元数据对象的compact操作的第三执行速率、计算出的执行上一次的第二组中的元数据对象的compact操作的第四执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第二新增速率确定出的。
2.根据权利要求1所述的方法,其特征在于,按照预设的划分规则,将所述元数据对象划分为第一组和第二组,具体包括:
按照所述元数据对象的存储顺序,将所述元数据对象均衡地划分为第一组和第二组。
3.根据权利要求1或2所述的方法,其特征在于,通过以下方式计算所述第一执行速率:
计算第一组中的元数据对象的总大小与执行完当前次的第一组中的元数据对象的compact操作所用的第一时间的第一比值,并将计算出的第一比值作为所述第一执行速率;
通过以下方式计算所述第二执行速率:
计算第二组中的元数据对象的总大小与执行完当前次的第二组中的元数据对象的compact操作所用的第二时间的第二比值,并将计算出的第二比值作为所述第二执行速率。
4.根据权利要求3所述的方法,其特征在于,通过以下方式确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小:
若所述第一执行速率等于所述第一新增速率的一半,则确定下一次的第一组和第二组对应的IO大小均为当前次的第一组对应的IO大小;
若所述第一执行速率大于所述第一新增速率的一半,则确定下一次的第一组对应的IO大小为第一大小阈值,以及确定下一次的第二组对应的IO大小为当前次的第一组对应的IO大小,其中,所述第一大小阈值小于当前次的第一组对应的IO大小且不小于所述第一初始值;
若所述第一执行速率小于所述第一新增速率的一半、且所述第二执行速率等于所述第一新增速率的一半,则确定下次的第一组和第二组对应的IO大小均为当前次第二组对应的IO大小;
若所述第一执行速率小于所述第一新增速率的一半、且所述第二执行速率大于所述第一新增速率的一半,则确定下次的第一组对应的大小为第二大小阈值,以及确定下次的第二组对应的IO大小为第三大小阈值,其中,所述第二大小阈值大于当前次的第一组对应的IO大小,所述第三大小阈值小于当前次的第二组对应的IO大小;
若所述第一执行速率和所述第二执行速率均小于所述第一新增速率的一半,则确定下次的第一组对应的IO大小为当前次的第二组对应的IO大小,以及确定下次的第二组对应的IO大小为第四大小阈值,其中,所述第四大小阈值大于当前次的第二组对应的IO大小且不大于所述第二初始值。
5.一种数据处理装置,其特征在于,所述装置应用于对象存储设备OSD,所述装置包括:
划分模块,用于在当前次对所述OSD对应的磁盘上的键值KV数据库中的目标层上需要执行压缩合并compact操作的元数据对象执行compact操作时,按照预设的划分规则,将所述元数据对象划分为第一组和第二组;
获取模块,用于获取上一次执行完所述目标层上需要执行compact操作的元数据对象的compact操作后确定出的当前次的第一组和第二组对应的输入输出IO大小;
执行模块,用于使用获取到的第一组对应的IO大小的第一读写IO,对当前次的第一组中的元数据对象执行compact操作,以及使用获取到的第二组对应的IO大小的第二读写IO,对当前次的第二组中的元数据对象执行compact操作;
确定模块,用于在执行完当前次的第一组和第二组中的元数据对象的compact操作后,根据计算出的执行当前次的第一组中的元数据对象的compact操作的第一执行速率、计算出的执行当前次的第二组中的元数据对象的compact操作的第二执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第一新增速率,确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小,并将下一次作为当前次,开始执行所述划分模块执行的步骤,直到目标层上不存在需要执行compact操作的元数据对象;
其中,在当前次为首次时,当前次的第一组对应的IO大小为第一初始值,当前次的第二组对应的IO大小为第二初始值,所述第二初始值大于所述第一初始值;
在当前次为非首次时,当前次的第一组和第二组对应的IO大小均为所述OSD根据计算出的执行上一次的第一组中的元数据对象的compact操作的第三执行速率、计算出的执行上一次的第二组中的元数据对象的compact操作的第四执行速率、和获取到的最近一次统计的所述目标层上需要执行compact操作的元数据对象的第二新增速率确定出的。
6.根据权利要求5所述的装置,其特征在于,所述划分模块,具体用于:
按照所述元数据对象的存储顺序,将所述元数据对象均衡地划分为第一组和第二组。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
第一计算模块,用于通过以下方式计算所述第一执行速率:
计算第一组中的元数据对象的总大小与执行完当前次的第一组中的元数据对象的compact操作所用的第一时间的第一比值,并将计算出的第一比值作为所述第一执行速率;
第二计算模块,用于通过以下方式计算所述第二执行速率:
计算第二组中的元数据对象的总大小与执行完当前次的第二组中的元数据对象的compact操作所用的第二时间的第二比值,并将计算出的第二比值作为所述第二执行速率。
8.根据权利要求7所述的装置,其特征在于,所述确定模块,具体用于通过以下方式确定下一次对所述目标层上需要执行compact操作的元数据对象执行compact操作时需要划分的第一组和第二组对应的IO大小:
若所述第一执行速率等于所述第一新增速率的一半,则确定下一次的第一组和第二组对应的IO大小均为当前次的第一组对应的IO大小;
若所述第一执行速率大于所述第一新增速率的一半,则确定下一次的第一组对应的IO大小为第一大小阈值,以及确定下一次的第二组对应的IO大小为当前次的第一组对应的IO大小,其中,所述第一大小阈值小于当前次的第一组对应的IO大小且不小于所述第一初始值;
若所述第一执行速率小于所述第一新增速率的一半、且所述第二执行速率等于所述第一新增速率的一半,则确定下次的第一组和第二组对应的IO大小均为当前次第二组对应的IO大小;
若所述第一执行速率小于所述第一新增速率的一半、且所述第二执行速率大于所述第一新增速率的一半,则确定下次的第一组对应的大小为第二大小阈值,以及确定下次的第二组对应的IO大小为第三大小阈值,其中,所述第二大小阈值大于当前次的第一组对应的IO大小,所述第三大小阈值小于当前次的第二组对应的IO大小;
若所述第一执行速率和所述第二执行速率均小于所述第一新增速率的一半,则确定下次的第一组对应的IO大小为当前次的第二组对应的IO大小,以及确定下次的第二组对应的IO大小为第四大小阈值,其中,所述第四大小阈值大于当前次的第二组对应的IO大小且不大于所述第二初始值。
9.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527639.7A CN112612415B (zh) | 2020-12-22 | 2020-12-22 | 一种数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527639.7A CN112612415B (zh) | 2020-12-22 | 2020-12-22 | 一种数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612415A CN112612415A (zh) | 2021-04-06 |
CN112612415B true CN112612415B (zh) | 2022-08-30 |
Family
ID=75244089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011527639.7A Active CN112612415B (zh) | 2020-12-22 | 2020-12-22 | 一种数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612415B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948334A (zh) * | 2018-01-09 | 2018-04-20 | 无锡华云数据技术服务有限公司 | 基于分布式存储***的数据处理方法 |
CN109445690A (zh) * | 2018-10-08 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种raid卡性能优化方法、装置、终端及存储介质 |
CN109710587A (zh) * | 2018-12-29 | 2019-05-03 | 优刻得科技股份有限公司 | 基于Ceph的数据分层方法、***、设备和介质 |
CN110007870A (zh) * | 2019-04-12 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种存储设备写请求处理方法及相关装置 |
CN110413592A (zh) * | 2018-04-26 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 使用对象固态驱动器(ssd)设备的基于日志结构合并(lsm)树的数据库的优化 |
CN111371848A (zh) * | 2020-02-21 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种请求处理方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776028B2 (en) * | 2018-07-10 | 2020-09-15 | EMC IP Holding Company LLC | Method for maximum data reduction combining compression with deduplication in storage arrays |
-
2020
- 2020-12-22 CN CN202011527639.7A patent/CN112612415B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948334A (zh) * | 2018-01-09 | 2018-04-20 | 无锡华云数据技术服务有限公司 | 基于分布式存储***的数据处理方法 |
CN110413592A (zh) * | 2018-04-26 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 使用对象固态驱动器(ssd)设备的基于日志结构合并(lsm)树的数据库的优化 |
CN109445690A (zh) * | 2018-10-08 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种raid卡性能优化方法、装置、终端及存储介质 |
CN109710587A (zh) * | 2018-12-29 | 2019-05-03 | 优刻得科技股份有限公司 | 基于Ceph的数据分层方法、***、设备和介质 |
CN110007870A (zh) * | 2019-04-12 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种存储设备写请求处理方法及相关装置 |
CN111371848A (zh) * | 2020-02-21 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种请求处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Compact, Popularity-Aware and Adaptive Hybrid Data Placement Schemes for Heterogeneous Cloud Storage;Yang Gao等;《IEEE Access》;20170215;第1306-1318页 * |
Hadoop中大量小文件性能优化方法研究;刘晓霞;《计算机光盘软件与应用》;20130930(第18期);第78-80页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112612415A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766497B (zh) | 排行榜生成方法及装置、存储介质、电子设备 | |
KR102564170B1 (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN107577697B (zh) | 一种数据处理方法、装置及设备 | |
US8392397B2 (en) | System and method for provenance function window optimization | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
CN108959279B (zh) | 数据处理方法、数据处理装置、可读介质及电子设备 | |
CN111339078A (zh) | 数据实时存储方法、数据查询方法、装置、设备、介质 | |
CN110704336B (zh) | 一种数据缓存方法及装置 | |
US20140201132A1 (en) | Storing a key value to a deleted row based on key range density | |
US10089342B2 (en) | Main memory database management using page index vectors | |
CN110389714B (zh) | 用于数据输入输出的方法、装置和计算机存储介质 | |
CN110750498A (zh) | 对象访问方法、装置及存储介质 | |
CN107168643B (zh) | 一种数据存储方法及装置 | |
CN112612415B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111459937A (zh) | 数据表关联方法、装置、服务器及存储介质 | |
CN107368281B (zh) | 一种数据处理方法及装置 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN113419792A (zh) | 一种事件处理方法、装置、终端设备和存储介质 | |
CN110188069B (zh) | 一种csv文件存储方法、装置及计算机设备 | |
CN111367992B (zh) | 一种数据处理方法及装置,计算机存储介质和电子设备 | |
US9824105B2 (en) | Adaptive probabilistic indexing with skip lists | |
CN113297107A (zh) | 一种数据处理方法、装置以及电子设备 | |
US11449514B2 (en) | Approximate aggregation queries | |
CN114238419B (zh) | 基于多租户SaaS应用***的数据缓存方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |