《管理内存的方法、装置和系统.pdf》由会员分享,可在线阅读,更多相关《管理内存的方法、装置和系统.pdf(47页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104166628A43申请公布日20141126CN104166628A21申请号201310183167122申请日20130517G06F12/0620060171申请人华为技术有限公司地址518129广东省深圳市龙岗区坂田华为总部办公楼申请人中国科学院计算技术研究所72发明人张立新侯锐张科江涛74专利代理机构北京龙双利达知识产权代理有限公司11329代理人毛威张亮54发明名称管理内存的方法、装置和系统57摘要本发明提供一种管理内存的方法、装置和系统,能够容易地实现内存资源的共享。该方法包括请求节点发送第一指示信息,该第一指示信息用于指示该请求节点所需内存的长度;该请求。
2、节点接收第二指示信息,该第二指示信息用于指示能够提供远程内存的至少一个贡献节点中的目标贡献节点向该请求节点提供的第一远程内存;该请求节点从能够使用的虚拟地址中,确定与该第一远程内存相对应的第一虚拟地址;及当需要读写指针在该第一虚拟地址范围内的第一数据时,该请求节点发送针对该第一数据的第一数据读写指令,该第一数据读写指令包括第三指示信息,该第三指示信息用于指示该第一远程内存中用于存储该第一数据的存储空间。51INTCL权利要求书9页说明书31页附图6页19中华人民共和国国家知识产权局12发明专利申请权利要求书9页说明书31页附图6页10申请公布号CN104166628ACN104166628A1。
3、/9页21一种管理内存的方法,其特征在于,所述方法包括内存管理系统中的请求节点发送第一指示信息,所述第一指示信息用于指示所述请求节点所需内存的长度;所述请求节点接收第二指示信息,所述第二指示信息用于指示能够提供远程内存的至少一个贡献节点中的目标贡献节点向所述请求节点提供的第一远程内存,其中,所述第一远程内存是根据所述第一指示信息确定的,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度;所述请求节点从能够使用的虚拟地址中,确定与所述第一远程内存相对应的第一虚拟地址;及当需要读写指针在所述第一虚拟地址范围内的第一数据时,所述请求节点发送针对所述第一数据的第一数据读写指令,所述第一数据读写。
4、指令包括第三指示信息,所述第三指示信息用于指示所述第一远程内存中用于存储所述第一数据的存储空间,以便于所述目标贡献节点根据所述第三指示信息,存取所述第一数据。2根据权利要求1所述的方法,其特征在于,所述内存管理系统中的请求节点发送第一指示信息包括内存管理系统中的请求节点获取用于指示所述目标贡献节点的贡献节点信息;所述请求节点根据所述贡献节点信息,向所述目标贡献节点发送第一指示信息;以及所述请求节点接收第二指示信息包括所述请求节点接收所述目标贡献节点发送的第二指示信息。3根据权利要求2所述的方法,其特征在于,所述请求节点根据所述贡献节点信息,向所述目标贡献节点发送第一指示信息,包括所述请求节点根。
5、据所述贡献节点信息,向所述目标贡献节点发送针对第二数据的第二数据写指令,所述第二数据写指令包括所述第一指示信息;以及所述请求节点接收所述目标贡献节点发送的第二指示信息包括所述请求节点接收所述目标贡献节点发送的用于指示所述第二数据存储完成的第二数据写应答,所述第二数据写应答包括所述第二指示信息。4根据权利要求1所述的方法,其特征在于,所述内存管理系统中的请求节点发送第一指示信息包括内存管理系统中的请求节点向控制中心发送第一指示信息,以便于所述控制中心根据所述第一指示信息和所述贡献节点能够提供的远程内存的长度,从所述贡献节点中确定所述目标贡献节点以及所述第一远程内存,其中,所述贡献节点能够提供的远。
6、程内存的长度是所述控制中心根据所述贡献节点发送的用于指示所述贡献节点能够提供的远程内存的长度的第四指示信息确定的;以及所述请求节点接收第二指示信息包括所述请求节点接收所述控制中心发送的第二指示信息。5根据权利要求4所述的方法,其特征在于,所述方法还包括所述请求节点接收所述控制中心发送的用于指示所述目标贡献节点的贡献节点信息,以及所述请求节点发送针对所述第一数据的第一数据读写指令,包括权利要求书CN104166628A2/9页3所述请求节点根据所述贡献节点信息,向所述目标贡献节点发送针对所述第一数据的第一数据读写指令。6根据权利要求4所述的方法,其特征在于,所述请求节点发送针对所述第一数据的第一。
7、数据读写指令,包括所述请求节点广播针对所述第一数据的第一数据读写指令,以便于所述贡献节点在确定所述存储空间在所述贡献节点能够提供的远程内存的范围内后,存取所述第一数据。7根据权利要求6所述的方法,其特征在于,所述内存管理系统包括至少两个贡献节点,所述至少两个贡献节点能够提供的远程内存的物理地址相异。8根据权利要求1至7中任一项所述的方法,其特征在于,所述请求节点根据所述第一远程内存,确定第一虚拟地址,包括所述请求节点从所述请求节点内的本地内存中,确定与所述第一远程内存相对应的第一本地内存;所述请求节点根据所述第一本地内存,确定第一虚拟地址。9根据权利要求1至8中任一项所述的方法,其特征在于,所。
8、述第一远程内存的长度与所述请求节点所需内存的长度相同,以及所述第二指示信息用于指示所述第一远程内存的起始物理地址;所述第一远程内存的长度与所述第一数据的长度相同,以及所述第三指示信息用于指示所述存储空间的起始物理地址。10根据权利要求1至8中任一项所述的方法,其特征在于,所述第二指示信息用于指示所述第一远程内存的起始物理地址和长度;以及当所述第一数据的长度与所述第二指示信息指示的所述第一远程内存的长度相同时,所述第三指示信息用于指示所述第一远程内存的起始物理地址;当所述第一数据的长度小于所述第二指示信息指示的所述第一远程内存的长度时,所述第三指示信息用于指示所述存储空间的起始物理地址和长度。1。
9、1一种管理内存的方法,其特征在于,所述方法包括内存管理系统中的贡献节点确定第一远程内存,所述第一远程内存是根据来自请求节点的第一指示信息确定的,所述第一指示信息用于指示所述请求节点所需内存的长度,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度;所述贡献节点接收所述请求节点发送的针对第一数据的第一数据读写指令,所述第一数据读写指令用于指示所述贡献节点存取所述第一数据,所述第一数据读写指令包括第三指示信息,所述第三指示信息用于指示所述第一远程内存中用于存储所述第一数据的存储空间;所述贡献节点根据第一数据读写指令和所述第三指示信息,存取所述第一数据。12根据权利要求11所述的方法,其特征。
10、在于,所述内存管理系统中的贡献节点确定第一远程内存包括内存管理系统中的贡献节点接收所述请求节点发送的所述第一指示信息;所述贡献节点根据所述第一指示信息,确定所述第一远程内存;以及所述方法还包括所述贡献节点向所述请求节点发送用于指示所述第一远程内存的第二指示信息。权利要求书CN104166628A3/9页413根据权利要求12所述的方法,其特征在于,所述内存管理系统中的贡献节点接收所述请求节点发送的所述第一指示信息包括内存管理系统中的贡献节点接收所述请求节点发送的针对第二数据的第二数据写指令以及所述第二数据,所述第二数据写指令包括所述第一指示信息;所述贡献节点根据所述第一指示信息,确定所述第一远。
11、程内存,并将所述第一数据存储在所述第一远程内存中;以及所述贡献节点向所述请求节点发送用于指示所述第一远程内存的第二指示信息包括所述贡献节点向所述请求节点发送的用于指示所述第二数据存储完成的第二数据写应答,所述第二数据写应答包括用于指示所述第一远程内存的第二指示信息。14根据权利要求11所述的方法,其特征在于,所述内存管理系统中的贡献节点确定第一远程内存包括内存管理系统中的贡献节点向控制中心发送第四指示信息,所述第四指示信息用于指示所述贡献节点能够提供的远程内存的起始物理地址和长度;所述贡献节点接收所述控制中心发送的用于指示所述第一远程内存的第二指示信息,所述第一远程内存是所述控制中心根据所述第。
12、一指示信息和所述第四指示信息确定的;所述贡献节点根据所述第二指示信息,确定所述第一远程内存。15根据权利要求11至14中任一项所述的方法,其特征在于,所述贡献节点根据第一数据读写指令和所述第三指示信息,存取所述第一数据,包括所述贡献节点确定所述存储空间在所述第一远程内存的范围内;所述贡献节点根据第一数据读写指令,在所述存储空间内存取所述第一数据。16根据权利要求11至15中任一项所述的方法,其特征在于,所述请求节点所需内存的长度与所述第一数据的长度相同,所述目标贡献节点能够提供的远程内存的长度与所述请求节点所需内存的长度相同,以及所述第二指示信息和所述第三指示信息用于指示所述第一远程内存的起始。
13、物理地址。17根据权利要求11至15中任一项所述的方法,其特征在于,所述第二指示信息用于指示所述第一远程内存的起始物理地址和长度;以及当所述第一数据的长度与所述第二指示信息指示的所述第一远程内存的长度相同时,所述第三指示信息用于指示所述第一远程内存的起始物理地址;当所述第一数据的长度小于所述第二指示信息指示的所述第一远程内存的长度时,所述第三指示信息用于指示所述存储空间的起始物理地址和长度。18根据权利要求11至17中任一项所述的方法,其特征在于,所述方法还包括所述贡献节点获取用于指示所述请求节点的请求节点信息;所述贡献节点根据所述请求节点信息,确定所述请求节点;所述贡献节点禁止除所述请求节点。
14、以外的节点使用所述第一远程内存。19一种管理内存的方法,其特征在于,所述方法包括内存管理系统中的控制中心确定至少一个贡献节点能够提供的远程内存的起始物理地址和长度;所述控制中心接收请求节点发送的第一指示信息,第一指示信息用于指示所述请求节权利要求书CN104166628A4/9页5点所需内存的长度;所述控制中心根据所述第一指示信息和所述至少一个贡献节点能够提供的远程内存的起始物理地址和长度,从所述贡献节点中确定目标贡献节点以及所述目标贡献节点向所述请求节点提供的第一远程内存,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度;所述控制中心向所述请求节点和所述目标贡献节点发送用于指示所述。
15、第一远程内存的第二指示信息,以便于所述请求节点和所述目标贡献节点根据所述第二指示信息,确定所述第一远程内存,并在所述第一远程内存进行针对第一数据存取,其中,所述第一数据的指针在所述请求节点为所述第一远程内存分配的第一虚拟地址范围内。20根据权利要求19所述的方法,其特征在于,所述方法还包括所述控制中心向所述请求节点发送用于指示所述目标贡献节点的贡献节点信息,以便于所述请求节点根据所述贡献节点信息,向所述目标贡献节点发送针对所述第一数据的第一数据读写指令。21根据权利要求19或20所述的方法,其特征在于,所述方法还包括所述控制中心向所述贡献节点发送用于指示所述请求节点的请求节点信息,以便于所述目。
16、标贡献节点根据所述请求节点信息,确定所述请求节点,并禁止除所述请求节点以外的节点使用所述第一远程内存。22根据权利要求19至21中任一项所述的方法,其特征在于,所述内存管理系统包括至少两个贡献节点,以及所述控制中心根据所述第一指示信息和所述第四指示信息,从所述贡献节点中确定目标贡献节点以及所述目标贡献节点向所述请求节点提供的第一远程内存包括所述控制中心根据所述第一指示信息和所述第四指示信息,从所述贡献节点中确定目标贡献节点以及所述目标贡献节点向所述请求节点提供的第一远程内存,以使包括所述第一远程内存在内的各贡献节点提供的远程内存的物理地址相异。23根据权利要求19至22中任一项所述的方法,其特。
17、征在于,所述请求节点所需内存的长度与所述第一数据的长度相同,所述目标贡献节点能够提供的远程内存的长度与所述请求节点所需内存的长度相同,以及所述第二指示信息和所述第三指示信息用于指示所述第一远程内存的起始物理地址。24根据权利要求19至22中任一项所述的方法,其特征在于,所述第二指示信息用于指示所述第一远程内存的起始物理地址和长度;以及当所述第一数据的长度与所述第二指示信息指示的所述第一远程内存的长度相同时,所述第三指示信息用于指示所述第一远程内存的起始物理地址;当所述第一数据的长度小于所述第二指示信息指示的所述第一远程内存的长度时,所述第三指示信息用于指示用于存储所述第一数据的存储空间的起始物。
18、理地址和长度。25根据权利要求19至24中任一项所述的方法,其特征在于,所述内存管理系统中的控制中心确定至少一个贡献节点能够提供的远程内存的起始物理地址和长度包括内存管理系统中的控制中心接收至少一个贡献节点发送的第四指示信息,所述第四指示信息用于指示所述贡献节点能够提供的远程内存的起始物理地址和长度;所述控制中心根据所述第四指示信息,确定所述至少一个贡献节点能够提供的远程内权利要求书CN104166628A5/9页6存的起始物理地址和长度。26一种管理内存的装置,其特征在于,所述装置包括发送单元,用于使内存管理系统中的请求节点发送第一指示信息,所述第一指示信息用于指示所述请求节点所需内存的长度。
19、;接收单元,用于接收第二指示信息,所述第二指示信息用于指示能够提供远程内存的至少一个贡献节点中的目标贡献节点向所述请求节点提供的第一远程内存,其中,所述第一远程内存是根据所述第一指示信息确定的,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度;处理单元,用于从能够使用的虚拟地址中,确定与所述第一远程内存相对应的第一虚拟地址;用于当需要读写指针在所述第一虚拟地址范围内的第一数据时,控制所述发送单元发送针对所述第一数据的第一数据读写指令,所述第一数据读写指令包括第三指示信息,所述第三指示信息用于指示所述第一远程内存中用于存储所述第一数据的存储空间,以便于所述目标贡献节点根据所述第三指示信。
20、息,存取所述第一数据。27根据权利要求26所述的装置,其特征在于,所述处理单元具体用于获取用于指示所述目标贡献节点的贡献节点信息;所述发送单元具体用于根据所述贡献节点信息,向所述目标贡献节点发送第一指示信息;所述接收单元具体用于接收所述目标贡献节点发送的第二指示信息。28根据权利要求27所述的装置,其特征在于,所述发送单元具体用于根据所述贡献节点信息,向所述目标贡献节点发送针对第二数据的第二数据写指令,所述第二数据写指令包括所述第一指示信息;以及所述接收单元具体用于接收所述目标贡献节点发送的用于指示所述第二数据存储完成的第二数据写应答,所述第二数据写应答包括所述第二指示信息。29根据权利要求2。
21、6所述的装置,其特征在于,所述发送单元具体用于向控制中心发送第一指示信息,以便于所述控制中心根据所述第一指示信息和所述贡献节点能够提供的远程内存的长度,从所述贡献节点中确定所述目标贡献节点以及所述第一远程内存,其中,所述贡献节点能够提供的远程内存的长度是所述控制中心根据所述贡献节点发送的用于指示所述贡献节点能够提供的远程内存的长度的第四指示信息确定的;以及所述接收单元具体用于接收所述控制中心发送的第二指示信息。30根据权利要求29所述的装置,其特征在于,所述接收单元还用于接收所述控制中心发送的用于指示所述目标贡献节点的贡献节点信息,以及所述发送单元具体用于根据所述贡献节点信息,向所述目标贡献节。
22、点发送针对所述第一数据的第一数据读写指令。31根据权利要求29所述的装置,其特征在于,所述发送单元具体用于广播针对所述第一数据的第一数据读写指令,以便于所述贡献节点在确定所述存储空间在所述贡献节点能够提供的远程内存的范围内后,存取所述第一数据。32根据权利要求31所述的装置,其特征在于,所述内存管理系统包括至少两个贡献节点,所述至少两个贡献节点能够提供的远程内存的物理地址相异。权利要求书CN104166628A6/9页733根据权利要求26至32中任一项所述的装置,其特征在于,所述处理单元具体用于从所述请求节点内的本地内存中,确定与所述第一远程内存相对应的第一本地内存;用于根据所述第一本地内存。
23、,确定第一虚拟地址。34根据权利要求26至33中任一项所述的装置,其特征在于,所述第一远程内存的长度与所述请求节点所需内存的长度相同,以及所述第二指示信息用于指示所述第一远程内存的起始物理地址;所述第一远程内存的长度与所述第一数据的长度相同,以及所述第三指示信息用于指示所述存储空间的起始物理地址。35根据权利要求26至33中任一项所述的装置,其特征在于,所述第二指示信息用于指示所述第一远程内存的起始物理地址和长度;以及当所述第一数据的长度与所述第二指示信息指示的所述第一远程内存的长度相同时,所述第三指示信息用于指示所述第一远程内存的起始物理地址;当所述第一数据的长度小于所述第二指示信息指示的所。
24、述第一远程内存的长度时,所述第三指示信息用于指示所述存储空间的起始物理地址和长度。36一种管理内存的装置,其特征在于,所述装置包括处理单元,用于使内存管理系统中的贡献节点确定第一远程内存,所述第一远程内存是根据来自请求节点的第一指示信息确定的,所述第一指示信息用于指示所述请求节点所需内存的长度,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度;接收单元,用于接收所述请求节点发送的针对第一数据的第一数据读写指令,所述第一数据读写指令用于指示所述贡献节点存取所述第一数据,所述第一数据读写指令包括第三指示信息,所述第三指示信息用于指示所述第一远程内存中用于存储所述第一数据的存储空间;所述处。
25、理单元还用于根据第一数据读写指令和所述第三指示信息,存取所述第一数据。37根据权利要求36所述的装置,其特征在于,所述接收单元具体用于接收所述请求节点发送的所述第一指示信息;所述处理单元具体用于根据所述第一指示信息,确定所述第一远程内存;以及所述装置还包括发送单元,用于向所述请求节点发送用于指示所述第一远程内存的第二指示信息。38根据权利要求37所述的装置,其特征在于,所述接收单元具体用于接收所述请求节点发送的针对第二数据的第二数据写指令以及所述第二数据,所述第二数据写指令包括所述第一指示信息;所述处理单元具体用于根据所述第一指示信息,确定所述第一远程内存,并将所述第一数据存储在所述第一远程内。
26、存中;所述发送单元具体用于向所述请求节点发送的用于指示所述第二数据存储完成的第二数据写应答,所述第二数据写应答包括用于指示所述第一远程内存的第二指示信息。39根据权利要求36所述的装置,其特征在于,所述装置还包括发送单元,用于向控制中心发送第四指示信息,所述第四指示信息用于指示所述贡献节点能够提供的远程内存的起始物理地址和长度;权利要求书CN104166628A7/9页8所述接收单元具体用于接收所述控制中心发送的用于指示所述第一远程内存的第二指示信息,所述第一远程内存是所述控制中心根据所述第一指示信息和所述第四指示信息确定的;所述处理单元具体用于根据所述第二指示信息,确定所述第一远程内存。40。
27、根据权利要求36至39中任一项所述的装置,其特征在于,所述处理单元具体用于确定所述存储空间在所述第一远程内存的范围内;用于根据第一数据读写指令,在所述存储空间内存取所述第一数据。41根据权利要求36至40中任一项所述的装置,其特征在于,所述请求节点所需内存的长度与所述第一数据的长度相同,所述目标贡献节点能够提供的远程内存的长度与所述请求节点所需内存的长度相同,以及所述第二指示信息和所述第三指示信息用于指示所述第一远程内存的起始物理地址。42根据权利要求36至40中任一项所述的装置,其特征在于,所述第二指示信息用于指示所述第一远程内存的起始物理地址和长度;以及当所述第一数据的长度与所述第二指示信。
28、息指示的所述第一远程内存的长度相同时,所述第三指示信息用于指示所述第一远程内存的起始物理地址;当所述第一数据的长度小于所述第二指示信息指示的所述第一远程内存的长度时,所述第三指示信息用于指示所述存储空间的起始物理地址和长度。43根据权利要求36至42中任一项所述的装置,其特征在于,所述处理单元还用于获取用于指示所述请求节点的请求节点信息;用于根据所述请求节点信息,确定所述请求节点;用于禁止除所述请求节点以外的节点使用所述第一远程内存。44一种管理内存的装置,其特征在于,所述装置包括处理单元,用于使内存管理系统中的控制中心确定至少一个贡献节点能够提供的远程内存的起始物理地址和长度;接收单元,用于。
29、接收请求节点发送的第一指示信息,第一指示信息用于指示所述请求节点所需内存的长度;所述处理单元还用于根据所述第一指示信息和所述至少一个贡献节点能够提供的远程内存的起始物理地址和长度,从所述贡献节点中确定目标贡献节点以及所述目标贡献节点向所述请求节点提供的第一远程内存,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度;发送单元,用于向所述请求节点和所述目标贡献节点发送用于指示所述第一远程内存的第二指示信息,以便于所述请求节点和所述目标贡献节点根据所述第二指示信息,确定所述第一远程内存,并在所述第一远程内存进行针对第一数据存取,其中,所述第一数据的指针在所述请求节点为所述第一远程内存分配的。
30、第一虚拟地址范围内。45根据权利要求44所述的装置,其特征在于,所述发送单元还用于向所述请求节点发送用于指示所述目标贡献节点的贡献节点信息,以便于所述请求节点根据所述贡献节点信息,向所述目标贡献节点发送针对所述第一数据的第一数据读写指令。46根据权利要求44或45所述的装置,其特征在于,所述发送单元还用于向所述贡献节点发送用于指示所述请求节点的请求节点信息,以便于所述目标贡献节点根据所述请求权利要求书CN104166628A8/9页9节点信息,确定所述请求节点,并禁止除所述请求节点以外的节点使用所述第一远程内存。47根据权利要求44至46中任一项所述的装置,其特征在于,所述内存管理系统包括至少。
31、两个贡献节点,以及该处理单元具体用于根据所述第一指示信息和所述第四指示信息,从所述贡献节点中确定目标贡献节点以及所述目标贡献节点向所述请求节点提供的第一远程内存,以使包括所述第一远程内存在内的各贡献节点提供的远程内存的物理地址相异。48根据权利要求44至47中任一项所述的装置,其特征在于,所述请求节点所需内存的长度与所述第一数据的长度相同,所述目标贡献节点能够提供的远程内存的长度与所述请求节点所需内存的长度相同,以及所述第二指示信息和所述第三指示信息用于指示所述第一远程内存的起始物理地址。49根据权利要求44至47中任一项所述的装置,其特征在于,所述第二指示信息用于指示所述第一远程内存的起始物。
32、理地址和长度;以及当所述第一数据的长度与所述第二指示信息指示的所述第一远程内存的长度相同时,所述第三指示信息用于指示所述第一远程内存的起始物理地址;当所述第一数据的长度小于所述第二指示信息指示的所述第一远程内存的长度时,所述第三指示信息用于指示用于存储所述第一数据的存储空间的起始物理地址和长度。50根据权利要求44至49中任一项所述的装置,其特征在于,所述接收单元还用于接收至少一个贡献节点发送的第四指示信息,所述第四指示信息用于指示所述贡献节点能够提供的远程内存的起始物理地址和长度;所述处理单元具体用于根据所述第四指示信息,确定所述至少一个贡献节点能够提供的远程内存的起始物理地址和长度。51一。
33、种管理内存的系统,其特征在于,所述系统包括至少一个请求节点,用于发送第一指示信息,该第一指示信息用于指示该请求节点所需内存的长度,接收第二指示信息,所述第二指示信息用于指示能够提供远程内存的至少一个贡献节点中的目标贡献节点向所述请求节点提供的第一远程内存,其中,所述第一远程内存是根据所述第一指示信息确定的,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度,从能够使用的虚拟地址中,确定与所述第一远程内存相对应的第一虚拟地址,当需要读写指针在所述第一虚拟地址范围内的第一数据时,发送针对所述第一数据的第一数据读写指令,所述第一数据读写指令包括第三指示信息,所述第三指示信息用于指示所述第一远。
34、程内存中用于存储所述第一数据的存储空间,以便于所述目标贡献节点根据所述第三指示信息,存取所述第一数据;至少一个贡献节点,用于确定第一远程内存,所述第一远程内存是根据来自请求节点的第一指示信息确定的,所述第一指示信息用于指示所述请求节点所需内存的长度,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度,接收所述请求节点发送的针对第一数据的第一数据读写指令,所述第一数据读写指令用于指示所述贡献节点存取所述第一数据,所述第一数据读写指令包括第三指示信息,所述第三指示信息用于指示所述第一远程内存中用于存储所述第一数据的存储空间,根据第一数据读写指令和所述第三指示信息,存取所述第一数据。52根据。
35、权利要求51述的装置,其特征在于,所述系统还包括权利要求书CN104166628A9/9页10控制中心,用于确定至少一个贡献节点能够提供的远程内存的起始物理地址和长度,接收请求节点发送的第一指示信息,第一指示信息用于指示所述请求节点所需内存的长度,根据所述第一指示信息和所述至少一个贡献节点能够提供的远程内存的起始物理地址和长度,从所述贡献节点中确定目标贡献节点以及所述目标贡献节点向所述请求节点提供的第一远程内存,所述第一远程内存的长度大于或等于所述请求节点所需内存的长度,向所述请求节点和所述目标贡献节点发送用于指示所述第一远程内存的第二指示信息,以便于所述请求节点和所述目标贡献节点根据所述第二。
36、指示信息,确定所述第一远程内存,并在所述第一远程内存进行针对第一数据存取,其中,所述第一数据的指针在所述请求节点为所述第一远程内存分配的第一虚拟地址范围内。权利要求书CN104166628A101/31页11管理内存的方法、装置和系统技术领域0001本发明涉及计算机领域,并且更具体地,涉及管理内存的方法、装置和系统背景技术0002目前,管理资源的服务器系统根据规模不同,通常由几十台、几百台、甚至上万台计算机服务器节点组成。这些服务器节点大部分都是采用市场上的商用标准服务器,它们拥有各自独立内存等硬件设备。0003随着云计算模式的不断普及和广为接受,服务器节点需要为云计算服务,因此,应用负载变得。
37、越来越多样化,与事务处理和网络服务这样的传统负载相比,新出现的工作负载均是以数据为中心的。这些新的输入输出(IO,INPUT/OUTPUT)密集型的负载运行在大规模集群上(几百或几千台服务器),处理着多种多样的数据(有结构化的、无结构的、多媒体的)。0004因此,需要一种能够使各服务器节点之间容易地共享内存资源的方法。发明内容0005本发明实施例提供一种管理内存的方法、装置和系统,能够容易地实现内存资源的共享。0006第一方面,提供了一种管理内存的方法,该方法包括内存管理系统中的请求节点发送第一指示信息,该第一指示信息用于指示该请求节点所需内存的长度;接收第二指示信息,该第二指示信息用于指示能。
38、够提供远程内存的至少一个贡献节点中的目标贡献节点向该请求节点提供的第一远程内存,其中,该第一远程内存是根据该第一指示信息确定的,该第一远程内存的长度大于或等于该请求节点所需内存的长度;从能够使用的虚拟地址中,确定与该第一远程内存相对应的第一虚拟地址;当需要读写指针在该第一虚拟地址范围内的第一数据时,发送针对该第一数据的第一数据读写指令,该第一数据读写指令包括第三指示信息,该第三指示信息用于指示该第一远程内存中用于存储该第一数据的存储空间,以便于该目标贡献节点根据该第三指示信息,存取该第一数据。0007在一种可能的实施方式中,该内存管理系统中的请求节点发送第一指示信息包括内存管理系统中的请求节点。
39、获取用于指示该目标贡献节点的贡献节点信息;根据该贡献节点信息,向该目标贡献节点发送第一指示信息;以及该接收第二指示信息包括接收该目标贡献节点发送的第二指示信息。0008结合第一方面和第一种可能的实施方式,在第二种可能的实施方式中,该根据该贡献节点信息,向该目标贡献节点发送第一指示信息,包括根据该贡献节点信息,向该目标贡献节点发送针对第二数据的第二数据写指令,该第二数据写指令包括该第一指示信息;以及该接收该目标贡献节点发送的第二指示信息包括接收该目标贡献节点发送的用于指示该第二数据存储完成的第二数据写应答,该第二数据写应答包括该第二指示信息。0009结合第一方面、第一种可能的实施方式和第二种可能。
40、的实施方式,在第三种可能说明书CN104166628A112/31页12的实施方式中,该内存管理系统中的请求节点发送第一指示信息包括内存管理系统中的请求节点向控制中心发送第一指示信息,以便于该控制中心根据该第一指示信息和该贡献节点能够提供的远程内存的长度,从该贡献节点中确定该目标贡献节点以及该第一远程内存,其中,该贡献节点能够提供的远程内存的长度是该控制中心根据该贡献节点发送的用于指示该贡献节点能够提供的远程内存的长度的第四指示信息确定的;以及该接收第二指示信息包括接收该控制中心发送的第二指示信息。0010结合第一方面、第一种可能的实施方式、第二种可能的实施方式和第三种可能的实施方式,在第四种。
41、可能的实施方式中,该方法还包括接收该控制中心发送的用于指示该目标贡献节点的贡献节点信息,以及该发送针对该第一数据的第一数据读写指令,包括根据该贡献节点信息,向该目标贡献节点发送针对该第一数据的第一数据读写指令。0011结合第一方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式和第四种可能的实施方式,在第五种可能的实施方式中,该发送针对该第一数据的第一数据读写指令,包括广播针对该第一数据的第一数据读写指令,以便于该贡献节点在确定该存储空间在该贡献节点能够提供的远程内存的范围内后,存取该第一数据。0012结合第一方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施。
42、方式、第四种可能的实施方式和第五种可能的实施方式,在第六种可能的实施方式中,内存管理系统包括至少两个贡献节点,该至少两个贡献节点能够提供的远程内存的物理地址相异。0013结合第一方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式、第四种可能的实施方式、第五种可能的实施方式和第六种可能的实施方式,在第七种可能的实施方式中,该根据该第一远程内存,确定第一虚拟地址,包括从该请求节点内的本地内存中,确定与该第一远程内存相对应的第一本地内存,根据该第一本地内存,确定第一虚拟地址。0014结合第一方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式、第四种可能的实施方。
43、式、第五种可能的实施方式、第六种可能的实施方式和第七种可能的实施方式,在第八种可能的实施方式中,该第一远程内存的长度与该请求节点所需内存的长度相同,以及该第二指示信息用于指示该第一远程内存的起始物理地址;该第一远程内存的长度与该第一数据的长度相同,以及该第三指示信息用于指示该存储空间的起始物理地址。0015结合第一方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式、第四种可能的实施方式、第五种可能的实施方式、第六种可能的实施方式、第七种可能的实施方式和第八种可能的实施方式,在第九种可能的实施方式中,该第二指示信息用于指示该第一远程内存的起始物理地址和长度;以及当该第一数据的。
44、长度与该第二指示信息指示的该第一远程内存的长度相同时,该第三指示信息用于指示该第一远程内存的起始物理地址;当该第一数据的长度小于该第二指示信息指示的该第一远程内存的长度时,该第三指示信息用于指示该存储空间的起始物理地址和长度。0016第二方面,提供了一种管理内存的方法,该方法包括内存管理系统中的贡献节点确定第一远程内存,该第一远程内存是根据来自请求节点的第一指示信息确定的,该第一指示信息用于指示该请求节点所需内存的长度,该第一远程内存的长度大于或等于该请求说明书CN104166628A123/31页13节点所需内存的长度;接收该请求节点发送的针对第一数据的第一数据读写指令,该第一数据读写指令用。
45、于指示该贡献节点存取该第一数据,该第一数据读写指令包括第三指示信息,该第三指示信息用于指示该第一远程内存中用于存储该第一数据的存储空间;根据第一数据读写指令和该第三指示信息,存取该第一数据。0017在一种可能的实施方式中,该内存管理系统中的贡献节点确定第一远程内存包括内存管理系统中的贡献节点接收该请求节点发送的该第一指示信息;根据该第一指示信息,确定该第一远程内存;以及该方法还包括向该请求节点发送用于指示该第一远程内存的第二指示信息。0018结合第二方面和第一种可能的实施方式,在第二种可能的实施方式中,该内存管理系统中的贡献节点接收该请求节点发送的该第一指示信息包括内存管理系统中的贡献节点接收。
46、该请求节点发送的针对第二数据的第二数据写指令以及该第二数据,该第二数据写指令包括该第一指示信息;根据该第一指示信息,确定该第一远程内存,并将该第一数据存储在该第一远程内存中;以及该向该请求节点发送用于指示该第一远程内存的第二指示信息包括向该请求节点发送的用于指示该第二数据存储完成的第二数据写应答,该第二数据写应答包括用于指示该第一远程内存的第二指示信息。0019结合第二方面、第一种可能的实施方式和第二种可能的实施方式,在第三种可能的实施方式中,该内存管理系统中的贡献节点确定第一远程内存包括内存管理系统中的贡献节点向控制中心发送第四指示信息,该第四指示信息用于指示该贡献节点能够提供的远程内存的起。
47、始物理地址和长度;接收该控制中心发送的第二指示信息,该第二指示信息是该控制中心根据该第一指示信息和该第四指示信息确定的;根据该第二指示信息,确定该第一远程内存。0020结合第二方面、第一种可能的实施方式、第二种可能的实施方式和第三种可能的实施方式,在第四种可能的实施方式中,该根据第一数据读写指令和该第三指示信息,存取该第一数据,包括确定该存储空间在该第一远程内存的范围内;根据第一数据读写指令,在该存储空间内存取该第一数据。0021结合第二方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式和第四种可能的实施方式,在第五种可能的实施方式中,该请求节点所需内存的长度与该第一数据的。
48、长度相同,该目标贡献节点能够提供的远程内存的长度与该请求节点所需内存的长度相同,以及该第二指示信息和该第三指示信息用于指示该第一远程内存的起始物理地址。0022结合第二方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式、第四种可能的实施方式和第五种可能的实施方式,在第六种可能的实施方式中,该第二指示信息用于指示该第一远程内存的起始物理地址和长度;以及当该第一数据的长度与该第二指示信息指示的该第一远程内存的长度相同时,该第三指示信息用于指示该第一远程内存的起始物理地址;当该第一数据的长度小于该第二指示信息指示的该第一远程内存的长度时,该第三指示信息用于指示该存储空间的起始物理。
49、地址和长度。0023结合第二方面、第一种可能的实施方式、第二种可能的实施方式、第三种可能的实施方式、第四种可能的实施方式、第五种可能的实施方式和第六种可能的实施方式,在第七种可能的实施方式中,该方法还包括获取用于指示该请求节点的请求节点信息;根据该说明书CN104166628A134/31页14请求节点信息,确定该请求节点;禁止除该请求节点以外的节点使用该第一远程内存。0024第三方面,提供了一种管理内存的方法,该方法包括内存管理系统中的控制中心确定至少一个贡献节点能够提供的远程内存的起始物理地址和长度,接收请求节点发送的第一指示信息,第一指示信息用于指示该请求节点所需内存的长度,根据该第一指。
50、示信息和该至少一个贡献节点能够提供的远程内存的起始物理地址和长度,从该贡献节点中确定目标贡献节点以及该目标贡献节点向该请求节点提供的第一远程内存,该第一远程内存的长度大于或等于该请求节点所需内存的长度;向该请求节点和该目标贡献节点发送用于指示该第一远程内存的第二指示信息,以便于该请求节点和该目标贡献节点根据该第二指示信息,确定该第一远程内存,并在该第一远程内存进行针对第一数据存取,其中,该第一数据的指针在该请求节点为该第一远程内存分配的第一虚拟地址范围内。0025在一种可能的实施方式中,该方法还包括向该请求节点发送用于指示该目标贡献节点的贡献节点信息,以便于该请求节点根据该贡献节点信息,向该目。