CN105190581A - 通过网络的存储器共享 - Google Patents

通过网络的存储器共享 Download PDF

Info

Publication number
CN105190581A
CN105190581A CN201480014739.6A CN201480014739A CN105190581A CN 105190581 A CN105190581 A CN 105190581A CN 201480014739 A CN201480014739 A CN 201480014739A CN 105190581 A CN105190581 A CN 105190581A
Authority
CN
China
Prior art keywords
computing equipment
memory
storer
network service
locality
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
Application number
CN201480014739.6A
Other languages
English (en)
Inventor
D·T·哈珀三世
S·森吉普塔
D·C·伯格
E·C·彼得森
D·A·马尔茨
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105190581A publication Critical patent/CN105190581A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

存储器在各物理上不同的联网计算设备之间共享。每一计算设备包括接受来自在本地执行的进程的命令并将这些命令转换成可传送到远程计算设备的形式的远程存储器接口(RMI)。RMI还接受定向到它的远程通信并将这些通信转换成定向到本地存储器的命令。所共享的存储容量的量由集中式控制器(单个控制器、控制器的分层集合或对等协商)来通知。定向到远程高速非易失性存储介质的请求被检测或标志,且生成该请求的进程被挂起,使得它可被高效地苏醒。远程存储器所提供的存储容量被映射到在本地执行的进程的进程空间。

Description

