CN106462599A - 缓存存储器与工作进程的关联 - Google Patents
缓存存储器与工作进程的关联 Download PDFInfo
- Publication number
- CN106462599A CN106462599A CN201580023517.5A CN201580023517A CN106462599A CN 106462599 A CN106462599 A CN 106462599A CN 201580023517 A CN201580023517 A CN 201580023517A CN 106462599 A CN106462599 A CN 106462599A
- Authority
- CN
- China
- Prior art keywords
- work
- memory
- progress
- jvm
- node
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Abstract
本文所描述的系统、方法和软件提供了工作进程中的数据的加速输入和输出。在一个示例中,对计算系统内的支持进程进行操作以针对工作进程提供加速输入和输出的方法包括监视由该工作进程启动的文件映射尝试。该方法还包括响应于文件映射尝试来识别存储器中的已分配给缓存服务的第一区域,并且将存储器中的该第一区域与工作进程进行关联。
Description
技术领域
本公开内容的各个方面涉及计算硬件和软件技术,特别是涉及将缓存存储器关联至工作进程。
背景技术
日益增多的数据密集型分布式应用正在被开发用于服务各种需求,如对单个计算机通常无法处理的非常大的数据集进行处理。代替之,采用计算机集群来分发各种任务或工作,如组织和访问数据并且针对该数据执行相关操作。各种应用和框架已被开发用于与这样的大数据集进行交互,包括Hive、HBase、Hadoop、Amazon S3和CloudStore等。
同时,虚拟化技术得到越来越广泛的应用,并且目前在提高计算资源的使用效率很有用的数据中心和其他环境中是常见的事。在虚拟化环境中,一个或更多个虚拟机在底层计算机(或另外的虚拟机)上被实例化,并且共享底层计算机的资源。这些虚拟机可以使用通常驻留在真实机器上的应用和框架来更高效地处理大数据集。
发明内容
本文提供了用于将缓存存储器关联至工作进程的系统、方法和软件。在一个示例中,一种对计算系统内的支持进程进行操作以针对工作进程提供加速输入和输出的方法包括监视由该工作进程启动的文件映射尝试。该方法还包括:响应于文件映射尝试来识别存储器中的已分配给缓存服务的第一区域,并且将存储器中的该第一区域与工作进程进行关联。
在另一示例中,一种针对工作进程提供加速输入和输出的计算机设备包括指示计算系统的支持进程监视由该工作进程启动的文件映射尝试的处理指令。处理指令还指示支持进程响应于文件映射尝试来识别存储器中的已分配给缓存服务的第一区域,并且将存储器中的该第一区域与工作进程进行关联。该计算机设备还包括存储处理指令的一个或更多个非暂态计算机可读介质。
在又一示例中,一种用于针对工作进程提供加速输入和输出的节点计算系统包括被配置成启动文件映射尝试的工作进程。节点计算系统还提供被配置成识别该文件映射尝试的支持进程。该支持进程还被配置成:响应于该文件映射尝试来识别存储器中的已分配给缓存服务的第一区域,并且将存储器中的已分配给缓存服务的该第一区域与工作进程进行关联。
附图说明
参考以下附图可以更好地理解本公开内容的很多方面。尽管结合这些附图描述了若干实现方式,但是本公开内容不限于本文公开的实现方式。相反,目的是覆盖所有的替选方案、修改方案和等效方案。
图1示出了用于在集群节点内处理数据的映射归约系统;
图2示出了用于对映射归约集群中的集群节点进行操作的操作场景;
图3示出了对Java虚拟机进行操作以请求映射文件的方法;
图4示出了对内核进行操作以针对Java虚拟机映射缓存存储器的方法;
图5示出了用于向缓存服务分配共享存储器的集群节点存储器;
图6示出了用于在缓存服务中分配共享存储器的宿主机存储器;
图7示出了在物理存储器中映射Java虚拟机存储器;
图8示出了针对多个Java虚拟机映射宿主机物理存储器;
图9示出了用于向Java虚拟机提供缓存服务存储器的概观;
图10示出了用于将共享存储器映射至Java虚拟机的Hadoop节点计算系统;
图11示出了用于向工作进程提供缓存服务存储器的概观;以及
图12示出了对节点中的支持进程进行操作以将缓存存储器与工作进程进行关联的方法。
具体实施方式
本文所述的各种示例提供将缓存存储器关联至工作进程。特别地,已经开发了使用一个或更多个处理节点或计算系统对来自存储库的大量数据进行处理的应用和框架。这些处理节点可以包括真实处理节点如服务器计算机、台式计算机等以及在真实计算系统内执行的虚拟处理节点。
为了处理这些数据,将来自存储库的数据对象转移到使得处理节点中的每个处理节点能够访问该数据的节点集群中。当被转入后,框架和工作进程如Java虚拟机并行地处理该数据以基于该数据生成查询响应。在本示例中,包括缓存服务,该缓存服务在集群的处理节点与该集群的处理节点上执行的Java虚拟机(JVM)之间提供共享存储器。该共享缓存使得数据能够直接被JVM利用,而不需要将数据加载到节点中然后将数据拷贝到JVM中。具体地,为了向JVM提供共享存储器,处理节点的内核——在很多示例中其可以包括Linux内核——监视由JVM启动的文件映射尝试。响应于该尝试,该内核将共享缓存服务存储器关联至JVM,以使得JVM能够直接访问从存储库递送的数据对象。
尽管前面的示例使用JVM,但是应当理解,任何工作进程如应用或其他工作进程可能需要与JVM的存储器关联相同的存储器关联来访问缓存服务存储器。另外,尽管在前面的示例中使用了内核,但是可以使用能够将缓存服务存储器关联至工作进程的任何类似支持进程。例如,工作进程可以启动对文件进行映射的请求。响应于该请求,支持进程可以识别存储器中的被分配给缓存服务的区域,并且将存储器中的被分配给缓存服务的区域关联至工作进程。
为了进一步说明在分布式数据处理系统内对数据的处理,包括了图1。图1示出了用于在集群节点内处理数据的映射归约系统100。系统100包括集群110、缓存服务120和存储库130。集群110又包括节点115至117,并且节点117还包括内容140,该内容140包括Hadoop 142、Java虚拟机(JVM)144和缓存存储器146。
节点115至117可以包括能够执行Hadoop或其他类似映射归约框架的任何真实或虚拟计算装置。节点115至117各自可以包括真实或虚拟处理系统、存储系统、通信接口、用户接口或者其他类似计算元件。
缓存服务120可以包括能够将数据对象分发至节点115至117的任何真实或虚拟计算元件。缓存服务120可以包括真实或虚拟处理系统、存储系统、通信接口、用户接口或其他类似计算元件。尽管在本示例中被单独示出,但是应当理解,缓存服务120可以是分布式缓存服务,并且可以完全地或部分地驻留在与节点115至117相同的装置上。
存储库130可以包括能够存储要由节点115至117处理的数据的一个或更多个存储卷。存储库130可以包括使用缓存服务120向节点115至117提供数据的磁盘驱动器、固态驱动器、控制器和其他元件。
在操作中,集群110被配置成具有多个节点115至117以处理利用单个计算装置将难以处理的大数据集。在一些示例中,节点115至117可以包括物理计算装置,但是还可以包括在真实计算装置或宿主机系统上执行的虚拟计算装置或虚拟机。这些虚拟机可以使用管理程序(hypervisor)来执行,该管理程序对宿主机系统的物理硬件进行抽象并且将宿主机的必要元件提供给虚拟机。必要元件可以包括虚拟硬件如通信接口、处理系统、存储元件或任意其他类似虚拟化项。
在本示例中,节点117包括内容140,该内容140包括Hadoop框架142、一个或更多个JVM 144和缓存存储器146。尽管在本示例中包括Hadoop 142,但是应当理解,可以在集群110上采用其他映射归约框架。在操作中,Hadoop 142需要一个或更多个JVM 144来处理缓存服务120所提供的大数据集部分。为临时缓存和访问数据,包括有在节点117与JVM 144之间共享的共享缓存存储器146。因此,当数据被传送到节点117时,该数据被存储在缓存存储器146内以允许JVM 144快速访问。尽管在本示例中针对单个节点示出了内容,但是应当理解,节点115至116的内容可以与节点117的内容类似。
为了更好地示出对用于Java虚拟机的内容的缓存,包括了图2。图2示出了用于对映射归约集群中的集群节点进行操作的操作场景200。操作场景200可以表示节点115至117中的任意节点的操作。操作场景200包括内核存储器210、Java虚拟机(JVM)存储器220和缓存服务存储器230。内核存储器210表示对集群节点如节点117的操作系统内核进行操作所需要的存储器。缓存服务存储器230表示由缓存服务使用以将用于处理的数据导入至集群节点的共享存储器。JVM存储器220表示执行由Hadoop或其他类似映射归约框架引起的JVM所需要的存储器。
在操作中,集群节点内的Hadoop或其他类似映射归约框架可以启动JVM来处理由缓存服务分发至该处理节点的数据。当JVM被启动并且被分配有JVM存储器220时,JVM可以启动操作300以加速JVM内的输入/输出(I/O)。为了加速JVM的I/O,JVM将询问内核来对文件进行映射以为JVM提供较简单的I/O事务。在一些示例中,文件映射询问可以包括将内核所识别的特定存储器映射至JVM的新的I/O通道请求。
为了响应该询问,内核存储器210包括可以被执行以处理来自JVM的询问的操作400。因此,响应于识别到来自JVM的询问,内核识别缓存服务存储器230的要用于JVM的至少一部分。当被识别后,将缓存服务存储器230的该部分与JVM进行关联。通过与缓存服务存储器230的该部分进行关联,使得JVM能够较快访问由缓存服务提供的用于处理的数据。
例如,返回至图1,可以将缓存存储器146的一部分与JVM 144中的JVM进行关联。因此,如果缓存服务120尝试使数据进入节点117,则可以将该数据放置在缓存存储器146的与该JVM相关联的部分中。因此,代替首先将数据放入节点中然后将数据拷贝至JVM中,JVM可以在节点与JVM之间共享的存储器中访问数据。
现在参考图3,图3示出了用于对Java虚拟机进行操作以请求映射文件的操作300。如所示出的,操作300启动将文件映射至JVM的尝试(301)。对文件的这种映射通常使得JVM能够访问由节点管理的文件的存储空间。然而,在本示例中,不是对文件进行映射,而是将JVM映射至对由缓存服务提供的用于处理的数据进行缓存的缓存服务存储器230的至少一部分。因此,不是从存储器读取文件,而是将JVM配置成启动对缓存在缓存服务存储器230的被映射部分中的数据的处理(302)。
转至图4,图4示出了操作节点内核以针对Java虚拟机映射缓存存储器的操作400。如所示出的,操作400监视来自节点上的一个或更多个JVM的对文件进行映射的尝试(401)。响应于尝试,操作400识别存储器中的被分配给缓存服务的区域(402)。当识别到该存储器中的区域后,操作400将该存储器中的区域与Java虚拟机进行关联以允许Java虚拟机访问该缓存服务存储器中的数据(403)。
参考图2,JVM启动对文件进行映射的请求,该请求由处理节点的内核来识别。响应于该映射请求,内核识别缓存服务存储器230的可以分配给虚拟机的至少一部分,并且将缓存服务存储器230的该部分分配给JVM。当完成关联后,可以将数据放置在被映射的缓存服务存储器230内使得JVM能够访问以进行数据处理。
参考图5,图5示出了用于向缓存服务分配共享存储器的集群节点存储器500。集群节点存储器500包括框架存储器510、Java虚拟机(JVM)存储器521至522和缓存服务存储器530。在本示例中,集群节点存储器500表示用于数据处理集群内的物理节点的存储器,然而,应当理解,在一些示例中,这些节点可以是虚拟机。
在操作中,集群节点被配置成具有Hadoop或其他类似框架以与其他节点并行地处理大数据集。在存储器500中由Hadoop框架存储器510表示的这种框架启动JVM以引入并处理必要数据。在本示例中,用于启动的JVM的存储器在图5中由JVM存储器521至522来表示,其中JVM存储器521至522包括与缓存服务存储器530相关联的存储器部分。作为这种关联的结果,JVM存储器521至522包括共享缓存的用于临时存储来自各种存储库的要被处理的数据的至少一部分。
例如,如果数据对象要被加载到节点中以由JVM处理,则可以将该对象放置在缓存服务存储器530和JVM存储器521至522的共享部分中。因此,当该对象被缓存后,适当的JVM可以加载并处理该对象,而不需要将该数据对象从集群节点存储器500拷贝到用于每个JVM的单独存储器中。
作为另一示出的示例,包括了图6。图6示出了用于在缓存服务中分配共享存储器的宿主机存储器600。宿主机存储器600示出了能够初始化并执行各种虚拟机节点的宿主机计算系统中的存储器系统。这些虚拟机节点被分配有虚拟机存储器611至612,其中该虚拟机存储器611至612具有框架存储器641至642和Java虚拟机存储器621至622。宿主机存储器600还包括缓存用于在虚拟机内处理的数据的缓存服务存储器630。
在操作中,宿主机可以被配置成执行充当数据处理系统内的节点的多个虚拟机。这些虚拟机可以在管理程序之上执行,其中该管理程序对宿主机的物理部件进行抽象并且将它们提供给虚拟机以用于执行。在本实例中,每个虚拟机在存储器中由虚拟机(VM)存储器611至612来表示。在每个虚拟机内,可以采用被配置成在数据被分发至集群的各个节点时对数据进行处理的框架如Hadoop或其他映射归约框架。此处,该框架在存储器中被表示成具有框架(FW)存储器641至642。
当在虚拟机内启动框架后,该框架可以用于启动一个或更多个Java虚拟机或JVM以协助处理大数据集。在存储器中由JVM存储器621至622表示的这些JVM访问由框架提供的数据并且并行地处理该数据以得到由管理员或一些其他进程进行查询的答案。为向虚拟机提供数据,可以在与一个或更多个存储库进行通信的宿主机中使用缓存服务来向该宿主机内的每个节点分发数据。
在本示例中,为了快速地向每个JVM提供数据,每个JVM被配置成询问虚拟机节点内核将文件映射至该JVM。响应于该请求,内核识别缓存服务存储器630的可以分配给JVM的至少一部分,并且将缓存服务存储器630的该部分与虚拟机进行关联。作为这种关联的结果,虚拟机能够被从缓存服务递送数据并且能够将该数据直接放入可由JVM访问的存储器的一部分中。
如本示例所示,缓存服务存储器630被配置成与VM存储器611至612内的JVM存储器621至622部分地重叠。因此,缓存服务存储器630的重叠部分用作可以缓存数据并且可由JVM直接访问的存储器的量。尽管在本示例中被示出具有两个虚拟机,但是应当理解,可以在宿主机内实现任何数目的虚拟机。另外,尽管每个虚拟机包括单个JVM,但是应当理解,每个虚拟机内可以产生任意数目的JVM。
现在参考图7以进一步说明存储器到Java虚拟机的映射。图7示出了根据一个示例的在物理存储器中映射Java虚拟机存储器。图7包括物理存储器710、节点内核720、JVM 730和缓存740。如所示出的,处理集群内的节点包括在节点的执行期间可以用于各种不同目标的物理存储器710。在本示例中,物理存储器710的至少一部分被分配给缓存740,该缓存740用于在数据对象被分发在集群内以用于并行数据处理时对该数据对象进行缓存。该缓存740最初与内核720一起被分配,但是被预留以在各个Java虚拟机被启动以处理进入节点的数据时由各个Java虚拟机访问。
使用本示例,JVM 730可以由Hadoop或其他类似映射归约框架启动以处理节点内的数据。当被启动后,JVM 730可以询问节点内核720来为JVM 730映射文件。响应于该询问,节点内核720可以识别缓存740的可用于JVM 730的至少一部分,并且将缓存740的该部分与JVM 730进行关联。结果,JVM 730可以更快地访问下述数据:若以其他方式进行,该数据在可以被访问之前需要被拷贝到JVM 730中。在一个示例中,可以在集群内采用分布式缓存服务以在每个集群节点之中分发数据。缓存服务可以被配置成将文件放置在缓存740内,这将使得JVM 730能够读取该文件并且做出必要处理。
与上面参考图7所描述的操作类似,包括了图8以示出针对多个Java虚拟机和多个虚拟节点映射宿主机物理存储器。图8包括宿主机物理存储器810、节点内核820至821、JVM830至831和缓存840。宿主机物理存储器810表示用于有能力执行多个虚拟机的宿主机计算装置如服务器计算机或台式计算机的物理存储器。在一些情况下,该宿主机计算装置可以包括被配置成对宿主机计算装置的物理元件进行抽象并且将它们提供给虚拟机的管理程序。
在本示例中,宿主机物理存储器810被配置成具有用于对要由各个虚拟机处理的数据进行缓存的缓存部840。因此,每个虚拟机节点内核820至821被分配有缓存的一部分以允许对存储在缓存840内的数据的访问。为了在每个虚拟机中处理数据,虚拟机可以被配置成具有Hadoop或其他类似分布式框架。该框架可以启动和执行虚拟机内的JVM如JVM 830至831以处理必要的数据对象。当被启动后,JVM 830至831分别询问VM节点内核820至821将文件映射至JVM。对文件的这种映射用于使得JVM 830至831能够快速访问通常仅VM自身可访问的文件。响应于JVM请求,VM节点内核820至821识别缓存840的可以映射至每个JVM 830至831的至少一部分,并且将所识别的部分与JVM进行关联。作为该映射的结果,放置在用于VM节点内核820至821中的每个VM节点内核的缓存840中的数据因此也可被JVM 830至831利用。
图9示出了用于向Java虚拟机提供缓存服务存储器的概观900。概观900包括物理存储器910、节点内核920、JVM 930、缓存服务存储器940和JVM部分945。节点内核920可以表示真实装置中的操作系统内核,或者可以表示用于虚拟计算装置或机器的操作系统内核。在操作中,节点被启动以与处理集群中的其他节点并行地处理大数据集,其中该节点可以是真实的或虚拟的。
当被启动后,节点内核920监视该节点上启动的JVM的用于将JVM映射至缓存存储器940的文件映射请求。缓存存储器940是被分配的存储器,其使得缓存服务能够提供用于由该节点内执行的JVM处理的数据。当为该节点分配了工作后,Hadoop或一些他类似映射归约框架可以启动JVM 930以协助并行处理一个或更多个数据集。当被启动后,JVM 930询问节点内核920将文件映射至JVM 930。响应于该询问,节点内核920识别要被映射至JVM 930的JVM部分945。然后,将缓存服务存储器940的这个被识别的部分与JVM 930进行关联,使得JVM 930能够对缓存在JVM部分945的数据进行访问。通过将数据缓存在存储器的共享部分中,该数据可以使用节点来存储,但是可以被该节点内执行的JVM更快速访问。
转至图10,图10示出了用于将共享存储器映射至Java虚拟机的Hadoop节点计算系统1000。Hadoop节点计算系统1000是节点115至117的示例,然而可以存在节点的其他示例。Hadoop节点计算系统1000包括通信接口1001、用户接口1002和处理系统1003。处理系统1003链接至通信接口1001和用户接口1002。处理系统1003包括处理电路系统1005和存储操作软件1007的存储器装置1006。
通信接口1001包括经由通信链接如网卡、端口、RF收发器、处理电路系统和软件或者一些其他通信装置进行通信的部件。通信接口1001可以被配置成经由金属链路、无线链路或光链路进行通信。通信接口1001可以被配置成使用TDM协议、IP协议、以太网协议、光联网协议、无线协议、通信信令或一些其他通信格式——包括其组合。
用户接口1002包括与用户交互的部件。用户接口1002可以包括键盘、显示屏、鼠标、触摸板或一些其他用户输入/输出设备。在一些示例中,可以省略用户接口1002。
处理电路系统1005包括微处理器以及从存储器装置1006检索操作软件1007并执行该操作软件1007的其他电路系统。存储器装置1006包括非暂态存储介质如磁盘驱动器、闪存驱动器、数据存储电路系统或一些其他存储器设备。操作软件1007包括计算机程序、固件或一些其他形式的机器可读处理指令。操作软件1007包括可以位于Hadoop节点计算系统1000的内核1020内的监视模块1008、识别模块1009和关联模块1010。操作软件1007还可以包括操作系统、实用程序、驱动器、网络接口、应用或一些其他类型的软件。操作软件1007在由电路系统1005执行时指示处理系统1003如本文所描述的那样来操作Hadoop节点计算系统1000。
具体地,Hadoop节点计算系统1000表示用于在集群环境中处理大数据集的计算系统。Hadoop节点计算系统1000可以表示真实计算装置如服务器或台式机,但是也可以表示宿主计算机内的虚拟计算装置。在操作中,计算系统1000被配置成执行Hadoop或其他类似映射归约框架。在执行该框架期间,可以启动对用于数据分析所必需的数据进行处理的一个或更多个Java虚拟机JVM。
在本示例中,当JVM被启动后,监视模块1008被配置成监视来自Java虚拟机的文件映射尝试。该文件映射尝试包括由JVM做出的对存储器中的文件进行映射以使得JVM能够更快速访问该文件的尝试。响应于识别到文件映射尝试,识别模块1009识别存储器中的被分配给缓存服务的区域。在启动JVM中的任何JVM之前,缓存服务可以分配Hadoop节点计算系统1000中的一定量的存储器来缓存要在该系统内处理的数据。该存储器可以被分配为内核1020的一部分,或者可由内核1020访问并且能够被映射至启动的JVM的任意其他位置。当识别到存储器中的被分配给缓存服务的区域时,关联模块1010将存储器中的被分配给缓存服务的区域与Java虚拟机进行关联。因此,不是被映射至文件,而是将虚拟机与被分配给缓存服务的存储器进行关联。因此,当数据被递送至计算系统1000用于由一个或更多个JVM处理时,JVM可以具有到缓存服务的直接映射以在不将数据转移入JVM的情况下快速访问信息。
尽管在本示例中被示出具有三个软件模块,但是应当理解,在计算系统1000内可以采用任意数目的软件模块来实现本文所述的操作。另外,尽管在本示例中与真实计算装置类似地示出,但是应当理解,计算系统1000可以表示虚拟计算装置。在这样的情况下,计算系统1000可以被配置成在宿主机内与其他节点一起操作以用于处理大数据集。在一些示例中,宿主机可以包括用于对宿主机的物理元件进行抽象并且将它们提供给像计算系统1000一样的处理节点的管理程序。因此,多个节点能够在单个宿主机计算系统上执行。
尽管在前面示例中被示出使用JVM,但是应当理解,任何工作进程如应用或其他工作进程可能需要与JVM的文件映射相同的文件映射来访问缓存服务存储器。另外,尽管在前面的示例中使用内核,但是可以使用能够将缓存服务存储器关联至工作进程的任何类似支持进程。例如,参考图11,图11示出了用于向计算节点或系统内的工作进程提供缓存服务存储器的概观。图11包括节点存储器1110、支持进程1120和工作进程1130。节点存储器还包括缓存服务存储器1140和缓存服务存储器1140内的工作区域1145。
在操作中,可以是计算节点内的任何java虚拟机或进程的工作进程1130可以启动对文件进行映射的请求。该映射请求通常用于对存储器中的文件进行共享,否则该文件需要被拷贝到工作进程1130的存储器中。响应于该映射请求,支持进程1120识别存储器中的被分配给缓存服务的区域——在本示例中是工作区域1145,并且将缓存服务存储器1140的工作区域1145关联至工作进程1130。通过分配缓存服务存储器1140的工作区域1145,工作进程1130可以访问下述数据:若以其他方式进行,该数据可能需要被拷贝到用于该工作进程的存储器的非共享区域中。
为了进一步说明支持进程1120的操作,包括了图12。图12示出了对节点中的支持进程进行操作以将缓存存储器与工作进程进行关联的方法1200。该方法包括识别来自工作进程的对文件进行映射的请求(1201)。在一些示例中,工作进程可以包括被配置成协助映射归约框架的Java虚拟机,但是应当理解,该工作进程可以包括其他类型的工作进程。另外,在一些实例下,支持进程可以是计算机节点内核或Linux内核,但是可以包括能够对节点内的存储器进行分配的任何其他支持进程。当支持进程接收到对文件进行映射的请求时,支持进程识别存储器中的被分配给缓存服务的区域,并且将该存储器中的区域关联至工作进程。返回参考图11,支持进程1120识别用于工作进程1130的工作区域1145。因此,当工作区域1145与工作进程1130相关联后,工作进程1130可以使用缓存存储器来完成已分配的任务。
附图中提供的功能框图、操作序列和流程图表示用于执行本公开内容的新颖部分的示例性架构、环境和方法。尽管出于简化说明的目的,本文包括的方法可以是功能图、操作序列或流程图的形式并且可以被描述为一系列动作,但是应当理解和领会,所述方法不受动作的顺序的限制,因为根据所述方法,一些动作可以以不同的顺序发生和/或与来自本文所示和所描述的方法的其他动作同时发生。例如,本领域的技术人员将理解和领会,方法可以替选地被表示为如状态图中的一系列相关状态或事件。此外,对于新颖的实现方式,可能并不需要方法中所示的所有动作。
所包括的描述和附图描述了特定实现方式以教示本领域的技术人员如何获得和使用最好的选项。出于教示发明性原理的目的,简化或省略了一些常规方面。本领域的技术人员将理解,来自这些实现方式的变型落入本发明的范围内。本领域的技术人员还将理解,上述特征可以以各种方式进行组合以形成多个实现方式。因此,本发明不限于上述特定实现方式,而是仅由权利要求书及其等同方案来限定。
Claims (20)
1.一种对计算系统上的支持进程进行操作以针对工作进程提供加速输入和输出的方法,所述方法包括:
监视由所述工作进程启动的文件映射尝试;
响应于所述文件映射尝试,识别存储器中的已分配给缓存服务的第一区域;以及
将存储器中的所述第一区域与所述工作进程进行关联。
2.根据权利要求1所述的方法,其中,所述支持进程包括所述计算系统的内核进程。
3.根据权利要求1所述的方法,其中,所述工作进程包括Java虚拟机。
4.根据权利要求3所述的方法,其中,由所述工作进程启动的文件映射尝试包括由所述Java虚拟机启动的新的输入/输出通道请求。
5.根据权利要求1所述的方法,其中,所述缓存服务包括用于向一个或更多个工作进程提供数据的分布式缓存服务。
6.根据权利要求1所述的方法,还包括:
监视由第二工作进程启动的第二文件映射尝试;
响应于所述第二文件映射尝试,识别存储器中的已分配给所述缓存服务的第二区域;以及
将存储器中的所述第二区域与所述第二工作进程进行关联。
7.根据权利要求1所述的方法,其中,所述工作进程包括由Hadoop框架启动的工作进程。
8.根据权利要求1所述的方法,其中,所述工作进程包括由映射归约框架启动的工作进程。
9.根据权利要求1所述的方法,其中,所述计算系统包括虚拟计算系统。
10.一种针对工作进程提供加速输入和输出的计算机设备,所述计算机设备包括:
处理指令,所述处理指令在由计算系统执行时指示所述计算系统的支持进程进行如下操作:
监视由所述工作进程启动的文件映射尝试;
响应于所述文件映射尝试,识别存储器中的已分配给缓存服务的第一区域;以及
将存储器中的所述第一区域与所述工作进程进行关联;以及
存储所述处理指令的一个或更多个非暂态计算机可读介质。
11.根据权利要求10所述计算机设备,其中,所述支持进程包括所述计算系统的内核进程。
12.根据权利要求10所述计算机设备,其中,所述工作进程包括Java虚拟机。
13.根据权利要求12所述计算机设备,其中,由所述工作进程启动的文件映射尝试包括由所述Java虚拟机启动的新的输入/输出通道请求。
14.根据权利要求10所述计算机设备,其中,所述处理指令还指示所述计算系统的支持进程进行如下操作:
监视由第二工作进程启动的第二文件映射尝试;
响应于所述第二文件映射尝试,识别存储器中的已分配给所述缓存服务的第二区域;以及
将存储器中的所述第二区域与所述第二工作进程进行关联。
15.根据权利要求10所述计算机设备,其中,所述工作进程包括由Hadoop框架启动的工作进程。
16.根据权利要求10所述计算机设备,其中,所述工作进程包括由映射归约框架启动的工作进程。
17.根据权利要求10所述计算机设备,其中,所述计算系统包括真实计算系统。
18.根据权利要求10所述计算机设备,其中,所述计算系统包括虚拟计算系统。
19.一种用于针对工作进程提供加速输入和输出的节点计算系统,所述节点计算系统包括:
所述工作进程,其被配置成启动文件映射尝试;以及
支持进程,所述支持进程被配置成:
识别所述文件映射尝试;
响应于所述文件映射尝试,识别存储器中的已分配给缓存服务的第一区域;以及
将存储器中的已分配给所述缓存服务的所述第一区域与所述工作进程进行关联。
20.根据权利要求19所述的节点计算系统,其中,所述文件映射尝试包括新的输入/输出通道请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/264,812 | 2014-04-29 | ||
US14/264,812 US9483310B2 (en) | 2014-04-29 | 2014-04-29 | Associating cache memory with a work process |
PCT/US2015/010240 WO2015167624A1 (en) | 2014-04-29 | 2015-01-06 | Associating cache memory with a work process |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462599A true CN106462599A (zh) | 2017-02-22 |
CN106462599B CN106462599B (zh) | 2019-09-10 |
Family
ID=54334921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580023517.5A Active CN106462599B (zh) | 2014-04-29 | 2015-01-06 | 缓存存储器与工作进程的关联 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9483310B2 (zh) |
EP (1) | EP3138023A4 (zh) |
CN (1) | CN106462599B (zh) |
WO (1) | WO2015167624A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792050B2 (en) * | 2014-08-13 | 2017-10-17 | PernixData, Inc. | Distributed caching systems and methods |
US10382552B2 (en) * | 2016-12-12 | 2019-08-13 | Verizon Patent And Licensing Inc. | User device ad-hoc distributed caching of content |
US10810044B2 (en) * | 2018-01-04 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Enhanced cache memory allocation based on virtual node resources |
US20190220294A1 (en) * | 2018-01-17 | 2019-07-18 | International Business Machines Corporation | Using lightweight jit compilation for short-lived jvms on parallel distributing computing framework |
US10715622B2 (en) * | 2018-12-14 | 2020-07-14 | Nutanix, Inc. | Systems and methods for accelerating object stores with distributed caching |
CN109800057B (zh) * | 2019-01-18 | 2021-06-01 | 杭州复杂美科技有限公司 | 对象调用方法、设备和存储介质 |
US11334494B2 (en) * | 2019-05-24 | 2022-05-17 | Texas Instruments Incorporated | Write merging on stores with different tags |
US11836087B2 (en) * | 2020-12-23 | 2023-12-05 | Micron Technology, Inc. | Per-process re-configurable caches |
US11797447B2 (en) | 2021-03-17 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | Efficient caching and data access to a remote data lake in a large scale data processing environment |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064549A1 (en) * | 2004-09-23 | 2006-03-23 | Michael Wintergerst | Cache eviction |
US20060248276A1 (en) * | 2005-04-28 | 2006-11-02 | Frank Kilian | Cache monitoring using shared memory |
US20070171921A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session |
US20080183854A1 (en) * | 2003-12-10 | 2008-07-31 | Hopen Chris A | Network Appliance |
US7676554B1 (en) * | 2005-09-15 | 2010-03-09 | Juniper Networks, Inc. | Network acceleration device having persistent in-memory cache |
US20100153644A1 (en) * | 2008-12-11 | 2010-06-17 | Bauchot Frederic J | On demand java application manager |
US20110119228A1 (en) * | 2009-11-16 | 2011-05-19 | Symantec Corporation | Selective file system caching based upon a configurable cache map |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151323B2 (en) | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
EP2425341B1 (en) | 2009-05-01 | 2018-07-11 | Citrix Systems, Inc. | Systems and methods for establishing a cloud bridge between virtual storage resources |
US20110096828A1 (en) | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
US8555265B2 (en) | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US20120054315A1 (en) | 2010-08-31 | 2012-03-01 | Cisco Technology, Inc. | System and method for providing virtualized file system management for a memory card in a digital environment |
US20140025683A1 (en) | 2012-07-18 | 2014-01-23 | Salesforce.Com, Inc. | Methods and apparatus for managing community-updateable data |
US9332083B2 (en) * | 2012-11-21 | 2016-05-03 | International Business Machines Corporation | High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts |
-
2014
- 2014-04-29 US US14/264,812 patent/US9483310B2/en active Active
-
2015
- 2015-01-06 CN CN201580023517.5A patent/CN106462599B/zh active Active
- 2015-01-06 EP EP15785954.7A patent/EP3138023A4/en not_active Ceased
- 2015-01-06 WO PCT/US2015/010240 patent/WO2015167624A1/en active Application Filing
-
2016
- 2016-10-26 US US15/335,264 patent/US10061713B2/en active Active
-
2018
- 2018-08-27 US US16/113,561 patent/US10585806B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080183854A1 (en) * | 2003-12-10 | 2008-07-31 | Hopen Chris A | Network Appliance |
US20060064549A1 (en) * | 2004-09-23 | 2006-03-23 | Michael Wintergerst | Cache eviction |
US20060248276A1 (en) * | 2005-04-28 | 2006-11-02 | Frank Kilian | Cache monitoring using shared memory |
US7676554B1 (en) * | 2005-09-15 | 2010-03-09 | Juniper Networks, Inc. | Network acceleration device having persistent in-memory cache |
US20070171921A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session |
US20100153644A1 (en) * | 2008-12-11 | 2010-06-17 | Bauchot Frederic J | On demand java application manager |
US20110119228A1 (en) * | 2009-11-16 | 2011-05-19 | Symantec Corporation | Selective file system caching based upon a configurable cache map |
Also Published As
Publication number | Publication date |
---|---|
US20180365168A1 (en) | 2018-12-20 |
EP3138023A1 (en) | 2017-03-08 |
US10585806B2 (en) | 2020-03-10 |
WO2015167624A1 (en) | 2015-11-05 |
US20150309942A1 (en) | 2015-10-29 |
US9483310B2 (en) | 2016-11-01 |
US10061713B2 (en) | 2018-08-28 |
US20170046275A1 (en) | 2017-02-16 |
EP3138023A4 (en) | 2017-11-29 |
CN106462599B (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462599B (zh) | 缓存存储器与工作进程的关联 | |
US20210216495A1 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
US9965392B2 (en) | Managing coherent memory between an accelerated processing device and a central processing unit | |
US10585726B2 (en) | Parameter-sharing apparatus and method | |
CN103139159B (zh) | 云计算架构中的虚拟机之间的安全通信 | |
US7784060B2 (en) | Efficient virtual machine communication via virtual machine queues | |
CN104636186B (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
CN108351837A (zh) | 虚拟地址支持的虚拟机中的直接映射的文件 | |
CN100373344C (zh) | 用于在实时与虚拟化操作系统之间共享资源的系统和方法 | |
CN101594309B (zh) | 集群系统中内存资源的管理方法、设备及网络系统 | |
CN106796500A (zh) | 分布式文件系统的版本间映射 | |
US9436601B2 (en) | Categorizing memory pages based on page residences | |
CN108322325B (zh) | 一种虚拟机管理方法及装置 | |
CN103942087A (zh) | 虚拟机热迁移方法及相关装置和集群系统 | |
US7539987B1 (en) | Exporting unique operating system features to other partitions in a partitioned environment | |
CN104794069A (zh) | 一种cpu中缓存的用户态分配方法和系统 | |
US9176889B1 (en) | Virtual machine memory management | |
CN107491340A (zh) | 跨物理机的巨型虚拟机实现方法 | |
JP5381713B2 (ja) | 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム | |
CN106155575A (zh) | 用于扩展存储系统的高速缓存的方法和装置 | |
CN104298519B (zh) | 用于配置操作系统的装置及其方法 | |
Lee et al. | gShare: a centralized GPU memory management framework to enable GPU memory sharing for containers | |
CN108595244A (zh) | 虚拟机内外通信方法、虚拟机、物理主机及虚拟机系统 | |
CN105900066A (zh) | 计算机以及基于管理程序的资源调度方法 | |
JPH0713823A (ja) | 仮想計算機システムにおけるファイル資源管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190729 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American California Applicant before: Blue data software Ltd |
|
GR01 | Patent grant | ||
GR01 | Patent grant |