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

分布式存储和检索方法、装置及计算机设备

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


分布式存储和检索方法、装置及计算机设备

技术领域

本发明涉及计算机存储技术领域,尤其涉及一种分布式存储和检索方法、装置及计算机设备。

背景技术

随着计算机技术的飞速发展、信息量的与日俱增,存储系统已经成为计算机系统尤其是大型分布式计算机系统的瓶颈。分布式文件系统可以方便有效地管理存储系统,并充分发挥存储子系统的性能。

现有的分布式存储和检索方法,存储和检索方式繁琐,无法快速高效地为文件分配存储空间。

发明内容

本发明提供一种分布式存储和检索方法、装置及计算机设备,实现快速高效地为文件分配存储空间。

为解决上述问题,本发明采用如下技术方案:

本发明提供一种分布式存储和检索方法,包括如下步骤:

获取待存储文件,在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中;其中,所述待存储文件包括多个数据块;

当检测到有多个存储空间时,将所述多个存储空间进行连续空间位置标记;

在所述待存储文件的各个数据块的头部配置索引信息及属性信息,并将所述索引信息、属性信息及对应的数据块保存在同一存储空间中;

响应于用户发起的文件查询请求,从所述文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件,将所述目标文件发送给所述用户。

在一实施例中,所述将所述待存储文件保存在所述存储空间中的步骤之后,还包括:

获取所述待存储文件的分配记录与回收记录;

将所述分配记录与回收记录保存在所述分布式存储系统的缓存及动态空间数据块中;其中,所述缓存用于分配与回收存储空间,所述动态空间数据块用于在所述待存储文件分配或回收异常后,将所述待存储文件恢复至所述缓存中继续使用。

在一实施例中,所述将所述待存储文件保存在所述存储空间中的步骤之后,还包括:

当检测到所述存储空间当前使用的内存空间大于预定阈值时,将所述缓存的内存空间按照预设比例进行释放;

将大于预定阈值的所述待存储文件的数据块加载到释放后的所述缓存中。

在一实施例中,所述在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中的步骤,包括:

获取分布式存储系统的所有存储空间的使用次数,筛选出使用次数低于预设次数的存储空间,得到目标存储空间;

为所述待存储文件分配目标存储空间,并将所述待存储文件保存在所述目标存储空间中。

在一实施例中,所述在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中的步骤,包括:

获取所述分布式存储系统的所有存储空间,从所有存储空间中筛选出可使用的多个存储空间,得到多个目标存储空间;

根据所述待存储文件的数据块的大小分配相应的目标存储空间,并将所述待存储文件的数据块保存在相应的所述目标存储空间中。

在一实施例中,所述分布式存储和检索方法还包括:

对所述分布式存储系统的所有存储空间进行定期检查,并标记无法写入和读取的存储空间;

禁止为所述待存储文件分配无法写入和读取的存储空间。

在一实施例中,所述根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件的步骤,包括:

从所述请求信息中提取哈希值;

根据所述哈希值从所述索引信息及属性信息中查询与所述哈希值相匹配的目标哈希值;

从所述分布式存储系统中获取所述目标哈希值相应的目标文件。

本发明提供的一种分布式存储和检索装置,包括:

获取模块,用于获取待存储文件,在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中;其中,所述待存储文件包括多个数据块;

标记模块,用于当检测到有多个存储空间时,将所述多个存储空间进行连续空间位置标记;

配置模块,用于在所述待存储文件的各个数据块的头部配置索引信息及属性信息,并将所述索引信息、属性信息及对应的数据块保存在同一存储空间中;

查询模块,用于响应于用户发起的文件查询请求,从所述文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件,将所述目标文件发送给所述用户。

本发明提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上任一项所述的分布式存储和检索方法的步骤。

本发明提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的分布式存储和检索方法。

相对于现有技术,本发明的技术方案至少具备如下优点:

本发明提供的分布式存储和检索方法、装置及计算机设备,通过获取待存储文件,在预先构建的分布式存储系统中为待存储文件分配存储空间,将待存储文件保存在所述存储空间中;其中,待存储文件包括多个数据块;当检测到有多个存储空间时,将多个存储空间进行连续空间位置标记,以方便查找;在待存储文件的各个数据块的头部配置索引信息及属性信息,并将索引信息、属性信息及对应的数据块保存在同一存储空间中,便于检索;响应于用户发起的文件查询请求,从文件查询请求中提取出请求信息,根据请求信息、索引信息及属性信息在分布式存储系统中查询相应的目标文件,将所述目标文件发送给用户,实现碎片化管理各个存储文件,操作简单且高效。

附图说明

图1为本发明分布式存储和检索方法一种实施例流程框图;

图2为本发明分布式存储和检索装置一种实施例模块框图;

图3为本发明一个实施例中计算机设备的内部结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S11、S12等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

本领域普通技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本领域普通技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供了一种分布式存储和检索方法,包括如下步骤:

S11、获取待存储文件,在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中;其中,所述待存储文件包括多个数据块;

S12、当检测到有多个存储空间时,将所述多个存储空间进行连续空间位置标记;

S13、在所述待存储文件的各个数据块的头部配置索引信息及属性信息,并将所述索引信息、属性信息及对应的数据块保存在同一存储空间中;

S14、响应于用户发起的文件查询请求,从所述文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件,将所述目标文件发送给所述用户。

在本实施例中,分布式存储节点中的数据块实际上是一种文件类型不限(音频、视频、图片、zip等等)、大小也不固定(1K~2G等)的资源文件。数据块存储时可以以文件目录的方式存储,关键部分是管理成千上百万的文件时,如何高效存储、迅速检索的数据块,会受限于设备系统性能、不同系统平台、不同文件系统、碎片化的文件目录等,特别是在受限的android设备(内存小、cpu老旧核心少处理速度慢、磁盘读写弱)上表现极差。

因此,本申请在获取待存储文件后,在预先构建的分布式存储系统中为待存储文件分配存储空间,在分配存储空间时,可动态创建大文件并添加到总存储空间中,用于后续的可用空间分配。例如,假设现在拥有的存储空间是2T,大文件1分配的存储空间为:[0,1T],大文件2分配的存储空间为:[1T,2T],现增加存储空间3T,总存储空间大小为5T,则大文件3分配的存储空间为:[2T,5T]。此外,还可进一步根据数据块大小查找当前可用存储空间位置并进行分配,包括索引信息空间;而在数据块不再使用的时候,对数据块空间进行回收再利用,以合理有效地管理存储空间。在分配完成后,将待存储文件保存在所述存储空间中,并当检测到有多个存储空间时,将多个存储空间进行连续空间位置标记,以方便查找。

其中,数据块的存储空间分配最小为4K,并根据数据块需要大小(N*4K)动态分配相应的块数M,块数M等于数据索引头块1加上数据块N,最终需要的块数M=1+N,分配相应空间后对其进行读写操作。

例如,假设用户需要存储一个数据块,资源哈希是AAAAAA,大小为64K。则申请存储空间为17个存储块,存储位置为[1024,1041],即可对其进行读取写入操作,并保存相应的属性信息及索引信息。

其中,索引是对数据库表中一列或多列的值进行排序的一种结构,索引提供指向存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL(StructuredQuery Language,结构化查询语言)语句执行得更快,可快速访问数据库表中的特定信息。

数据块头部有索引信息及属性信息:索引信息与数据块连续保存,即使整个空间检索空间丢失,也可以通过数据块前的索引信息重构回原初状态,保证数据存储位置的不丢失,另外还保存了属性信息,方便使用。当用户发起文件查询请求时,响应于用户发起的文件查询请求,从文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在分布式存储系统中查询相应的目标文件,将所述目标文件发送给用户。所述请求信息包括目标文件的文件信息、数据块的信息等等。

具体的,本实施例可将多个大文件整合为同一存储空间:存储空间由多个大文件组成,每个大文件又有多个存储块组成,存储块是最小单元4K大小,然后对整个空间进行连续空间位置标记,作为分配依据,解决了碎片化管理文件的繁琐及文件数量限制,空间分配及回收统一完成。

