CN105094992B - 一种处理文件请求的方法与系统 - Google Patents

一种处理文件请求的方法与系统 Download PDF

Info

Publication number
CN105094992B
CN105094992B CN201510622867.5A CN201510622867A CN105094992B CN 105094992 B CN105094992 B CN 105094992B CN 201510622867 A CN201510622867 A CN 201510622867A CN 105094992 B CN105094992 B CN 105094992B
Authority
CN
China
Prior art keywords
metadata
thread
target
request
processing
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.)
Active
Application number
CN201510622867.5A
Other languages
English (en)
Other versions
CN105094992A (zh
Inventor
李雪生
张延良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201510622867.5A priority Critical patent/CN105094992B/zh
Publication of CN105094992A publication Critical patent/CN105094992A/zh
Application granted granted Critical
Publication of CN105094992B publication Critical patent/CN105094992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种处理文件请求的方法与系统,将总内存空间按第一预设规则分成多个内存池,将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定,将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表,接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识,根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中,提高多线程的缓存性能以及内存访问性能。

Description

一种处理文件请求的方法与系统
技术领域
本发明涉及元数据缓存领域,特别是涉及一种处理文件请求的方法与系统。
背景技术
随着云存储应用的快速发展,尤其互联网业务的快速发展,海量小文件的应用对分布式文件系统元数据性能提出更高的要求。一般情况,元数据集群管理海量的文件元数据信息,需要使用大内存容量空间,这样多cpu、多核使用内存空间就会存在竞争及严重的缓存性能问题。
一方面,Cpu锁、核锁造成并发下降,系统处理性能不高;另一方面,元数据数据处理在大内存空间进行元数据检索、修改等操作,就会造成核的硬件多级缓存性能很难发挥,TLB性能、cache性能很差,最终计算机硬件很难有效发挥性能。
发明内容
有鉴于此,本发明的主要目的在于提供一种处理文件请求的方法与系统,可以提高多线程缓存性能和内存访问性能。
为实现上述目的,本发明提供了一种处理文件请求的方法,包括:
将总内存空间按第一预设规则分成多个内存池;
将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定;
将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表;
接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识;
根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
优选地,所述方法还包括:
当内存池负载不均衡时,调整所述目录表中各元数据处理线程的平衡均值,根据所述平衡均值重新建立全部元数据与各所述元数据处理线程的对应关系,进行元数据重新负载。
优选地,进行元数据重新负载包括:
接受新元数据请求,确定所述新元数据请求中的各目标元数据的元数据标识;
根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
优选地,所述第一预设规则为将总的内存空间按照预设内存池数目均分。
优选地,所述第二预设规则为将全部元数据平均分配至各所述元数据处理线程。
本发明还提供了一种处理文件请求的系统,包括:
分块模块,用于将总内存空间按第一预设规则分成多个内存池;
绑定模块,用于将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定;
目录表生成模块,用于将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表;
元数据标识确定模块,用于接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识;
请求处理模块,用于根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
优选地,所述系统还包括:
负载均衡模块,用于当内存池负载不均衡时,调整所述目录表中各元数据处理线程的平衡均值,根据所述平衡均值重新建立全部元数据与各所述元数据处理线程的对应关系,进行元数据重新负载。
优选地,所述第一预设规则为将总的内存空间按照预设内存池数目均分。
优选地,所述第二预设规则为将全部元数据平均分配至各所述元数据处理线程。
应用本发明提供的一种处理文件请求的方法与系统,将总内存空间按第一预设规则分成多个内存池,将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定,将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表,接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识,根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中,线程绑定核,单核使用独立小内存空间,提高高速缓存的命中,提高多线程的缓存性能,元数据按照目录多线程多核调度处理请求,多线程间免锁,多cpu间减少内存访问,提高内存访问性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明一种处理文件请求的方法一实施例的流程图;
图2为本发明一种处理文件请求的方法又一实施例的流程图;
图3为本发明一种处理文件请求的方法实施例的原理示意图;
图4为本发明一种处理文件请求的系统一实施例的结构示意图;
图5为本发明一种处理文件请求的系统又一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种处理文件请求的方法,图1示出了本发明处理文件请求的方法的一个实施例的流程图,包括:
步骤S101:将总内存空间按第一预设规则分成多个内存池;
第一预设规则如将总的内存空间按照预设内存池数目均分,得到多个内存较小的内存池。
步骤S102:将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定;
每个元数据处理线程绑定对应的服务核,并绑定对应的内存池,各cpu之间不互访访问,各核间不互相访问,仅对应线程访问独立的小的内存空间,数据处理过程免锁,cpu间的数据访问免拷贝,提高处理的并发执行。
步骤S103:将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表;
第二预设规则如将全部元数据平均分配至各所述元数据处理线程,使全部元数据与各所述元数据处理线程建立对应关系,根据每个元数据标识和对应的线程编号生成目录表,可采用动态hash环算法。
每个元数据处理线程读/写内存空间被缩小,读写的缓存被有效的提升,一个n核的系统,cache缓存及TLB传输后备缓冲器缓存大小为m,元数据空间为M,缓存命中率p:使用前,p=m/M,使用后,p=m/(M/n),降低单核快速缓存资源竞争,提高元数据处理的性能。
步骤S104:接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识;
文件系统的元数据ino标识是全局统计连续分配的资源。
步骤S105:根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
元数据请求中根据元数据ino查目录,获取对应的线程号,将元数据分配到指定的线程,元数据实现到对应内存池的存储。
应用本实施例提供的一种处理文件请求的方法,如图2所示,线程绑定核与对应内存池,单核使用独立小内存空间,提高高速缓存的命中,提高多线程的缓存性能,元数据按照目录多线程多核调度处理请求,多线程间免锁,多cpu间减少内存访问,提高内存访问性能。
图3示出了本发明一种处理文件请求的方法又一实施例的流程图,对应于图1,还包括:
步骤S106:当内存池负载不均衡时,调整所述目录表中各元数据处理线程的平衡均值,根据所述平衡均值重新建立全部元数据与各所述元数据处理线程的对应关系,进行元数据重新负载。
内存池或元数据处理线程负载不均衡时,调整动态hash环的节点权值,重新调整内存池的负载,具体包括:
接受新元数据请求,确定所述新元数据请求中的各目标元数据的元数据标识;
根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
本实施例文件元数据分核动态调度,根据元数据热度动态调整目录在内存池分布,可以解决负载不均衡的问题。
本发明还提供了一种处理文件请求的系统,图4示出了本发明处理文件请求的系统的一个实施例的结构示意图,包括:
分块模块101,用于将总内存空间按第一预设规则分成多个内存池;
绑定模块102,用于将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定;
目录表生成模块103,用于将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表;
元数据标识确定模块104,用于接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识;
请求处理模块105,用于根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
应用本实施例提供的一种处理文件请求的系统,将总内存空间按第一预设规则分成多个内存池,将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定,将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表,接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识,根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中,线程绑定核,单核使用独立小内存空间,提高高速缓存的命中,提高多线程的缓存性能,元数据按照目录多线程多核调度处理请求,多线程间免锁,多cpu间减少内存访问,提高内存访问性能。
图5示出了本发明处理文件请求的系统又一实施例的结构示意图,对应于图4,还包括:
负载均衡模块106,用于当内存池负载不均衡时,调整所述目录表中各元数据处理线程的平衡均值,根据所述平衡均值重新建立全部元数据与各所述元数据处理线程的对应关系,进行元数据重新负载。
本实施例文件元数据分核动态调度,根据元数据热度动态调整目录在内存池分布;线程绑定核,单核使用独立小内存空间,提高高速缓存的命中,提高多线程的缓存性能;元数据按照目录多线程多核调度处理请求,多线程间免锁,多cpu间减少内存访问,提高内存访问性能。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种处理文件请求的方法,其特征在于,包括:
将总内存空间按第一预设规则分成多个内存池;
将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定;
将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表;
接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识;
根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
2.根据权利要求1所述的方法,其特征在于,还包括:
当内存池负载不均衡时,调整所述目录表中各元数据处理线程的平衡均值,根据所述平衡均值重新建立全部元数据与各所述元数据处理线程的对应关系,进行元数据重新负载。
3.根据权利要求2所述的方法,其特征在于,进行元数据重新负载包括:
接受新元数据请求,确定所述新元数据请求中的各目标元数据的元数据标识;
根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
4.根据权利要求1所述方法,其特征在于,所述第一预设规则为将总的内存空间按照预设内存池数目均分。
5.根据权利要求4所述方法,其特征在于,所述第二预设规则为将全部元数据平均分配至各所述元数据处理线程。
6.一种处理文件请求的系统,其特征在于,包括:
分块模块,用于将总内存空间按第一预设规则分成多个内存池;
绑定模块,用于将每个内存池分别与一个对应的元数据处理线程进行绑定,将每个元数据线程分别与一个对应的服务核进行绑定;
目录表生成模块,用于将全部元数据按第二预设规则与各所述元数据处理线程建立对应关系,并根据每个元数据标识和对应的线程编号生成目录表;
元数据标识确定模块,用于接受元数据请求,确定所述元数据请求中的各目标元数据的元数据标识;
请求处理模块,用于根据各所述目标元数据的元数据标识通过所述目录表查找各所述目标元数据对应的各目标元数据处理线程,将各所述目标元数据分别存储至对应的目标元数据处理线程具有绑定关系的内存池中。
7.根据权利要求6所述的系统,其特征在于,还包括:
负载均衡模块,用于当内存池负载不均衡时,调整所述目录表中各元数据处理线程的平衡均值,根据所述平衡均值重新建立全部元数据与各所述元数据处理线程的对应关系,进行元数据重新负载。
8.根据权利要求6所述系统,其特征在于,所述第一预设规则为将总的内存空间按照预设内存池数目均分。
9.根据权利要求6所述系统,其特征在于,所述第二预设规则为将全部元数据平均分配至各所述元数据处理线程。
CN201510622867.5A 2015-09-25 2015-09-25 一种处理文件请求的方法与系统 Active CN105094992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510622867.5A CN105094992B (zh) 2015-09-25 2015-09-25 一种处理文件请求的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510622867.5A CN105094992B (zh) 2015-09-25 2015-09-25 一种处理文件请求的方法与系统

Publications (2)

Publication Number Publication Date
CN105094992A CN105094992A (zh) 2015-11-25
CN105094992B true CN105094992B (zh) 2018-11-02

Family

ID=54575498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510622867.5A Active CN105094992B (zh) 2015-09-25 2015-09-25 一种处理文件请求的方法与系统

Country Status (1)

Country Link
CN (1) CN105094992B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389392A (zh) * 2015-12-18 2016-03-09 浪潮(北京)电子信息产业有限公司 一种元数据负载统计方法与系统
CN105677892B (zh) * 2016-01-29 2018-12-25 华为技术有限公司 一种读取目录子项元数据的方法及装置
CN107818017B (zh) * 2016-09-14 2021-09-03 北京京东尚科信息技术有限公司 多线程计算系统及其数据处理方法、装置和计算机可读存储介质
CN109101194A (zh) * 2018-07-26 2018-12-28 郑州云海信息技术有限公司 一种刷写性能优化方法和存储系统
CN110019024B (zh) * 2019-04-11 2021-09-17 苏州浪潮智能科技有限公司 一种目录查询方法、系统及电子设备和存储介质
CN110555001B (zh) * 2019-09-05 2021-05-28 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质
CN111104218B (zh) * 2019-11-29 2022-04-22 北京浪潮数据技术有限公司 存储系统数据同步方法、装置、设备及可读存储介质
TWI761992B (zh) * 2020-10-16 2022-04-21 創鑫智慧股份有限公司 資料計算裝置及其操作方法
CN116204134B (zh) * 2023-04-25 2023-07-21 苏州浪潮智能科技有限公司 缓存管理方法、装置、设备、存储系统及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354726A (zh) * 2008-09-17 2009-01-28 中国科学院计算技术研究所 一种机群文件系统的内存元数据管理方法
CN101504670A (zh) * 2009-03-04 2009-08-12 成都市华为赛门铁克科技有限公司 数据操作方法、系统、客户端和数据服务器
CN101650698A (zh) * 2009-08-28 2010-02-17 曙光信息产业(北京)有限公司 直接存储器访问的实现方法
CN101799773A (zh) * 2010-04-07 2010-08-11 福州福昕软件开发有限公司 并行计算的内存访问方法
CN102375780A (zh) * 2011-10-25 2012-03-14 无锡城市云计算中心有限公司 一种分布式文件系统中元数据缓存管理的方法
CN103020315A (zh) * 2013-01-10 2013-04-03 中国人民解放军国防科学技术大学 一种基于主从分布式文件系统的海量小文件存储方法
CN103150217A (zh) * 2013-03-27 2013-06-12 无锡江南计算技术研究所 多核处理器操作系统设计方法
CN103310000A (zh) * 2013-06-25 2013-09-18 曙光信息产业(北京)有限公司 元数据管理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354726A (zh) * 2008-09-17 2009-01-28 中国科学院计算技术研究所 一种机群文件系统的内存元数据管理方法
CN101504670A (zh) * 2009-03-04 2009-08-12 成都市华为赛门铁克科技有限公司 数据操作方法、系统、客户端和数据服务器
CN101650698A (zh) * 2009-08-28 2010-02-17 曙光信息产业(北京)有限公司 直接存储器访问的实现方法
CN101799773A (zh) * 2010-04-07 2010-08-11 福州福昕软件开发有限公司 并行计算的内存访问方法
CN102375780A (zh) * 2011-10-25 2012-03-14 无锡城市云计算中心有限公司 一种分布式文件系统中元数据缓存管理的方法
CN103020315A (zh) * 2013-01-10 2013-04-03 中国人民解放军国防科学技术大学 一种基于主从分布式文件系统的海量小文件存储方法
CN103150217A (zh) * 2013-03-27 2013-06-12 无锡江南计算技术研究所 多核处理器操作系统设计方法
CN103310000A (zh) * 2013-06-25 2013-09-18 曙光信息产业(北京)有限公司 元数据管理方法

Also Published As

Publication number Publication date
CN105094992A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN105094992B (zh) 一种处理文件请求的方法与系统
CN104065568B (zh) 一种Web服务器集群的路由方法
CN106528287B (zh) 计算机系统资源分配方法和装置
CN106844510A (zh) 一种分布式数据库集群的数据迁移方法和装置
CN103716381A (zh) 一种分布式系统的控制方法,及管理节点
CN102938790A (zh) 云计算系统中的资源分配方法
WO2020259082A1 (zh) 缓存的分配方法及装置、存储介质、电子装置
CN107729261B (zh) 一种多核/众核处理器中Cache地址映射方法
CN103595780A (zh) 基于消重的云计算资源调度方法
CN104063501B (zh) 基于hdfs的副本平衡方法
CN105094751A (zh) 一种用于流式数据并行处理的内存管理方法
CN107729514A (zh) 一种基于hadoop的副本放置节点确定方法及装置
CN111723900A (zh) 一种基于众核处理器的神经网络的映射方法及计算设备
CN107623732A (zh) 一种基于云平台的数据存储方法、装置、设备及存储介质
CN105915626B (zh) 一种面向云存储的数据副本初始放置方法
CN108052460A (zh) 地面测试设备嵌入式软件中动态内存映射文件读取方法
CN104158902B (zh) 一种基于请求数的Hbase数据块分配方法及装置
Steffenel Improving the performance of fog computing through the use of data locality
CN106156049A (zh) 一种数据读取的方法和系统
CN103842990B (zh) 基于索引的虚拟寻址的方法和设备
Han et al. Access trends of in-network cache for scientific data
CN106326143A (zh) 一种缓存分配、数据访问、数据发送方法、处理器及系统
Liang et al. [Retracted] Design of Virtual Machine Scheduling Algorithm in Cloud Computing Environment
CN104731980A (zh) 一种针对缓存页面的页面管理方法及装置
Zhang et al. Speeding up vm startup by cooperative vm image caching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant