KR101771178B1 - Method for managing in-memory cache - Google Patents

Method for managing in-memory cache Download PDF

Info

Publication number
KR101771178B1
KR101771178B1 KR1020160055860A KR20160055860A KR101771178B1 KR 101771178 B1 KR101771178 B1 KR 101771178B1 KR 1020160055860 A KR1020160055860 A KR 1020160055860A KR 20160055860 A KR20160055860 A KR 20160055860A KR 101771178 B1 KR101771178 B1 KR 101771178B1
Authority
KR
South Korea
Prior art keywords
data block
memory cache
application
store
cache
Prior art date
Application number
KR1020160055860A
Other languages
Korean (ko)
Inventor
최영리
곽재원
황은지
Original Assignee
울산과학기술원
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 울산과학기술원 filed Critical 울산과학기술원
Priority to KR1020160055860A priority Critical patent/KR101771178B1/en
Application granted granted Critical
Publication of KR101771178B1 publication Critical patent/KR101771178B1/en

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

A method for managing an in-memory cache according to an embodiment, includes a step of determine whether to store a first data block based on a probability that a first application will be stored in an in-memory cache if there is a request to store the first data block belonging to the first application in the in-memory cache, a step of checking whether there is a space for storing the first data block in the in-memory cache if it is determined to store the first data block, and a step of securing a space by deleting a data block belonging to a second application having an affinity lower than an intimacy estimated based on performance improvement when the first application utilizes the in-memory cache if there is no space to store the first data block, and storing the data block in the secured space. It is possible to provide a technique to dynamically determine a maximum wait time.

Description

인메모리 캐시를 관리하는 방법{METHOD FOR MANAGING IN-MEMORY CACHE}METHOD FOR MANAGING IN-MEMORY CACHE < RTI ID = 0.0 >

본 발명은 인메모리(in-memory) 캐시를 효율적으로 활용하고 관리하는 방법에 관한 것이다. 보다 자세하게는 인메모리 캐시를 지원하는 분산 파일 시스템(Distributed File System)에서 이러한 인메모리 캐시에 데이터 블록이 저장된 것을 활용하여 맵리듀스 잡(job)의 태스크(task)를 스케쥴링하는 방법, 그리고 인메모리 캐시에 데이터 블록을 추가적으로 저장할 공간이 없을 때 맵리듀스 응용의 인메모리 캐시에 대한 친밀도(affinity)를 기초로 인메모리 캐시에 기 저장된 데이터 블록을, 추가하고자 하는 데이터 블록으로 교체하여 저장하는 방법에 관한 것이다.
The present invention relates to a method for efficiently utilizing and managing an in-memory cache. More particularly, the present invention relates to a method of scheduling a task of a MapReduce job by utilizing a data block stored in the in-memory cache in a distributed file system supporting an in-memory cache, Stored in an in-memory cache, based on the affinity of the in-memory cache of the MapReduce application when there is no space to store the data block in addition to the data block to be added .

잘 알려진 바와 같이, 하둡(hadoop) 2.0의 Yarn 시스템에서 맵리듀스 잡(job)은 적어도 하나의 태스크(task)로 구성된다. 그리고, Yarn의 스케쥴러는 이러한 태스크를 노드 매니저(node manager)가 실행되는 계산 노드에서 스케쥴링한다. 태스크가 계산 노드에서 스케쥴링 되면 이러한 계산 노드에는 컨테이너(container)가 생성된다. 그리고, 태스크는 이와 같이 생성된 컨테이너에서 실행된다. 이 때, 태스크가 실행되는 계산 노드가 이러한 태스크가 처리해야 하는 데이터 블록을 저장하는 데이터 노드와 동일한 경우, 이러한 태스크는 데이터 로컬 태스크라고 지칭된다. As is well known, in the Yarn system of Hadoop 2.0, a MapReduce job consists of at least one task. Then, the scheduler of the Yarn schedules such a task at the calculation node where the node manager is executed. When a task is scheduled at a compute node, a container is created at this compute node. The task is then executed in the container thus created. At this time, if the compute node on which the task is executed is the same as the data node storing the data block that this task has to process, this task is called a data local task.

최근 들어, 하둡 분산 파일 시스템(Haddop Distribution File System, HDFS)에 인메모리 캐시 기능이 추가 되었다. 태스크를 실행함에 있어서 전술한 데이터 로컬 태스크의 경우 말고도, HDFS 인메모리 캐시 시스템의 인메모리 캐시로부터 그에 저장된 데이터 블록을 읽어들여서 태스크를 실행할 수도 있는데, 이러한 태스크는 캐시 로컬 태스크라고 지칭된다. 이 때, 인메모리 캐시에 이와 같이 데이터 블록이 저장되어 있음을 최대한 활용하면서 HDFS 인메모리 캐시 시스템의 효용성을 기존보다 향상시키는 방안이 요구된다.Recently, the in-memory cache function has been added to the Hadoop Distribution File System (HDFS). In executing the task, in addition to the data local task described above, the task may be executed by reading the data block stored therein from the in-memory cache of the memory cache system, which is HDFS, which task is called a cache local task. In this case, it is necessary to improve the utility of the HDFS in-memory cache system while maximizing utilization of the data block stored in the in-memory cache.

한편, 기존의 HDFS 인메모리 캐시 시스템에서 사용자는 인메모리 캐시에 저장할 파일과 저장하지 않을 파일을 직접 명령어를 사용하여 지정해야 한다. 보다 구체적으로 살펴보면, 사용자는 파일을 인메모리 캐시에 추가한다는 명령어를 직접 사용하여 파일을 인메모리 캐시에 저장(caching)하여야 하며, 또한 이미 저장되어 있는 파일을 인메모리 캐시에서 제외시킨다는(uncaching) 명령어를 직접 사용하여 파일을 인메모리 캐시에서 삭제해야 힌다.On the other hand, in the existing HDFS in-memory cache system, the user must designate the file to be stored in the in-memory cache and the file not to be stored using the direct instruction. More specifically, the user must directly cache the file in the in-memory cache by directly using the command to add the file to the in-memory cache, and also uncache the already stored file from the in-memory cache To delete the file from the in-memory cache.

사용자로 하여금 직접 명령어를 사용하게 만드는 이러한 특징은 HDFS 인메모리 캐시 시스템의 성능 저하를 유발할 수 있다. 뿐만 아니라, 많은 개수의 맵리듀스 응용들을 동시에 처리하는 경우, 이러한 응용들의 처리에 필요한 공간의 크기(이 응용들의 입력 데이터의 총 크기)가 인메모리 캐시의 크기를 초과할 수 있는데, 전술한 특징에 따르면 이러한 경우에도 사용자는 직접 명령어를 사용하여 파일을 제외시키고 추가해야 한다. 이는 인메모리 캐시를 사용함으로써 얻는 HDFS 인메모리 캐시 시스템의 효용성을 반감시킬 수 있다.
This feature, which allows the user to use direct commands, can cause performance degradation of the HDFS in-memory cache system. In addition, when processing a large number of MapReduce applications simultaneously, the size of the space required for processing these applications (the total size of the input data of these applications) may exceed the size of the in-memory cache. In this case, you must also exclude and add the file using direct commands. This can reduce the utility of the HDFS in-memory cache system by using an in-memory cache.

한국특허공개공보 2015-0059492 , 공개일자 2015년 06월 01일Korean Patent Publication No. 2015-0059492, published on June 01, 2015

본 발명이 해결하고자 하는 과제는 태스크들을 캐시 로컬 태스크로 최대한 스케줄링하여 인메모리 캐시에 저장된 데이터의 활용도를 향상시킴과 동시에 태스크가 인메모리 캐시에서 스케쥴링되기까지 대기하는 시간의 한계인 최대 대기 시간을 동적으로 결정하는 기술을 제공하는 것이다. The present invention aims at improving the utilization of data stored in the in-memory cache by maximally scheduling tasks as a cache local task, and at the same time, changing the maximum wait time, which is the limit of waiting time for a task to be scheduled in the in- As shown in FIG.

또한, 인메모리 캐시에 데이터 블록을 추가적으로 저장할 공간이 없을 때, 맵리듀스 응용(application)의 인메모리 캐시에 대한 친밀도(affinity)를 기초로 인메모리 캐시에 기 저장된 데이터 블록을, 추가하고자 하는 데이터 블록으로 교체하여 저장하는 기술을 제공하는 것이다.In addition, when there is no room for further storing data blocks in the in-memory cache, the data blocks pre-stored in the in-memory cache based on the affinity for the in-memory cache of the MapReduce application, And stores the replacement information.

또한, 인메모리 캐시에 데이터 블록을 추가하여 저장할 때 인메모리 캐시의 크기 제한으로 인하여 데이터 블록이 교체되는 상황을 최대한 감소시킬 수 있는 기술을 제공하는 것이다The present invention also provides a technique capable of minimizing a situation in which data blocks are replaced due to size limitation of the in-memory cache when adding and storing data blocks in the in-memory cache

다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. will be.

일 실시예에 따른 인메모리 캐시를 관리하는 방법은 인메모리 캐시에 제1 응용에 속하는 제1 데이터 블록을 저장하라는 요청이 있으면, 상기 제1 응용이 상기 인메모리 캐시에 저장될 확률을 기초로 상기 제1 데이터 블록을 저장할지 여부를 결정하는 단계와, 상기 제1 데이터 블록을 저장하기로 결정한 경우, 상기 인메모리 캐시에 상기 제1 데이터 블록을 저장할 공간이 있는지를 확인하는 단계와, 상기 제1 데이터 블록을 저장할 공간이 없으면, 상기 제1 응용이 상기 인메모리 캐시를 활용할 때의 성능 향상을 기초로 산정되는 친밀도보다 낮은 친밀도를 갖는 제2 응용에 속하는 데이터 블록을 삭제하여 상기 공간을 확보한 뒤, 상기 확보된 공간에 상기 제1 데이터 블록을 저장하는 단계를 포함한다.
A method for managing an in-memory cache, according to an embodiment, includes the steps of: if there is a request to store a first data block belonging to a first application in an in-memory cache, Comprising the steps of: determining whether to store a first data block; if it is determined to store the first data block, checking whether there is space in the in-memory cache for storing the first data block; If there is no space for storing the data block, the data block belonging to the second application having an affinity lower than the familiarity estimated based on the performance improvement when the first application utilizes the in-memory cache is deleted to secure the space And storing the first data block in the reserved space.

일 실시예에 따르면, 맵리듀스 잡의 태스크를 캐시 로컬 태스크로 스케쥴링함에 있어서 태스크가 인메모리 캐시에 데이터 블록을 저장하는 노드에서 스케쥴링되기까지 대기하는 시간의 한계인 최대 대기 시간을 동적으로 결정할 수 있다. 따라서, 인메모리 캐시에 저장된 데이터의 효율성이 향상될 수 있으며, 대기 시간에 의한 오버헤드 또한 저감될 수 있다.According to one embodiment, in scheduling a task of a MapReduce job to a cache local task, it can dynamically determine a maximum wait time, which is the limit of time that a task waits to be scheduled at a node storing a data block in an in-memory cache . Thus, the efficiency of data stored in the in-memory cache can be improved, and the overhead due to latency can also be reduced.

