本申请涉及互联网,尤其涉及一种存储节点的文件请求处理方法、装置及可读存储介质。
背景技术:
1、hdfs(hadoop distributed file system)是apache hadoop生态系统中的一个分布式文件存储系统,用于存储和管理大规模数据集。在hdfs文件系统中,元数据节点namenode负责管理文件系统的命名空间和数据块映射信息,维护文件系统元数据和数据块复制状态等。此外,hdfs文件系统的数据节点datanode负责存储和管理数据块,执行数据块的读写操作。
2、hdfs是分布式文件系统,为大数据服务提供文件存储能力。hdfs文件系统通过namenode中心节点进行存储空间的分配管理,文件数据块block的读写都需要到namenode节点获取数据所在的datanode节点列表,然后客户端向这些存储节点发送数据读写请求,存储节点上面的datanode服务同时管理着多个磁盘,当datanode服务处理客户端的请求时,每一个读写请求都会从线程池分配一个线程进行处理,而存储节点上面所有的磁盘会共享这个线程池。
3、如果一个磁盘的请求接收的比较多,线程池里的大部分线程会分配给这个磁盘,而其他磁盘在处理请求时所能使用的线程比较少,这会影响其他磁盘请求处理时延。同时一个磁盘主要有请求过来就分配线程处理,如果磁盘处理能力已经饱和,再分配新的线程只会使此磁盘处理性能变慢,这会直接影响用户使用体验。
技术实现思路
1、本申请所要解决的技术问题是针对现有技术的上述不足,提供一种存储节点的文件请求处理方法、装置及可读存储介质,用以解决现有技术存在的问题。
2、第一方面,本申请提供一种存储节点的文件请求处理方法,所述方法包括:
3、s1、对存储节点的线程池进行分片处理,得到多个shard分片;
4、s2、接收客户端发送的文件处理请求;
5、s3、根据所述文件处理请求,确认待处理数据所对应的目标shard分片;
6、s4、从所述目标shard分片中分配线程以执行所述文件处理请求。
7、在一些实施例中,s4,包括:
8、s41.判断所述目标shard分片中是否存在空闲线程;
9、s42.若所述目标shard分片中存在空闲线程,则从所述目标shard分片中分配空闲线程以执行所述文件处理请求。
10、在一些实施例中,还包括:
11、s43.若所述目标shard分片中不存在空闲线程,则根据所述目标shard分片对应的磁盘请求处理时延判断所述目标shard分片是否达到饱和状态,以及,判断所述多个shard分片中除所述目标shard分片以外的其他shard分片是否存在空闲线程;
12、s44.若所述目标shard分片未达到饱和状态,且所述其他shard分片中存在空闲线程,则从所述其他shard分片中分配空闲线程以执行所述文件处理请求。
13、在一些实施例中,若存在空闲线程的其他shard分片的数量为至少两个,从所述其他shard分片中分配空闲线程以执行所述文件处理请求,包括:
14、从空闲线程最多的其他shard分片中分配线程以执行所述文件处理请求。
15、在一些实施例中,s44,包括:
16、s441.判断所述其他shard分片中存在的空闲线程数量是否低于预设阈值;
17、s442.若所述其他shard分片的空闲线程数量大于或者等于预设阈值,则从所述其他shard分片中分配线程以执行所述文件处理请求。
18、在一些实施例中,s1,包括:
19、根据所述存储节点所使用的磁盘数量,对存储节点的线程池进行平均分片处理或者按比例分片处理,得到多个shard分片。
20、在一些实施例中,s3,包括:
21、根据所述文件处理请求中待处理数据的数据块标识block id,确认待处理数据所对应的目标shard分片。
22、第二方面,本申请提供一种存储节点的文件请求处理装置,所述装置包括:
23、分片处理模块,其设置为对存储节点的线程池进行分片处理,得到多个shard分片;
24、请求接收模块,其设置为接收客户端发送的文件处理请求;
25、分片确定模块,其设置为根据所述文件处理请求,确认待处理数据所对应的目标shard分片;
26、请求处理模块,其设置为从所述目标shard分片中分配线程以执行所述文件处理请求。
27、第三方面,本申请提供一种存储节点的文件请求处理装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述第一方面所述的存储节点的文件请求处理方法。
28、第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的存储节点的文件请求处理方法。
29、本申请提供的存储节点的文件请求处理方法、装置及可读存储介质,具体的,对存储节点的线程池进行分片处理,得到多个shard分片;接收客户端发送的文件处理请求;根据所述文件处理请求,确认待处理数据所对应的目标shard分片;从所述目标shard分片中分配线程以执行所述文件处理请求。本申请提出了一种通过进行hdfs存储节点线程池分片来实现存储节点文件请求处理的方法,通过对固定线程池按槽位分片shard,保证分片对应的磁盘有专用的线程来处理己方数据的处理请求,以此可以合理高效的管理存储节点的处理线程。
1.一种存储节点的文件请求处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的存储节点的文件请求处理方法,其特征在于,s4,包括:
3.根据权利要求2所述的存储节点的文件请求处理方法,其特征在于,还包括:
4.根据权利要求3所述的存储节点的文件请求处理方法,其特征在于,若存在空闲线程的其他shard分片的数量为至少两个,从所述其他shard分片中分配空闲线程以执行所述文件处理请求,包括:
5.根据权利要求3所述的存储节点的文件请求处理方法,其特征在于,s44,包括:
6.根据权利要求1-5任一项所述的存储节点的文件请求处理方法,其特征在于,s1,包括:
7.根据权利要求1-5任一项所述的存储节点的文件请求处理方法,其特征在于,s3,包括:
8.一种存储节点的文件请求处理装置,其特征在于,所述装置包括:
9.一种存储节点的文件请求处理装置,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现如权利要求1-7中任一项所述的存储节点的文件请求处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的存储节点的文件请求处理方法。