掌桥专利:专业的专利平台
掌桥专利
首页

一种空间数据管理方法、系统及计算机可读存储介质

文献发布时间:2023-06-19 11:35:49


一种空间数据管理方法、系统及计算机可读存储介质

技术领域

本申请涉及数据存储和处理领域,尤其是涉及一种空间数据管理方法、系统及计算机可读存储介质。

背景技术

目前,空间数据是由许多类小文件组成的,如矢量数据业界通常的采用.gdb格式或者.shp格式或者其他种类格式,这些格式大部分包含多个小文件,又如地图瓦片,由许多文件大小在几KB到几十KB之间不等小文件组成。相关技术通常将这些由小文件组成的空间数据直接存放至操作系统自带的文件系统,虽然具有操作简便的优点,但是会产生以下三个问题:

一是导致过多的索引节点(inode),inode是文件的元数据信息,包括了文件的字节数、权限、文件块数量等信息,每个文件在都在磁盘上保存一个inode,在相同的容量下,小文件相较于大文件会产生大量的inode,海量小文件会达到文件系统的inode的上限,导致文件检索性能较低、极端情况下会造成无法继续写入文件。

二是形成磁盘碎片,大量的小文件没有存储在连续的磁盘空间,会导致非常多的磁盘碎片,这些不连续的磁盘存储会导致在读取小文件时,磁头耗费大量的时间在寻址定位,文件读写速度会大幅度降低。

三是导致存储空间膨胀,以Windows文件系统为例,磁盘管理的最小单元为簇(block),比如簇的最小空间为4KB,那么即便是1KB的文件也占用了4KB的硬盘空间,5KB则占用了8KB的硬盘空间,Linux等其他操作原理类似,因此小文件存储会导致磁盘占用空间膨胀。

基于以上3个问题,相关技术会导致操作系统对海量空间数据的小文件管理能力有限,数据容量有限、写入和读取效率极低。

发明内容

为了有助于提高空间数据的小文件的读写效率及管理能力,本申请提供了一种空间数据管理方法、系统及计算机可读存储介质。

第一方面,本申请提供一种空间数据管理方法,采用如下的技术方案:

一种空间数据管理方法,包括:

接收文件写入请求,生成存放数据的对象文件;

根据所述文件写入请求,将空间数据写入对象文件及生成索引文件,所述对象文件为文件系统的连续存储空间;

当空间数据需要写入所述文件系统时,获取所述空间数据的小文件对应的元数据信息及小文件内容;

将所述元数据信息及所述小文件内容写入所述对象文件;

将所述元数据信息写入至所述索引文件,并生成定位信息,所述定位信息用于在所述索引文件中定位所述元数据信息,所述元数据信息用于在所述对象文件中定位所述小文件内容。

通过采用上述技术方案,在进行空间数据写入之前,先按照对象文件生产请求生产对象文件及索引文件,对象文件是文件系统的磁盘空间中的一个连续存储空间,当空间数据需要写入文件系统时,获取空间数据的小文件对应的元数据信息及小文件内容,将元数据信息及小文件内容写入对象文件,将元数据信息写入至索引文件,并生成定位信息,从而在定位信息和小文件内容之间建立索引关联关系,相比于相关技术,由于小文件集中存储在连续存储空间的对象文件,使得海量小文件存储不会产生大量索引节点,不会形成磁盘碎片,不会导致磁盘占用空间膨胀,进而提高了空间数据的小文件的读写效率及管理能力。

可选的,所述获取所述空间数据的小文件对应的元数据信息及小文件内容,包括:

当空间数据需要写入所述文件系统时,获取所述空间数据的小文件对应的小文件内容,所述小文件的数量至少为一个;

根据所述小文件内容确定内容字节数;

根据所述内容字节数及预设元数据字节数,确定写入字节数;

判断所述对象文件的剩余存储空间是否满足所述写入字节数;

若满足,则确定起始字节位;

根据所述起始字节位及所述写入字节数,生成元数据信息;

若不满足,则不将所述空间数据写入至所述文件系统。