또한, 인메모리 캐시에 데이터 블록을 추가적으로 저장할 공간이 없을 때 맵리듀스 응용(application)의 인메모리 캐시에 대한 친밀도(affinity)를 기초로 인메모리 캐시에 기 저장된 데이터 블록을, 추가하고자 하는 데이터 블록으로 교체하여 저장할 수 있다. In addition, when there is no space to store data blocks in the in-memory cache, the data blocks pre-stored in the in-memory cache based on the affinity of the in-memory cache of the MapReduce application are added to the data blocks to be added Can be replaced and saved.

또한, 인메모리 캐시에 데이터 블록을 추가하여 저장할 때, 인메모리 캐시의 크기 제한으로 인하여 데이터 블록이 교체되는 상황을 최대한 감소시킬 수 있다.
Also, when adding and storing data blocks in the in-memory cache, it is possible to minimize the situation in which data blocks are replaced due to the size limitation of the in-memory cache.

도 1은 인메모리 캐시 기반 하둡 시스템 중에서 일 실시예에 따른 특징을 설명하기 위하여 일부의 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 인메모리 캐시를 관리하는 방법의 각 단계를 도시한 도면이다.
도 3은 일 실시예에 따른 인메모리 캐시를 관리하는 방법의 각 단계를 도시한 도면이다
FIG. 1 is a diagram showing a part of a configuration of an HAMOCHO system based on an in-memory cache to explain features according to an embodiment.
2 is a diagram illustrating each step of a method for managing an in-memory cache according to one embodiment.
3 is a diagram illustrating each step of a method for managing an in-memory cache according to one embodiment

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.

도 1은 인메모리 캐시 기반 하둡 시스템 중에서 일 실시예에 따른 특징을 설명하기 위하여 일부의 구성을 도시한 도면이다.FIG. 1 is a diagram showing a part of a configuration of an HAMOCHO system based on an in-memory cache to explain features according to an embodiment.

도 1을 참조하면, 인메모리 캐시 기반 하둡 시스템(10)의 일부의 구성에는, 네임 노드(300)와 데이터 노드(400)가 포함되어 있으며, 맵리듀스 응용(application)이 실행되는 컨테이너(container)(500) 또한 포함되어 있다. 아울러, 계산 노드(도면에는 도시되지 않음)의 컨테이너(500)에 맵리듀스 응용을 스케쥴링하는 스케쥴링 장치(100) 또한 이에 포함되어 있다. 여기서, 전술한 계산 노드, 데이터 노드(400) 및 인메모리 캐시(420)는 복수의 서버(컴퓨터)로 구성된 클러스터에서 실행 가능하며, 이러한 서버는 이하에서 ‘노드’로 지칭될 수 있다. 경우에 따라서 노드는 계산 노드 및 데이터 노드(400) 중 어느 하나의 기능만을 수행할 수도 있다. 아울러, 컨테이너(500)와 스케쥴링 장치(100)는 클러스터 리소스 매니지먼트의 기능을 수행하는, 예컨데 yarn과 같은 구성에 포함 가능하다.Referring to FIG. 1, a configuration of a part of the Hadoop system 10 based on an in-memory cache includes a name node 300 and a data node 400, and a container in which a MapReduce application is executed. (500). In addition, a scheduling apparatus 100 for scheduling a mapping task to a container 500 of a calculation node (not shown in the figure) is also included. Here, the above-described compute node, data node 400 and in-memory cache 420 are executable in a cluster composed of a plurality of servers (computers), which may be referred to below as 'nodes'. In some cases, the node may perform only the function of either the calculation node or the data node 400. In addition, the container 500 and the scheduling device 100 may be included in a configuration such as a yarn for performing a function of cluster resource management.

데이터 노드(400)는 복수 개 있을 수 있으며, 파일이 블록 단위로 나뉜 결과물인 데이터 블록을 스토리지의 일종인 로컬 디스크(410)에 저장한다. There may be a plurality of data nodes 400, and a data block, which is a result of dividing a file into blocks, is stored in a local disk 410, which is a kind of storage.

인메모리 캐시(420)는 인메모리 캐시 기반 하둡 시스템(10)을 구성하는 전술한 복수의 서버의 RAM 메모리의 일정 부분에 형성된다. The in-memory cache 420 is formed in a certain portion of the RAM memory of the aforementioned plurality of servers constituting the Hadoop system 10 based on the in-memory cache.

