CN107368260A - 基于分布式系统的存储空间整理方法、装置及系统 - Google Patents
基于分布式系统的存储空间整理方法、装置及系统 Download PDFInfo
- Publication number
- CN107368260A CN107368260A CN201710555164.4A CN201710555164A CN107368260A CN 107368260 A CN107368260 A CN 107368260A CN 201710555164 A CN201710555164 A CN 201710555164A CN 107368260 A CN107368260 A CN 107368260A
- Authority
- CN
- China
- Prior art keywords
- data
- idle
- memory
- cluster
- space
- 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
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/0608—Saving storage space on storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明公开了一种基于分布式系统的存储空间整理方法、装置及系统。其中,分布式系统至少包括多个分布式的数据分片集群,该方法包括:分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;根据空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。本发明能够对分布式系统存储空间中出现的碎片化存储空间进行有效整合和分配,提升了针对数据库空间的可管理性和分配效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于分布式系统的存储空间整理方法、装置及系统。
背景技术
在互联网业务中,随着业务数据量的不断增加,需要大量的存储空间来存储互联网业务中的相关数据。由于分布式存储系统的存储空间能够无限扩展,因此在存储互联网的业务数据时得到了广泛利用。在互联网业务中,由于经常需要对数据进行插入、更新、删除等相关操作,因此在互联网业务的分布式存储过程中,也会对应地对存储的数据进行诸如插入、删除、拆分以及迁移等相关操作,这些操作容易导致分布式存储系统的存储空间碎片化。
在实现本发明实施例的过程中,发明人发现现有技术中至少存在如下问题:随着存储数据的数据量增多,存储空间中会累积起大量冗余的碎片化存储空间。这些累积的碎片化存储空间由于数量巨大,导致其占用的总存储空间会变得非常大。并且,在对数据进行永久性存储时,存储数据会随着时间的增加而成倍增加,从而使上述问题更加凸显。然而,现有技术中尚没有一种有效的方式能够针对这些碎片化存储空间进行有效利用,因而不仅在存储空间的使用上造成了严重浪费,同时还会降低存储空间的分配及管理效率,另外,还需要花费大量经费去维护或者开发新的存储空间,给互联网数据的存储带来了诸多不便。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于分布式系统的存储空间整理方法、装置及系统。
根据本发明的一个方面,提供了一种基于分布式系统的存储空间整理方法。其中,上述分布式系统至少包括多个分布式的数据分片集群,该方法包括:分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;根据空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;以及根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
根据本发明的另一方面,提供了一种基于分布式系统的存储空间整理装置。其中,上述分布式系统至少包括多个分布式的数据分片集群,该装置包括:分析模块,适于分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;确定模块,适于根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;整理模块,适于根据空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;以及更新模块,适于根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
根据本发明的又一方面,提供了一种分布式系统,包括上述任一存储空间整理装置,以及多个分布式的数据分片集群。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于分布式系统的存储空间整理方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于分布式系统的存储空间整理方法对应的操作。
在本发明提供的基于分布式系统的存储空间整理的方法、装置及系统中,对存储空间进行整理时,首先分别获取并分析每个数据分片集群的数据存储状态对应的元数据信息,然后根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布,并根据确定结果对数据分片集群中包含的空闲存储空间进行整理,最后根据整理结果更新与该数据分片集群存储状态相对应的元数据信息。由此可见,本发明中的方案能够解决在分布式系统中,由于无法对碎片化的存储空间进行有效整合和利用,导致大量可利用的存储空间被浪费,并且给存储空间的分配和管理都造成不便的问题,本发明能够对碎片化的存储空间进行有效整合和分配,提升了存储空间的利用率及分配效率,同时也实现了针对存储空间的有效管理。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一提供的基于分布式系统的存储空间整理方法的流程示意图;
图2a示出了本发明实施例二提供的分布式系统的结构示意图;
图2b示出了本发明实施例二提供的分布式系统中每个数据分片集群包含的数据节点的示意图;
图3示出了根据本发明实施例二提供的基于分布式系统的存储空间整理方法的流程示意图;
图4示出了根据本发明实施例三提供的基于分布式系统的存储空间整理装置的结构框图;
图5示出了根据本发明实施例四提供的分布式系统的结构框图;
图6示出了根据本发明实施例六提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提供了一种基于分布式系统的存储空间整理的方法、装置及系统,能够解决在分布式系统中,由于无法对碎片化的存储空间进行有效整合和利用,导致大量可利用的存储空间被浪费,并且给存储空间的分配和管理都造成不便的问题,本发明能够对碎片化的存储空间进行有效整合和分配,提升了存储空间的利用率及分配效率,同时也实现了针对存储空间的有效管理。
实施例一
图1示出了根据本发明实施例一提供的基于分布式系统的存储空间整理方法的流程示意图。如图1所示,该方法包括以下步骤:
步骤S110:分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息。
其中,本实施例中的分布式系统至少包括多个分布式的数据分片集群。在分布式系统中,为了提升存储容量,可以将待存储的数据切分为多个分片,将各个分片分别存储在不同的数据分片集群上。因此,数据分片集群的具体数量可以根据待存储的数据量进行设定或调整,本发明对此不做限定。元数据主要用于记录已存储的数据的属性信息,元数据的具体内容可以包括多种。例如,元数据用于记录各条存储数据的具体内容、存储位置、数据大小等。利用元数据能够实现历史数据查询、资源查找、文件记录等多种功能。其中,通过元数据记录的上述信息统称为元数据信息。
在本实施例中,针对每个数据分片集群,首先获取与该数据分片集群的数据存储状态相对应的元数据信息,然后对该元数据信息进行分析,确定该数据分片集群中包含的空闲存储空间等信息,以便后续步骤(对应步骤S120)中进一步获取上述确定的空闲存储空间中的相关信息。其中,空闲存储空间可以包括:存储为空的存储空间、以及设置有无效标记和/或删除标记的存储空间。具体实施中,可以写入新数据或者可以涂改数据的存储空间都可以看作是空闲的存储空间。
在这里,获取以及分析元数据信息的具体方式可以由本领域技术人员根据实际情况进行设置,本发明对此不作限制。
步骤S120:根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布。
在本步骤中,根据步骤S110中的分析结果,确定与每个数据分片集群中包含的空闲存储空间对应的存储容量,和/或位置分布等信息。其中,在确定与上述空闲存储空间对应的存储容量时,可以确定与上述空闲存储空间对应的空闲存储空间总存储容量、剩余存储容量、已用存储容量等信息;在确定上述空闲存储空间的位置分布时,可以确定多个空闲存储空间之间是否相邻或连续、非连续的多个空闲存储空间与其中的非空闲存储空间的相对位置信息等等。具体实施中,空闲存储空间的存储容量和/或位置分布的具体信息可以由本领域技术人员根据实际情况进行对应确定,本发明对需要确定的空闲存储空间的存储容量、以及位置分布的具体信息不作限制。
步骤S130:根据空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理。
在本步骤中,根据步骤S120中确定的空闲存储空间存储容量和/或位置分布等信息对对应的空闲存储空间进行整理,将多个零碎的空闲存储空间整合为一个较大的存储空间,从而使多个不能被利用的零碎的空闲存储空间可以得到有效利用。提升存储空间的利用率及分配效率。
其中,针对空闲存储空间进行整理的方式可以有多种,例如,在位置分布上,对于多个连续的空闲存储空间,可以通过将多个连续的空闲存储空间进行整合来获取一个较大的空闲存储空间;对多个非连续的空闲存储空间,可以通过转移间隔在多个非连续的空闲存储空间之间的非空闲存储空间中的存储数据,将非连续的存储空间转化为连续的空闲存储空间,并按照整合多个连续的空闲存储空间的方法对转化后的连续的空闲存储空间进行整合,等等。具体实施中,根据空闲存储空间的存储容量和/或位置分布对空闲存储空间进行整理的具体方式可以由本领域技术人员进行设置,本发明对此不作限制。
步骤S140:根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
具体地,元数据信息能够记录数据分片集群的数据存储状态,以便针对每个数据分片集群进行分配和管理。在本步骤中,将步骤S130中的整理结果更新到与每个分片集群的数据存储状态相对应的元数据信息中,以便保持数据分片集群的数据存储状态信息与其对应的元数据信息中记录的对应信息的一致性,同时,经过更新的元数据信息还能够进一步用于对整理结果进行管理,确保后续针对存储空间进行管理时的准确性。
由此可见,在本发明提供的基于分布式系统的存储空间整理的方法中,分布式系统至少包括多个分布式的数据分片集群,在对存储空间进行整理时,首先分别获取并分析每个数据分片集群的数据存储状态想对应的元数据信息,然后根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布,并根据确定结果对数据分片集群中包含的空闲存储空间进行整理,最后根据整理结果更新与该数据分片集群存储状态相对应的元数据信息。本发明中的方案能够解决在分布式系统中,由于无法对碎片化的存储空间进行有效整合和利用,导致大量可利用的存储空间被浪费,同时给存储空间的分配和管理都造成不便的问题,本发明能够对碎片化的存储空间进行有效整合和分配,提升了存储空间的利用率及分配效率,同时也实现了针对存储空间的有效管理。
实施例二
为了便于理解,在详细介绍本实施例的实现方案之前,先介绍本实施例中的分布式系统。其中,本实施例中的分布式系统至少包括多个分布式的数据分片集群。如图2a和图2b所示,图2a示出了本发明中的分布式系统200的结构示意图;图2b示出了分布式系统200中每个数据分片集群包含的数据节点的示意图。
具体地,分布式系统200包括路由节点210、配置节点(也叫config节点)220、以及与路由节点210相连接的多个数据分片集群230。其中,图2a所示的分布式系统200包含一个路由节点210、以及一个config节点220。但是具体实施中,为了提升灾备能力,路由节点210、以及config节点220分别可以有多个。图2b示出了分布式系统200中每个数据分片集群包含的数据节点的示意图。具体地,每个数据分片集群中进一步包括三个数据节点,分别为图2b所示的M节点(主节点)、S节点(从节点)以及A节点(投票节点)。其中,S节点中存储的数据是M节点数据的镜像数据,相当于M节点的备份数据。当M节点的数据出现故障时,通过A节点使S节点与M节点进行调换,以此来保证存储数据的安全与准确。
其中,路由节点210中设置有对应的路由规则,按照该路由规则能够实现屏蔽分片结构,获取完整数据的目的。具体地,由于在分布式系统中,一个完整的数据被进行切分,形成多个数据分片,每个数据分片被存储在对应的数据分片集群中(不同的数据分片集群中存储的数据是不同的),对应地,多个数据分片则被存储在多个数据分片集群中。但是,在互联网业务使用中,由于读取或者写入的数据必须保证是一个完整的数据,而不是分散在多个数据分片集群中的多个数据分片,因此在分布式系统中,对于与一个完整数据对应的多个数据分片,需要设定一定规则去读取该完整数据分散在多个数据分片集群中的数据分片,使读取出的数据分片能够组成对应的完整数据;同样地,在向分布式系统中的多个数据分片集群中写入数据分片时,也需要设置一定的规则,以保证写入的多个数据分片在被读取时能够组成对应的完整数据。因此路由节点中设置有对应的路由规则,用于实现上述针对数据的读取以及写入过程。具体实施中,上述路由规则的实现一般包括两种,一种为范围规则,一种为哈希规则。其中,范围规则是指将一定范围内的数据分片存储到对应的数据分片集群中。例如,一共有30个数据分片,编号分别为1、2、3...30,一共有三个数据分片集群,分别为集群1、集群2以及集群3。在使用范围规则时,其具体为:将上述编号为1-10的数据分片对应存储到集群1、将上述编号为11-20的数据分片对应存储到集群2、将上述编号为21-30的数据分片对应存储到集群3。另一种规则为哈希规则(也可以叫做随机规则),即通过对每个数据分片进行哈希计算,并根据哈希计算结果确定与每个数据分片对应的数据分片集群。在这里,无论上述那种路由规则,其目的都是为了能够在使用业务时能够读取到完整的数据,保证数据写入与读取的完整性。
config节点中存储有记录各个数据分片集群的位置信息、变更日志等信息的元数据信息。当数据分片集群中的数据出现变化(例如对存储的数据进行插入、删除、拆分以及迁移等相关操作)时,对应的数据变化被记录在config节点中。
由于分布式系统中包含多个数据分片集群,为了使存储的数据被均匀分配在多个数据分片集群,分布式系统的机制中还包括均衡机制(或者叫balance机制)。该均衡机制用于实现:当多个数据分片集群中存储的数据量相差较大时,则将存储的数据量相对较大的数据分片集群中的存储数据按照均衡机制转移到存储的数据量相对较小的数据分片集群,使各个数据分片集群中存储的数据量实现均衡。数据均衡操作中会对数据进行数据转移,进行数据转移后的存储空间会被设置上对应的标记,以表明该存储空间可以被写入新的数据。另外,均衡机制的实现还包括:例如,当存储的原始数据中要插入新的数据时,若新插入数据的数据量较大,则对该原始数据也进行迁移操作。例如,若存储有一条数据,该条数据中包括一个标识(ID)和一个名称(name),在为该条数据分配存储空间时,只需要分配足够存储上述一个ID和一个name的存储空间即可。例如数据分片集群1中的剩余存储空间刚好或者略大于上述包含一个ID和一个name的数据的占用空间,则将该条数据存储在数据分片集群1中。但是,在后续存储数据的过程中,针对该条数据需要插入一个简历信息,该简历信息占用的存储空间较大,存储该条数据的存储空间不够存储上述简历信息,则对应将包含一个ID和一个name的数据进行迁移,例如,通过相关计算确定数据分片集群2中的剩余存储空间足够存储插入简历信息后的数据,则将该条数据从数据分片集群1迁移到数据分片集群2中,同时在数据分片集群2中对这条数据进行插入简历信息的操作。同时,在进行上述迁移操作之后,将每条数据的迁移操作的相关信息(例如,原存储的数据分片集群信息、数据大小、数据位置等信息,以及现存储的数据分片集群信息、数据大小、数据位置等信息)同步更新到config节点中。
以上是针对本实施例中分布式系统的简单介绍。分布式系统的优点在于实现了存储空间的无限扩容,即图2中的数据分片集群的数量可以无限增加,存储空间的大小可以无限扩展。
下面来详细介绍本实施例中的方案。其中,本实施例中的方法执行主体可以为分布式系统中的路由节点,或者,也可以为分布式系统中的各个数据分片集群。图3示出了根据本发明实施例二提供的基于分布式系统的存储空间整理方法的流程示意图。如图3所示,该方法包括以下步骤:
步骤S310:分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息。
具体地,分布式系统至少包括多个分布式的数据分片集群。在分布式系统中,为了提升存储容量,可以将待存储的数据切分为多个分片,将各个分片分别存储在不同的数据分片集群上。因此,数据分片集群的具体数量可以根据存储的数据量进行设定或调整,本发明对此不作限定。元数据主要用于记录已存储的数据的属性信息,元数据的具体内容可以包括多种。例如,元数据用于记录各条存储数据的具体内容、存储位置、数据大小等。利用元数据能够实现历史数据查询、资源查找、文件记录等多种功能。其中,通过元数据记录的上述信息统称为元数据信息。
其中,在本实施例中,由于分布式系统中包括用于存储与各个数据分片集群的数据存储状态相对应的元数据信息的配置服务器(即上述的config节点),因此,在获取与每个数据分片集群的数据存储状态相对应的元数据信息时,通过上述配置服务器来获取。具体地,针对每个数据分片集群,首先从config节点中获取与该数据分片集群的数据存储状态相对应的元数据信息,然后对该元数据信息进行分析,从元数据信息中查找包含空闲标记的存储空间,并将查找到的存储空间确定为空闲存储空间。其中,上述空闲标记可以包括:因数据均衡操作、数据更新操作和/或数据删除操作而产生的无效标记和/或删除标记。具体地,在分布式系统中,当一条数据被删除后,该数据所占用的存储空间会被对应设置删除标记,设置有删除标记的存储空间中的数据可以被涂改,以表明删除数据后的存储空间能够进行复用(即该存储空间可以被重新写入新的数据)。同样地,数据在进行数据均衡操作、数据更新操作等相关操作后也会产生上述类似的可以被复用的存储空间,同时该存储空间也会被对应设置删除标记和/或无效标记,以表明该存储空间可以被进行复用。因此,在确定空闲存储空间时,只要确定与该数据分片集群的数据存储状态相对应的元数据信息中包含有空闲标记,与该元数据对应的存储空间则可以确定为空闲存储空间。
具体实施中,为了便于实现数据的存储和管理,每个数据分片集群包括多个用于存储数据的数据单元,相应地,每个数据分片集群中包含的空闲存储空间的存储容量和/或位置分布具体为:该数据分片集群中的各个空闲数据单元的存储容量,和/或各个空闲数据单元的位置分布。其中,数据单元的划分粒度可由本领域技术人员灵活设定。例如,上述数据单元还可以包括以下中的至少一种:数据块、数据分区、以及数据子分区。其中,一个数据块包括至少一个数据分区,一个数据分区包括至少一个数据子分区。其中,每个数据块的容量大小一般为64MB,具体实施中,每个数据块的大小还可以根据存储文件的大小进行调整,例如某个文件太大了,一个数据块的容量不够存储一个文件,则可以将该数据块的容量由默认的64MB调整为128MB、256MB或更大容量,以实现对对应文件的存储。在这里,上述数据块的容量大小可以由本领域技术人员根据实际情况进行调整,本发明对此不作限制。同样地,数据分区、或者数据子分区的设置以及调整方式与数据块类似,此处不再赘述。本领域技术人员可根据实际需求确定数据单元的具体粒度,例如,若只需针对大块的空闲空间进行整理,可以将各个数据块作为最小的数据单元;又如,若需要针对细碎的空闲空间进行整理,可以将各个数据子分区作为最小的数据单元。
步骤S320:根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布。
具体地,在本实施例中,根据步骤S310中确定的空闲存储空间,进一步根据与该空闲存储空间对应的元数据信息确定该空闲存储空间的存储容量和/或位置分布信息。
其中,由于每个数据分片集群包括多个用于存储数据的数据单元。则确定数据分片集群中包含的空闲存储空间的存储容量具体可以为:确定该数据分片集群中的各个空闲数据单元的存储容量;确定数据分片集群中包含的空闲存储空间的位置分布具体可以为:确定各个空闲数据单元的位置分布。
具体地,在确定各个空闲数据单元的位置分布时,其具体过程可以为:根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元。具体地,在一种可选的方案中,若多个空闲数据单元中,每两个相邻的空闲数据单元之间没有非空闲数据单元,则将上述多个空闲数据单元确定为位置相邻且连续的多个空闲数据单元。
在另一种可选的方案中,若多个空闲数据单元中,至少两个相邻的空闲数据单元之间具有非空闲数据单元,且上述非空闲数据单元中的已存储数据量小于预设阈值,则针对上述非空闲数据单元中已存储的全部数据执行数据迁移操作,并将上述多个空闲数据单元以及执行数据迁移操作后的非空闲数据单元确定为位置相邻且连续的多个空闲数据单元。其中,上述预设阈值的具体数值可以由本领域技术人员根据实际情况进行设置,本发明对此不作限制。上述经过数据迁移操作的存储单元被设置有空闲标记,因此该存储单元可以看作是空闲存储单元。
在这里,要说明的是,位置相邻且连续的多个空闲数据单元的确定方式包括但不限于上述两种实现方式,在具体实施中,本领域技术人员还可以根据实际情况将上述确定方式设置为其它实现方式,只要能够确定位置相邻且连续的多个空闲数据单元,本发明对其具体的确定方式不作限制。
本领域技术人员能够理解的是,上述的空闲存储单元既可以是数据块、也可以是数据分区或者数据子分区,具体取决于本发明的整理粒度。
步骤S330:针对位置相邻且连续的多个空闲数据单元进行整理。
具体地,本步骤实现的方式可以有多种。其中,在一种可选的方案中,可以将位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元,并为该待分配数据单元设置对应的待分配标记。本方案直接将位置相邻且连续的多个空闲数据单元合并为一个更大的存储空间(待分配数据单元),实现了对多个空闲数据单元直接且快速的合并。在该种方式中,只是将位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元,具体地,将位置相邻且连续的多个空闲数据单元合并为一个整体性空间,并为该整体性空间赋予待分配标记。该待分配标记用于表明:该整体性空间为空闲的、尚未分配的空间。即:尚未将该整体性空间划分为若干个具体大小的数据单元。例如,假设位置相邻且连续的多个空闲数据单元合并后得到的整体性空间的大小为900M,该900M空间对应于待分配标记,因而在后续过程中,本领域技术人员可以将这900M空间划分为若干个数据单元,并根据待存储的数据大小分别设定各个数据单元的大小。由此可见,待分配的数据单元在后续过程中的灵活性较大,可根据存储需要灵活划分为至少一个相等或不等的数据单元。
在另一种可选的方案中,将位置相邻且连续的多个空闲数据单元回收后重新分配为一个或多个待使用数据单元。其中,设定各个待使用数据单元的存储容量,并为各个待使用数据单元设置对应的待使用标记。在本方案中,首先将位置相邻且连续的多个空闲数据单元进行回收,然后根据存储数据的大小对回收的多个空闲数据单元进行整合,获取与存储数据大小对应的存储空间,使整合后的空闲数据单元能够被直接使用;或者,也可以根据步骤S320中设置的数据块、数据分区或者数据子分区的容量大小对回收的多个空闲数据单元进行整合,将多个空闲数据单元整合成多个数据块、数据分区或者数据子分区等等,并为其设置对应的待使用标记,以表明该数据单元能够被直接使用。例如,假设位置相邻且连续的多个空闲数据单元回收后得到的整体性空间的大小为600MB,进一步地,将该600MB存储空间进一步划分为三个设定大小的数据单元,例如,每个数据单元分别为100MB、200MB和300MB,并分别为每个数据单元设置待使用标记。由此可见,在本方案中,针对回收后的存储空间设定了数据单元的数量及每个数据单元的容量,因此在后续对数据进行分配存储时,可以直接根据各个待使用的存储空间的存储容量对数据进行存储。在这里,要说明的是,上述两种方案可以单独使用,也可以结合使用。
可选地,在针对位置相邻且连续的多个空闲数据单元进行整理时,其过程还可以为:根据位置相邻且连续的多个空闲数据单元的存储容量总和,对位置相邻且连续的多个空闲数据单元进行整理。具体实施中,例如,可以设置一个存储容量阈值,根据位置相邻且连续的多个空闲数据单元的存储容量总和与该存储容量阈值之间的关系确定具体的整理方案。例如,当上述多个空闲数据单元的存储容量总和大于上述存储容量阈值时,对上述位置相邻且连续的多个空闲数据单元进行合并。或者,还可以将位置相邻且连续的多个空闲数据单元的存储容量总和与相邻的非空闲的存储空间的存储容量进行比较,若上述存储容量总和大于相邻的非空闲的存储空间的存储容量,则将上述非空闲的存储空间中的数据进行转移,使该非空闲的存储空间转化为空闲存储空间,然后对转化后的位置相邻且连续的多个空闲数据单元进行整合,等等。
另外,本领域技术人员还可以根据实际情况将针对位置相邻且连续的多个空闲数据单元进行整理的整理方式设置为除上述列举的方式以外的其它实现方式,只要能够对位置相邻且连续的多个空闲数据单元进行有效整合,本发明对其整理方式不作限制。
步骤S340:根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
具体地,元数据信息能够记录数据分片集群的数据存储状态,以便针对每个数据分片集群进行分配和管理。在本步骤中,根据步骤S330中的整理结果,更新配置服务器中存储的与该数据分片集群的数据存储状态相对应的元数据信息(即更新config节点中的元数据信息),以便保持数据分片集群的数据存储状态信息与其对应的元数据信息中记录的对应信息的一致性,同时,经过更新的元数据信息还能够进一步用于对整理结果进行管理,确保后续针对存储空间进行管理时的准确性。
在本发明提供的基于分布式系统的存储空间整理的方法中,能够获取分布式系统包括的多个分布式的数据分片集群对应的存储状态的元数据信息,并通过分析该元数据信息来确定每个数据分片集群中对应的空闲存储空间,并通过对该空闲存储空间的存储容量和/或位置分布进行分析来对数据分片集群中包含的空闲存储空间进行整理,将碎片化的、不能进行利用的空闲存储空间整合为一个较大的、可利用的存储空间,提升了存储空间的利用率及分配效率,同时也实现了针对存储空间的有效管理。另外,本实施例中的方案还可以对空闲存储空间进行更加细致的划分,使针对碎片化的空闲存储空间整理的准确性及针对碎片化的空闲存储空间利用率更高。
实施例三
图4示出了根据本发明实施例三提供的基于分布式系统的存储空间整理装置的结构框图。如图4所示,该装置包括:分析模块41、确定模块42、整理模块43以及更新模块44。
分析模块41适于分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息。
具体地,分布式系统至少包括多个分布式的数据分片集群。在分布式系统中,为了提升存储容量,可以将待存储的数据切分为多个分片,将各个分片分别存储在不同的数据分片集群上。因此,数据分片集群的具体数量可以根据存储的数据量进行设定或调整,本发明对此不作限定。元数据主要用于记录已存储的数据的属性信息,元数据的具体内容可以包括多种。例如,元数据用于记录各条存储数据的具体内容、存储位置、数据大小等。利用元数据能够实现历史数据查询、资源查找、文件记录等多种功能。其中,通过元数据记录的上述信息统称为元数据信息。
可选地,在本实施例的分布式系统中,还可以设置用于存储与各个数据分片集群的数据存储状态相对应的元数据信息的配置服务器,因此,在获取与每个数据分片集群的数据存储状态相对应的元数据信息时,通过上述配置服务器来获取。针对每个数据分片集群,分析模块41首先获取与该数据分片集群的数据存储状态相对应的元数据信息,然后对该元数据信息进行分析,从元数据信息中查找包含空闲标记的存储空间,并将查找到的存储空间确定为空闲存储空间。其中,上述空闲标记可以包括:因数据均衡操作、数据更新操作和/或数据删除操作而产生的无效标记和/或删除标记。具体地,在分布式系统中,当一条数据被删除后,该数据所占用的存储空间会被对应设置删除标记,设置有删除标记的存储空间中的数据可以被涂改,以表明删除数据后的存储空间能够进行复用(即该存储空间可以被重新写入新的数据)。同样地,数据在进行数据均衡操作、数据更新操作等相关操作后也会产生上述类似的可以被复用的存储空间,同时该存储空间也会被对应设置删除标记和/或无效标记,以表明该存储空间可以被进行复用。因此,在确定空闲存储空间时,只要确定与该数据分片集群的数据存储状态相对应的元数据信息中包含有空闲标记,与该元数据对应的存储空间则可以确定为空闲存储空间。
确定模块42适于根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布。
具体地,确定模块42根据分析模块41确定的空闲存储空间,从与该空闲存储空间对应的元数据信息中获取该空闲存储空间的存储容量和/或位置分布信息。
其中,每个数据分片集群还可以被划分为多个用于存储数据的数据单元。则确定数据分片集群中包含的空闲存储空间的存储容量具体可以为:确定该数据分片集群中的各个空闲数据单元的存储容量;同样地,确定数据分片集群中包含的空闲存储空间的位置分布具体可以为:确定各个空闲数据单元的位置分布。其中,上述划分数据单元的划分方式以及划分的数据单元的容量大小可以由本领域技术人员根据实际情况进行设置,本发明对此不作限制。
可选地,具体实施中,为了便于实现数据的存储和管理,每个数据分片集群包括多个用于存储数据的数据单元,相应地,每个数据分片集群中包含的空闲存储空间的存储容量和/或位置分布具体为:该数据分片集群中的各个空闲数据单元的存储容量,和/或各个空闲数据单元的位置分布。其中,数据单元的划分粒度可由本领域技术人员灵活设定。例如,针对上述每个数据单元,其存储空间还可以被进行进一步的细分。具体地,上述数据单元还可以进一步包括以下中的至少一种:数据块、数据分区、以及数据子分区。其中,一个数据块包括至少一个数据分区,一个数据分区包括至少一个数据子分区。则确定模块42在确定空闲存储空间的存储容量和/或位置分布时,可以进一步确定该数据分片集群中的各个空闲数据单元中的数据块、数据分区、或者数据子分区的存储容量,和/或各个空闲数据单元中的数据块、数据分区、或者数据子分区的位置分布。其中,每个数据块的容量大小一般为64MB,具体实施中,每个数据块的大小还可以根据存储文件的大小进行调整,例如某个文件太大了,一个数据块的容量不够存储一个文件,则可以将该数据块的容量由默认的64MB调整为128MB、256MB或更大容量,以实现对对应文件的存储。在这里,上述数据块的容量大小可以由本领域技术人员根据实际情况进行调整,本发明对此不作限制。同样地,数据分区、或者数据子分区的设置以及调整方式与数据块类似,此处不再赘述。本领域技术人员可根据实际需求确定数据单元的具体粒度,例如,若只需针对大块的空闲空间进行整理,可以将各个数据块作为最小的数据单元;又如,若需要针对细碎的空闲空间进行整理,可以将各个数据子分区作为最小的数据单元。
具体地,确定模块42在确定各个空闲数据单元的位置分布时,其具体过程可以为:根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元。具体地,在一种可选的方案中,若多个空闲数据单元中,每两个相邻的空闲数据单元之间没有非空闲数据单元,则确定模块42将上述多个空闲数据单元确定为位置相邻且连续的多个空闲数据单元。
在另一种可选的方案中,若多个空闲数据单元中,至少两个相邻的空闲数据单元之间具有非空闲数据单元,且上述非空闲数据单元中的已存储数据量小于预设阈值,则确定模块42针对上述非空闲数据单元中已存储的全部数据执行数据迁移操作,并将上述多个空闲数据单元以及执行数据迁移操作后的非空闲数据单元确定为位置相邻且连续的多个空闲数据单元。其中,上述预设阈值的具体数值可以由本领域技术人员根据实际情况进行设置,本发明对此不作限制。上述经过数据迁移操作的存储单元被设置有空闲标记,因此该存储单元可以看作是空闲存储单元。
在这里,要说明的是,位置相邻且连续的多个空闲数据单元的确定方式包括但不限于上述两种实现方式,在具体实施中,本领域技术人员还可以根据实际情况将确定模块42的确定方式设置为其它实现方式,只要能够确定位置相邻且连续的多个空闲数据单元,本发明对确定模块42的确定方式不作限制。
本领域技术人员能够理解的是,上述的空闲存储单元既可以是数据块、也可以是数据分区或者数据子分区,具体取决于本发明的整理粒度。
整理模块43适于根据空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理。
具体地,整理模块43对空闲存储空间进行整理的方式可以有多种。其中,在一种可选的方案中,整理模块43可以将位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元,并为该待分配数据单元设置对应的待分配标记。本方案直接将位置相邻且连续的多个空闲数据单元合并为一个更大的存储空间(待分配数据单元),实现了多个空闲数据单元直接且快速地合并。在该种方式中,只是将位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元,具体地,将位置相邻且连续的多个空闲数据单元合并为一个整体性空间,并为该整体性空间赋予待分配标记。该待分配标记用于表明:该整体性空间为空闲的、尚未分配的空间。即:尚未将该整体性空间划分为若干个具体大小的数据单元。例如,假设位置相邻且连续的多个空闲数据单元合并后得到的整体性空间的大小为900MB,该900MB空间对应于待分配标记,因而在后续过程中,本领域技术人员可以将这900MB空间划分为若干个数据单元,并根据待存储的数据大小分别设定各个数据单元的大小。由此可见,待分配的数据单元在后续过程中的灵活性较大,可根据存储需要灵活划分为至少一个相等或不等的数据单元。
在另一种可选的方案中,整理模块43将位置相邻且连续的多个空闲数据单元回收后重新分配为一个或多个待使用数据单元。其中,设定各个待使用数据单元的存储容量,并为各个待使用数据单元设置对应的待使用标记。在本方案中,整理模块43首先将位置相邻且连续的多个空闲数据单元进行回收,然后根据存储数据的大小对回收的多个空闲数据单元进行整合,获取与存储数据大小对应的存储空间,使整合后的空闲数据单元能够被直接使用;或者,也可以根据数据块、数据分区或者数据子分区的容量大小对回收的多个空闲数据单元进行整合,将多个空闲数据单元整合成多个数据块、数据分区或者数据子分区等等,并为其设置对应的待使用标记,以表明该数据单元能够被直接使用。例如,假设位置相邻且连续的多个空闲数据单元回收后得到的整体性空间的大小为600MB,进一步地,将该600MB存储空间进一步划分为三个设定大小的数据单元,例如,每个数据单元分别为100MB、200MB和300MB,并分别为每个数据单元设置待使用标记。由此可见,在本方案中,针对回收的存储空间设定了数据单元的数量及每个数据单元的容量,因此在后续对数据进行分配存储时,可以直接根据各个待使用的存储空间的存储容量对数据进行存储。在这里,要说明的是,上述两种方案可以单独使用,也可以结合使用。
可选地,整理模块43在针对位置相邻且连续的多个空闲数据单元进行整理时,其过程还可以为:根据位置相邻且连续的多个空闲数据单元的存储容量总和,对位置相邻且连续的多个空闲数据单元进行整理。具体实施中,例如,可以设置一个存储容量阈值,根据位置相邻且连续的多个空闲数据单元的存储容量总和与该存储容量阈值之间的关系确定具体的整理方案。例如,当上述多个空闲数据单元的存储容量总和大于上述存储容量阈值时,对上述位置相邻且连续的多个空闲数据单元进行合并。或者,还可以将位置相邻且连续的多个空闲数据单元的存储容量总和与相邻的非空闲的存储空间的存储容量进行比较,若上述存储容量总和大于相邻的非空闲的存储空间的存储容量,则对位置相邻且连续的多个空闲数据单元进行整合;或将非空闲的存储空间中的数据进行转移,使该非空闲的存储空间转化为空闲存储空间,然后对转化后的位置相邻且连续的多个空闲数据单元进行整合,等等。
另外,本领域技术人员还可以根据实际情况将整理模块43的整理方式设置为除上述列举的方式以外的其它实现方式,只要能够对位置相邻且连续的多个空闲数据单元进行有效整合,本发明对整理模块43的具体整理方式不作限制。
更新模块44适于根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
具体地,元数据信息能够记录数据分片集群的数据存储状态,以便针对每个数据分片集群进行分配和管理。在本步骤中,更新模块44将整理模块43的整理结果更新到与相应的数据分片集群的数据存储状态相对应的元数据信息中,以便保持数据分片集群的数据存储状态信息与其对应的元数据信息中记录的对应信息的一致性,同时,经过更新的元数据信息还能够进一步用于对整理结果进行管理,确保后续针对存储空间进行管理时的准确性。
可选地,当分布式系统中设置有配置服务器,并从该配置服务器中获取与各个数据分片集群的数据存储状态相对应的元数据信息时,更新模块44对应的更新过程为:根据整理结果更新上述配置服务器中存储的与该数据分片集群的数据存储状态相对应的元数据信息。
上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
在本发明提供的基于分布式系统的存储空间整理的装置中,分布式系统至少包括多个分布式的数据分片集群,在对存储空间进行整理时,首先通过分析模块41分别获取并分析每个数据分片集群的数据存储状态想对应的元数据信息,然后通过确定模块42根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布,并通过整理模块43根据确定结果对数据分片集群中包含的空闲存储空间进行整理,最后通过更新模块44根据整理结果更新与该数据分片集群存储状态相对应的元数据信息。由此可见,本发明中的方案能够解决在分布式系统中,由于无法对碎片化的存储空间进行有效整合和利用,导致大量可利用的存储空间被浪费,同时给存储空间的分配和管理都造成不便的问题。本发明能够对碎片化的存储空间进行有效整合和分配,提升了存储空间的利用率及分配效率,同时也实现了针对存储空间的有效管理。另外,本实施例中的方案还可以对空闲存储空间进行更加细致的划分,使针对碎片化的空闲存储空间整理的准确性及针对碎片化的空闲存储空间利用率更高。
实施例四
图5示出了根据本发明实施例四提供的分布式系统500的结构框图。如图5所示,该系统包括:基于分布式系统的存储空间整理装置400以及多个分布式的数据分片集群510。其中,基于分布式系统的存储空间整理装置400包括:分析模块41、确定模块42、整理模块43以及更新模块44。
实施例五
本申请实施例五提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于分布式系统的存储空间整理方法。
实施例六
图6示出了根据本发明实施例六的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述基于分布式系统的存储空间整理方法实施例中的相关步骤。具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
在一种可选的实施方式中,每个数据分片集群包括多个用于存储数据的数据单元,则每个数据分片集群中包含的空闲存储空间的存储容量和/或位置分布具体为:该数据分片集群中的各个空闲数据单元的存储容量,和/或各个空闲数据单元的位置分布;
程序610进一步使得处理器602执行以下操作:根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元,针对所述位置相邻且连续的多个空闲数据单元进行整理。
在一种可选的实施方式中,程序610进一步使得处理器602执行以下操作:若多个空闲数据单元中,每两个相邻的空闲数据单元之间没有非空闲数据单元,则将所述多个空闲数据单元确定为位置相邻且连续的多个空闲数据单元;或者,若多个空闲数据单元中,至少两个相邻的空闲数据单元之间具有非空闲数据单元,且所述非空闲数据单元中的已存储数据量小于预设阈值,则针对所述非空闲数据单元中已存储的全部数据执行数据迁移操作,并将所述多个空闲数据单元以及执行数据迁移操作后的非空闲数据单元确定为位置相邻且连续的多个空闲数据单元。在一种可选的实施方式中,程序610进一步使得处理器602执行以下操作:将所述位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元;其中,为该待分配数据单元设置对应的待分配标记;或者,将所述位置相邻且连续的多个空闲数据单元回收后重新分配为一个或多个待使用数据单元;其中,设定各个待使用数据单元的存储容量,并为各个待使用数据单元设置对应的待使用标记。在一种可选的实施方式中,程序610进一步使得处理器602执行以下操作:根据所述位置相邻且连续的多个空闲数据单元的存储容量总和,对所述位置相邻且连续的多个空闲数据单元进行整理。在一种可选的实施方式中,程序610进一步使得处理器602执行以下操作:从所述元数据信息中查找包含空闲标记的存储空间,并将查找到的存储空间确定为空闲存储空间;其中,所述空闲标记包括:因数据均衡操作、数据更新操作和/或数据删除操作而产生的无效标记和/或删除标记。在一种可选的实施方式中,所述数据单元包括以下中的至少一种:数据块、数据分区、以及数据子分区;其中,一个数据块包括至少一个数据分区,一个数据分区包括至少一个数据子分区。在一种可选的实施方式中,所述分布式系统进一步包括:用于存储与各个数据分片集群的数据存储状态相对应的元数据信息的配置服务器;
则程序610进一步使得处理器602执行以下操作:从所述配置服务器中获取与各个数据分片集群的数据存储状态相对应的元数据信息;根据整理结果更新所述配置服务器中存储的与该数据分片集群的数据存储状态相对应的元数据信息。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于分布式系统的存储空间整理设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种基于分布式系统的存储空间整理方法,其中,所述分布式系统至少包括多个分布式的数据分片集群,所述方法包括:分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;以及根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
A2.根据A1所述的方法,其中,每个数据分片集群包括多个用于存储数据的数据单元,则每个数据分片集群中包含的空闲存储空间的存储容量和/或位置分布具体为:该数据分片集群中的各个空闲数据单元的存储容量,和/或各个空闲数据单元的位置分布;且所述根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理的步骤具体包括:根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元,针对所述位置相邻且连续的多个空闲数据单元进行整理。
A3.根据A2所述的方法,其中,所述根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元的步骤具体包括:若多个空闲数据单元中,每两个相邻的空闲数据单元之间没有非空闲数据单元,则将所述多个空闲数据单元确定为位置相邻且连续的多个空闲数据单元;或者,若多个空闲数据单元中,至少两个相邻的空闲数据单元之间具有非空闲数据单元,且所述非空闲数据单元中的已存储数据量小于预设阈值,则针对所述非空闲数据单元中已存储的全部数据执行数据迁移操作,并将所述多个空闲数据单元以及执行数据迁移操作后的非空闲数据单元确定为位置相邻且连续的多个空闲数据单元。
A4.根据A2或A3所述的方法,其中,所述针对所述位置相邻且连续的多个空闲数据单元进行整理的步骤具体包括:将所述位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元;其中,为该待分配数据单元设置对应的待分配标记;或者,将所述位置相邻且连续的多个空闲数据单元回收后重新分配为一个或多个待使用数据单元;其中,设定各个待使用数据单元的存储容量,并为各个待使用数据单元设置对应的待使用标记。
A5.根据A2-A4任一所述的方法,其中,所述针对所述位置相邻且连续的多个空闲数据单元进行整理的步骤具体包括:根据所述位置相邻且连续的多个空闲数据单元的存储容量总和,对所述位置相邻且连续的多个空闲数据单元进行整理。
A6.根据A1-A5任一所述的方法,其中,所述分析与该数据分片集群的数据存储状态相对应的元数据信息的步骤具体包括:从所述元数据信息中查找包含空闲标记的存储空间,并将查找到的存储空间确定为空闲存储空间;其中,所述空闲标记包括:因数据均衡操作、数据更新操作和/或数据删除操作而产生的无效标记和/或删除标记。
A7.根据A2-A6任一所述的方法,其中,所述数据单元包括以下中的至少一种:数据块、数据分区、以及数据子分区;其中,一个数据块包括至少一个数据分区,一个数据分区包括至少一个数据子分区。
A8.根据A1-A7任一所述的方法,其中,所述分布式系统进一步包括:用于存储与各个数据分片集群的数据存储状态相对应的元数据信息的配置服务器;则所述分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息的步骤具体包括:从所述配置服务器中获取与各个数据分片集群的数据存储状态相对应的元数据信息;且所述根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息的步骤具体包括:根据整理结果更新所述配置服务器中存储的与该数据分片集群的数据存储状态相对应的元数据信息。
本发明还公开了:B9.一种基于分布式系统的存储空间整理装置,其中,所述分布式系统至少包括多个分布式的数据分片集群,所述装置包括:分析模块,适于分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;确定模块,适于根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;整理模块,适于根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;以及更新模块,适于根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
B10.根据B9所述的装置,其中,每个数据分片集群包括多个用于存储数据的数据单元,则每个数据分片集群中包含的空闲存储空间的存储容量和/或位置分布具体为:该数据分片集群中的各个空闲数据单元的存储容量,和/或各个空闲数据单元的位置分布;且所述整理模块具体用于:根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元,针对所述位置相邻且连续的多个空闲数据单元进行整理。
B11.根据B10所述的装置,其中,所述确定模块具体用于:
若多个空闲数据单元中,每两个相邻的空闲数据单元之间没有非空闲数据单元,则将所述多个空闲数据单元确定为位置相邻且连续的多个空闲数据单元;或者,若多个空闲数据单元中,至少两个相邻的空闲数据单元之间具有非空闲数据单元,且所述非空闲数据单元中的已存储数据量小于预设阈值,则针对所述非空闲数据单元中已存储的全部数据执行数据迁移操作,并将所述多个空闲数据单元以及执行数据迁移操作后的非空闲数据单元确定为位置相邻且连续的多个空闲数据单元。
B12.根据B10或B11所述的装置,其中,所述整理模块具体用于:
将所述位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元;其中,为该待分配数据单元设置对应的待分配标记;或者,将所述位置相邻且连续的多个空闲数据单元回收后重新分配为一个或多个待使用数据单元;其中,设定各个待使用数据单元的存储容量,并为各个待使用数据单元设置对应的待使用标记。
B13.根据B10-B12任一所述的装置,其中,所述整理模块具体用于:根据所述位置相邻且连续的多个空闲数据单元的存储容量总和,对所述位置相邻且连续的多个空闲数据单元进行整理。
B14.根据B9-B13任一所述的装置,其中,所述分析模块具体用于:从所述元数据信息中查找包含空闲标记的存储空间,并将查找到的存储空间确定为空闲存储空间;其中,所述空闲标记包括:因数据均衡操作、数据更新操作和/或数据删除操作而产生的无效标记和/或删除标记。
B15.根据B10-B14任一所述的装置,其中,所述数据单元包括以下中的至少一种:数据块、数据分区、以及数据子分区;其中,一个数据块包括至少一个数据分区,一个数据分区包括至少一个数据子分区。
B16.根据B9-B15任一所述的装置,其中,所述分布式系统进一步包括:用于存储与各个数据分片集群的数据存储状态相对应的元数据信息的配置服务器;则所述分析模块具体用于:从所述配置服务器中获取与各个数据分片集群的数据存储状态相对应的元数据信息;且所述更新模块具体用于:根据整理结果更新所述配置服务器中存储的与该数据分片集群的数据存储状态相对应的元数据信息。
本发明还公开了:C17.一种分布式系统,包括B9-B16任一所述的存储空间整理装置,以及所述多个分布式的数据分片集群。
本发明还公开了:D18.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A8中任一项所述的存储空间整理方法对应的操作。
本发明还公开了:E19.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A8中任一项所述的存储空间整理方法对应的操作。
Claims (10)
1.一种基于分布式系统的存储空间整理方法,其中,所述分布式系统至少包括多个分布式的数据分片集群,所述方法包括:
分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;
根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;
根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;以及
根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
2.根据权利要求1所述的方法,其中,每个数据分片集群包括多个用于存储数据的数据单元,则每个数据分片集群中包含的空闲存储空间的存储容量和/或位置分布具体为:该数据分片集群中的各个空闲数据单元的存储容量,和/或各个空闲数据单元的位置分布;
且所述根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理的步骤具体包括:
根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元,针对所述位置相邻且连续的多个空闲数据单元进行整理。
3.根据权利要求2所述的方法,其中,所述根据各个空闲数据单元的位置分布,确定位置相邻且连续的多个空闲数据单元的步骤具体包括:
若多个空闲数据单元中,每两个相邻的空闲数据单元之间没有非空闲数据单元,则将所述多个空闲数据单元确定为位置相邻且连续的多个空闲数据单元;或者,
若多个空闲数据单元中,至少两个相邻的空闲数据单元之间具有非空闲数据单元,且所述非空闲数据单元中的已存储数据量小于预设阈值,则针对所述非空闲数据单元中已存储的全部数据执行数据迁移操作,并将所述多个空闲数据单元以及执行数据迁移操作后的非空闲数据单元确定为位置相邻且连续的多个空闲数据单元。
4.根据权利要求2或3所述的方法,其中,所述针对所述位置相邻且连续的多个空闲数据单元进行整理的步骤具体包括:
将所述位置相邻且连续的多个空闲数据单元合并为一个待分配数据单元;其中,为该待分配数据单元设置对应的待分配标记;或者,
将所述位置相邻且连续的多个空闲数据单元回收后重新分配为一个或多个待使用数据单元;其中,设定各个待使用数据单元的存储容量,并为各个待使用数据单元设置对应的待使用标记。
5.根据权利要求2-4任一所述的方法,其中,所述针对所述位置相邻且连续的多个空闲数据单元进行整理的步骤具体包括:
根据所述位置相邻且连续的多个空闲数据单元的存储容量总和,对所述位置相邻且连续的多个空闲数据单元进行整理。
6.根据权利要求1-5任一所述的方法,其中,所述分析与该数据分片集群的数据存储状态相对应的元数据信息的步骤具体包括:
从所述元数据信息中查找包含空闲标记的存储空间,并将查找到的存储空间确定为空闲存储空间;
其中,所述空闲标记包括:因数据均衡操作、数据更新操作和/或数据删除操作而产生的无效标记和/或删除标记。
7.一种基于分布式系统的存储空间整理装置,其中,所述分布式系统至少包括多个分布式的数据分片集群,所述装置包括:
分析模块,适于分别针对每个数据分片集群,获取并分析与该数据分片集群的数据存储状态相对应的元数据信息;
确定模块,适于根据分析结果确定该数据分片集群中包含的空闲存储空间的存储容量和/或位置分布;
整理模块,适于根据所述空闲存储空间的存储容量和/或位置分布对该数据分片集群中包含的空闲存储空间进行整理;以及
更新模块,适于根据整理结果更新与该数据分片集群的数据存储状态相对应的元数据信息。
8.一种分布式系统,包括权利要求7所述的存储空间整理装置,以及所述多个分布式的数据分片集群。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的存储空间整理方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-6中任一项所述的存储空间整理方法对应的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710555164.4A CN107368260A (zh) | 2017-06-30 | 2017-06-30 | 基于分布式系统的存储空间整理方法、装置及系统 |
PCT/CN2018/079241 WO2019001020A1 (zh) | 2017-06-30 | 2018-03-16 | 基于分布式系统的存储空间整理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710555164.4A CN107368260A (zh) | 2017-06-30 | 2017-06-30 | 基于分布式系统的存储空间整理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368260A true CN107368260A (zh) | 2017-11-21 |
Family
ID=60306015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710555164.4A Pending CN107368260A (zh) | 2017-06-30 | 2017-06-30 | 基于分布式系统的存储空间整理方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107368260A (zh) |
WO (1) | WO2019001020A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762678A (zh) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种存储空间回收方法、系统、装置及可读存储介质 |
CN109039801A (zh) * | 2018-06-29 | 2018-12-18 | 北京奇虎科技有限公司 | 分布式集群的套餐超用检测方法及装置、计算设备 |
WO2019001020A1 (zh) * | 2017-06-30 | 2019-01-03 | 北京奇虎科技有限公司 | 基于分布式系统的存储空间整理方法、装置及系统 |
CN109445701A (zh) * | 2018-10-26 | 2019-03-08 | 北京计算机技术及应用研究所 | 一种双控磁盘阵列的自动精简配置同步方法 |
CN109831540A (zh) * | 2019-04-12 | 2019-05-31 | 成都四方伟业软件股份有限公司 | 分布式存储方法、装置、电子设备及存储介质 |
CN110019125A (zh) * | 2017-11-27 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据库管理的方法和装置 |
CN111338977A (zh) * | 2018-12-18 | 2020-06-26 | 西部数据技术公司 | 具有数据整形存储器分区的非易失性存储系统 |
CN111580840A (zh) * | 2020-03-27 | 2020-08-25 | 惠州市德赛西威汽车电子股份有限公司 | 一种基于分布式内存管理实现ecu更新的方法 |
WO2020224023A1 (zh) * | 2019-05-08 | 2020-11-12 | 厦门网宿有限公司 | 一种分布式存储系统中的重新分片方法及系统 |
CN113051221A (zh) * | 2021-03-31 | 2021-06-29 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567218A (zh) * | 2010-12-17 | 2012-07-11 | 微软公司 | 用于数据去重复块存储的垃圾收集和热点释放 |
CN103116552A (zh) * | 2013-03-18 | 2013-05-22 | 华为技术有限公司 | 用于在分布式存储系统中分配存储空间的方法和装置 |
CN105589812A (zh) * | 2015-12-16 | 2016-05-18 | 成都华为技术有限公司 | 磁盘碎片整理方法、装置及主机 |
CN106469120A (zh) * | 2016-08-30 | 2017-03-01 | 华为技术有限公司 | 碎片整理方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678562A (zh) * | 2011-12-27 | 2014-03-26 | 北京奇虎科技有限公司 | 容量获取方法和文件数据分配方法 |
CN103366016B (zh) * | 2013-08-01 | 2017-06-09 | 南京大学 | 基于hdfs的电子文件集中存储及优化方法 |
CN104731921B (zh) * | 2015-03-26 | 2018-03-30 | 江苏物联网研究发展中心 | Hadoop分布式文件系统针对日志型小文件的存储和处理方法 |
CN107368260A (zh) * | 2017-06-30 | 2017-11-21 | 北京奇虎科技有限公司 | 基于分布式系统的存储空间整理方法、装置及系统 |
-
2017
- 2017-06-30 CN CN201710555164.4A patent/CN107368260A/zh active Pending
-
2018
- 2018-03-16 WO PCT/CN2018/079241 patent/WO2019001020A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567218A (zh) * | 2010-12-17 | 2012-07-11 | 微软公司 | 用于数据去重复块存储的垃圾收集和热点释放 |
CN103116552A (zh) * | 2013-03-18 | 2013-05-22 | 华为技术有限公司 | 用于在分布式存储系统中分配存储空间的方法和装置 |
CN105589812A (zh) * | 2015-12-16 | 2016-05-18 | 成都华为技术有限公司 | 磁盘碎片整理方法、装置及主机 |
CN106469120A (zh) * | 2016-08-30 | 2017-03-01 | 华为技术有限公司 | 碎片整理方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
赵生辉: "《数字纽带》", 31 March 2014, 陕西师范大学出版总社有限公司 * |
边馥苓: "《时空大数据的技术与方法》", 31 May 2016, 测绘出版社 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019001020A1 (zh) * | 2017-06-30 | 2019-01-03 | 北京奇虎科技有限公司 | 基于分布式系统的存储空间整理方法、装置及系统 |
CN110019125A (zh) * | 2017-11-27 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据库管理的方法和装置 |
CN108762678A (zh) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种存储空间回收方法、系统、装置及可读存储介质 |
CN108762678B (zh) * | 2018-05-30 | 2021-11-09 | 郑州云海信息技术有限公司 | 一种存储空间回收方法、系统、装置及可读存储介质 |
CN109039801B (zh) * | 2018-06-29 | 2021-09-28 | 北京奇虎科技有限公司 | 分布式集群的套餐超用检测方法及装置、计算设备 |
CN109039801A (zh) * | 2018-06-29 | 2018-12-18 | 北京奇虎科技有限公司 | 分布式集群的套餐超用检测方法及装置、计算设备 |
CN109445701A (zh) * | 2018-10-26 | 2019-03-08 | 北京计算机技术及应用研究所 | 一种双控磁盘阵列的自动精简配置同步方法 |
CN109445701B (zh) * | 2018-10-26 | 2021-02-23 | 北京计算机技术及应用研究所 | 一种双控磁盘阵列的自动精简配置同步方法 |
CN111338977A (zh) * | 2018-12-18 | 2020-06-26 | 西部数据技术公司 | 具有数据整形存储器分区的非易失性存储系统 |
CN111338977B (zh) * | 2018-12-18 | 2023-06-30 | 西部数据技术公司 | 具有数据整形存储器分区的非易失性存储系统 |
CN109831540A (zh) * | 2019-04-12 | 2019-05-31 | 成都四方伟业软件股份有限公司 | 分布式存储方法、装置、电子设备及存储介质 |
WO2020224023A1 (zh) * | 2019-05-08 | 2020-11-12 | 厦门网宿有限公司 | 一种分布式存储系统中的重新分片方法及系统 |
US11314701B2 (en) | 2019-05-08 | 2022-04-26 | Xiamen Wangsu Co. Ltd. | Resharding method and system for a distributed storage system |
CN111580840A (zh) * | 2020-03-27 | 2020-08-25 | 惠州市德赛西威汽车电子股份有限公司 | 一种基于分布式内存管理实现ecu更新的方法 |
CN113051221A (zh) * | 2021-03-31 | 2021-06-29 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
CN113051221B (zh) * | 2021-03-31 | 2023-06-30 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2019001020A1 (zh) | 2019-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368260A (zh) | 基于分布式系统的存储空间整理方法、装置及系统 | |
US9740706B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US20230400990A1 (en) | System and method for performing live partitioning in a data store | |
AU2014262240B2 (en) | Entity resolution from documents | |
US9372911B2 (en) | System and method for performing replica copying using a physical copy mechanism | |
US10339123B2 (en) | Data management for tenants | |
US11966841B2 (en) | Search acceleration for artificial intelligence | |
US9135071B2 (en) | Selecting processing techniques for a data flow task | |
DE112020003277T5 (de) | Erzeugen von tags für die datenzuweisung | |
CN105373613A (zh) | 基于策略的储存结构分布 | |
US20160034587A1 (en) | Efficient join-filters for parallel processing | |
CN104182898A (zh) | 银行系统对夜模式期间发生的联机交易进行补录的方法 | |
CN105718217A (zh) | 一种精简配置存储池数据一致性维护的方法及装置 | |
CN107451013A (zh) | 基于分布式系统的数据恢复方法、装置及系统 | |
CN108595268A (zh) | 一种基于MapReduce的数据分配方法、装置及计算机可读存储介质 | |
Sinha et al. | A novel K-means based clustering algorithm for big data | |
CN110427364A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN107609011A (zh) | 一种数据库记录的维护方法和装置 | |
CN106844491A (zh) | 一种临时数据的写入、读取方法及写入、读取装置 | |
CN109788013B (zh) | 分布式系统中作业资源分配方法、装置及设备 | |
CN106777265A (zh) | 一种业务数据的处理方法及装置 | |
CN105117169B (zh) | 一种优化的磁盘空间管理的方法及装置 | |
CN107798007A (zh) | 一种分布式数据库数据校验的方法、装置及相关装置 | |
CN102955808A (zh) | 一种数据获取方法和分布式文件系统 | |
CN106503260A (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 |
Application publication date: 20171121 |
|
RJ01 | Rejection of invention patent application after publication |