通过采用上述技术方案,小文件的实际内容是小文件内容,确定小文件内容的内容字节数,而与小文件对应的元数据信息,也需要进行保存,并且具有固定的字节数,根据内容字节数和预设元数据字节数,得到的写入字节数,就是存储小文件需要的存储空间,判断对象文件的剩余存储空间满足时,确定存储的起始字节位和写入字节数,生成元数据信息。元数据信息的生成确保了小文件内容的定位准确,并且对象文件的剩余存储空间的判断,保证了小文件能够写入到对象文件。

可选的,所述将所述元数据信息及所述小文件内容写入所述对象文件之后,还包括:

当所述元数据信息及所述小文件内容写入所述对象文件时,记录所述元数据信息及所述小文件内容的写入过程是否发生异常;

若所述元数据信息及所述小文件内容的写入过程无异常,则将所述元数据信息写入至所述索引文件,并生成定位信息;

若所述元数据信息及所述小文件内容的写入过程发生异常,则报告第一异常信息。

通过采用上述技术方案,在小文件进行写入的过程中,记录写入过程是否发生异常,没有异常时将元数据信息写入索引文件,并生成定位信息,发生异常,则报告第一异常信息,以提示元数据信息及小文件内容的写入过程中发生异常,需要进行处理。增加了小文件写入过程的异常检查,保证了写入过程的正确性。

可选的,所述将所述元数据信息写入至所述索引文件,并生成定位信息,包括:

将所述元数据信息写入至所述索引文件;

记录所述元数据信息的写入过程是否发生异常;

若所述元数据信息的写入过程无异常,则生成定位信息,所述定位信息用于在所述索引文件中定位所述元数据信息;

若所述元数据信息的写入过程发生异常,则报告第二异常信息。

通过采用上述技术方案,将元数据信息写入到索引文件时,记录写入过程是否发生异常,没有异常,生成定位信息,发生异常,生成第二异常信息,以提示元数据信息的写入过程中发生异常,需要进行处理。增加了元数据信息写入索引文件过程的异常检查,保证了写入过程的正确性。

可选的,所述方法还包括:

当需要从所述对象文件中读取目标小文件时,获取所述目标小文件对应的定位信息;

根据所述定位信息从所述索引文件中读取对应的元数据信息;

解析所述元数据信息得到起始字节位及写入字节数;

根据所述起始字节位及所述写入字节数从所述对象文件中读取得到所述目标小文件。

通过采用上述技术方案,在需要从对象文件中读取目标小文件时,按照目标小文件对应的定位信息,从索引文件中读取对应的元数据信息,按照元数据信息确定目标小文件写入对象文件时的起始字节位和写入字节数,从而能够简单的读取到目标小文件,不需要耗费时间寻址定位。

可选的,所述元数据信息还包括信息处理项,所述信息处理项用于表示所述小文件内容在所述对象文件中是否删除,

所述方法还包括:

将所述元数据信息的信息处理项标记为删除,并同步修改所述对象文件中的所述元数据信息,使得所述小文件内容实现软删除。

通过采用上述技术方案,元数据信息中除了起始字节位及写入字节数之外,还包括信息处理项,信息处理项用于表示小文件内容在对象文件中是否删除,先将元数据信息的信息处理项标记为删除,并且同步修改对象文件中的元数据信息,使得小文件内容实现了软删除。

可选的,所述方法还包括:

将所述小文件内容对应的修改文件写入至所述对象文件中,并将所述小文件内容从所述对象文件中删除。

通过采用上述技术方案,如果小文件进行了修改,那么需要将小文件内容对应的修改文件,先写入到对象文件中,再将小文件内容从对象文件中删除,实现了对象文件中小文件的修改。

可选的,所述方法还包括:

当所述元数据信息的信息处理项标记为删除时,定期从所述索引文件中读取出所述元数据信息;

根据所述元数据信息删除所述对象文件中对应的所述小文件内容及所述元数据信息,并删除所述索引文件中的所述元数据信息。