데이터 노드(400)는 자신의 인메모리 캐시(420)에 어떤 데이터 블록이 저장되어 있는지를 주기적으로 네임 노드(300)에 보고(reporting)한다.The data node 400 periodically reports to the name node 300 which data block is stored in its in-memory cache 420. [

네임 노드(300)는 파일이나 데이터 블록의 기본 정보 그리고 데이터 블록이 복수의 데이터 노드(400) 중 어떤 데이터 노드(400)에 저장되어 있는지에 대한 메타 데이터 등을 저장하고 관리한다. 아울러, 네임 노드(300)는 맵리듀스 응용과 관련된 복수의 데이터 블록 중에서 로컬 디스크(410)와 인메모리 캐시(420)에 저장된 데이터 블록, 특히 하둡 분산 파일 시스템에 저장된 정보에 관한 정보를 관리한다. 여기서, 복수의 데이터 블록 중에서 인메모리 캐시(420)에 저장된 데이터 블록에 관한 정보는, 복수의 데이터 블록의 개수 대비 인메모리 캐시(420)가 저장하는 데이터 블록의 개수 비율을 포함할 수 있으나 이에 한정되는 것은 아니다. 또한, 네임 노드(300)는 각 맵리듀스 잡에 대해 인메모리 캐시(420)에 저장된 입력 데이터의 비율을 스케쥴링 장치(100)에 주기적으로 전달한다. 한편, 네임 노드(300)에 포함된 캐시 관리 장치(200)에 대해서는 후술하기로 한다.The name node 300 stores and manages basic information of a file or a data block, and metadata about which data block 400 is stored in which of the plurality of data nodes 400. In addition, the name node 300 manages information on the data blocks stored in the local disk 410 and the in-memory cache 420, in particular, information stored in the Hadoop distributed file system, among a plurality of data blocks related to the mapleuse application. Here, among the plurality of data blocks, the information on the data blocks stored in the in-memory cache 420 may include the number of data blocks stored in the memory cache 420, which is the number of the plurality of data blocks, It is not. In addition, the name node 300 periodically transmits the ratio of the input data stored in the in-memory cache 420 to the scheduling apparatus 100 for each mapping job. The cache management apparatus 200 included in the name node 300 will be described later.

컨테이너(500)는 태스크를 실행하는 구성이다. 컨테이너(500)가 태스크를 실행하는 경우, 컨테이너(500)는 해당 태스크가 처리해야 하는 데이터 블록을 인메모리 캐시(420)에 저장(caching)하라는 요청을 네임 노드(300)에 전달한다. 이 때, 이러한 요청은 해당 데이터 블록이 이미 인메모리 캐시(420)에 저장되어 있는 경우에도 네임 노드(30)에게 전달된다.The container 500 is a configuration for executing a task. When the container 500 executes a task, the container 500 sends a request to the name node 300 to cache the data block to be processed by the task in the in-memory cache 420. At this time, the request is transmitted to the name node 30 even if the corresponding data block is already stored in the in-memory cache 420.

스케쥴링 장치(100)는 네임 노드(300)로부터 맵리듀스 잡과 관련된 전체 데이터 블록의 개수 중에서 인메모리 캐시(420)에 저장된 데이터 블록의 개수의 비율을 수신한다. The scheduling device 100 receives from the name node 300 a ratio of the number of data blocks stored in the in-memory cache 420 among the total number of data blocks associated with the MapReduce job.

다음으로, 스케쥴링 장치(100)는 캐시 로컬 태스크로 스케쥴링 되기 까지 대기하는 최대 대기 시간인 제1 대기 시간, 데이터 로컬 태스크로 스케쥴링 되기 까지 대기하는 최대 대기 시간인 제 2 대기 시간이 경과하였는지 여부를 기초로 태스크를 스케쥴링한다. 여기서, 제1 대기 시간은 제2 대기 시간보다 짧을 수 있다. 스케쥴링 장치(100)가 태스크를 스케쥴링하는 보다 자세한 과정은 도 2에서 보다 자세하게 설명하기로 하되, 이러한 스케쥴링 장치(100)는 이러한 과정을 수행하도록 프로그램된 명령어를 저장하는 메모리, 그리고 이러한 명령어를 수행하는 마이크로프로세서에 의하여 구현 가능하다.Next, the scheduling apparatus 100 determines whether or not a first wait time, which is a maximum wait time for waiting until being scheduled by the cache local task, and a second wait time, which is a maximum wait time for waiting until being scheduled by the data local task, To schedule the task. Here, the first waiting time may be shorter than the second waiting time. A more detailed procedure for scheduling a task by the scheduling apparatus 100 will be described in more detail with reference to FIG. 2. The scheduling apparatus 100 includes a memory for storing instructions programmed to perform such a process, It can be implemented by a microprocessor.

캐시 관리 장치(200)는 인메모리 캐시(420)에 데이터 블록을 추가적으로 저장할 공간이 없을 때 맵리듀스 응용(application)의 인메모리 캐시(420)에 대한 친밀도(affinity)를 기초로 인메모리 캐시(420)에 기 저장된 데이터 블록을, 추가하고자 하는 데이터 블록으로 교체하여 저장한다. The cache management device 200 may store the in memory cache 420 420 based on the affinity for the in-memory cache 420 of the MapReduce application when there is no room to further store the data block in the in- ) With the data block to be added and stores the data block.

또한, 캐시 관리 장치(200)는 인메모리 캐시(420)에 데이터 블록을 추가할 때 데이터 블록이 인메모리 캐시(420)에 저장될 확률을 고려하여 추가한다. 이 저장될 확률은 맵리듀스 응용의 캐시 친밀도에 의해 결정된다. 캐시 관리 장치(200)의 이와 같은 동작에 대해서는 도 3에서 보다 자세하게 설명하기로 하되, 이러한 캐시 관리 장치(200)는 이러한 과정을 수행하도록 프로그램된 명령어를 저장하는 메모리, 그리고 이러한 명령어를 수행하는 마이크로프로세서에 의하여 구현 가능하다.In addition, the cache management device 200 adds the data block to the in-memory cache 420 in consideration of the probability that the data block will be stored in the in-memory cache 420. The probability of being stored is determined by the cache intimacy of the MapReduce application. This operation of the cache management apparatus 200 will be described in more detail with reference to FIG. 3. The cache management apparatus 200 includes a memory for storing instructions programmed to perform such a process, and a microprocessor Processor.

도 2는 일 실시예에 따른 인메모리 캐시를 관리하는 방법의 각 단계를 도시한 도면으로, 도 2에 도시된 방법의 각 단계는 도 1에 도시된 스케쥴링 장치(100)에 의하여 수행 가능하다. 아울러, 실시예에 따라서 적어도 하나 이상의 단계가 수행되지 않거나 또는 도시되지 않은 단계가 추가로 수행될 수 있으며, 도 2에 도시된 것과는 다른 순서로 각 단계가 수행될 수도 있다.FIG. 2 illustrates each step of a method for managing an in-memory cache according to an embodiment. Each step of the method shown in FIG. 2 can be performed by the scheduling apparatus 100 shown in FIG. In addition, according to the embodiment, at least one step is not performed or a step not shown may be additionally performed, and each step may be performed in a sequence different from that shown in Fig.