本发明提供的分布式存储和检索方法,通过获取待存储文件,在预先构建的分布式存储系统中为待存储文件分配存储空间,将待存储文件保存在所述存储空间中;其中,待存储文件包括多个数据块;当检测到有多个存储空间时,将多个存储空间进行连续空间位置标记,以方便查找;在待存储文件的各个数据块的头部配置索引信息及属性信息,并将索引信息、属性信息及对应的数据块保存在同一存储空间中,便于检索;响应于用户发起的文件查询请求,从文件查询请求中提取出请求信息,根据请求信息、索引信息及属性信息在分布式存储系统中查询相应的目标文件,将所述目标文件发送给用户,实现碎片化管理各个存储文件,操作简单且高效。

在一实施例中,在步骤S11中,所述将所述待存储文件保存在所述存储空间中的步骤之后,还可包括:

获取所述待存储文件的分配记录与回收记录;

将所述分配记录与回收记录保存在所述分布式存储系统的缓存及动态空间数据块中;其中,所述缓存用于分配与回收存储空间,所述动态空间数据块用于在所述待存储文件分配或回收异常后,将所述待存储文件恢复至所述缓存中继续使用。

本实施例可动态空间分配与回收。具体的,可通过获取待存储文件的分配记录与回收记录,将分配记录与回收记录保存在分布式存储系统的缓存及动态空间数据块中;其中,存储文件在每次分配及回收时,则对分配记录及回收记录进行保存,便于查找。空间的分配与回收都记录在缓存及动态空间数据块中,缓存可快速的分配与回收空间,并可在异常后通过动态空间数据块快速的恢复到缓存中继续使用。

在一实施例中,在步骤S11中,所述将所述待存储文件保存在所述存储空间中的步骤之后,还可包括:

当检测到所述存储空间当前使用的内存空间大于预定阈值时,将所述缓存的内存空间按照预设比例进行释放;

将大于预定阈值的所述待存储文件的数据块加载到释放后的所述缓存中。

具体的,内存主要是基本的头部信息及b+tree索引数据结构,受限的设备内存小,本实施例可设定一个内存可用阈值,该阈值可根据需要自定义,在检测到所述存储空间当前使用的内存空间大于阈值后,则进行内存卸载,缩减不太使用的缓存数据,直接减少内存使用,在使用时动态加载对应的索引信息,以高效地管理存储空间。

在一实施例中,在步骤S11中,所述在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中的步骤,可具体包括:

S111、获取分布式存储系统的所有存储空间的使用次数,筛选出使用次数低于预设次数的存储空间,得到目标存储空间;

S112、为所述待存储文件分配目标存储空间,并将所述待存储文件保存在所述目标存储空间中。

在本实施例中,可获取分布式存储系统的所有存储空间的使用次数,根据所有存储空间的使用次数筛选出使用次数低于预设次数的存储空间,得到目标存储空间,为所述待存储文件分配目标存储空间,并将待存储文件保存在所述目标存储空间中,从而实现存储空间的均匀分配,尽量保证每块存储空间被使用的次数均衡,不存在频繁的向同一个区域写入数据而产生坏道的现象。

在一实施例中,在步骤S11中,所述在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中的步骤,可具体包括:

获取所述分布式存储系统的所有存储空间,从所有存储空间中筛选出可使用的多个存储空间,得到多个目标存储空间;

根据所述待存储文件的数据块的大小分配相应的目标存储空间,并将所述待存储文件的数据块保存在相应的所述目标存储空间中。

在本实施例中,还可获取分布式存储系统的所有存储空间,从所有存储空间中筛选出可使用的多个存储空间,得到多个目标存储空间,根据待存储文件的数据块的大小分配相应的目标存储空间,并将待存储文件的数据块保存在相应的所述目标存储空间中,以确保待存储文件能正常写入存储空间中。

在一实施例中,所述分布式存储和检索方法还包括:

对所述分布式存储系统的所有存储空间进行定期检查,并标记无法写入和读取的存储空间;

禁止为所述待存储文件分配无法写入和读取的存储空间。

本实施例可对有存储空间进行一定的检查,如每隔24小时检查一次,并对大文件进行实时数据写入与读取,可以检测出扩容盘,以及标记无法写入和读取的存储空间。如果某个数据块或文件无法写入和读取对其对应的存储空间,则标记该存储空间为不可用,不在分配这块存储空间,保证分配有效的存储空间。

在一实施例中,在步骤S14中,所述根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件的步骤,可具体包括:

S141、从所述请求信息中提取哈希值;

S142、根据所述哈希值从所述索引信息及属性信息中查询与所述哈希值相匹配的目标哈希值;

S143、从所述分布式存储系统中获取所述目标哈希值相应的目标文件。

在本实施例中,检索为了快速定位到数据块存储位置,根据需要按hash查找和时间查找两种方式。索引存储方式是索引缓存(内存结构)及索引存储空间(大文件)的二级索引,数据块申请空间后立马建立索引缓存,当数据实际存储后映射到索引存储空间。其中,索引包括主索引和时间索引。

主索引是根据数据块的唯一资源哈希值(hash)精准定位到存储空间位置的一种b+tree索引方式;索引缓存的大小跟tree的高度有关,从树根root开始,每次按照资源哈希值的前N位生成子树,每个子树有16个节点,每个节点存储1024个块大小的字节数据。

例如,哈希值是ABCDFGH,在root节点下没有满的时候就直接存储到root节点下,如果root存储空间满了,直接生成16个子树[0-F],存储资源哈希值子树A节点上。如果16子树A满了,再拆解子树A到下一级子树[A0-AF],存储哈希值到子树AB节点上。以此类推直到有空间存储为止。

时间索引是按照资源存储的实际执行时间,在主索引保存的同时记录时间索引。按照时间轴的方式进行顺序访问,处理完成后迁移到时间轴最后,等待下一次再进行检索。如轮训检测,则对数据块进行全网检查是否存在有足够的备份,如果不够进行一定的处理,当存储空间存储足够多的资源后,每个数据块被轮训的时间周期加长,确保每个数据块都有均衡的机会被检测,时间索引方式更方便一些。

请参考图2,本发明的实施例还提供一种分布式存储和检索装置,一种本实施例中,包括获取模块11、标记模块12、配置模块13及查询模块14。其中,

获取模块11,用于获取待存储文件,在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中;其中,所述待存储文件包括多个数据块;

标记模块12,用于当检测到有多个存储空间时,将所述多个存储空间进行连续空间位置标记;

配置模块13,用于在所述待存储文件的各个数据块的头部配置索引信息及属性信息,并将所述索引信息、属性信息及对应的数据块保存在同一存储空间中;

查询模块14,用于响应于用户发起的文件查询请求,从所述文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件,将所述目标文件发送给所述用户。

在本实施例中,分布式存储节点中的数据块实际上是一种文件类型不限(音频、视频、图片、zip等等)、大小也不固定(1K~2G等)的资源文件。数据块存储时可以以文件目录的方式存储,关键部分是管理成千上百万的文件时,如何高效存储、迅速检索的数据块,会受限于设备系统性能、不同系统平台、不同文件系统、碎片化的文件目录等,特别是在受限的android设备(内存小、cpu老旧核心少处理速度慢、磁盘读写弱)上表现极差。

因此,本申请在获取待存储文件后,在预先构建的分布式存储系统中为待存储文件分配存储空间,在分配存储空间时,可动态创建大文件并添加到总存储空间中,用于后续的可用空间分配。例如,假设现在拥有的存储空间是2T,大文件1分配的存储空间为:[0,1T],大文件2分配的存储空间为:[1T,2T],现增加存储空间3T,总存储空间大小为5T,则大文件3分配的存储空间为:[2T,5T]。此外,还可进一步根据数据块大小查找当前可用存储空间位置并进行分配,包括索引信息空间;而在数据块不再使用的时候,对数据块空间进行回收再利用,以合理有效地管理存储空间。在分配完成后,将待存储文件保存在所述存储空间中,并当检测到有多个存储空间时,将多个存储空间进行连续空间位置标记,以方便查找。

其中,数据块的存储空间分配最小为4K,并根据数据块需要大小(N*4K)动态分配相应的块数M,块数M等于数据索引头块1加上数据块N,最终需要的块数M=1+N,分配相应空间后对其进行读写操作。

例如,假设用户需要存储一个数据块,资源哈希是AAAAAA,大小为64K。则申请存储空间为17个存储块,存储位置为[1024,1041],即可对其进行读取写入操作,并保存相应的属性信息及索引信息。

