本发明专利技术公开了一种分布式文件系统的线程分配方法及系统,该方法包括:获取携带文件描述符的读写请求;然后判断是否存在与所述文件描述符相对应的线程;如果存在,认为这不是该文件描述符对应的第一次读写请求,先前已经为其分配过相应的线程,则将读写请求分配至这个相对应的线程;如果不存在,认为这是该文件描述符对应的第一次读写请求,需要从多线程池中为其分配一合适的线程,则将所述读写请求分配至平衡链表中管理文件数量最少的线程。可见,本发明专利技术实现了均衡多线程池中各个线程处理的请求数量,进而保证系统的处理高效性和性能稳定性的目的。
【技术实现步骤摘要】
本专利技术涉及线程分配
,特别是涉及一种分布式文件系统的线程分配方法及系统。
技术介绍
目前,在分布式文件系统中的多线程消息通常是使用基于文件描述符的hash算法进行分发的,这种算法存在一个缺陷,就是容易出现所有读写请求任务都往某个或某几个线程转发,特别是当文件描述符不是连续的时候,极端情况下会导致所有文件都分配到一个线程中,而其他线程一直处于空闲,使得所有读写请求任务都积压到一个线程队中,导致很多请求长时间不能得到处理,导致系统处理效率低;同时,所有读写请求任务都积压到一个线程队中,使得系统的资源得不到充分利用,易导致整个系统的性能急剧下降。因此,亟需一种能够均衡多线程池中各个线程处理的请求数量,进而保证系统的处理高效性和性能稳定性。
技术实现思路
有鉴于此,本专利技术提供了一种分布式文件系统的线程分配方法及系统,以实现均衡多线程池中各个线程处理的请求数量,进而保证系统的处理高效性和性能稳定性的目的。为解决上述技术问题,本专利技术提供一种分布式文件系统的线程分配方法,该方法包括:获取携带文件描述符的读写请求;判断是否存在与所述文件描述符相对应的线程;如果存在,则将所述读写请求分配至所述相对应的线程;如果不存在,则将所述读写请求分配至平衡链表中管理文件数量最少的线程;其中,所述平衡链表包括多个节点,各所述节点包括线程及其相应的管理文件数量。 上述方法中,优选地,所述判断是否存在与所述文件描述符相对应的线程,包括:在map的所有键值对中,判断是否存在主键为所述文件描述符的键值对;如果存在,则认为存在与所述文件描述符相对应的线程;如果不存在,则认为不存在与所述文件描述符相对应的线程;其中,与所述主键相对应的主键值为与所述文件描述符相对应的线程ID。上述方法中,优选地,在所述将所述读写请求分配至平衡链表中管理文件数量最少的线程之后,还包括:新建一键值对,并将所述文件描述符和所述管理文件数量最少的线程记录至新建的键值对中;将所述管理文件数量最少的线程所对应的管理文件数量加1。上述方法中,优选地,当检测到携带所述文件描述符的文件关闭指令时,还包括:在所述map中,将所述主键为所述文件描述符的键值对删除; 在所述平衡链表中,将被分配所述读写请求的线程所对应的管理文件数量减1。上述方法中,优选地,所述将所述读写请求分配至平衡链表中管理文件数量最少的线程,包括:将所述读写请求分配至所述平衡链表中第一个节点所对应的线程;其中,所述平衡链表中所有节点按所述管理文件数据量由小到大排列。本专利技术还提供了一种分布式文件系统的线程分配系统,该系统包括:获取单元,用于获取携带文件描述符的读写请求;判断单元,用于判断是否存在与所述文件描述符相对应的线程;线程分配单元,用于如果存在,则将所述读写请求分配至所述相对应的线程;如果不存在,则将所述读写请求分配至平衡链表中管理文件数量最少的线程;其中,所述平衡链表包括多个节点,各所述节点包括线程及其相应的管理文件数量。上述系统中,优选地,所述判断单元具体用于:在map的所有键值对中,判断是否存在主键为所述文件描述符的键值对;如果存在,则认为存在与所述文件描述符相对应的线程;如果不存在,则认为不存在与所述文件描述符相对应的线程;其中,与所述主键相对应的主键值为与所述文件描述符相对应的线程ID。上述系统中,优选地,还包括:键值对管理单元,用于在所述将所述读写请求分配至平衡链表中管理文件数量最少的线程之后,新建一键值对,并将所述文件描述符和所述管理文件数量最少的线程记录至新建的键值对中;管理文件数量管理单元,用于将所述管理文件数量最少的线程所对应的管理文件数量加1。上述系统中,优选地,所述键值对管理单元还用于当检测到携带所述文件描述符的文件关闭指令时,在所述map中,将所述主键为所述文件描述符的键值对删除;所述管理文件数量管理单元还用于当检测到携带所述文件描述符的文件关闭指令时,在所述平衡链表中,将被分配所述读写请求的线程所对应的管理文件数量减1。上述系统中,优选地,线程分配单元用于将所述读写请求分配至平衡链表中管理文件数量最少的线程,包括:所述线程分配单元具体用于将所述读写请求分配至所述平衡链表中第一个节点所对应的线程;其中,所述平衡链表中所有节点按所述管理文件数据量由小到大排列。以上本专利技术提供的一种分布式文件系统的线程分配方法及系统中,平衡链表包括多个节点,各节点包括线程及其相应的管理文件数量,平衡链表中记录了多线程池中所有线程及其相应的管理文件数量,基于此,先获取携带文件描述符的读写请求;然后判断是否存在与所述文件描述符相对应的线程;如果存在,认为这不是该文件描述符对应的第一次读写请求,先前已经为其分配过相应的线程,则将读写请求分配至这个相对应的线程;如果不存在,认为这是该文件描述符对应的第一次读写请求,需要从多线程池中为其分配一合适的线程,则将所述读写请求分配至平衡链表中管理文件数量最少的线程。可见,本专利技术实现了均衡多线程池中各个线程处理的请求数量,进而保证系统的处理高效性和性能稳定性的目的。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的一种分布式文件系统的线程分配方法的流程图;图2为本专利技术实施例提供的一种分布式文件系统的线程分配系统的结构框图示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的核心是提供一种分布式文件系统的线程分配方法及系统,以实现均衡多线程池中各个线程处理的请求数量,进而保证系统的处理高效性和性能稳定性的目的。为了使本
的人员更好地理解本专利技术方案,下面结合附图和【具体实施方式】对本专利技术作进一步的详细说明。参考图1,图1示出了本专利技术实施例提供的一种分布式文件系统的线程分配方法的流程图,该方法具体可以包括如下步骤:步骤S100、获取携带文件描述符的读写请求。本专利技术所提供的技术方案主要针对分布式文件系统NAS网关中的负载均衡,让每个线程处理的请求数量趋于一致,从而达到负载均衡的效果。本专利技术中,不同文件对应不同的文件描述符,文件与文件描述符--对应。对某个文件发起读写操作时,生成携带该文件对应的文件描述符的读写请求。本专利技术所涉及的读写请求泛指对文件的各种操作,比如读操作、写操作等等。步骤S101、判断是否存在与文件描述符相对应的线程;如果存在,则进入步骤S102 ;如果不存在,则进入步骤S103。本专利技术中,在获取读写请求之后判断是否存在与读写请求携带的文件描述符对应的线程是为了判断本次读写请求是否是该文件的第一次请求,如果是,则需要执行步骤S103从多线程池中为其分配一合适的线程,然后将本次读写请求分配出去;如果不是,可以理解的是,先前已经为该文件分配过合适的线程,此时,进入步骤S本文档来自技高网...
【技术保护点】
一种分布式文件系统的线程分配方法,其特征在于,该方法包括:获取携带文件描述符的读写请求;判断是否存在与所述文件描述符相对应的线程;如果存在,则将所述读写请求分配至所述相对应的线程;如果不存在,则将所述读写请求分配至平衡链表中管理文件数量最少的线程;其中,所述平衡链表包括多个节点,各所述节点包括线程及其相应的管理文件数量。
【技术特征摘要】
【专利技术属性】
技术研发人员:吕强,
申请(专利权)人:浪潮北京电子信息产业有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。