通过采用上述技术方案,当元数据信息的信息处理项标记为删除时,即已经软删除了,小文件内容实际在存储在对象文件中,为了释放存储空间,需要将软删除的小文件进行物理删除,先从索引文件中读取出元数据信息,按照元数据信息定位到对象文件中对应的小文件内容及元数据信息,再进行删除,之后删除索引文件中的元数据信息,实现了小文件的物理删除,释放了软删除之后的存储空间。

第二方面,本申请提供一种空间数据管理系统,采用如下的技术方案:

一种空间数据管理系统,包括:

中央节点、文件存储节点及文件系统;

所述中央节点,用于获取对象文件生成请求;

所述文件存储节点,用于根据所述对象文件生成请求生成对象文件及索引文件,所述对象文件为文件系统的连续存储空间;

所述文件存储节点,还用于当空间数据需要写入所述文件系统时,获取所述空间数据的小文件对应的元数据信息及小文件内容,将所述元数据信息及所述小文件内容写入所述对象文件,将所述元数据信息写入至所述索引文件,并生成定位信息,所述定位信息用于在所述索引文件中定位所述元数据信息,所述元数据信息用于在所述对象文件中定位所述小文件内容。

通过采用上述技术方案,在空间数据写入文件系统之前,中央节点获取对象文件生成请求,文件存储节点先按照对象文件生产请求生产对象文件及索引文件,对象文件是文件系统的磁盘空间中的一个连续存储空间,当空间数据需要写入文件系统时,文件存储节点获取空间数据的小文件对应的元数据信息及小文件内容,将元数据信息及小文件内容写入对象文件,将元数据信息写入至索引文件,并生成定位信息,从而在定位信息和小文件内容之间建立索引关联关系,相比于相关技术,由于小文件集中存储在连续存储空间的对象文件,即使海量小文件也不会产生大量索引节点,不会形成磁盘碎片,不会导致磁盘占用空间膨胀,进而提高了空间数据的小文件的读写效率及管理能力。

第三方面,本申请提供一种计算机可读存储介质,存储有能够被处理器加载并执行以上第一方面中的空间数据管理方法的计算机程序。

综上所述,本申请包括以下至少一种有益技术效果:

1.由于小文件集中存储在连续存储空间的对象文件,使得海量小文件存储不会产生大量索引节点,不会形成磁盘碎片,不会导致磁盘占用空间膨胀,进而提高了空间数据的小文件的读写效率及管理能力;

2.元数据信息中包括了起始字节位和写入字节数,确保了小文件内容在对象文件中的定位准确,并且对象文件的剩余存储空间的判断,保证了小文件能够顺利写入到对象文件。

附图说明

图1是本申请其中一实施例的空间数据管理方法的流程示意图。

图2是本申请其中一实施例的获取元数据信息及小文件内容的流程示意图。

图3是本申请其中一实施例的写入异常判断的第一流程示意图。

图4是本申请其中一实施例的写入异常判断的第二流程示意图。

图5是本申请其中一实施例的读取小文件的流程示意图。

图6是本申请其中一实施例的空间数据管理系统的结构示意图。

附图标记说明:601、中央节点;602、文件存储节点;603、文件系统。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图1-6及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例公开一种空间数据管理方法。

实施例1

参照图1,该方法的执行步骤包括:

101,获取对象文件生成请求。

其中,相关技术中操作系统自带的文件系统的磁盘空间,在存储海量的小文件时,是不连续的,因此,需要生成具有连续存储空间的对象文件,获取对象文件生成请求。

102,根据对象文件生成请求生成对象文件及索引文件。

其中,获取到对象文件生成请求之后,向操作系统申请连续存储空间,例如64GB的存储空间,用于存放空间数据的小文件的实际内容,那么生成的是64GB的后缀名为.dat(data的简写)的文件,即对象文件。同时创建一个后缀名为.idx(index的简写)的索引文件。

103,当空间数据需要写入文件系统时,获取空间数据的小文件对应的元数据信息及小文件内容。

其中,空间数据是地理信息领域的,空间数据由许多类小文件组成,如矢量数据业界通常的采用.gdb格式或者.shp格式或者其他种类格式,这些格式大部分包含多个小文件,又如地图瓦片,由许多文件大小在几KB到几十KB之间不等小文件组成。当空间数据需要写入文件系统时,获取空间数据的每一个小文件的对应的元数据信息及小文件内容。元数据信息相当于是小文件的索引节点(inode),用于在对象文件中定位小文件内容。

104,将元数据信息及小文件内容写入对象文件。

其中,元数据信息和小文件内容构成了小文件的共同内容,需要一起写入到对象文件中。

105,将元数据信息写入至索引文件,并生成定位信息。

其中,由于元数据信息是作为小文件内容的一个索引,需要保存到索引文件,那么所有小文件的实际内容都写入到了对象文件,而所有小文件的元数据信息都写入到索引文件中,并且生成元数据信息的定位信息,定位信息是用于在索引文件中定位出元数据信息。

实施例1的实施原理为:在进行空间数据写入之前,先按照对象文件生产请求生产对象文件及索引文件,当空间数据需要写入文件系统时,获取空间数据的小文件对应的元数据信息及小文件内容,将元数据信息及小文件内容写入对象文件,将元数据信息写入至索引文件,并生成定位信息,从而在定位信息和小文件内容之间建立索引关联关系,相比于相关技术,由于小文件集中存储在连续存储空间的对象文件,使得海量小文件存储不会产生大量索引节点,不会形成磁盘碎片,不会导致磁盘占用空间膨胀,进而提高了空间数据的小文件的读写效率及管理能力。

需要说明的是,在索引文件损坏的情况下,由于对象文件中保存和元数据信息和小文件内容,那么通过获取对象文件中的元数据信息吗,能够恢复构建索引文件;根据业务需要可以在多机房、多机架、多服务器、多磁盘间同时保存对象文件和索引文件,形成多副本;小文件写入后可以对比文件哈希值(HASH),HASH是根据文件内容计算得出,如计算md5,可以确保写入成功。以上都提高了存储的安全性能。

需要说明的是,索引文件可以缓存至内存,提升文件检索的效率;同时保存多个索引文件和对象文件,文件内容一致,可通过负载均衡机制从不同位置读取小文件,读取速率随着副本数量成倍提升。

除了优化空间数据中的小文件存储,大文件依然可以分片切割存储,可以利用多副本的存储的优势,提升读取效率。

除此之外,由于小文件的元数据信息和小文件内容保存在由索引文件和对象文件组成的对,不受单机的容量的限制,可以分布在多个磁盘和多个服务器中,而定位信息包含了可直接定位索引文件和对象文件的信息,无须统一的中央节点来存储和维护元数据信息,具备水平线性扩展能力,不会出现随着对象文件和索引文件对的增加而性能降低的问题。

实施例2

参照图2,本实施例与以上实施例1的不同之处在于,在步骤101中获取空间数据的小文件对应的元数据信息及小文件内容,具体的执行步骤包括:

201,当空间数据需要写入文件系统时,获取空间数据的小文件对应的小文件内容。

其中,在空间数据需要写入文件系统时,获取空间数据的每一个小文件对应的小文件内容,小文件内容即小文件的实际内容。

202,根据小文件内容确定内容字节数。

其中,由于空间数据的小文件都是数据方式的,那么小文件内容也是字节数据的方式,确定小文件内容的内容字节数。

203,根据内容字节数及预设元数据字节数,确定写入字节数。

其中,按照文件存储规则,需要对每个小文件配置元数据信息,元数据信息的内容具有固定的字节长度,可以作为预设元数据字节数,那么将内容字节数+预设元数据字节数,就可以确定实际上的写入字节数。

204,判断对象文件的剩余存储空间是否满足写入字节数,若满足,执行步骤205;若不满足,执行步骤207。

其中,对象文件可能已经存储了文件,或者在申请时存储空间有限,那么就需要判断对象文件的剩余存储空间能否满足写入字节数,如果满足,就可以写入,执行步骤205;如果不满足,执行步骤207。

205,确定起始字节位。

其中,在对象文件的剩余存储空间满足写入字节数时,由于对象文件是连续存储空间,那么从剩余存储空间的开始位置,作为起始字节位。

206,根据起始字节位及写入字节数,生成元数据信息。

其中,在确定了起始字节位之后,再结合写入字节数,就能得到小文件对应的内容在对象文件中的存储位置了,具有了索引功能,把起始字节位及写入字节数放入到元数据信息中。

207,不将空间数据写入至文件系统。

其中,如果对象文件的剩余存储空间满足写入字节数时,表明文件系统不能完整的写入空间数据,停止写入。

实施例2的实施原理为:小文件的实际内容称为小文件内容,确定小文件内容的内容字节数,预设元数据字节数是需要与小文件内容对应的元数据信息的字节数,内容字节数和预设元数据字节数之和为实际需要写入的写入字节数,判断对象文件的剩余存储空间满足写入字节数时,确定存储的起始字节位和写入字节数,生成元数据信息。元数据信息的生成确保了小文件的定位准确,并且对象文件的剩余存储空间的判断,保证了小文件能够写入到文件系统的对象文件中。

实施例3

参照图3,本实施例与以上实施例1和2的不同之处在于,增加了元数据信息及小文件内容写入过程中的异常检查,保证了写入过程的文件正确,将元数据信息及小文件内容写入对象文件之后,包括:

301,当元数据信息及小文件内容写入对象文件时,记录元数据信息及小文件内容的写入过程是否发生异常,若无异常,执行步骤302;若有异常,执行步骤303。

其中,在元数据信息及小文件内容写入对象文件时,记录写入过程中的异常情况,如果没有发生异常,表示正常的写入到了对象文件,执行步骤302;如果发生了异常,表示写入的时候出现问题,可能写入错误,执行步骤303。

302,将元数据信息写入至索引文件,并生成定位信息。

其中,在没有异常时,表示元数据信息和小文件内容正常的写入到了对象文件,此时需要将元数据信息写入至索引文件,生成定位信息。

303,报告第一异常信息。

其中,第一异常信息用于提示元数据信息及小文件内容的写入过程中发生异常,以方便用户或者操作系统进行处理。

实施例3的实施原理为:在小文件进行写入的过程中,记录写入过程是否发生异常,没有异常时将元数据信息写入索引文件,并生成定位信息,发生异常,则报告第一异常信息。增加了小文件写入过程的异常检查,保证了写入过程的正确性。

实施例4

参照图4,本实施例与以上实施例1-3的不同之处在于,增加了元数据信息写入索引文件的异常检查,保证了元数据信息的正确,将元数据信息写入至索引文件,并生成定位信息,包括:

401,将元数据信息写入至索引文件。

402,记录元数据信息的写入过程是否发生异常,若无异常,执行步骤403;若有异常,执行步骤404。

其中,在写入过程中记录是否发生了异常,如果没有异常,证明元数据信息完好的写入了索引文件,执行步骤403;如果发生异常,表明元数据信息没有完整的写入索引文件,执行步骤404。

403,生成定位信息。

其中,定位信息用于在索引文件中定位元数据信息。

404,报告第二异常信息。

其中,第二异常信息用于提示元数据信息的写入过程中发生异常,以方便用户或者操作系统进行处理。

实施例4的实施原理为:将元数据信息写入到索引文件时,记录写入过程是否发生异常,没有异常,生成定位信息,发生异常,生成第二异常信息。增加了元数据信息写入索引文件过程的异常检查,保证了写入过程的正确性。

实施例5

参照图5,本实施例与以上实施例1-4的不同之处在于,在以上实施例中完成了写入过程,并且得到了定位信息之后,进行读取的时候,具体的步骤包括:

501,当需要从对象文件中读取目标小文件时,获取目标小文件对应的定位信息。

其中,如果需要从对象文件中读取目标小文件,需要先获取目标小文件对应的定位信息。

502,根据定位信息从索引文件中读取对应的元数据信息。

其中,目标小文件对应的定位信息可以在索引文件中定位到元数据信息,因此根据定位信息可以从索引文件中读取出元数据信息。

503,解析元数据信息得到起始字节位及写入字节数。

其中,在以上实施例1-4中说明了元数据信息包括起始字节位和写入字节数,那么解析即可得到。

