CN113971163A - 一种小文件合并存储方法、读取方法以及服务器 - Google Patents
一种小文件合并存储方法、读取方法以及服务器 Download PDFInfo
- Publication number
- CN113971163A CN113971163A CN202010718204.4A CN202010718204A CN113971163A CN 113971163 A CN113971163 A CN 113971163A CN 202010718204 A CN202010718204 A CN 202010718204A CN 113971163 A CN113971163 A CN 113971163A
- Authority
- CN
- China
- Prior art keywords
- small file
- large object
- small
- metadata
- file
- 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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及存储技术领域,公开了一种小文件合并存储方法、读取方法以及服务器。方法包括:获取小文件的写入请求;确认写入请求对应的大对象;将小文件的数据写入大对象;将小文件的元数据和小文件对应的大对象的元数据更新到索引池,由此能够解决海量小文件存储性能下降的问题,保持写入性能平稳。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种小文件合并存储方法、读取方法以及服务器。
背景技术
在信息***时代,每天产生的数据不仅存储容量巨大,而且还具有数据类型繁多、数据大小变化大、流动快等显著特点,往往能够产生千万级、亿级甚至十亿、百亿级的海量小文件。
传统的文件***,包括本地文件***、分布式文件***和对象存储***,都是针对大文件设计的,比如XFS/EXT4、GlusterFS、GFS、HDFS,在元数据管理、数据布局、缓存管理等实现策略上侧重大文件,而海量小文件应用在性能和存储效率等方面要大幅度下降。
发明内容
基于此,有必要针对上述技术问题,提供一种小文件合并存储方法、读取方法以及服务器,能够解决海量小文件存储性能下降的问题。
第一方面,本发明实施例提供了一种小文件合并存储方法,所述方法包括:
获取小文件的写入请求;
确认所述写入请求对应的大对象;
将所述小文件的数据写入所述大对象;
将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池。
在一些实施例中,所述写入请求携带有所述小文件的名称;
所述确认所述写入请求对应的大对象,包括:
对所述小文件的名称进行哈希运算获得哈希值,根据所述哈希值确定与所述小文件对应的目标大对象。
在一些实施例中,所述根据所述哈希值确定与所述小文件对应的目标大对象,包括:
如果找到与所述哈希值对应的大对象,且所述大对象中所述小文件的个数或累积大小未超过预设阈值,则将所述大对象作为所述小文件的目标大对象。
在一些实施例中,所述方法还包括:
如果找到与所述哈希值对应的大对象,且所述大对象中所述小文件的个数或累积大小超过预设阈值;或者,
如果没有找到与所述哈希值对应的大对象;
则新生成一个大对象作为所述小文件的目标大对象。
在一些实施例中,所述将所述小文件的数据写入所述大对象,包括:
获取所述小文件对应的大对象的偏移;
将所述小文件的数据写入所述大对象的偏移。
在一些实施例中,所述写入请求还携带有空间预分配标志,
所述方法还包括:
根据所述空间预分配标志在大对象中分配固定空间。
第二方面,本发明实施例还提供了一种小文件读取方法,所述方法包括:
获取小文件的读取请求,其中,所述读取请求携带有小文件的名称;
根据所述小文件的名称获取小文件的元数据;
根据所述小文件的元数据从所述大对象中获取小文件的数据;
将所述小文件的数据和所述小文件的元数据打包返回给终端设备。
在一些实施例中,所述小文件的元数据携带有小文件对应的大对象的索引信息;
所述根据所述小文件的元数据从所述大对象中获取小文件的数据,包括:
根据所述索引信息确定对应的大对象的名称和偏移;
根据所述大对象的名称和偏移从所述大对象中获取小文件的数据。
第三方面,本发明实施例还提供了一种服务器,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法步骤。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被处理器所执行时,使所述处理器执行上述方法步骤。
与现有技术相比,本发明的有益效果是:区别于现有技术的情况,本发明实施例中的小文件合并存储方法、读取方法以及服务器,通过获取小文件的写入请求,然后确认所述写入请求对应的大对象,将所述小文件的数据写入所述大对象,并将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池,由此能够解决海量小文件存储性能下降的问题,保持写入性能平稳。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明一个实施例中小文件合并存储方法和小文件读取方法的应用场景示意图;
图2是本发明一个实施例中小文件合并存储方法的流程示意图;
图3是本发明一个实施例中小文件读取方法的流程示意图;
图4是本发明一个实施例中小文件合并存储方法的详细示意图;
图5是本发明一个实施例中小文件读取方法的详细示意图;
图6是本发明一个实施例中小文件合并存储装置的结构示意图;
图7是本发明一个实施例中小文件读取装置的结构示意图;
图8是本发明一个实施例中服务器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例提供的小文件合并存储方法和小文件读取方法,可以应用于图1所示的应用环境中,该应用环境包括终端设备和服务器。图1示例性的示出了终端设备10通过网络和服务器20进行通信。终端设备10可以但不限于个人计算机、笔记本电脑、智能手机以及平板电脑等。服务器20可以但不限于机架式服务器、刀片式服务器、塔式服务器或者机柜式服务器等,也可以是由若干台服务器组成的服务器集群,或者是一个云计算服务中心。
其中,所述服务器设有对象存储网关层、存储服务层、元数据中心集群、数据存储集群、数据池以及索引池。所述对象存储网关层用于接收终端设备请求,将小文件按照指定块大小进行切分,每个块按照元服务的路由规则发送到指定的存储节点;元数据中心集群用于维护整个集群的状态以及路由规则,路由规则为对象与存储节点的对应关系;数据存储集群用于小文件的存储和负责副本之间的一致性;数据池用于存储小文件的实际数据;索引池用于存储小文件的元数据和大对象的元数据。
需要说明的是,本发明实施例提供的方法还可以进一步的拓展到其他合适的应用环境中,而不限于图1所述的应用环境。在实际的应用过程中,该应用环境可以包括更多或者更少的终端设备和服务器。
如图2所示,本发明实施例提供了一种小文件合并存储方法,所述方法包括:
步骤202,获取小文件的写入请求。
在本发明实施例中,所述写入请求为终端设备需要将小文件进行存储的请求。具体地,服务器上的对象存储网关层获取终端设备发送的小文件的写入请求。
步骤204,确认所述写入请求对应的大对象。
在本发明实施例中,所述大对象用于存储所述小文件。对象存储网关层获取到终端设备发送的小文件的写入请求后,根据所述写入请求确认与所述写入请求对应的大对象。
在其他一些实施例中,作为步骤204的一种实现方式,终端设备发送的写入请求中携带有所述小文件的名称,对象存储网关层根据所述小文件的名称进行哈希运算,获得哈希值,根据所述哈希值确定与所述小文件对应的目标大对象,即获得的这个哈希值会具体对应到某个大对象。需要说明的是,服务器的内存中预先存储有哈希值和大对象的索引关系。
在其他一些实施例中,根据所述哈希值确定与所述小文件对应的目标大对象包括:如果找到与所述哈希值对应的对象,且所述大对象写入的小文件个数或累积大小未超过预设阈值,则将所述大对象作为所述小文件的目标大对象。
可以理解的是,在其他一些实施例中,如果找到与所述哈希值对应的大对象,且所述大对象写入的小文件个数或累积大小超过预设阈值,则新生成一个大对象作为所述小文件的目标大对象。或者,在内存中没有找到与所述哈希值对应的大对象,也重新生成一个大对象作为小文件的目标大对象。需要说明的是,当新生成大对象,偏移从0开始写入。其中,偏移可以理解为小文件在大对象中的存储位置。示例性的,若大对象为新生成的目标大对象,则将小文件从目标大对象偏移为0的位置开始写入。
在其他一些实施例中,还可以在大对象中为小文件分配固定存储空间。具体地,当小文件写入请求中还携带有空间预分配标志时,存储服务层根据所述空间预分配标志,对大对象的空间进行预分配,即根据所述空间预分配标志在大对象中分配固定空间,用于存储小文件数据。其中,所述空间预分配标志可以为0或者1,此处仅仅为举例说明,并不作为对此的限定。
步骤206,将所述小文件的数据写入所述大对象。
当根据哈希值确定与所述小文件对应的目标大对象后,直接将所述小文件的数据写入所述大对象中。
在其他一些实施例中,作为步骤206的一种实现方式,由于已经事先确定了小文件对应的大对象,因此可以获取所述小文件对应的大对象的偏移,获取到大对象的偏移后,直接将所述小文件的数据写入所述大对象的偏移。
步骤208,将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池。
在本发明实施例中,当所述小文件的数据写入所述大对象之后,获取小文件的元数据和大对象的元数据,并将所述小文件的元数据和所述大对象的元数据一并更新到索引池。其中,所述小文件的元数据携带有对象的名称,大对象的元数据携带有小文件的存储信息,即大对象的元数据里记录了当前大对象上存储了多少个小文件数据,以及当前大对象中小文件的写入偏移为多少。
在其他一些实施例中,将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池后,向终端设备返回存储成功的信息,以便终端设备知晓小文件存储是否成功。
在本发明实施例中,通过获取小文件的写入请求,然后确认所述写入请求对应的大对象,将所述小文件的数据写入所述大对象,并将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池,由此能够解决海量小文件存储性能下降的问题,保持写入性能平稳。
如图3所示,本发明实施例还提供了一种小文件读取方法,所述方法包括:
步骤302,获取小文件的读取请求,其中,所述读取请求携带有小文件的名称。
在本发明实施例中,读取请求为终端设备发送的用于读取小文件的请求。具体地,对象存储网关层获取终端设备发送的获取小文件的读取请求,其中,所述读取请求携带有小文件的名称。
步骤304,根据所述小文件的名称获取小文件的元数据。
具体地,由于小文件的元数据事先是存储至索引池的,因此对象存储网关层获取到终端设备发送的读取请求后,根据所述小文件的名称从索引池获取小文件的元数据。
步骤306,根据所述小文件的元数据从所述大对象中获取小文件的数据。
大对象中存储有小文件的数据,因此对象存储网关层根据小文件的元数据从大对象中获取小文件的数据。
在其他一些实施例中,作为步骤306的一种实现方式,小文件的元数据携带有小文件对应的大对象的索引信息,因此,对象存储网关层获取到索引信息后,根据所述索引信息去索引池中获取对应的大对象的名称和偏移,接着根据所述大对象的名称和偏移去数据池的大对象中获取小文件的数据。
步骤308,将所述小文件的数据和所述小文件的元数据打包返回给终端设备。
具体地,当对象存储网关层获取到小文件的数据后,将所述小文件的数据和所述小文件的元数据打包即组装返回给终端设备。
在本发明实施例中,通过获取小文件的读取请求,其中,所述读取请求中携带有小文件的名称,根据所述小文件的名称获取小文件的元数据,接着根据所述小文件的元数据从所述大对象中获取小文件的数据,最后将所述小文件的数据和所述小文件的元数据打包返回给终端设备,由此能够提高在海量小文件存储下的读取性能。
便于理解本发明,下面将对小文件合并存储进行具体说明:
如图4所示,首先,终端设备发送小文件的写入请求给服务器,其中,写入请求中携带有小文件的名称,服务器上的对象存储网关层获取终端设备发送的小文件的写入请求,并获取写入请求中携带的小文件的名称。
接着,对象存储网关层根据所述小文件的名称进行哈希运算,获得哈希值,根据所述哈希值确定与所述小文件对应的目标大对象。其中,根据所述哈希值确定与所述小文件对应的目标大对象分为三种情况。第一种情况,如果找到与所述哈希值对应的对象,且所述大对象中所述小文件的个数或累积大小未超过预设阈值,则将所述大对象作为所述小文件的目标大对象。第二种情况,如果找到与所述哈希值对应的大对象,且所述大对象中所述小文件的个数或累积大小超过预设阈值,则新生成一个大对象作为所述小文件的目标大对象。第三种情况,在内存中没有找到与所述哈希值对应的大对象,则新生成一个大对象作为所述小文件的目标大对象。需要说明的是,若大对象为新生成的目标大对象,则将小文件从目标大对象偏移为0的位置开始写入。
进一步地,当小文件写入请求中还携带有空间预分配标志时,存储服务层根据所述空间预分配标志,对大对象的空间进行预分配,即根据所述空间预分配标志在大对象中分配固定空间,用于存储小文件数据。
接着,当根据哈希值确定与所述小文件对应的目标大对象后,获取所述小文件对应的大对象的偏移,获取到大对象的偏移后,直接将所述小文件的数据写入所述对象的偏移。
进一步地,当所述小文件的数据写入所述大对象之后,获取小文件的元数据和大对象的元数据,并将所述小文件的元数据和所述大对象的元数据一并更新到索引池,由此能够解决海量小文件存储性能下降的问题,保持写入性能平稳。
最后,向终端设备返回写入成功的信息,以便终端设备知晓小文件存储是否成功。
便于理解本发明,下面将对小文件读取进行具体说明:
如图5所示,首先,终端设备发送小文件的读取请求给服务器,其中,小文件的读取请求中携带有小文件的名称,服务器上的对象存储网关层获取终端设备发送的读取小文件的请求,并获取读取请求中小文件的名称。
接着,对象存储网关层根据所述小文件的名称从索引池获取小文件的元数据。
进一步地,对象存储网关层根据小文件的元数据从大对象中获取小文件的数据。具体地,由于小文件的元数据携带有小文件对应的大对象的索引信息,因此,对象存储网关层获取到索引信息后,根据所述索引信息去索引池中获取对应的大对象的名称和偏移,接着根据所述大对象的名称和偏移去数据池的大对象中获取小文件的数据。
进一步地,当对象存储网关层获取到小文件的数据后,将所述小文件的数据和所述小文件的元数据打包即组装返回给终端设备,由此能够提高小文件的读取性能。
相应的,本发明实施例还提供了一种小文件合并存储装置600,如图6所示,包括:
获取模块602,用于获取小文件的写入请求;
确认模块604,用于确认所述写入请求对应的大对象;
写入模块606,用于将所述小文件的数据写入所述大对象;
更新模块608,用于将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池。
在本发明实施例中,通过获取模块获取小文件的写入请求,接着通过确认模块确定所述写入请求对应的大对象,然后将所述小文件的数据通过写入模块写入所述大对象,最后将所述小文件的元数据和所述小文件对应的大对象的元数据通过更新模块更新到索引池,由此能够解决海量小文件存储性能下降的问题,保持小文件的写入性能。
需要说明的是,上述小文件合并存储装置可执行本发明实施例所提供的小文件合并存储方法,具备执行方法相应的功能模块和有益效果,未在小文件合并存储装置实施例详尽描述的技术细节,可参考本发明实施例提供的小文件合并存储方法。
相应的,本发明实施例还提供了一种小文件读取装置700,如图7所示,包括:
第一获取模块702,用于获取小文件的读取请求,其中,所述读取请求携带有小文件的名称;
第二获取模块704,用于根据所述小文件的名称获取小文件的元数据;
第三获取模块706,用于根据所述小文件的元数据从所述大对象中获取小文件的数据;
发送模块708,用于将所述小文件的数据和所述小文件的元数据打包返回给终端设备。
在本发明实施例中,通过第一获取模块获取小文件的读取请求,所述读取请求中携带有小文件的名称,接着根据所述小文件的名称使用第二获取模块获取小文件的元数据,然后根据所述小文件的元数据通过第三获取模块从所述大对象中获取小文件的数据,最后,通过返回模块将所述小文件的数据和所述小文件的元数据打包返回给终端设备,由此能够提高在海量小文件存储下的读取性能。
需要说明的是,上述小文件读取装置可执行本发明实施例所提供的小文件读取方法,具备执行方法相应的功能模块和有益效果,未在小文件读取装置实施例详尽描述的技术细节,可参考本发明实施例提供的小文件读取方法。
图8是本发明实施例提供的服务器的硬件结构示意图。如图8所示,该服务器800包括:
一个或多个处理器802以及存储器804,图8中以一个处理器802为例。
处理器802和存储器804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器804作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的小文件合并存储方法和小文件读取方法对应的程序指令/模块(例如,图6所示的获取模块602、确认模块604、写入模块606以及更新模块608;图7所示的第一获取模块702、第二获取模块704、第三获取模块706以及发送模块708)。处理器802通过运行存储在存储器804中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述实施例中的小文件合并存储方法和小文件读取方法。
存储器804可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据小文件合并存储装置和小文件读取装置使用所创建的数据等。此外,存储器804可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器804可选包括相对于处理器802远程设置的存储器,这些远程存储器可以通过网络连接至小文件合并存储装置和小文件读取装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器804中,当被所述一个或者多个服务器执行时,执行上述任意方法实施例中的小文件合并存储方法和小文件读取方法,,例如,执行以上描述的图2中的方法步骤202至步骤208,图3中的方法步骤302至步骤308;实现图6中的模块602至608的功能,图7中的模块702至708的功能。
本发明实施例还提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时时,使所述计算机执行:图2中的方法步骤202至步骤208,图3中的方法步骤302至步骤308。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的终端设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
本发明实施例的服务器以多种形式存在,包括但不限于:
(1)塔式服务器
一般的塔式服务器机箱和我们常用的PC机箱差不多,而大型的塔式机箱就要粗大很多,总的来说外形尺寸没有固定标准。
(2)机架式服务器
机架式服务器是由于满足企业的密集部署,形成的以19英寸机架作为标准宽度的服务器类型,高度则从1U到数U。将服务器放置到机架上,并不仅仅有利于日常的维护及管理,也可能避免意想不到的故障。首先,放置服务器不占用过多空间。机架服务器整齐地排放在机架中,不会浪费空间。其次,连接线等也能够整齐地收放到机架里。电源线和LAN线等全都能在机柜中布好线,可以减少堆积在地面上的连接线,从而防止脚踢掉电线等事故的发生。规定的尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数)。由于宽为19英寸,所以有时也将满足这一规定的机架称为“19英寸机架”。
(3)刀片式服务器
刀片服务器是一种HAHD(High Availability High Density,高可用高密度)的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,其中每一块“刀片”实际上就是一块***母板,类似于一个个独立的服务器。在这种模式下,每一个母板运行自己的***,服务于指定的不同用户群,相互之间没有关联。不过可以使用***软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,可以共享资源,为相同的用户群服务。
(4)云服务器
云服务器(Elastic Compute Service,ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效,用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器的分布式存储用于将大量服务器整合为一台超级计算机,提供大量的数据存储和处理服务。分布式文件***、分布式数据库允许访问共同存储资源,实现应用数据文件的IO共享。虚拟机可以突破单个物理机的限制,动态的资源调整与分配消除服务器及存储设备的单点故障,实现高可用性。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种小文件合并存储方法,其特征在于,所述方法包括:
获取小文件的写入请求;
确认所述写入请求对应的大对象;
将所述小文件的数据写入所述大对象;
将所述小文件的元数据和所述小文件对应的大对象的元数据更新到索引池。
2.根据权利要求1所述的方法,其特征在于,所述写入请求携带有所述小文件的名称;
所述确认所述写入请求对应的大对象,包括:
对所述小文件的名称进行哈希运算获得哈希值,根据所述哈希值确定与所述小文件对应的目标大对象。
3.根据权利要求2所述的方法,其特征在于,所述根据所述哈希值确定与所述小文件对应的目标大对象,包括:
如果找到与所述哈希值对应的大对象,且所述大对象中所述小文件的个数或累积大小未超过预设阈值,则将所述大对象作为所述小文件的目标大对象。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果找到与所述哈希值对应的大对象,且所述大对象中所述小文件的个数或累积大小超过预设阈值;或者,
如果没有找到与所述哈希值对应的大对象;
则新生成一个大对象作为所述小文件的目标大对象。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述小文件的数据写入所述大对象,包括:
获取所述小文件对应的大对象的偏移;
将所述小文件的数据写入所述大对象的偏移。
6.根据权利要求5所述的方法,其特征在于,所述写入请求还携带有空间预分配标志,
所述方法还包括:
根据所述空间预分配标志在大对象中分配固定空间。
7.一种小文件读取方法,其特征在于,所述方法包括:
获取小文件的读取请求,其中,所述读取请求携带有小文件的名称;
根据所述小文件的名称获取小文件的元数据;
根据所述小文件的元数据从所述大对象中获取小文件的数据;
将所述小文件的数据和所述小文件的元数据打包返回给终端设备。
8.根据权利要求7所述的方法,其特征在于,所述小文件的元数据携带有小文件对应的大对象的索引信息;
所述根据所述小文件的元数据从所述大对象中获取小文件的数据,包括:
根据所述索引信息确定对应的大对象的名称和偏移;
根据所述大对象的名称和偏移从所述大对象中获取小文件的数据。
9.一种服务器,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被处理器所执行时,使所述处理器执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718204.4A CN113971163A (zh) | 2020-07-23 | 2020-07-23 | 一种小文件合并存储方法、读取方法以及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718204.4A CN113971163A (zh) | 2020-07-23 | 2020-07-23 | 一种小文件合并存储方法、读取方法以及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113971163A true CN113971163A (zh) | 2022-01-25 |
Family
ID=79585371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718204.4A Pending CN113971163A (zh) | 2020-07-23 | 2020-07-23 | 一种小文件合并存储方法、读取方法以及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971163A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564149A (zh) * | 2022-02-25 | 2022-05-31 | 上海英方软件股份有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN117648297A (zh) * | 2024-01-30 | 2024-03-05 | 中国人民解放军国防科技大学 | 基于对象存储小文件离线合并方法、***、设备及介质 |
-
2020
- 2020-07-23 CN CN202010718204.4A patent/CN113971163A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564149A (zh) * | 2022-02-25 | 2022-05-31 | 上海英方软件股份有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN114564149B (zh) * | 2022-02-25 | 2024-03-26 | 上海英方软件股份有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN117648297A (zh) * | 2024-01-30 | 2024-03-05 | 中国人民解放军国防科技大学 | 基于对象存储小文件离线合并方法、***、设备及介质 |
CN117648297B (zh) * | 2024-01-30 | 2024-06-11 | 中国人民解放军国防科技大学 | 基于对象存储小文件离线合并方法、***、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114064563A (zh) | 一种基于对象存储的数据迁移方法和服务器 | |
EP3333718B1 (en) | Task allocation method and task allocation apparatus for distributed data calculation | |
CN108287669A (zh) | 数据存储方法、装置及存储介质 | |
CN102938784A (zh) | 应用于分布式存储***中的数据存储方法和*** | |
CN108614976A (zh) | 权限配置方法、装置及存储介质 | |
CN108255989B (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
CN107423301B (zh) | 一种数据处理的方法、相关设备及存储*** | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的*** | |
CN113971163A (zh) | 一种小文件合并存储方法、读取方法以及服务器 | |
CN106572146A (zh) | 消息发送方法及消息发送装置 | |
CN106250061A (zh) | 文件下载处理方法及装置 | |
CN111258958A (zh) | 一种数据获取方法、数据提供方法及装置 | |
CN105653209A (zh) | 一种对象存储数据传输方法及装置 | |
CN112084173A (zh) | 数据迁移方法和装置及存储介质 | |
CN112171656B (zh) | 一种机械臂的控制方法、装置及服务器 | |
CN112269665B (zh) | 内存的处理方法和装置、电子设备和存储介质 | |
CN111258959A (zh) | 一种数据获取方法、数据提供方法及装置 | |
CN105144073A (zh) | 可移除存储设备身份和配置信息 | |
CN111404828A (zh) | 实现全局流控的方法及装置 | |
CN108829340B (zh) | 存储处理方法、装置、存储介质及处理器 | |
CN107491551B (zh) | 一种分布式文件***实现客户端访问的方法及装置 | |
CN110020290B (zh) | 网页资源缓存方法、装置、存储介质及电子装置 | |
CN111104301B (zh) | 一种在网页中判断障碍用户的方法和*** | |
CN103514198A (zh) | 云存储***中文件的管理方法、云存储***及云端服务器 | |
CN112311748A (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 |