通过网络的存储器共享
背景技术
随着计算设备之间的通信的吞吐量持续增加,将数据从一个计算设备转移到另一个日益变得较不昂贵。因此,位于远程的服务器计算设备日益被用来执行大规模处理,其中得自这样的处理的数据通过经由计算机网络耦合到这样的服务器计算设备的本地、个人计算设备传递回用户。
传统服务器计算设备通常被优化以允许大量这样的服务器计算设备物理上位于一处。例如,传统服务器计算设备通常利用“刀片”体系结构来构建,其中服务器计算设备的硬件位于物理上是紧凑的且被设计成使得多个这样的刀片可垂直安排在“机架”架构中的物理外壳内。机架内的每一服务器计算设备可以联网在一起,且多个这样的机架可物理上位于一处,如在数据中心内。计算任务随后可被分发在单个数据中心内的多个这样的服务器计算设备之间,从而允许更高效地完成任务。
在将计算任务分发在多个服务器计算设备之间时,这些多个服务器计算设备中的每一者可访问可被存储在按盘阵列形式组织的计算机可读存储介质上或可被多个服务器计算设备中的任一者同等访问(如通过存储区域网络(SAN)或其他类似机制)的计算机可读存储介质的其他类似集合上的单个数据集。计算任务随后可由多个服务器计算设备并行执行,而无需一定做出在其上执行这样的计算任务的所存储数据的多个副本。
不幸的是,每一服务器计算设备的处理单元受它们可用来执行计算任务的存储器的量的限制。更具体而言,每一服务器计算设备的处理单元可能只能直接访问物理上位于与该处理单元相同的服务器计算设备内的存储器。虚拟存储器技术通常被用来启用如下计算任务的处理:该计算任务需要访问比物理上安装在给定服务器计算设备上的存储器更大量的存储器。这样的虚拟存储器技术可将数据从存储器对换到盘,从而生成更大量的存储器的表面现象。不幸的是,从存储器到盘的数据来回对换通常引入不可接受的延迟。这样的延迟可同样存在于盘物理上位于同一服务器计算设备还是位于远程,如在另一计算设备上或作为SAN的一部分。更具体而言,改进用来支持这样的对换的存储介质的速度没有解决通过使用虚拟存储器技术引入的延迟。
发明内容
在一个实施例中,物理上作为一个计算设备的一部分的存储器可被映射到在通信耦合到第一计算设备的另一不同的计算设备上执行的进程的进程空间且可由这些进程直接访问。一个计算设备的本地可寻址存储器名字空间因而由物理上可在另一不同的计算设备上的存储器来支持。
在另一实施例中,远程存储器接口(RMI)可以向在本地执行的进程提供存储器管理功能,接受来自在本地执行的进程的、被定向到在本地可寻址的存储器名字空间的命令,并随后将这些命令转换成可通过通信连接传送到其物理存储器支持在本地可寻址的存储器名字空间的一部分的远程计算设备的形式。RMI还可接受定向到它的远程通信并将这些通信转换成定向到安装在本地的存储器的命令。
在另一实施例中,控制器可以确定有多少存储器存储容量要与在另一计算设备上执行的进程共享。这样的控制器可以是可协调存储器在多个计算设备之间的共享的集中式控制器,或者它可以按多个计算设备本身之间的对等通信的形式来实现。作为又一替换方案,这样的控制器可以按分层格式来实现,其中控制器的一层协调存储器在计算设备集之间的共享,且控制器的另一层协调每一单独的计算设备集中的各单独计算设备之间的共享。
在又一实施例中,在本地执行的进程尝试访问在本地可寻址的存储器名字空间的由远程计算设备上的物理存储器支持的一部分时,这样的访问可被检测到或标志出,且生成这样的请求的任务的执行可被挂起等待数据的远程访问的完成。这样的挂起可根据这样的远程存储器操作的效率来定制,这可以比当前虚拟存储器操作快几个数量级。
在又一实施例中,共享存储器的各单独计算设备的操作系统可包括调整所共享的这样的存储器的存储量的功能,以及将由与在其上执行进程的计算设备远离的存储器所支持的存储容量映射到在这样的计算设备上执行的这样的进程的进程空间的功能。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
当参考附图阅读以下详细描述时,将使得其它特征和优点是显而易见的。
附图简述
以下详细描述在结合附图参考时可得到最佳的理解,附图中:
图1是示例性存储器共享环境的框图;
图2是启用存储器共享的示例性体系结构的框图;
图3a和3b是示例性存储器共享机制的流程图;以及
图4是示出示例性通用计算设备的框图。
详细描述
以下描述涉及通过网络共享存储器。存储器可以在彼此(诸如经由网络)通信耦合的各计算设备之间共享。每一计算设备可包括可向在本地执行的进程提供存储器管理功能的远程存储器接口(RMI),接受来自在本地执行的进程的、定向到在本地可寻址的存储器名字空间的命令并随后将这些命令转换成可传送到远程计算设备的形式。RMI还可接受定向到它的远程通信并将这些通信转换成定向到本地存储器的命令。所共享的存储器的量可由集中式控制器(单个控制器或控制器的分层集合)来通知,或通过执行存储器共享的各单独计算设备之间的对等协商来通知。访问实际存储在远程存储器上的数据的请求可被检测或标志出且生成这样的请求的任务的执行可按以下方式被挂起:它可被高效地苏醒,适于远程存储器访问的效率。操作系统可以向在本地执行的应用提供包括实际上由一个或多个远程计算设备的物理存储器支持的容量的在本地可寻址的存储器名字空间。这样的操作系统机制还可调整可供用于在多个计算设备之间共享的存储器的量。
本文描述的技术引用了特定类型的计算资源的共享。具体而言,该机制描述涉及“存储器”的共享。如本文所使用的,术语“存储器”意味着支持能由在中央处理单元上执行的指令(通过在本地可寻址的存储器名字空间)直接访问的数据的存储的任何物理存储介质。在本文中定义的术语“存储器”的示例包括但不限于随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)、可控硅RAM(T-RAM)、零电容RAM(Z-RAM)以及双晶体管RAM(TTRAM)。尽管这样的示例列表不是限制性的,它不旨在将术语“存储器”的定义扩展超出以上提供的定义之外。具体而言,本文所使用的术语“存储器”特别排除存储可通过存储名字空间或文件系统访问的数据的存储介质。
虽然未作要求,但以下描述的各方面将在诸如程序模块等正由计算设备执行的计算机可执行指令的一般上下文中提供。更具体而言,除非另外指明,否则描述的各方面将参考一个或多个计算设备或外围设备所执行的动作以及其所执行的操作的符号表示。由此,应当理解,有时被称作计算机可执行的这种动作和操作包括处理单元对以结构化形式表示数据的电信号的操纵。这种操纵转换了数据或将其维持在存储器的位置中,这就以本领域技术人员所熟知的方式来重新配置或更改计算设备或外设的操作。数据被维护在其中的数据结构是具有由数据形式所定义的特定属性的物理位置。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将会认识到这些计算设备不必限于常规服务器计算机架或常规个人计算机,并且包括其他计算配置,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机等等。类似地,这些计算设备不必限于独立计算设备,因为各机制也可以在通过通信网络链接的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储设备两者中。
参考图1,示出了包括计算设备的网络190的示例性系统100。出于提供用于以下描述的示例性基础的目的,三个服务器计算设备(服务器计算设备110、120和130的形式)被示为经由网络190彼此通信耦合。服务器计算设备110、120和130中的每一者可包括可执行计算机可执行指令的处理单元。在这样的计算机可执行指令的执行中,数据可由处理单元存储到存储器中。取决于正在执行的计算机可执行指令,需要存储到存储器中的数据的量可能大于安装在服务器计算设备上的物理存储器的存储容量。在这种情况下,通常,虚拟存储器技术被利用,由此一些数据从存储器“对换”到较慢的非易失性存储介质,如硬盘驱动器。以此方式,使得更大的存储器容量可用。在正在执行的进程尝试从存储器读取从存储器对换到盘的数据时,可生成页错误,且处理可临时被挂起,同时这样的数据被从较慢的盘读回并再次存储在存储器中,随后它可从存储器中被提供给处理单元。如本领域技术人员将明白的,这样的过程可引入可能不合乎需要的延迟,尤其是在服务器计算上下文中。
图1的示例性系统100示出了其中服务器计算设备130已被指派可能需要服务器计算设备130执行处理功能的作业140的实施例。更具体而言,一个或多个处理单元(如服务器计算设备130的中央处理单元(CPU)132)可执行与作业140相关联的计算机可执行指令。通常,与作业140相关联的计算机可执行指令的执行可能需要将数据存储在存储器中,如服务器计算设备130的存储器135。出于以下描述的目的,与作业140相关联的计算机可执行指令可能需要的存储器的量可超过存储器135的量,或更确切地,可超过存储器135的可被分配给作业140的处理的存储器存储容量。
在图1所示的实施例中,服务器计算设备130的CPU132(它可以执行与作业140相关联的计算机可执行指令)可以与一个或多个存储器管理单元(MMU)(如MMU133)通信以将数据存储在存储器135中并从其检索数据。如本领域技术人员将明白的,通常,存储(STORE)指令可被用来将数据存储在存储器135中,且加载(LOAD)指令可被用来从存储器135读出数据并将它加载到CPU132的一个或多个寄存器中。虽然被分开示出,但MMU133通常是CPU132的集成部分。如上所示,如果在执行与作业140相关联的计算机可执行指令时,CPU132寻求将超过分配给它的存储器容量的附加数据存储到存储器中,在一个实施例中,通过远程存储器接口(RMI)131的功能,这样的附加存储器容量可作为在本地可寻址的存储器名字空间的一部分变得可用。更具体而言,计算机可执行指令访问在本地可寻址的存储器名字空间的一部分的尝试可以使这样的访问被定向到RMI131,RMI131可以将这样的访问转换成网络通信并且可与另一不同的计算设备(诸如例如服务器计算设备110和120之一)通信且因此可为在计算设备130上执行的进程的利益来利用安装在这样的另一计算设备上的物理存储器。
因而,在一个实施例中,从CPU132和由其执行的计算机可执行指令的观点来看,远程存储器接口131可以充当存储器管理单元,如MMU133。例如,存储器页表或其他类似存储器接口机制可以标识可与远程存储器接口131相关联的在本地可寻址的存储器名字空间的特定部分,如特定页或特定地址范围。定向到在本地可寻址的存储器名字空间的那些部分的加载或存储指令或其他类似指令可被定向到远程存储器接口131。因而,在本地可寻址的存储器名字空间(如可由服务器计算设备130所执行的进程利用的)可大于物理存储器135,因为远程存储器接口131可以利用远程计算设备的存储器(诸如例如服务器计算设备120的存储器125或服务器计算设备110的存储器115)来支持计算设备130上的增加的存储器名字空间。
在这样的实施例中,当在计算设备130上接收到定向到本地存储器名字空间的由远程存储器接口131支持的那一部分的命令时,远程存储器接口131可将该命令转换成可通过网络190传递到一个或多个其他计算设备(如服务器计算设备110和120)的格式。例如,远程存储器接口131可根据网络190所使用的网络协议所定义的分组结构来将该命令分组化。作为另一示例,远程存储器接口131可以生成适当的网络寻址信息和其他类似的路由信息,如网络190所使用的协议所规定的,以将通信定向到特定计算设备的远程存储器接口,诸如例如服务器计算设备120的远程存储器接口121或服务器计算设备110的远程存储器接口111。
随后,这些其他计算设备上的远程存储器接口在接收到定向到它们的网络通信时,可以将这些网络通信转换成适当的以存储器为中心的命令并在物理上位于与接收到这样的网络通信的远程存储器接口相同的计算设备的存储器上执行这样的命令。例如,在接收到来自远程存储器接口131的通信时,服务器计算设备120上的远程存储器接口121可以相关于存储器125的一部分126来执行动作。存储器125的该部分126可以是已被留出以供与其他计算设备共享的部分,如以下文将更详细地描述的方式。以类似的方式,服务器计算设备110上的远程存储器接口111可以响应于经由网络190接收到来自服务器计算设备130的远程存储器接口131的通信,来执行相关于服务器计算设备110的存储器115的部分116动作。虽然被示为不同的物理部分,但存储器115和125的部分116和126分别只旨在在图形上示出存储器115和125的存储器存储容量中的一些被保留以供这些计算设备的远程存储器接口(即,分别是远程存储器接口111和121)使用。如本领域技术人员将明白的,存储器115和125的支持在本地可寻址的存储器名字空间的实际物理数据存储单元(如晶体管)与提供被保留用于分别供远程存储器接口111和121利用的存储器存储容量的那些存储单元之间不必存在清晰的划分。
为了提供进一步描述,如果例如在执行作业140时,服务器计算设备130的CPU132寻求将数据存储到在本地可寻址的存储器空间的由远程存储器接口131(与存储器管理单元133相对)支持的一部分,这样的请求可被定向到远程存储器接口131,远程存储器接口131随后可将该请求转换成可被定向到服务器计算设备120上的远程存储器接口121和服务器计算设备110上的远程存储器接口111的网络通信。在接收到这样的网络通信时,远程存储器接口121可以将网络通信转换成存储数据的请求,并且随后可执行数据到服务器计算设备120的存储器125的部分126中的存储。类似地,在接收到这样的网络通信时,远程存储器接口111可以将网络通信转换成存储数据的请求,并且随后可执行数据到服务器计算设备120的存储器115的部分116中的存储。以此方式,可由在服务器计算设备130上执行的进程寻址的存储器名字空间可大于服务器计算设备130上存在的存储器135。更具体而言,且如将在下文更详细地描述的,来自其他计算设备的共享存储器(如服务器计算设备120的存储器125的部分126以及服务器计算设备110的存储器115的部分116)可以支持可由在服务器计算设备130上执行的进程寻址的存储器名字空间,诸如例如与作业140相关联的进程,从而使这些进程能够利用比这些进程在其上执行的服务器计算设备130上的存储器135中可用存储器更多的存储器。
在一个实施例中,使其可供共享的存储器存储容量的量可由集中式机制来协调,如存储器共享控制器170。例如,存储器共享控制器170可以接收来自计算设备的信息,如示例性服务器计算设备110、120和130,且可以基于这些接收到的信息来决定服务器计算设备110、120和130的要使其可供共享的存储器存储容量的量。例如,存储器共享控制器170可以指令服务器计算设备120使其存储器125的部分126可供共享。以类似的方式,存储器共享控制器170可以指令服务器计算设备110使其存储器115的部分116可供共享。作为响应,服务器计算设备110和120的操作系统或其他类似存储器控制器进程可以分别留出分别是存储器115和125的部分116和126,并且不将这些部分用于在这些服务器计算设备上本地执行的进程。更具体而言,存储器的特定页、存储器的特定地址、或其他类似标识符可被用来将在本地可寻址的存储器名字空间与保留供远程存储器接口使用并且因此与在远程计算设备上执行的进程共享的存储器存储容量区别描述。因而,例如,可由在服务器计算设备120上执行的进程利用的在本地可寻址的存储器名字空间可由排除被留出以供共享的部分126的存储器125的部分来支持。以类似的方式,例如,可由在服务器计算设备110上执行的进程利用的在本地可寻址的存储器名字空间可由排除该部分116的存储器115的部分来支持。
存储器共享控制器170从计算设备(如示例性服务器计算设备110、120和130)接收到的信息可包括指定物理上安装在这些计算设备上或以其他方式对这些计算设备可用的存储器总量、当前正被使用的存储器存储容量的量、存储器存储容量的所需量的信息,以及其他类似信息。基于这样的信息,存储器共享控制器170可以标识要使其可供服务器计算设备110、120和130中的每一者共享的存储器存储容量的量。在一个实施例中,存储器共享控制器170可以相应地指令服务器计算设备110、120和130,而在其他实施例中,存储器共享控制器170可以仅发出各单独计算设备的操作系统或其他类似控制机制可以接受或忽略的请求。
在一个实施例中,存储器共享控制器170可持续调整被共享的存储器存储容量的量。在这样的实施例中,各单独计算设备的操作系统或其他类似控制机制可包括通过其可在运行时期间动态地更改在本地可寻址的存储器名字空间的大小的机制。例如,服务器计算设备130对作业140的执行可造成对存储器的增加的需求。作为响应,在服务器计算设备130上执行的进程可与存储器共享控制器170通信且可请求附加共享存储器。作为示例,存储器共享控制器170随后可请求服务器计算设备110增加它已使其可供共享的存储器115的部分116。作为响应,在一个实施例中,在服务器计算设备110上执行的操作系统或其他类似控制机制可以将先前被分配给在服务器计算设备110上本地执行的进程的存储器115的那些部分中存储的数据对换,并且这些数据存储在例如硬盘驱动器上。随后,存储器115的那些部分可被添加到可供共享的部分116,从而增加可供共享的部分116并适应在服务器计算设备130上执行作业140的增加的需求。当在服务器计算设备110本地执行的进程随后尝试访问存储器115的先前分配给这些进程的那些部分(它们随后被重新分配给正被共享的部分116)时,可生成页错误,并且虚拟存储器机制可被用来将某些其他数据从存储器115的其他部分移至盘,从而为将先前对换到盘的数据腾出空间来对换回存储器115。
在另一实施例中,存储器共享控制器170在它调整各单独计算设备的专用于共享的存储器的部分方面受到限制。例如,存储器共享控制器170可能只能在所定义的时间段期间调整由任何特定计算设备共享的存储器的量,诸如例如在该计算设备重启时、或在该计算设备挂起其他任务的执行的时间段期间。
虽然存储器共享控制器170被指示为单个设备,但也可使用分层方法。例如,存储器共享控制器170可专用于向物理上位于一处(如在单个服务器计算设备机架内,如通常将在数据中心中发现的)的服务器计算设备(如示例性服务器计算设备110、120和130)提供对共享存储器的上述控制。另一不同的存储器共享控制器随后可专用于在另一组计算设备之间提供对共享存储器的控制,诸如例如在数据中心中的另一机架的服务器计算设备之间。较高级存储器共享控制器随后可以控制指派给各特定服务器计算设备机架的各单独存储器共享控制器。例如,机架级存储器共享控制器可以控制存储器在单个机架内的各服务器计算设备之间的共享,而数据中心级存储器共享控制器可以控制存储器在各服务器计算设备机架之间的共享,从而将在各单独服务器计算级处的这样的共享的实现留给机架级存储器共享控制器。
在又一实施例中,存储器共享控制器170不必是不同的进程或设备,而是可以通过共享它们的存储器的各计算设备(诸如例如服务器计算设备110、120和130)之间的对等通信来实现。更具体而言,在服务器计算设备110、120和130中的每一者上单独执行的进程可彼此通信且可分别与服务器计算设备110、120和130中的每一者协商要被共享的存储器115、125和135的量。这样的在本地执行的进程随后可指令其他进程(如与操作系统的存储器管理功能相关联的进程)实现达成一致且协商的共享。
转向图2,在此示出的系统200解说更详细地描绘远程存储器接口的示例性操作的示例性通信序列。出于描述的目的,服务器计算设备130的处理单元132被示为正在执行与作业140相关联的计算机可执行指令。作为执行这样的计算机可执行指令的一部分,CPU132可寻求存储数据或从存储器检索数据,如由物理上安装在服务器计算设备130上的存储器135表示的。在图2的系统200中,示出了在本地可寻址的存储器名字空间231,如本领域技术人员将理解的,它包括可由在计算设备130的CPU132上执行的进程直接访问的存储器。在一个实施例中,且如将在下文更详细地描述的,在本地可寻址的存储器名字空间231可包括可由本地安装的存储器135支持的部分234和可由远程存储器接口131(且进而由远程存储器)支持的部分。例如,如果计算设备130包括16GB安装在本地的存储器,则在本地可寻址的存储器名字空间231的部分234也可以是约16GB。类似地,如果在本地可寻址的存储器名字空间231的部分235是4GB,则在远程计算设备上可存在能通过本文描述的机制支持的4GB共享存储器。
为了将数据存储到存储器,CPU132可以发出适当的命令,如公知的存储命令,这可由一个或多个存储器管理单元133接收,存储器管理单元133进而与存储器135对接并将CPU132提供的数据存储到适当的存储位置、地址、页、或物理存储器135中的其他类似存储单元。类似地,为了从高速易失性存储介质检索数据,CPU132可以发出另一适当的命令,如公知的加载命令,这可由MMU133接收,MMU133进而可与物理存储器135对接(如图1所示)并从适当的存储位置检索由CPU请求的数据且将这样的数据加载到CPU132的寄存器中以供CPU132进一步消费,作为执行与作业140相关联的计算机可执行指令的一部分。在CPU132发出的存储和加载命令被定向到由本地安装的存储器135支持的在本地可寻址的存储器名字空间231的部分234的范围中,这样的存储和加载命令以及所得的对存储器135的操作可由存储器管理单元233管理,如在图2的系统200中由通信221和222图形地表示的。
在一个实施例中,在本地可寻址的存储器名字空间231可大于安装在计算设备130上的存储器。在这样的实施例中,在计算设备130上执行的进程(如示例性作业140)可直接寻址较大的在本地可寻址的存储器名字空间231且可使其各部分映射到这些进程的进程空间。这样的较大的在本地可寻址的存储器名字空间231可不仅由安装在服务器计算设备130上的存储器135支持,而且可由物理上安装在另一不同的计算设备上的远程存储器(如存储器125)支持。然而,在计算设备130上执行的进程可能不知道什么物理存储器实际上由在本地可寻址的存储器名字空间231表示。
例如,与作业140相关联的计算机可执行指令在CPU132上执行时可尝试将数据存储到在本地可寻址的存储器名字空间231的部分235中,如图所示,这样的计算机可执行指令将以与在本地可寻址的存储器名字空间231的任何其他部分相同的方式来识别部分235。CPU132随后可发出适当的命令,如上述存储命令,指定标识在本地可寻址的存储器名字空间231的作为部分235的部分的一些部分的地址、页、或其他类似位置标识符。这样的命令(并非被定向到MMU133)可改为被定向到远程存储器接口131。例如,转换后备缓冲器(TLB)或其他类似的表或数据库可被参考以确定CPU132发出的以存储器为中心的命令所指定的位置标识符是部分235而非部分234的一部分,并且因此这样的命令可被定向到远程存储器接口131。在图2的示例性系统200中,这样的命令由从CPU132到远程存储器接口131的通信223指示。
在接收到这样的命令时,远程存储器接口131可以将这样的命令转换成网络通信,如网络通信241,并且将这些网络通信寻址到一个或多个其他计算设备上的远程存储器接口,诸如例如服务器计算设备130上的远程存储器接口121。在将命令223转换成网络通信241时,远程存储器接口131可以将命令分组化,或可按其他方式生成适用于被用来实现网络190的协议的网络通信。例如,如果网络190是利用以太网硬件实现的,则远程存储器接口131可以生成其单元不超过以太网的最大传输单元的网络通信。类似地,如果网络190是使用传输控制协议/因特网协议(TCP/IP)实现的,则远程存储器接口131可以生成具有TCP/IP报头的分组且可以指定远程存储器接口121的IP地址作为它们的目的地。取决于用来实现网络190的协议,其他类似转换可被执行。
一旦网络通信241被定向到的服务器计算设备120的远程存储器接口121接收到网络通信241,远程存储器接口121就可将这样的网络通信241转换成可被定向到安装在服务器计算设备120上的存储器125的、适当的以存储器为中心的命令251。更具体而言,远程存储器接口121可以将网络通信241解除分组化并且可生成到存储器125的部分126中的一个或多个地址的适当的以存储器为中心的命令251,部分126已被留出作为可共享存储器并因此可以在远程存储器接口121(与例如计算设备120的存储器管理单元相对)的控制下,并且如此可以从对在计算设备120上执行的进程变得可用的在本地可寻址的存储器名字空间中被排除。
响应于以存储器为中心的命令251,远程存储器接口121可以接收确收(如果命令251是存储命令的话)或可以接收所请求的数据(如果命令是加载命令的话)。这样的响应在图2的系统200中由从存储器125的部分126到远程存储器接口121的通信252示出。在接收到响应通信252时远程存储器接口121可以将它们转换成它可将其定向到它从中接收到通信241的远程存储器接口131的网络通信242。如以上参考远程存储器接口131详细描述的,远程存储器接口121在将通信252转换成网络通信242时,可以根据用来实现网络190的协议将通信252分组化、封装、格式化、或以其他方式转换成网络通信242。
在远程存储器接口131接收到网络通信242时,它可将其解除分组化并且可生成对CPU132的适当响应,如通信225所示。更具体而言,如果来自CPU132的通信223是存储命令,则通信225可以是数据已被正确地存储的确收,但在本示例中,这样的确收是数据实际上被正确存储在服务器计算设备120的存储器125的部分126中。类似地,如果来自CPU132的通信223是加载命令,则通信225可以是CPU132请求加载到其寄存器中的一者或多者的数据,即在本示例中是从存储器125的部分126中读取的数据。
以此方式,在服务器计算设备130上执行的进程可在它们不知晓的情况下并且在没有对这些进程本身有任何修改的情况下利用安装在其他计算设备上的存储器,诸如例如计算设备120的存储器125。更具体而言,远程存储器接口131充当与看起来是可由在服务器计算设备130上执行的进程直接寻址的在本地可寻址的存储器名字空间231的一部分的存储器进行通信的存储器管理单元。
为了降低接收命令223与提供响应225之间的等待时间,在一个实施例中,远程存储器接口131可以与作为服务器计算设备130的一部分的联网硬件直接通信。例如,远程存储器接口131可以是包括到服务器计算设备130的网络接口的直接连接的专用处理器。这样的专用处理器可类似于公知的存储器管理单元处理器(MMU),它可以是独立的处理器或可以与其他处理器(如一个或多个CPU)集成在一起。远程存储器接口121也可以是包括到服务器计算设备120的网络接口的直接连接的专用处理器,从而降低通信的另一端上的等待时间。
在另一实施例中,以上描述的由远程存储器接口131提供的功能可被实现在操作系统中或在服务器计算设备130上执行的实用程序中。类似地,以上描述的由远程存储器接口121提供的功能可同样被实现在操作系统中或在服务器计算设备120上执行的实用程序中。在这样的实施例中,这样的远程存储器接口所生成的以及定向到它的通信可通过缩减的网络栈来提供降低的等待时间。例如,表示这样的远程存储器接口的计算机可执行指令被提供有对联网硬件的直接访问,如通过具有内置驱动程序或适当的功能。
如本领域技术人员将认识到的,上述机制与传统虚拟存储器机制不同,且不是将数据从存储器对换到的存储介质的简单替换。因此,因为响应225可基本上比在传统虚拟存储器上下文中更快地提供,轻量挂起和恢复可被应用于发出命令(如命令223)的正在执行的进程。更具体而言,且如本领域技术人员将认识到的,在虚拟存储器上下文中,在向存储器请求不再存储在这样的存储器中而是改为对换到盘中的数据时,发出请求的进程的执行可被挂起,直至这样的数据从较慢的盘对换回存储器。在这样的对换完成时,发出请求的进程可被恢复且所请求的数据可被提供给它,诸如例如通过被加载到一个或多个处理单元的适当的寄存器。但使用上述机制,数据可以从基本上比从较慢盘介质(甚至物理上作为这样的进程在其上执行的计算设备的一部分的盘)对换更快地从远程物理存储器获得。因此,轻量挂起和恢复可被用来避免在恢复更完全地挂起的执行线程或其他类似处理时的不必要的延迟。
例如,在一个实施例中,命令223可基于标识由命令223指定的或命令223定向到的信息的存储器地址、页、或其他类似位置被确定为定向到可寻址远程存储器235。在这样的实施例中,如果确定命令223定向到在本地可寻址的存储器名字空间231的由远程存储器支持的部分235,则CPU132所执行的进程可被置于挂起状态,与传统挂起状态相比,它可从该挂起状态中更迅速地恢复。更具体而言,正被执行的进程可基于该正在执行的进程所指定的存储器位置自身确定命令223定向到部分235。因此,正在执行的进程可自动将自身置于挂起状态,与传统挂起状态相比,该挂起状态可被更迅速地恢复。或者,这样的确定可由CPU132或具有将正在执行的进程自动置于挂起状态的能力的其他类似组件做出。
在另一实施例中,远程存储器接口131或另一存储器管理组件可以检测命令223被定向到部分235且可相应地通知正在执行的进程。更具体而言,且如上所示,命令223定向到的存储器位置可被检测到,且根据这些存储器位置,可以作出与命令223是否要被定向到部分235有关的确定。如果作出命令223被定向到部分235的确定,则可生成给正在执行的进程或进程管理组件的通知。响应于这样的通知,取决于通知被直接提供给正在执行的进程还是提供给进程管理组件,正在执行的进程可以将自身置于挂起状态或者它可被置于该挂起状态,与传统挂起状态相比,可以从该挂起状态更迅速地恢复。
转向图3a和3b,分别在此示出的流程图301和302解说了物理上安装在远程计算设备上的存储器可被在本地执行的进程使用的示例性步骤序列。首先转向图3a,一开始,在步骤310,可接收寻址到本地远程存储器接口的网络通信。一旦接收到,这些网络通信就可被组装成适当的以网络为中心的命令,如上述加载命令或存储命令。这样的组装可作为步骤315的一部分发生,且如上所示,可能需要将网络通信从无论什么格式解除封装,这些格式对于用来已在各计算设备之间建立通信的给定网络协议是适当的。在步骤320,适当的命令可以用本地存储器来执行。例如,如果接收到的命令是指定数据要以特定存储器地址开始而被存储的存储命令,则在步骤320,这样的数据可被存储在以与接收到的命令所指定的地址相称的地址或其他相似存储器位置处开始的本地存储器中。类似地,如果接收到的命令是请求已被存储在以指定地址或其他类似存储器位置开始的本地存储器中的数据的加载命令,则在步骤320,存储在本地存储器的相称位置中的数据可被获得。在一个实施例中,接收到的命令可以指定要结合本地存储器使用的地址,而在其他实施例中,接收到的命令所指定的地址可根据已被定义为要共享的存储器的地址范围、页、或其他位置来转换。
在步骤320执行所请求的命令可造成响应,诸如例如确收响应(如果数据被存储在本地存储器中)或包括请求从本地存储器读取的数据的响应。这样的响应可以在步骤325处接收。在步骤330,这样的响应可被转换成网络通信,它随后可被定向到该计算设备的通过它接收到在步骤310所接收的网络通信的远程存储器接口。如上所示,在步骤330,将响应转换成网络通信可包括根据通过它建立了与其他计算设备的通信的网络所实现的网络协议将响应分组化,包括例如施加适当的分组报头、将数据分成与最大传输单元相称的大小、提供适当的地址信息、以及其他类似动作。网络通信一旦被生成,就可在步骤335被传送到该计算设备的在步骤310从中接收到网络通信的远程存储器接口。相关处理然后可结束于步骤340。
转向图3b,类似的一组步骤可在步骤350开始,从本地进程接收定向到在本地可寻址的存储器名字空间的以存储器为中心的命令,如加载或存储命令。该请求可以指定在本地可寻址的存储器名字空间中的一个或多个地址或其他类似位置标识符。因此,一开始,在一个实施例中,在步骤355,作出与步骤350的以存储器为中心的命令所指定的地址是否在由远程存储器接口(如以上详细描述的)支持的地址范围中有关的检查。在步骤355,如果确定以存储器为中心的命令被定向到处于由在本地安装的存储器所支持的在本地可寻址的存储器名字空间的地址范围中的地址,则与远程存储器共享相关的处理可在步骤385结束,如在流程图302中所示。相反,然而,在步骤355,如果确定以存储器为中心的命令被定向到处于由远程存储器接口支持的在本地可寻址的存储器名字空间的地址范围中的地址,则处理可进至步骤360。
在步骤360,在步骤350接收到的请求被定向到的地址可被转换成其存储器被用来存储该请求定向到的数据的一个或多个远程计算设备的标识。更具体而言,在一个实施例中,远程存储器接口每次接收到存储命令并将数据存储在远程计算设备的存储器中时,如按以上详细描述的方式,远程存储器接口可记录存储命令定向到的在本地可寻址的存储器名字空间的地址与这样的数据被最终存储到其存储器的远程计算设备的标识符(如网络地址)之间的关联。随后,在从在本地执行的进程发出针对在本地可寻址的存储器名字空间的同一地址的加载命令时,远程存储器接口可以参考先前记录的关联,并且确定它应当与哪一远程计算设备通信以便得到该数据。另外,在一个实施例中,在首次接收到针对在本地可寻址的存储器名字空间中的特定地址的存储命令时,远程存储器接口可能寻求将这样的数据存储到可通过存储器共享控制器标识给远程存储器接口的远程计算设备的共享存储器中,或共享存储器可由远程存储器接口从存储器共享控制器所标识的计算设备之间选择。一旦远程计算设备被标识,在步骤360,处理可进至步骤365。在步骤365,在步骤350接收到的请求可被转换成可被寻址到在步骤360所标识的计算设备标识的远程存储器接口的网络通信。如上所示,这样的转换可包括根据将在本地计算设备和包括存储器的远程计算设备之间通过其携带通信的网络所使用的协议将请求分组化或以其他方式生成数据流。
响应于传输,在步骤365,定向到本地计算设备上的远程存储器接口的响应性网络通信可在步骤370处被接收。在步骤375,这些网络通信可被组装成对在步骤350接收到的请求的响应,如按上文详细描述的方式。在步骤380,这样的响应可被提供给生成在步骤350接收到的请求的正在执行的进程。相关处理然后可结束于步骤385。
转向图4,示出了示例性计算设备,该计算设备可包括通用计算设备(诸如可执行以上详述的某些机制)以及专用计算设备(诸如上述交换机)。示例性计算设备400可包括但不限于,一个或多个中央处理单元(CPU)420、系统存储器430和将包括该系统存储器在内的各种系统组件耦合至处理单元420的系统总线421。系统总线421可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。取决于特定物理实现,CPU420、系统存储器430和计算设备400的其他组件中的一个或多个可以在物理上位于同处,诸如在单个芯片上。在这一情况下,系统总线421的一部分或全部可以只不过是单个芯片结构内的通信通路,且其在图4中的图示只不过是方便用于说明目的的记法。
计算设备400一般还包括计算机可读介质,该计算机可读介质可包括可被计算设备400访问的任何可用的介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备400访问的任何其它介质。然而,计算机存储介质不包括通信介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。
系统存储器430包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)431和随机存取存储器(RAM)432。基本输入/输出系统433(BIOS)包含有助于诸如启动时在计算设备400中元件之间传递信息的基本例程,它通常存储在ROM431中。RAM432通常包含处理单元420可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图4示出了操作系统434、其它程序模块435和程序数据436。
在使用通信介质时,计算设备400可以经由到一个或多个远程计算机的逻辑连接在联网环境中工作。图4中所描绘的逻辑连接是到网络190的一般网络连接471,网络190可以是局域网(LAN)、诸如因特网的广域网(WAN)或其他网络。计算设备400通过网络接口或适配器470连接到一般网络连接471,该网络接口或适配器进而连接到系统总线421。在联网环境中,相对于计算设备400或其部分或外围设备所描绘的程序模块可被存储在通过一般网络连接471通信地耦合到计算设备400的一个或多个其他计算设备的存储器中。应当理解,所示的网络连接是示例性的,并且可使用在计算设备之间建立通信链路的其它手段。
计算机系统400还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅仅作为示例,图4示出了对不可移动、非易失性介质进行读或写的硬盘驱动器441。可以与示例性计算设备一起使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器441通常通过诸如接口440等不可移动存储器接口连接到系统总线421。
上文讨论并在图4中示出的驱动器及其相关联的计算机存储介质为计算设备400提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图4中,硬盘驱动器441被示为存储了操作系统444、其他程序模块445,以及程序数据446。注意,这些组件可以与操作系统434、其它程序模块435和程序数据436相同,也可以与它们不同。操作系统444、其它程序模块445和程序数据446在这里被标注了不同的标号是为了说明至少它们是不同的副本。
如可从上述描述看到的,呈现了用于在多个物理上不同的计算设备之间共享存储器的机制。考虑此处所述的主题的众多可能的变体,本发明要求保护落入以下权利要求书范围内的所有这样的实施例及其等效实施方式。

Claims (10)

1.一种在多个计算设备之间共享存储器存储容量的方法,所述方法包括以下步骤:
在第一计算设备处接收来自在所述第一计算设备上执行的进程的、指定在所述第一计算设备的本地可寻址的存储器名字空间中的存储器地址的、以存储器为中心的请求;
在所述第一计算设备处确定所指定的存储器地址由安装在第二计算设备上的存储器支持;
在所述第一计算设备处将接收到的请求转换成定向到所述第二计算设备的网络通信;
在所述第一计算设备处接收来自所述第二计算设备的网络通信;
在所述第一计算设备处将从所述第二计算设备接收到的网络通信转换成对所述请求的响应;以及
在所述第一计算设备处将所述响应提供给所述进程。
2.如权利要求1所述的方法,其特征在于,进一步包括以下步骤:
在所述第二计算设备处,接收定向到所述第二计算设备的网络通信;
在所述第二计算设备处,将定向到所述第二计算设备的网络通信转换成以存储器为中心的请求;
在所述第二计算设备处在安装在所述第二计算设备上的存储器的一部分上执行所述以存储器为中心的请求;
在所述第二计算设备处接收对在安装在所述第二计算设备上的存储器的所述部分上执行所述以存储器为中心的请求的响应;以及
在所述第二计算设备处将对执行所述以存储器为中心的请求的所述响应转换成来自所述第二计算设备的网络通信;
3.如权利要求1所述的方法,其特征在于,进一步包括以下步骤:标识所述第一计算设备的存储器的要在所述多个计算设备之间共享的一部分;以及防止所述第一计算设备的存储器的所标识的部分成为所述第一计算设备的在本地可寻址的存储器名字空间的一部分。
4.如权利要求3所述的方法,其特征在于,所述标识是响应于从协调存储器存储容量在所述多个计算设备之间的共享的存储器共享控制器接收到的通信来执行的。
5.如权利要求3所述的方法,其特征在于,所述标识是响应于所述多个计算设备之间的对等协商执行的。
6.一种或多种包括用于执行如权利要求1所述的步骤的计算机可执行指令的计算机可读介质。
7.一种在多个计算设备之间共享存储器存储容量的系统,所述系统包括:
第一计算设备,包括:
第一在本地可寻址的存储器名字空间;
第一存储器;
第一远程存储器接口;以及
在所述第一计算设备上执行的第一进程;以及
与所述第一计算设备在物理上不同的第二计算设备,所述第二计算设备包括:
第二操作系统;
第二存储器,所述第二存储器的一部分可供用于与所述系统的其他计算设备共享,所述部分由所述第二操作系统来描绘;以及
具有对所述第二存储器的所述部分的直接访问的第二远程存储器接口;
其中所述第一在本地可寻址的存储器名字空间由所述第一计算设备的所述第一存储器和所述第二计算设备的所述第二存储器的所述部分两者来支持。
8.如权利要求7所述的系统,其特征在于,所述第一远程存储器接口执行包括以下动作的步骤:
从所述第一进程接收指定所述第一在本地可寻址的存储器名字空间中的存储器地址的、以存储器为中心的请求;
确定所指定的存储器地址与所述第一在本地可寻址的存储器名字空间的由所述第二存储器的所述部分支持的部分相对应;
将接收到的请求转换成定向到所述第二计算设备的网络通信;
接收来自所述第二计算设备的网络通信;
将从所述第二计算设备接收到的网络通信转换成对所述请求的响应;以及
将所述响应提供给所述第一进程。
9.如权利要求7所述的系统,其特征在于,还包括第一存储器共享控制器,所述第一存储器共享控制器确定要使其变得可供共享的所述第一存储器的一部分和所述第二存储器的所述部分。
10.一种物理上安装在第一计算设备上的远程存储器接口单元,所述远程存储器接口单元被配置成执行包括以下各项的步骤:
从在所述计算设备上执行的进程接收指定所述第一计算设备的在本地可寻址的存储器名字空间中的存储器地址的、以存储器为中心的请求,所述在本地可寻址的存储器名字空间由安装在所述第一计算设备上的第一存储器和安装在第二计算设备上的第二存储器的一部分两者来支持;
确定所指定的存储器地址与安装在所述第二计算设备上的第二存储器的所述部分相对应,所述第二计算设备远离所述第一计算设备;
将接收到的请求转换成定向到所述第二计算设备的网络通信;
接收来自所述第二计算设备的网络通信;
将从所述第二计算设备接收到的网络通信转换成对所述请求的响应;以及
将所述响应提供给所述进程。
CN201480014739.6A 2013-03-15 2014-03-13 通过网络的存储器共享 Pending CN105190581A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/831,753 US20140280669A1 (en) 2013-03-15 2013-03-15 Memory Sharing Over A Network
US13/831,753 2013-03-15
PCT/US2014/025145 WO2014151168A1 (en) 2013-03-15 2014-03-13 Memory sharing over a network

Publications (1)

Publication Number Publication Date
CN105190581A true CN105190581A (zh) 2015-12-23

Family

ID=50442697

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480014739.6A Pending CN105190581A (zh) 2013-03-15 2014-03-13 通过网络的存储器共享

Country Status (12)

Country Link
US (1) US20140280669A1 (zh)
EP (1) EP2972917A1 (zh)
JP (1) JP2016513846A (zh)
KR (1) KR20150132432A (zh)
CN (1) CN105190581A (zh)
AU (1) AU2014235261A1 (zh)
BR (1) BR112015019796A8 (zh)
CA (1) CA2898664A1 (zh)
MX (1) MX354310B (zh)
RU (1) RU2015139097A (zh)
TW (1) TW201502801A (zh)
WO (1) WO2014151168A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112753025A (zh) * 2018-09-26 2021-05-04 美光科技公司 在物理远程实体之间共享存储器资源

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166628B (zh) * 2013-05-17 2018-05-18 华为技术有限公司 管理内存的方法、装置和系统
US20150271096A1 (en) * 2014-03-24 2015-09-24 Google Technology Holdings LLC Allocation of Client Device Memory for Content from Content Sources
US10110707B2 (en) 2015-12-11 2018-10-23 International Business Machines Corporation Chaining virtual network function services via remote memory sharing
US11861025B1 (en) 2018-01-08 2024-01-02 Rankin Labs, Llc System and method for receiving and processing a signal within a TCP/IP protocol stack
US11689543B2 (en) 2018-08-10 2023-06-27 Rankin Labs, Llc System and method for detecting transmission of a covert payload of data
US11197136B2 (en) * 2018-09-26 2021-12-07 Micron Technology, Inc. Accessing a memory resource at one or more physically remote entities
WO2020154223A1 (en) 2019-01-21 2020-07-30 John Rankin Systems and methods for processing network traffic using dynamic memory
US11487674B2 (en) 2019-04-17 2022-11-01 Rankin Labs, Llc Virtual memory pool within a network which is accessible from multiple platforms
US11169930B2 (en) 2019-05-28 2021-11-09 Micron Technology, Inc. Fine grain data migration to or from borrowed memory
US11100007B2 (en) 2019-05-28 2021-08-24 Micron Technology, Inc. Memory management unit (MMU) for accessing borrowed memory
US11372773B2 (en) 2019-05-28 2022-06-28 Rankin Labs, Llc Supporting a virtual memory area at a remote computing machine
US11438414B2 (en) * 2019-05-28 2022-09-06 Micron Technology, Inc. Inter operating system memory services over communication network connections
US11334387B2 (en) 2019-05-28 2022-05-17 Micron Technology, Inc. Throttle memory as a service based on connectivity bandwidth
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service
US11256624B2 (en) 2019-05-28 2022-02-22 Micron Technology, Inc. Intelligent content migration with borrowed memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968170A (en) * 1997-04-23 1999-10-19 Advanced Micro Devices, Inc. Primary swap size increase on a UNIX based computer system
US20030070065A1 (en) * 1999-03-31 2003-04-10 Fleming Bruce L. Suspending to nonvolatile storage
US20110072234A1 (en) * 2009-09-18 2011-03-24 Chinya Gautham N Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory
US20110209151A1 (en) * 2010-02-24 2011-08-25 Jaewoong Chung Automatic suspend and resume in hardware transactional memory

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
JP3401160B2 (ja) * 1997-03-28 2003-04-28 三菱電機株式会社 分散共有メモリネットワーク装置
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6604148B1 (en) * 1999-10-01 2003-08-05 International Business Machines Corporation Method, system, and program for accessing a network namespace
US7069306B1 (en) * 2000-07-20 2006-06-27 Silicon Graphics, Inc. Providing shared and non-shared access to memory in a system with plural processor coherence domains
EP1395905A2 (en) * 2000-11-22 2004-03-10 Zend Technologies Ltd. Method and apparatus for dynamic shared-memory caching of scripting engine product
JP4404493B2 (ja) * 2001-02-01 2010-01-27 日本電気株式会社 計算機システム
US6829637B2 (en) * 2001-07-26 2004-12-07 International Business Machines Corporation Distributed shared memory for server clusters
JP3926654B2 (ja) * 2002-03-22 2007-06-06 沖電気工業株式会社 通信ネットワークにおける貸リソースの設定処理方法及びその通信システム並びにプログラム
US6922766B2 (en) * 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7174437B2 (en) * 2003-10-16 2007-02-06 Silicon Graphics, Inc. Memory access management in a shared memory multi-processor system
US8316074B2 (en) * 2005-03-11 2012-11-20 Network Appliance, Inc. Network-accessible memory
US7509460B2 (en) * 2006-05-04 2009-03-24 Sun Microsystems, Inc. DRAM remote access cache in local memory in a distributed shared memory system
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US8015367B1 (en) * 2007-02-16 2011-09-06 Vmware, Inc. Memory management methods in a computer system with shared memory mappings
US8230050B1 (en) * 2008-12-10 2012-07-24 Amazon Technologies, Inc. Providing access to configurable private computer networks
US8332593B2 (en) * 2008-12-24 2012-12-11 Nuon, Inc. Memory space management and mapping for memory area network
US8239866B2 (en) * 2009-04-24 2012-08-07 Microsoft Corporation Reduction of memory latencies using fine grained parallelism and FIFO data structures
US9331955B2 (en) * 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US9304828B2 (en) * 2012-09-27 2016-04-05 Hitachi, Ltd. Hierarchy memory management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968170A (en) * 1997-04-23 1999-10-19 Advanced Micro Devices, Inc. Primary swap size increase on a UNIX based computer system
US20030070065A1 (en) * 1999-03-31 2003-04-10 Fleming Bruce L. Suspending to nonvolatile storage
US20110072234A1 (en) * 2009-09-18 2011-03-24 Chinya Gautham N Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory
US20110209151A1 (en) * 2010-02-24 2011-08-25 Jaewoong Chung Automatic suspend and resume in hardware transactional memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112753025A (zh) * 2018-09-26 2021-05-04 美光科技公司 在物理远程实体之间共享存储器资源
CN112753025B (zh) * 2018-09-26 2021-11-16 美光科技公司 在物理远程实体之间共享存储器资源

Also Published As

Publication number Publication date
BR112015019796A2 (zh) 2017-08-22
CA2898664A1 (en) 2014-09-25
KR20150132432A (ko) 2015-11-25
JP2016513846A (ja) 2016-05-16
RU2015139097A (ru) 2017-03-17
AU2014235261A1 (en) 2015-08-06
TW201502801A (zh) 2015-01-16
BR112015019796A8 (pt) 2017-11-07
MX2015012827A (es) 2016-02-03
US20140280669A1 (en) 2014-09-18
WO2014151168A1 (en) 2014-09-25
EP2972917A1 (en) 2016-01-20
MX354310B (es) 2018-02-23

Similar Documents

Publication Publication Date Title
CN105190581A (zh) 通过网络的存储器共享
US20180027093A1 (en) Methods and apparatus for sdi support for automatic and transparent migration
JP5088366B2 (ja) 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
US20040243769A1 (en) Tree based memory structure
US10466935B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
JP2018073414A5 (zh)
US9736011B2 (en) Server including switch circuitry
CN110633175B (zh) 基于微服务的多机房数据处理方法、电子设备及存储介质
IL167338A (en) Dynamic storage device pooling in a computer system
JP2010097563A (ja) ネットワークストレージシステム、ディスクアレイ装置、ホスト装置、アクセス制御方法、データアクセス方法
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
WO2024179298A1 (zh) 跨机柜服务器内存池化方法、装置、设备、服务器及介质
CN112333017A (zh) 一种服务配置方法、装置、设备及存储介质
CN113014611A (zh) 一种负载均衡方法及相关设备
CN104571934A (zh) 一种内存访问的方法、设备和系统
US11271990B2 (en) Allocation of digital resources within a local, modular computer network (edge cloud)
CN117076140B (zh) 一种分布式计算方法、装置、设备、系统及可读存储介质
JP3490002B2 (ja) マルチクラスタシステムを構成する計算機
EP3605346A1 (en) Control device, control system, control method and program
US20150186269A1 (en) Managing memory
US10853129B1 (en) Accelerator based inference service
WO2022218434A1 (zh) 一种计算节点管理系统及针对多个计算节点的管理方法
CN110321115A (zh) 一种Pod创建方法及设备
KR102394695B1 (ko) 메모리 시스템 및 그것의 동작방법
CN113411362A (zh) 应用实例的控制方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151223

WD01 Invention patent application deemed withdrawn after publication