其中,索引是对数据库表中一列或多列的值进行排序的一种结构,索引提供指向存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL(StructuredQuery Language,结构化查询语言)语句执行得更快,可快速访问数据库表中的特定信息。

数据块头部有索引信息及属性信息:索引信息与数据块连续保存,即使整个空间检索空间丢失,也可以通过数据块前的索引信息重构回原初状态,保证数据存储位置的不丢失,另外还保存了属性信息,方便使用。当用户发起文件查询请求时,响应于用户发起的文件查询请求,从文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在分布式存储系统中查询相应的目标文件,将所述目标文件发送给用户。所述请求信息包括目标文件的文件信息、数据块的信息等等。

具体的,本实施例可将多个大文件整合为同一存储空间:存储空间由多个大文件组成,每个大文件又有多个存储块组成,存储块是最小单元4K大小,然后对整个空间进行连续空间位置标记,作为分配依据,解决了碎片化管理文件的繁琐及文件数量限制,空间分配及回收统一完成。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本发明提供的一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上任一项所述的分布式存储和检索方法的步骤。

在一实施例中,如图3所示。本实施例所述的计算机设备可以是服务器、个人计算机以及网络设备等设备。所述计算机设备包括处理器402、存储器403、输入单元404以及显示单元405等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。例如,在大多数情况下,计算机设备无需配备显示单元405。存储器403可用于存储计算机程序401以及各功能模块,处理器402运行存储在存储器403的计算机程序401,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。

输入单元404用于接收信号的输入,以及接收用户输入的关键字。输入单元404可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元405可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元405可采用液晶显示器、有机发光二极管等形式。处理器402是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。

作为一个实施例,所述计算机设备包括:一个或多个处理器402,存储器403,一个或多个计算机程序401,其中所述一个或多个计算机程序401被存储在存储器403中并被配置为由所述一个或多个处理器402执行,所述一个或多个计算机程序401配置用于执行以上实施例所述的分布式存储和检索方法。其中,所述分布式存储和检索方法包括如下步骤:

获取待存储文件,在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中;其中,所述待存储文件包括多个数据块;

当检测到有多个存储空间时,将所述多个存储空间进行连续空间位置标记;

在所述待存储文件的各个数据块的头部配置索引信息及属性信息,并将所述索引信息、属性信息及对应的数据块保存在同一存储空间中;

响应于用户发起的文件查询请求,从所述文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件,将所述目标文件发送给所述用户。

在一个实施例中,本发明还提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述分布式存储和检索方法。例如,所述存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

其中,所述分布式存储和检索方法包括如下步骤:

获取待存储文件,在预先构建的分布式存储系统中为所述待存储文件分配存储空间,将所述待存储文件保存在所述存储空间中;其中,所述待存储文件包括多个数据块;

当检测到有多个存储空间时,将所述多个存储空间进行连续空间位置标记;

在所述待存储文件的各个数据块的头部配置索引信息及属性信息,并将所述索引信息、属性信息及对应的数据块保存在同一存储空间中;

响应于用户发起的文件查询请求,从所述文件查询请求中提取出请求信息,根据所述请求信息、索引信息及属性信息在所述分布式存储系统中查询相应的目标文件,将所述目标文件发送给所述用户。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccess Memory,RAM)等。

综合上述实施例可知,本发明最大的有益效果在于:

本发明提供的分布式存储和检索方法、装置及计算机设备,通过获取待存储文件,在预先构建的分布式存储系统中为待存储文件分配存储空间,将待存储文件保存在所述存储空间中;其中,待存储文件包括多个数据块;当检测到有多个存储空间时,将多个存储空间进行连续空间位置标记,以方便查找;在待存储文件的各个数据块的头部配置索引信息及属性信息,并将索引信息、属性信息及对应的数据块保存在同一存储空间中,便于检索;响应于用户发起的文件查询请求,从文件查询请求中提取出请求信息,根据请求信息、索引信息及属性信息在分布式存储系统中查询相应的目标文件,将所述目标文件发送给用户,实现碎片化管理各个存储文件,操作简单且高效。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

相关技术
  • 分布式存储和检索方法、装置及计算机设备
  • 目标检索方法、装置、计算机可读存储介质和计算机设备
技术分类

06120113047649