CN115168403A - 数据处理方法以及装置 - Google Patents
数据处理方法以及装置 Download PDFInfo
- Publication number
- CN115168403A CN115168403A CN202210654973.1A CN202210654973A CN115168403A CN 115168403 A CN115168403 A CN 115168403A CN 202210654973 A CN202210654973 A CN 202210654973A CN 115168403 A CN115168403 A CN 115168403A
- Authority
- CN
- China
- Prior art keywords
- metadata
- data
- integration
- storage
- integrated
- 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
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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
-
- 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/2457—Query processing with adaptation to user needs
Abstract
本说明书实施例提供数据处理方法以及装置,其中数据处理方法包括:获取用户数据的存储位置元数据;在存储位置元数据满足第一预设条件的情况下,对存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;在第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对第一整合位置元数据和第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据。如此,将存储位置元数据单独提取出来进行存储,从多个层级对存储位置元数据进行细粒度的整合,减少存储位置元数据的读放大和写放大,存储位置元数据经过多层级、细粒度的整合,可以快速高效地进行读写操作。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法及装置。
背景技术
随着计算机和互联网技术的快速发展,用户可以在云上进行各种各样的文件系统操作,会产生相应的用户数据以及元数据需要进行存储。现有技术中,一般采用LSM(LogStructured Merge Trees,数据组织方式)架构的Key Value Store(键值对存储器)对用户数据和元数据进行共同存储,各种数据并存以及使用较多层的SSTable(Sorted StringTable,有序字符串表)结构,导致元数据的存储和查询效率较低,读和写的放大都较为严重。
发明内容
有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
获取用户数据的存储位置元数据;
在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;
在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。
可选地,所述获取用户数据的存储位置元数据之后,还包括:
确定所述存储位置元数据对应的用户数据中的有效数据;
在所述有效数据的大小低于数据阈值的情况下,对所述用户数据进行整合处理,获得有效用户数据;
根据所述有效用户数据,更新所述存储位置元数据。
可选地,所述对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据之后,还包括:
获取垃圾回收数据;
根据所述垃圾回收数据,对所述用户数据进行整合处理;
根据整合后的用户数据,对所述第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
可选地,所述对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据之后,还包括:
确定所述第二层级的整合位置元数据对应的目标用户数据;
确定所述目标用户数据中的无效数据与有效数据之间的垃圾数据比例;
在所述垃圾数据比例满足设定整合条件时,对所述目标用户数据进行整合处理,并更新所述第二层级的整合位置元数据。
可选地,所述获取用户数据的存储位置元数据之后,包括:
将所述存储位置元数据写入持久化文件中,并将所述持久化文件中的存储位置元数据复制到内存表中;
在所述内存表中的存储位置元数据满足写入条件的情况下,将所述内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据;
相应地,所述对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据,包括:
对所述初始层级的存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
可选地,所述在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据之前,还包括:
查询当前的第二预设条件。
可选地,所述整合处理包括以下至少一种:去重处理、删除处理、合并处理。
根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
获取模块,被配置为获取用户数据的存储位置元数据;
第一整合模块,被配置为在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;
第二整合模块,被配置为在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据处理方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
本说明书一个实施例提供了一种数据处理方法,获取用户数据的存储位置元数据;在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。这种情况下,用户数据和存储位置元数据的数据特征、管理方式、访问方式等均存在较大的区别,因而本说明书实施例中基于存储位置元数据的数据特征,将存储位置元数据单独提取出来进行存储,从多个层级对存储位置元数据进行细粒度的整合,减少存储位置元数据的读放大和写放大,存储位置元数据经过多层级、细粒度的整合,可以快速高效地进行读写操作,存储及查询的效率较高。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法的流程图;
图2a是本说明书一个实施例提供的一种数据处理方法的过程示意图;
图2b是本说明书一个实施例提供的一种存储位置元数据的整合过程示意图;
图3是本说明书一个实施例提供的一种应用于文件系统下的数据处理方法的流程图;
图4是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种数据,但这些数据不应限于这些术语。这些术语仅用来将同一类型的数据彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
云文件存储服务Metadata Server:云文件存储服务云文件存储服务中负责处理文件系统元数据的服务。
WAL(write-ahead-log,预写日志):在分布式存储系统中的元数据更新中应用得十分广泛。WAL的主要意思是说在将元数据的变更操作写入到持久稳定的数据库之前,先预先写入到一个日志中,然后再由另外的操作将日志写入到外部的持久数据库里去。这种模式会减少掉单次的数据库随机写入操作,尤其当系统要处理大量的操作的时候,WAL的方式相比较于实时同步数据库的方式有着更高的效率。
Layout KV:负责管理服务器上多个Layout Store的服务进程。
Layout Store:文件系统级别的Layout存储管理单元。
Layout File:文件系统中存储元数据以及相关统计信息的文件。
Data File:文件系统中存储用户数据的文件。
Compaction:将多个包括重复元数据的文件,进行去重、删除、合并等操作生成新的元数据文件的过程。
Garbage Collection:将多个包括重复用户数据的文件,进行去重、删除、合并等操作生成新的用户数据文件的过程。
需要说明的是,一般的LSM架构的Key Value Store大多使用较多层的SSTable,读和写的放大都非常严重;而且,在Key的长度、Key的访问模式、Range Query以及Value的特点等方面和Layout Kv有较大区别,无法在Layout相关持久化文件、内存数据结构以及Compaction等方面做定制的性能优化。
云文件存储服务在持久化层采用新一代的底层分布式文件系统接口,使得用户数据及其Layout数据的组织管理方式需要有很大的变化。另外,由于Layout数据的访问模式和一般的Key Value Store有较大区别,因而本说明书实施例中针对云文件存储服务的系统架构,专注于用户数据的Layout数据的存储访问特点,和其它的文件系统使用单一KeyValue Store的系统差别较大,提供了定制的Layout Kv以及相应的Compaction和GarbageCollection框架来满足Layout数据的存储、访问、Compaction等需求。
本说明书实施例中云文件存储服务的Layout数据使用独立的、定制的Layout Kv来管理,Layout Kv基于LSM架构,通过事件驱动,从多个层次对Layout Metadata进行细粒度的Compaction管理调度,同时也对Data进行适度Garbage Collection。
在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。
步骤102:获取用户数据的存储位置元数据。
具体的,用户数据是指用户在线上产生的数据,即用户数据是User Data;存储位置元数据是指示用户数据的存储位置的数据,即具体的用户数据的索引,即存储位置元数据为layout数据。例如,有一个Key Value Store,layout其实就是说前4k的字节写在哪一个文件的某一个地方,然后后面的字节写在另外一个文件的某一个地方的对应关系,即存储位置元数据记录了用户数据中的字节与存储位置的对应关系。
实际应用中,由于存储位置元数据(layout数据)的数据特性比较特殊,因而可以单独将存储位置元数据挑出来,通过定制Layout Kv对他做管理,然后其他相对容易管理的数据,则可以采用种通用的Key Value Store去处理,因而定制化的Layout Kv的特点就是说可以根据存储位置元数据(layout数据)的数据特点做了定制化,单独的处理存储位置元数据(layout数据)。
需要说明的是,这一代的文件系统的产品基于新一代的底层的分布式文件系统,文件系统的管理本身就会有变化。另外,layout数据的访问,跟普通的文件名、用户属组、创建时间这些信息访问模式不太一样,那些信息一般是属于访问量非常低;然后有访问需求不一样,比如说对文件名有range query的这种要求,但是layout涉及到layout的写,比如说可以顺序写,随机写,文件截断等,对于传统文件系统来说,各种语义操作特别多,然后数量很大,造成它的信息非常大,但是它没有RangeQuery的这种需求,而且对于layout数据的特点就是它Key很短,就是一个文件的Inode作为它的Key,所以说它跟普通这种Key ValueStore就有很多从使用上的区别,从性能上也会有不一样的要求。因而,可以把layout数据单独分出来,进行后续的整合处理。
本说明书实施例中,可以获取用户数据的存储位置元数据,后续可以针对存储位置元数据定制对应的服务管理进程(Layout KV),针对存储位置元数据单独进行整合、管理,提高存储位置元数据的存储和查询效率。
本实施例一个可选的实施方式中,获取用户数据的存储位置元数据之后,还可以包括:
将所述存储位置元数据写入持久化文件中,并将所述持久化文件中的存储位置元数据复制到内存表中;
在所述内存表中的存储位置元数据满足写入条件的情况下,将所述内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据;
相应地,所述对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据,包括:
对所述初始层级的存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
具体的,写入条件可以是指预先设定的、内存表中的存储位置元数据写入初始层级的存储位置文件所需满足的条件,如每隔预设时长,或者内存表满等。
需要说明的是,Layout Kv采用LSM架构,所有的存储位置元数据(Layout数据)可以先写入持久化文件(WAL文件)中,然后将持久化文件中的存储位置元数据复制(Replay)到内存表(Layout Mem Table)中,在内存表中的存储位置元数据满足写入条件的情况下,将内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据,即初始的Layout File,也即L0层级的文件。
作为一种示例,图2a是本说明书一个实施例提供的一种数据处理方法的过程示意图,如图2a所示,Metadata Server(元数据服务器)中,FS Partition(文件系统存储分区)中的Layout Cache(缓冲)中可以存储有Layout数据,将Layout数据写入(Append Log)持久化的WAL文件(预写日志文件),然后Replay(复制)到Layout Kv(服务管理进程)中的LayoutMem Table(内存表)中,每隔一段时间/内存满,Layout Mem Table会被Dump(写入)到初始的Layout File(存储位置元数据文件)中,初始的Layout File可以包括多个存储位置元数据文件,即Layout Store(Volume X)-Layout Store(Volume Y),其中,L0、L1表示LayoutFile的层级,L0_1-L0_N表示L0层级的存储位置元数据文件,L1_1-L1_N表示L1层级的存储位置元数据文件,后续Layout Compaction模块可以根据整合策略将Layout File文件进行Compaction(整合)以及在适当条件下对用户数据进行一定的Garbage Collection。
其中,FS Partition是基本的调度、管理单位,比如说某机器下线或损坏,相应地Partition可能要迁移到其他机器,Partition里面可能包括很多个用户的Volume,然后这些volume的Layout元数据在内存里面都是放在一个统一的内存区域,往磁盘写的时候会写到各volume对应的Layout Store中。Partition是为了支持高可用性、扩展性设计的基本调度单位。
本说明书实施例中,可以将存储位置元数据写入持久化文件中,然后将持久化文件中的存储位置元数据复制到内存表中,在内存表中的存储位置元数据满足写入条件的情况下,将内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据,之后,对初始层级的存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。这种情况下,将存储位置元数据单独提取出来进行存储,后续可以从多个层级对存储位置元数据进行细粒度的整合,减少存储位置元数据的读放大和写放大,存储位置元数据经过多层级、细粒度的整合,可以快速高效地进行读写操作,存储及查询的效率较高。
本实施例一个可选的实施方式中,获取用户数据的存储位置元数据之后,还可以包括:
确定存储位置元数据对应的用户数据中的有效数据;
在有效数据的大小低于数据阈值的情况下,对用户数据进行整合处理,获得有效用户数据;
根据有效用户数据,更新存储位置元数据。
具体的,数据阈值是指预先设置的数值,用于判断用户数据中的有效数据是否过少;有效数据是指最新写入的、当前有效的数据。
实际应用中,假设先写了一兆数据,然后又修改了该写入的一兆数据,此时其实第一兆数据还没有被擦掉,只不过后面新的那兆数据写在了另外一个地方,这个时候它是通过改这兆数据,把原来写的第一兆的数据给作废了,此时先写入的第一兆数据为无效数据,而后写入的新的一兆数据为有效数据。
需要说明的是,比如某个文件里面99%的数据都已经过期作废了,已经被别的数据替换删除了,只有1%的数据是有用的,但是整个文件就占着很大的存储空间,但是这个99%的数据没有用,因而可以把很多这样的文件里面的有效数据拼起来,写到另外一个地方,这个时候就可以回收整个文件,然后这些被移动的数据就要去更新对应的存储位置信息。
本说明书实施例中,确定存储位置元数据对应的用户数据中的有效数据,在有效数据的大小低于数据阈值的情况下,说明该用户数据中的有效数据较少,因而可以对用户数据进行整合处理,获得有效用户数据,从而可以将有效用户数据合并到一起,节省存储空间,并根据有效用户数据,更新存储位置元数据,使得存储位置元数据可以记录最新的用户数据的存储情况。
步骤104:在存储位置元数据满足第一预设条件的情况下,对存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
实际应用中,第一预设条件可以是指预先设置的条件,如存储位置元数据的文件个数达到了个数阈值,说明存在很多存储位置元数据,此时可以对各个存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据,即L0层级的整合位置元数据。
需要说明的是,存在两层的底层SS table。Layout在内存里面会不停的写入,定期要把用户数据的layout的改动,比如说加了一段或修改了一段数据、或删了一段数据等,这种改动的操作,得把它给写到L0层的SS table上。然后,在L0层就是要把这些小的存储位置元数据给它合并,由于在L0层的存储位置元数据可能会有重叠,比如说第一分钟写了第一个文件到第一百个文件,然后把它当写入L0层的SS部上去,然后第二分钟又写了比如说写了后面的50个文件,又加了一些数据,但是这些数据有些是有重叠的,但是对于上层来说,如果要读的话,要把所有数据都读出来,所以底层希望尽快在存储位置元数据满足一定条件的以后,把它给整合到一起,就把重复的部分给去除掉了,提高读写效率。
因而,具体实现时,第一预设条件是为了在性能上对不同的存储位置元数据进行整合,因而可以预先设置第一预设条件,在存储位置元数据满足第一预设条件的情况下,对存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
示例的,获取到了L0层级的20个存储位置元数据,超过了个数阈值10,因而此时可以将该20个存储位置元数据合并成至少一个大的整合位置元数据,后续在满足了另外一个策略的条件以后,还可以进一步再把它整合到Ll层,这些存储位置元数据就是没有重合的了。比如,1~100个文件是在第一个L1SSTable里面,100~200个文件在第二个L1 SSTable里面,假设文件系统非常大,可能有非常多的这种SS table的数据,但是每个L1 SSTable之间是不会有元数据重叠的。
本实施例一个可选的实施方式中,整合处理包括以下至少一种:去重处理、删除处理、合并处理。如此,可以降低整合位置元数据中的重复率,避免数据重叠,提高存储和查询效率。
步骤106:在第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对第一整合位置元数据和第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,第一整合位置元数据为至少一个第一层级的整合位置元数据中的任一个。
具体的,第二预设条件是预先设置的条件,在第一层级的整合位置元数据满足第二预设条件的情况下,可以进一步对第一层级的整合位置元数据进行整合,获得第二层级的整合位置元数据。例如,第二预设条件可以为冗余数据超过冗余阈值,或者有效数据的数据配比低于有效阈值。
需要说明的是,可以通过background的线程,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据。
本实施例一个可选的实施方式中,在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据之前,还可以包括:
查询当前的第二预设条件。
需要说明的是,第二预设条件可以自定义,且可以随时基于需求进行更改,因而在对第一层级的整合位置元数据进行进一步整合之前,可以随时查询当前最新的第二预设条件,整合条件的设置过程灵活,随时可以更改。
本实施例一个可选的实施方式中,对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据之后,还可以包括:
获取垃圾回收数据;
根据所述垃圾回收数据,对所述用户数据进行整合处理;
根据整合后的用户数据,对所述第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
实际应用中,可以从垃圾回收服务器中获取垃圾回收数据,该垃圾回收数据可以指示哪些数据被作为垃圾数据删除了,其中的有效数据存储至了别的地方,因而根据垃圾回收数据,可以对用户数据进行整合处理,合并有效数据存储至其他地方,然后可以删除整个文件数据,之后可以根据整合后的用户数据,对第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
需要说明的是,假设修改了用户写入的第一兆数据,其实原先写入的第一兆数据这个时候还没有被擦掉,只不过后面新写入的那兆数据写在了另外一个地方,这个时候它是通过改原先写入的第一兆数据,把原先写入的第一兆数据给作废了。这个时候,在系统里面要做一个垃圾回收,要找出来这些没有用的无效数据,然后把它给做完回收,比如说这个文件里面发现99%的数据都已经过期作废了,已经被别的数据替换删除了,只有1%的数据是有用的的,但是整个文件就占着很大的存储空间,这个99%的数据没有用,因而可以把很多这样的文件里面的有效数据拼起来,写到另外一个地方,这个时候它就可以回收整个文件,然后它属于一种GC的过程,然后这些被移动的这些数据,需要修改对应的存储位置信息,即对第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
示例的,图2b是本说明书一个实施例提供的一种存储位置元数据的整合过程示意图,如图2b所示,Layout Store(存储位置元数据(Layout)存储器)中DumpThread(落盘线程)调度MinorCompaction(少量合并过程),MajorCompactionMonitor(主要合并过程检测器)调度MajorCompaction(主要合并过程),RelocationCompactionMonitor(重定位信息合并过程检测器)调度RelocationCompaction(重定位信息合并过程)。CompactionController(合并控制器)在Conditionally(有条件地)进行DataGc(数据回收)调度DataGc Controller(数据回收控制器)。另外,CompactionController(合并控制器)经过执行Compaction Plans(合并计划)获得Layout File Repository(元数据文件存储池),Layout File Repository中通过Layout File Metadata(元数据文件的信息),将InitialL0(最初的L0层)文件整合至Big_L0(大规模的L0层)文件,Big_L0文件Compaction(整合)至L1 Files(L1层文件),L1Files(L1层文件)可以结合GCService(垃圾数据回收服务器)导入的Layout重定位信息(即Relocation info,迁移信息),进行整合。
本实施例一个可选的实施方式中,对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据之后,还可以包括:
确定所述第二层级的整合位置元数据对应的目标用户数据;
确定所述目标用户数据中的无效数据与有效数据之间的垃圾数据比例;
在所述垃圾数据比例满足设定整合条件时,对所述目标用户数据进行整合处理,并更新所述第二层级的整合位置元数据。
实际应用中,目标用户数据中的无效数据与有效数据之间的垃圾数据比例满足设定整合条件时,说明目标用户数据中的无效数据较多,而有效数据较少,无效数据占据大量存储空间,因而在垃圾数据比例满足设定整合条件时,可以对目标用户数据进行整合处理,将有效数据合并至一起存储,从而节省存储空间,此时还可以更新第二层级的整合位置元数据,以使第二层级的整合位置元数据记录目标用户最新的存储情况。
示例的,当L1层Layout File涉及的用户数据的垃圾比满足一定条件时,会触发L1层的Data Garbage Collection。
需要说明的是,本实施例中只有两层Layout File文件,读写放大相对较少;并且,只针对Layout数据做整合处理,整合处理的针对性强,减少无关数据的重写;其次,通过策略驱动的细粒度的存储位置元数据的整合处理,可以增强整合效率;再者,不需要支持Range Query,在Layout Memory中可以使用更高效的HashTable数据结构,使用Inode作为Key,存储以及查询效率较高。
本说明书一个实施例提供了一种数据处理方法,获取用户数据的存储位置元数据;在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。这种情况下,用户数据和存储位置元数据的数据特征、管理方式、访问方式等均存在较大的区别,因而本说明书实施例中基于存储位置元数据的数据特征,将存储位置元数据单独提取出来进行存储,从多个层级对存储位置元数据进行细粒度的整合,减少存储位置元数据的读放大和写放大,存储位置元数据经过多层级、细粒度的整合,可以快速高效地进行读写操作,存储及查询的效率较高。
下述结合附图3,以本说明书提供的数据处理方法在文件系统中的应用为例,对所述数据处理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种应用于文件系统下的数据处理方法的流程图,具体包括以下步骤。
步骤302:获取文件系统中用户数据的存储位置元数据。
其中,存储位置元数据可以为具体的用户数据在文件系统中存储位置的索引。
步骤304:将存储位置元数据写入持久化文件中,并将持久化文件中的存储位置元数据复制到内存表中,在内存表中的存储位置元数据满足写入条件的情况下,将内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据。
步骤306:确定该初始层级的存储位置元数据对应的用户数据中的有效数据,在有效数据的大小低于数据阈值的情况下,对该用户数据进行整合处理,获得有效用户数据,根据有效用户数据,更新该初始层级的存储位置元数据。
步骤308:在该初始层级的存储位置元数据满足第一预设条件的情况下,对该初始层级的存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
步骤310:查询当前的第二预设条件,在第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对第一整合位置元数据和第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,第一整合位置元数据为至少一个第一层级的整合位置元数据中的任一个。
步骤312:获取垃圾回收数据,根据垃圾回收数据,对用户数据进行整合处理;根据整合后的用户数据,对第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
步骤314:确定第二层级的整合位置元数据对应的目标用户数据,确定目标用户数据中的无效数据与有效数据之间的垃圾数据比例,在垃圾数据比例满足设定整合条件时,对目标用户数据进行整合处理,并更新第二层级的整合位置元数据。
其中,上述整合处理包括以下至少一种:去重处理、删除处理、合并处理。
需要说明的是,由于文件系统中用户数据和存储位置元数据的数据特征、管理方式、访问方式等均存在较大的区别,因而本说明书一个实施例提供了一种数据处理方法,可以基于文件系统中存储位置元数据的数据特征,将文件系统中的存储位置元数据单独提取出来进行存储,从多个层级对文件系统中的存储位置元数据进行细粒度的整合,减少文件系统中存储位置元数据的读放大和写放大,文件系统中的存储位置元数据经过多层级、细粒度的整合,可以快速高效地进行读写操作,存储及查询的效率较高。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图4示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图4所示,该装置包括:
获取模块402,被配置为获取用户数据的存储位置元数据;
第一整合模块404,被配置为在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;
第二整合模块406,被配置为在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。
可选地,该装置还包括更新模块,被配置为:
确定所述存储位置元数据对应的用户数据中的有效数据;
在所述有效数据的大小低于数据阈值的情况下,对所述用户数据进行整合处理,获得有效用户数据;
根据所述有效用户数据,更新所述存储位置元数据。
可选地,该装置还包括第三整合模块,被配置为:
获取垃圾回收数据;
根据所述垃圾回收数据,对所述用户数据进行整合处理;
根据整合后的用户数据,对所述第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
可选地,该装置还包括第四整合模块,被配置为:
确定所述第二层级的整合位置元数据对应的目标用户数据;
确定所述目标用户数据中的无效数据与有效数据之间的垃圾数据比例;
在所述垃圾数据比例满足设定整合条件时,对所述目标用户数据进行整合处理,并更新所述第二层级的整合位置元数据。
可选地,该装置还包括写入模块,被配置为:
将所述存储位置元数据写入持久化文件中,并将所述持久化文件中的存储位置元数据复制到内存表中;
在所述内存表中的存储位置元数据满足写入条件的情况下,将所述内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据;
相应地,第一整合模块404进一步被配置为:
对所述初始层级的存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
可选地,第二整合模块406进一步被配置为:
查询当前的第二预设条件。
可选地,所述整合处理包括以下至少一种:去重处理、删除处理、合并处理。
本说明书一个实施例提供了一种数据处理装置,获取用户数据的存储位置元数据;在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。这种情况下,用户数据和存储位置元数据的数据特征、管理方式、访问方式等均存在较大的区别,因而本说明书实施例中基于存储位置元数据的数据特征,将存储位置元数据单独提取出来进行存储,从多个层级对存储位置元数据进行细粒度的整合,减少存储位置元数据的读放大和写放大,存储位置元数据经过多层级、细粒度的整合,可以快速高效地进行读写操作,存储及查询的效率较高。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图5示出了根据本说明书一个实施例提供的一种计算设备的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种数据处理方法,包括:
获取用户数据的存储位置元数据;
在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;
在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。
2.根据权利要求1所述的数据处理方法,所述获取用户数据的存储位置元数据之后,还包括:
确定所述存储位置元数据对应的用户数据中的有效数据;
在所述有效数据的大小低于数据阈值的情况下,对所述用户数据进行整合处理,获得有效用户数据;
根据所述有效用户数据,更新所述存储位置元数据。
3.根据权利要求1所述的数据处理方法,所述对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据之后,还包括:
获取垃圾回收数据;
根据所述垃圾回收数据,对所述用户数据进行整合处理;
根据整合后的用户数据,对所述第二层级的整合位置元数据进行更新,获得第二层级的更新位置数据。
4.根据权利要求1所述的数据处理方法,所述对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据之后,还包括:
确定所述第二层级的整合位置元数据对应的目标用户数据;
确定所述目标用户数据中的无效数据与有效数据之间的垃圾数据比例;
在所述垃圾数据比例满足设定整合条件时,对所述目标用户数据进行整合处理,并更新所述第二层级的整合位置元数据。
5.根据权利要求1所述的数据处理方法,所述获取用户数据的存储位置元数据之后,包括:
将所述存储位置元数据写入持久化文件中,并将所述持久化文件中的存储位置元数据复制到内存表中;
在所述内存表中的存储位置元数据满足写入条件的情况下,将所述内存表中的存储位置元数据写入初始层级的存储位置文件,获得初始层级的存储位置元数据;
相应地,所述对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据,包括:
对所述初始层级的存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据。
6.根据权利要求1-5任一项所述的数据处理方法,所述在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据之前,还包括:
查询当前的第二预设条件。
7.根据权利要求1-5任一项所述的数据处理方法,所述整合处理包括以下至少一种:去重处理、删除处理、合并处理。
8.一种数据处理装置,包括:
获取模块,被配置为获取用户数据的存储位置元数据;
第一整合模块,被配置为在所述存储位置元数据满足第一预设条件的情况下,对所述存储位置元数据进行整合处理,获得至少一个第一层级的整合位置元数据;
第二整合模块,被配置为在所述第一层级的整合位置元数据满足第二预设条件的情况下,根据第一整合位置元数据的数据内容,确定对应的第二整合位置元数据,并对所述第一整合位置元数据和所述第二整合位置元数据进行整合处理,获得第二层级的整合位置元数据,其中,所述第一整合位置元数据为所述至少一个第一层级的整合位置元数据中的任一个。
9.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述数据处理方法的步骤。
10.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210654973.1A CN115168403A (zh) | 2022-06-10 | 2022-06-10 | 数据处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210654973.1A CN115168403A (zh) | 2022-06-10 | 2022-06-10 | 数据处理方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168403A true CN115168403A (zh) | 2022-10-11 |
Family
ID=83485674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210654973.1A Pending CN115168403A (zh) | 2022-06-10 | 2022-06-10 | 数据处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168403A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432210A (zh) * | 2023-06-13 | 2023-07-14 | 成都航空职业技术学院 | 一种基于安全保护的档案管理方法和系统 |
-
2022
- 2022-06-10 CN CN202210654973.1A patent/CN115168403A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432210A (zh) * | 2023-06-13 | 2023-07-14 | 成都航空职业技术学院 | 一种基于安全保护的档案管理方法和系统 |
CN116432210B (zh) * | 2023-06-13 | 2023-08-29 | 成都航空职业技术学院 | 一种基于安全保护的档案管理方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN102132270B (zh) | 用于设备和web服务的多主控方离线和协作所需要的最小扩展 | |
Aiyer et al. | Storage infrastructure behind Facebook messages: Using HBase at scale. | |
US20170103086A1 (en) | Deduplicated file system | |
JP5218060B2 (ja) | 情報検索システムと情報検索方法ならびにプログラム | |
EP1696346A1 (en) | File system represented inside a database | |
KR20100045974A (ko) | 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리 | |
CN107544873A (zh) | 一种存放备份数据的备份系统和方法 | |
WO2019091085A1 (zh) | 一种快照比对的方法和装置 | |
JP2015518223A (ja) | メモリ検索、リアルタイム検索システム及び方法、コンピュータ記憶媒体 | |
MX2010012866A (es) | Compaginacion de datos jerarquicos. | |
CN105045850B (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
US10303806B2 (en) | Method and system for providing concurrent buffer pool and page cache | |
CN1497467A (zh) | 可同步数据库中表示删除数据的方法和装置 | |
CN105512325B (zh) | 多版本数据索引的更新、删除与建立方法及装置 | |
CN115168403A (zh) | 数据处理方法以及装置 | |
CN104281673A (zh) | 一种数据库的缓存构建系统及对应的构建方法 | |
CN107220248A (zh) | 一种用于存储数据的方法和装置 | |
CN113095778A (zh) | 通过多个邮箱在通信应用中进行海量数据管理的架构 | |
JP7295422B2 (ja) | 情報処理装置および情報処理プログラム | |
CN114415977B (zh) | 访问存储池的方法以及分布式存储系统 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN115203130A (zh) | 一种分布式文件系统的文件清理方法、装置、设备及介质 | |
KR20000032881A (ko) | 휴대용 단말기의 데이터 저장 장치 및 방법 | |
CN114297196A (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 |