504,根据起始字节位及写入字节数从对象文件中读取得到目标小文件。

其中,已知了起始字节位和写入字节数的情况下,从对象文件中按照起始字节位开始读取,读取写入字节数的数据量,就得到了目标小文件。

实施例5的实施原理为:按照目标小文件对应的定位信息,从索引文件中读取对应的元数据信息,按照元数据信息确定目标小文件写入对象文件时的起始字节位和写入字节数,从而能够简单的读取到目标小文件,不需要耗费时间寻址定位。

优选的,本申请的一些实施例中,元数据信息还包括信息处理项,信息处理项用于表示小文件内容在对象文件中是否删除,

空间数据管理方法还包括:

将元数据信息的信息处理项标记为删除,并同步修改对象文件中的元数据信息,使得小文件内容实现软删除。

该实施例的原理为:元数据信息中除了起始字节位及写入字节数之外,还可以包括创建日期、修改日期、文件哈希值(HASH)、信息处理项等。 其中信息处理项具体用于表示小文件内容在对象文件中是否删除,先将元数据信息的信息处理项标记为删除,并且同步修改对象文件中的元数据信息,使得小文件内容实现了软删除。

优选的,本申请的一些实施例中,空间数据管理方法还包括:

将小文件内容对应的修改文件写入至对象文件中,并将小文件内容从对象文件中删除。

该实施例的原理为:如果小文件进行了修改,那么需要将小文件内容对应的修改文件,先写入到对象文件中,再将小文件内容从对象文件中删除,实现了对象文件中小文件的修改。

优选的,本申请的一些实施例中,空间数据管理方法还包括:

当元数据信息的信息处理项标记为删除时,定期从索引文件中读取出元数据信息;

根据元数据信息删除对象文件中对应的小文件内容及元数据信息,并删除索引文件中的元数据信息。

该实施例的原理为:当元数据信息的信息处理项标记为删除时,即已经软删除了,小文件内容实际存储在对象文件中,为了释放存储空间,需要定期将软删除的小文件进行物理删除,先从索引文件中读取出元数据信息,按照元数据信息定位到对象文件中对应的小文件内容及元数据信息,再进行删除,之后删除索引文件中的元数据信息,实现了小文件的物理删除,释放了软删除之后的存储空间。

本申请实施例还公开一种空间数据管理系统。

实施例6

参照图6,该系统包括:

中央节点601、文件存储节点602及文件系统603;

中央节点601,用于获取对象文件生成请求;

文件存储节点602,用于根据对象文件生成请求生成对象文件及索引文件,对象文件为文件系统603的连续存储空间;

文件存储节点602,还用于当空间数据需要写入文件系统603时,获取空间数据的小文件对应的元数据信息及小文件内容,将元数据信息及小文件内容写入对象文件,将元数据信息写入至索引文件,并生成定位信息,定位信息用于在索引文件中定位元数据信息,元数据信息用于在对象文件中定位小文件内容。

实施例6的实施原理为:在空间数据写入文件系统之前,中央节点601获取对象文件生成请求,文件存储节点602先按照对象文件生产请求生产对象文件及索引文件,当空间数据需要写入文件系统603时,文件存储节点602获取空间数据的小文件对应的元数据信息及小文件内容,将元数据信息及小文件内容写入对象文件,将元数据信息写入至索引文件,并生成定位信息,从而在定位信息和小文件内容之间建立索引关联关系,相比于相关技术,由于小文件集中存储在连续存储空间的对象文件,即使海量小文件也不会产生大量索引节点,不会形成磁盘碎片,不会导致磁盘占用空间膨胀,进而提高了空间数据的小文件的读写效率及管理能力。

需要说明的是,实施例6中的中央节点601及文件存储节点602还用于执行以上空间数据管理方法的实施例中的步骤。

本申请还提供一种计算机可读存储介质,存储有能够被处理器加载并执行以上空间数据管理方法的计算机程序。

计算机可读存储介质例如包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

相关技术
  • 一种空间数据管理方法、系统及计算机可读存储介质
  • 一种计算机系统、备份管理方法和计算机可读存储介质
技术分类

06120112986381