도 2를 참조하면, 먼저 스케쥴링 장치(100)는 네임 노드(300)로부터 노드의 인메모리 캐시(420)가 저장하는 데이터 블록에 관한 정보를 수신한다(S100). 여기서, 인메모리 캐시(420)가 저장하는 데이터 블록에 관한 정보란, 예컨데 맵리듀스 잡과 관련된 전체 데이터 블록의 개수 중에서 인메모리 캐시(420)가 저장하는 데이터 블록의 개수의 비율일 수 있다.Referring to FIG. 2, the scheduling apparatus 100 receives information on a data block stored in the in-memory cache 420 of the node from the name node 300 (S100). Here, the information on the data blocks stored in the in-memory cache 420 may be, for example, a ratio of the number of data blocks stored in the in-memory cache 420 among the total number of data blocks related to the mapping task.

다음으로, 스케쥴링 장치(100)는 캐시 로컬 태스크로 스케쥴링되기까지 대기하는 시간의 한계인 제1 대기 시간을 산정한다. 제1 대기 시간은 기 지정된 최대 대기 시간 C 에 네임 노드(300)로부터 수신한 비율을 곱한 값으로 산정될 수 있다. 여기서, 최대 대기 시간 C는 인메모리 캐시(420)에 대한 맵리듀스 응용의 친밀도(affinity)를 기초로 지정될 수 있다. 친밀도란 맵리듀스 응용이 인메모리 캐시(420)를 이용할 때와 이용하지 않을 때의 성능 차이를 반영하는 값으로, 이러한 친밀도를 산출하는 구체적인 방법의 예시에 대해서는 후술하기로 한다.Next, the scheduling apparatus 100 calculates a first waiting time, which is a limit of a waiting time until a cache local task is scheduled. The first waiting time may be calculated as a value obtained by multiplying the predetermined maximum waiting time C by the ratio received from the name node 300. [ Here, the maximum wait time C may be specified based on the affinity of the mapping task application to the in-memory cache 420. The intimacy is a value that reflects the difference in performance when the MapReduce application uses the in-memory cache 420 and when the in-memory cache 420 is not used. An example of a concrete method of calculating such an intimacy will be described later.

다음으로, 스케쥴링 장치(100)는 태스크를 캐시 로컬 태스크 또는 데이터 로컬 태스크로 스케쥴링한다(S120). 보다 구체적으로 살펴보면, 스케쥴링 장치(100)는 잡(job)의 데이터 블록이 인메모리 캐시에 저장되어 있으면 태스크를 캐시 로컬 태스크로 스케쥴링한다. 잡의 데이터 블록이 인메모리 캐시에 저장되어 있지 않은 경우에는 스케쥴링 장치(100)는 제1 대기 시간까지 대기하며, 제1 대기 시간이 경과하면 스케쥴링 장치(100)는 태스크를 데이터 로컬 태스크로 스케쥴링한다. 그러나, 제1 대기 시간이 경과한 뒤 제1 대기 시간보다 긴 제2 대기 시간이 경과할 때까지 스케쥴링되지 않으면 랙 로컬(rack local) 또는 오프 로컬(off local)로 스케쥴링하는데, 랙 로컬이나 오프 로컬의 경우 기존의 하둡에서의 스케쥴링 방식과 동일하므로 이에 관한 자세한 설명은 생략하기로 한다.Next, the scheduling apparatus 100 schedules the task as a cache local task or a data local task (S120). More specifically, the scheduling apparatus 100 schedules a task as a cache local task when a data block of a job is stored in an in-memory cache. If the data block of the job is not stored in the in-memory cache, the scheduling apparatus 100 waits until the first waiting time. When the first waiting time elapses, the scheduling apparatus 100 schedules the task as a data local task . However, if scheduling is not performed until a second waiting time longer than the first waiting time elapses after the first waiting time elapses, scheduling is performed in a rack local or off local, Is the same as the existing scheduling scheme in Hadoop, so a detailed description thereof will be omitted.

이러한 방법에 따르면, 잡과 관련된 전체 데이터 블록 중에서 인메모리 캐시(420)에 저장된 데이터 블록의 비율을 기초로 제1 대기 시간을 동적으로 결정할 수 있다. 따라서, 인메모리 캐시(420)에 데이터가 저장되어 있음을 최대한 활용함과 동시에 대기 시간에 의한 오버헤드 발생을 저감시킬 수 있다.According to this method, the first wait time can be dynamically determined based on the percentage of data blocks stored in the in-memory cache 420 among the entire data blocks associated with the job. Accordingly, it is possible to utilize the fact that data is stored in the in-memory cache 420 and at the same time to reduce overhead due to waiting time.

도 3은 일 실시예에 따른 인메모리 캐시를 관리하는 방법의 각 단계를 도시한 도면으로, 도 3에 도시된 방법의 각 단계는 도 1에 도시된 캐시 관리 장치(200)에 의하여 수행 가능하다. 아울러, 실시예에 따라서 적어도 하나 이상의 단계가 수행되지 않거나 또는 도시되지 않은 단계가 추가로 수행될 수 있으며, 도 4에 도시된 것과는 다른 순서로 각 단계가 수행될 수도 있다.3 shows each step of a method for managing an in-memory cache according to an embodiment, and each step of the method shown in FIG. 3 can be performed by the cache management apparatus 200 shown in FIG. 1 . In addition, according to the embodiment, at least one step may not be performed or steps not shown may be additionally performed, and each step may be performed in a sequence different from that shown in FIG.

네임 노드(300)가 컨테이너(500)로부터 다음과 같은 요청, 즉 맵 태스크와 관련된 제1 데이터 블록을 인메모리 캐시(420)에 올려달라는 요청을 전달받을 수 있다. 여기서, 제1 데이터 블록이 올려달라고 요청받는 인메모리 캐시(420)는 복수의 인메모리 캐시 중에서 다양한 방법으로 선택될 수 있는데, 예컨데 일 실시예에 따르면 최근에 제1 데이터 블록을 읽어들인 인메모리 캐시(420)로 선택될 수 있으나 이에 한정되는 것은 아니다. 이 때 도 3을 참조하면, 캐시 관리 장치(200)는 제1 데이터 블록을 인메모리 캐시(420)에 저장할지 여부를 결정한다(S200). 여기서, 실시예에 따라서 단계 S200에서는, 해당 제1 데이터 블록이 이미 인메모리 캐시에 저장되어 있으면 캐시 관리 장치(200)는 해당 제1 데이터 블록이 읽힌 시간 및 해당 제1 데이터 블록이 상기 다른 데이터 노드의 인메모리 캐시에서 갖는 만료 시간(Time-To-Live, TTL) 중 적어도 하나 이상을 갱신하며, 그에 따라 제1 데이터 블록을 인메모리 캐시(420)에 저장하는 아래의 각 단계들은수행되지 않을 수 있다.The naming node 300 may receive a request from the container 500 to load the first data block associated with the map task, such as the following, into the in-memory cache 420: Herein, the in-memory cache 420 to which the first data block is requested to be loaded may be selected from a plurality of in-memory caches in various manners. For example, according to one embodiment, (420), but the present invention is not limited thereto. Referring to FIG. 3, the cache management apparatus 200 determines whether to store the first data block in the in-memory cache 420 (S200). If it is determined in step S200 that the first data block is already stored in the in-memory cache, the cache management apparatus 200 determines that the first data block has been read and the first data block has been read from the other data node Each of the following steps of updating the at least one of the time-to-live (TTL) in the in-memory cache of the in-memory cache 420 and thus storing the first data block in the in- have.

다음으로, 캐시 관리 장치(200)는 맵리듀스 응용의 인메모리 캐시(420)에 대한 친밀도를 기초로 확률을 산출하고, 이러한 확률을 기초로 제1 입력 데이터를 인메모리 캐시(420)에 저장할지 여부를 결정한다(S210). 이 때, 캐시 관리 장치(200)는 확률이 기 정의된 임계치 이하이면 저장하지 않는 것으로 결정하고 하기의 단계 S220을 실행하지 않으며, 기 정의된 임계치를 초과하면 저장하는 것으로 결정하여 다음 단계가 실행되도록 한다.Next, the cache management apparatus 200 calculates a probability based on the affinity for the in-memory cache 420 of the MapReduce application and determines whether to store the first input data in the in-memory cache 420 based on this probability (S210). At this time, the cache management apparatus 200 determines that the probability is not stored if the probability is below a predefined threshold value, and does not execute the following step S220. If the probability exceeds a predefined threshold value, do.

여기서, 친밀도란 맵리듀스 응용이 인메모리 캐시(420)를 이용할 때와 이용하지 않을 때의 성능 차이를 기초로 산정되는 값으로, 산정하는 방식에는 다양한 방법이 있을 수 있다.Here, the intimacy may be a value calculated based on the difference in performance when the MapReduce application uses the in-memory cache 420 and when the in-memory cache 420 is not used.

아울러, 확률은 이러한 친밀도를 기초로 산출된다. 예컨데, 친밀도가 상대적으로 높으면 확률 또한 상대적으로 높게 산출되며, 친밀도가 상대적으로 낮으면 확률 또한 상대적으로 낮게 산출되며, 친밀도롤 기초로 확률을 산출하는 방법에는 다양한 방법이 있을 수 있다.In addition, the probability is calculated on the basis of this familiarity. For example, if the intimacy is relatively high, the probability is also relatively high, and if the intimacy is relatively low, the probability is also relatively low, and there are various methods for calculating the probability based on the intimacy roll.

다음으로, 캐시 관리 장치(200)는 제1 데이터 블록을 저장할 공간이 인메모리 캐시(420)에 있는지를 확인하여, 공간이 있으면 저장한다(S220). 여기서, 단계 S220에서 언급된 인메모리 캐시(420)는 전술한 바와 같이 제1 데이터 블록이 올려달라고 요청받는 것으로 선택된, 즉 가장 최근에 제1 데이터 블록을 읽은 인메모리 캐시(420)일 수 있다.Next, the cache management apparatus 200 confirms whether there is a space for storing the first data block in the in-memory cache 420, and stores the space if it exists (S220). Here, the in-memory cache 420 referred to in step S220 may be the in-memory cache 420 that has been selected to be requested to load the first data block, i. E. The most recently read first data block, as described above.

그러나, 저장할 공간이 없는 경우, 다음과 같은 단계를 거쳐서 공간을 확보하여 제1 데이터 블록을 저장한다.However, if there is no space to store, a space is secured through the following steps to store the first data block.

(1) 만료 시간이 만료된 데이터 블록이 있다면, 이 중에서 가장 읽힌지 오래된 데이터 블록을 제거하여 공간을 확보한 뒤, 제1 데이터 블록을 저장한다.(1) If there is a data block whose expiration time has expired, the data block which is the oldest is removed to secure a space, and then the first data block is stored.

(2) 만료 시간이 만료된 데이터 블록이 없다면, 제1 데이터 블록이 속하는 응용의 친밀도 값보다 낮은 응용에 속하는 데이터 블록을 선별하고, 이와 같이 선별된 데이터 블록 중에서 가장 읽힌지 오래된 데이터 블록을 제거하여 공간을 확보한 뒤 제1 데이터 블록을 저장한다.(2) If there is no data block whose expiration time has expired, the data block belonging to the application lower than the affinity value of the application to which the first data block belongs is selected, and the most read data block among the selected data blocks is removed After the space is secured, the first data block is stored.

이에 따르면, 확률이 상대적으로 낮은 응용에 속한 처음부터 인메모리 캐시(420)에 저장되지 않게 된다. 따라서, 데이터 블록이 자주 교체되는 것을 차단시킴으로써, 데이터 블록의 잦은 교체에 따른 오버헤드를 저감시킬 수 있다.According to this, the probability is not stored in the in-memory cache 420 from the beginning belonging to a relatively low application. Therefore, it is possible to reduce overhead caused by frequent replacement of data blocks by blocking frequent replacement of data blocks.

또한, 인메모리 캐시에 데이터 블록을 추가적으로 저장할 공간이 없을 때 맵리듀스 응용(application)의 인메모리 캐시에 대한 친밀도(affinity)를 기초로 인메모리 캐시에 기 저장된 데이터 블록을 추가하고자 하는 데이터 블록으로 교체하여 저장할 수 있다. In addition, when there is no room for storing data blocks in the in-memory cache, the data blocks previously stored in the in-memory cache are replaced with data blocks to be added based on the affinity of the in-memory cache of the mapping application. .

일 실시예에 따른 인메모리 캐시를 관리하는 방법은 이러한 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 판독가능한 기록매체에서 구현되거나, 또는 이러한 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 판독가능한 기록매체에서 구현될 수 있다.A method for managing an in-memory cache according to one embodiment may be implemented in a readable recording medium storing a computer program programmed to perform each step included in the method, Readable recording medium.

본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of each step of the flowchart and each block of the block diagrams appended to the present invention may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.

100: 캐시 관리 장치
200: 스케쥴링 장치
300: 네임 노드
400: 데이터 노드
100: cache management device
200: Scheduling device
300: Namenode
400: data node

Claims (6)

인메모리 캐시에 제1 응용에 속하는 제1 데이터 블록을 저장하라는 요청이 있으면, 상기 제1 응용이 상기 인메모리 캐시에 저장될 확률을 기초로 상기 제1 데이터 블록을 저장할지 여부를 결정하는 단계와,
상기 제1 데이터 블록을 저장하기로 결정한 경우, 상기 인메모리 캐시에 상기 제1 데이터 블록을 저장할 공간이 있는지를 확인하는 단계와,
상기 제1 데이터 블록을 저장할 공간이 없으면, 상기 제1 응용이 상기 인메모리 캐시를 활용할 때의 성능 향상을 기초로 산정되는 친밀도보다 낮은 친밀도를 갖는 제2 응용에 속하는 데이터 블록을 삭제하여 상기 공간을 확보한 뒤, 상기 확보된 공간에 상기 제1 데이터 블록을 저장하는 단계를 포함하는
캐시 관리 장치의 인메모리 캐시를 관리하는 방법.
Determining whether to store the first data block based on a probability that the first application will be stored in the in-memory cache if there is a request to store a first data block belonging to the first application in an in-memory cache; ,
Determining if there is room in the in-memory cache for storing the first data block if it is determined to store the first data block;
If there is no space to store the first data block, the first application deletes the data block belonging to the second application having an affinity lower than the familiarity estimated based on the performance improvement when the in-memory cache is utilized, And storing the first data block in the reserved space
A method for managing an in-memory cache of a cache management device.
제 1 항에 있어서,
상기 제1 응용이 상기 인메모리 캐시에 저장될 확률은,
상기 제1 응용의 친밀도에 비례하는
캐시 관리 장치의 인메모리 캐시를 관리하는 방법.
The method according to claim 1,
The probability that the first application is stored in the in-
Wherein the first application is proportional to the intimacy of the first application
A method for managing an in-memory cache of a cache management device.
제 1 항에 있어서,
상기 제1 데이터 블록을 저장하는 단계는,
상기 제1 데이터 블록을 저장할 공간이 없으면, 상기 인메모리 캐시에 저장된 데이터 블록 중에서 상기 인메모리 캐시에서 삭제되어야 하는 시간인 만료 시간이 경과된 데이터 블록을 삭제하여 상기 공간을 확보한 뒤 상기 확보된 공간에 상기 제1 데이터 블록을 저장하는
캐시 관리 장치의 인메모리 캐시를 관리하는 방법.
The method according to claim 1,
Wherein storing the first data block comprises:
If there is no space to store the first data block, a data block whose expiration time has elapsed, which is the time to be deleted from the in-memory cache, among the data blocks stored in the in-memory cache, is deleted to secure the space, Storing the first data block
A method for managing an in-memory cache of a cache management device.
제 3 항에 있어서,
상기 제1 데이터 블록을 저장하는 단계는,
상기 제2 응용에 속하는 데이터 블록들 중에서 액세스가 된지 가장 오래된 데이터 블록을 삭제하여 상기 공간을 확보한 뒤, 상기 확보된 공간에 상기 제1 데이터 블록을 저장하는
캐시 관리 장치의 인메모리 캐시를 관리하는 방법.
The method of claim 3,
Wherein storing the first data block comprises:
The first data block is deleted from the oldest data block among the data blocks belonging to the second application to secure the space and then the first data block is stored in the reserved space
A method for managing an in-memory cache of a cache management device.
인메모리 캐시에 제1 응용에 속하는 제1 데이터 블록을 저장하라는 요청이 있으면, 상기 제1 응용이 상기 인메모리 캐시에 저장될 확률을 기초로 상기 제1 데이터 블록을 저장할지 여부를 결정하는 단계와,
상기 제1 데이터 블록을 저장하기로 결정한 경우, 상기 인메모리 캐시에 상기 제1 데이터 블록을 저장할 공간이 있는지를 확인하는 단계와,
상기 제1 데이터 블록을 저장할 공간이 없으면, 상기 제1 응용이 상기 인메모리 캐시를 활용할 때의 성능 향상을 기초로 산정되는 친밀도보다 낮은 친밀도를 갖는 제2 응용에 속하는 데이터 블록을 삭제하여 상기 공간을 확보한 뒤, 상기 확보된 공간에 상기 제1 데이터 블록을 저장하는 단계를 수행하도록 프로그램된
컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.
Determining whether to store the first data block based on a probability that the first application will be stored in the in-memory cache if there is a request to store a first data block belonging to the first application in an in-memory cache; ,
Determining if there is room in the in-memory cache for storing the first data block if it is determined to store the first data block;
If there is no space to store the first data block, the first application deletes the data block belonging to the second application having an affinity lower than the familiarity estimated based on the performance improvement when the in-memory cache is utilized, And storing the first data block in the reserved space,
A computer program stored on a computer readable recording medium.
인메모리 캐시에 제1 응용에 속하는 제1 데이터 블록을 저장하라는 요청이 있으면, 상기 제1 응용이 상기 인메모리 캐시에 저장될 확률을 기초로 상기 제1 데이터 블록을 저장할지 여부를 결정하는 단계와,
상기 제1 데이터 블록을 저장하기로 결정한 경우, 상기 인메모리 캐시에 상기 제1 데이터 블록을 저장할 공간이 있는지를 확인하는 단계와,
상기 제1 데이터 블록을 저장할 공간이 없으면, 상기 제1 응용이 상기 인메모리 캐시를 활용할 때의 성능 향상을 기초로 산정되는 친밀도보다 낮은 친밀도를 갖는 제2 응용에 속하는 데이터 블록을 삭제하여 상기 공간을 확보한 뒤, 상기 확보된 공간에 상기 제1 데이터 블록을 저장하는 단계를 수행하도록 프로그램된
컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체.
Determining whether to store the first data block based on a probability that the first application will be stored in the in-memory cache if there is a request to store a first data block belonging to the first application in an in-memory cache; ,
Determining if there is room in the in-memory cache for storing the first data block if it is determined to store the first data block;
If there is no space to store the first data block, the first application deletes the data block belonging to the second application having an affinity lower than the familiarity estimated based on the performance improvement when the in-memory cache is utilized, And storing the first data block in the reserved space,
A computer readable recording medium storing a computer program.
KR1020160055860A 2016-05-05 2016-05-05 Method for managing in-memory cache KR101771178B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160055860A KR101771178B1 (en) 2016-05-05 2016-05-05 Method for managing in-memory cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160055860A KR101771178B1 (en) 2016-05-05 2016-05-05 Method for managing in-memory cache

Publications (1)

Publication Number Publication Date
KR101771178B1 true KR101771178B1 (en) 2017-08-24

Family

ID=59758137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160055860A KR101771178B1 (en) 2016-05-05 2016-05-05 Method for managing in-memory cache

Country Status (1)

Country Link
KR (1) KR101771178B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102168464B1 (en) * 2019-05-24 2020-10-21 울산과학기술원 Method for managing in-memory cache
CN112579652A (en) * 2020-12-28 2021-03-30 咪咕文化科技有限公司 Method and device for deleting cache data, electronic equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527558A (en) 2005-01-13 2008-07-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing system and method for task scheduling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527558A (en) 2005-01-13 2008-07-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing system and method for task scheduling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김정욱 외 2명. ‘대규모 스토리지 시스템을 위한 압축을 활용한 인메모리 파일 캐싱 시스템’. 한국정보과학회 2015년 동계학술발표회 논문집, 2015.12, pp.1671-1673.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102168464B1 (en) * 2019-05-24 2020-10-21 울산과학기술원 Method for managing in-memory cache
CN112579652A (en) * 2020-12-28 2021-03-30 咪咕文化科技有限公司 Method and device for deleting cache data, electronic equipment and storage medium
CN112579652B (en) * 2020-12-28 2024-04-09 咪咕文化科技有限公司 Method and device for deleting cache data, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US9389995B2 (en) Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US11150949B2 (en) Resource release method, resource allocation method, devices, and computer program products
CN112256433B (en) Partition migration method and device based on Kafka cluster
US8954969B2 (en) File system object node management
Liu et al. Optimizing shuffle in wide-area data analytics
US20150026694A1 (en) Method of processing information, storage medium, and information processing apparatus
CN113934530A (en) Multi-core multi-queue task cross processing method, device, system and storage medium
KR101771178B1 (en) Method for managing in-memory cache
CN110362426B (en) Selective copy realization method and system for bursty load
US9436406B2 (en) Migration decision window selection based on hotspot characteristics
KR101771183B1 (en) Method for managing in-memory cache
US10942772B2 (en) Dispatching jobs for execution in parallel by multiple processors
CN111177032A (en) Cache space application method, system, device and computer readable storage medium
CN113934529A (en) Task scheduling method, device and system of multi-level core and storage medium
US9395930B2 (en) Information processing system, control method of information processing system, and recording medium
JP5818824B2 (en) Dual mode reader / writer lock
US8341368B2 (en) Automatic reallocation of structured external storage structures
US20090320036A1 (en) File System Object Node Management
US20230393782A1 (en) Io request pipeline processing device, method and system, and storage medium
CN117093335A (en) Task scheduling method and device for distributed storage system
WO2013035719A1 (en) Data placement system, distributed access node, data placement method and program
JP2014146366A (en) Multi-core processor system, and control method and control program of multi-core processor system
US20110214130A1 (en) Data processing system, data processing method, and data processing program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant