KR101793963B1 - Remote Memory Data Management Method and System for Data Processing Based on Mass Memory - Google Patents

Remote Memory Data Management Method and System for Data Processing Based on Mass Memory Download PDF

Info

Publication number
KR101793963B1
KR101793963B1 KR1020140002836A KR20140002836A KR101793963B1 KR 101793963 B1 KR101793963 B1 KR 101793963B1 KR 1020140002836 A KR1020140002836 A KR 1020140002836A KR 20140002836 A KR20140002836 A KR 20140002836A KR 101793963 B1 KR101793963 B1 KR 101793963B1
Authority
KR
South Korea
Prior art keywords
memory
computing node
data
log
remote
Prior art date
Application number
KR1020140002836A
Other languages
Korean (ko)
Other versions
KR20150083276A (en
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 KR1020140002836A priority Critical patent/KR101793963B1/en
Publication of KR20150083276A publication Critical patent/KR20150083276A/en
Application granted granted Critical
Publication of KR101793963B1 publication Critical patent/KR101793963B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법 및 시스템에 관한 것으로서, 본 발명에 따른 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법은 복수의 컴퓨팅 노드들에 장착된 메모리를 바탕으로 대용량 데이터 처리를 지원하는 원격 메모리 시스템에서 원격 메모리 데이터 손실에 따른 응용 프로그램의 중지를 방지하거나 실행 중지 횟수를 줄일 수 있는 대용량 메모리 기반 데이터 처리를 한다. 본 발명에 따르면, 원격 메모리에 데이터를 쓰고 읽는 경우에 원격 메모리를 제공하는 컴퓨팅 노드 및 원격 메모리 서버의 오류 발생 시에도 응용 프로그램이 중단되지 않고 지속 실행되도록 할 수 있고, 긴 실행 시간이나 대용량 메모리를 요구하는 응용 프로그램의 안정적인 실행을 지원하여, 원격 메모리 시스템의 활용을 증대시킬 수 있다.The present invention relates to a remote memory data management method and system for mass memory based data processing, and a remote memory data management method for mass memory based data processing according to the present invention is based on a memory mounted on a plurality of computing nodes In a remote memory system that supports large data processing, large memory-based data processing is performed to prevent the application from being stopped due to remote memory data loss or to reduce the number of executions. According to the present invention, when data is written to and read from a remote memory, an application program can be continuously executed without an interruption even in the event of a failure of a computing node and a remote memory server providing a remote memory, and a long execution time or a large memory The stable execution of the required application programs can be supported, and the utilization of the remote memory system can be increased.

Figure R1020140002836
Figure R1020140002836

Description

대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법 및 시스템{Remote Memory Data Management Method and System for Data Processing Based on Mass Memory}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a remote memory data management method and system for data processing based on a large-

본 발명은 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법 및 시스템에 관한 것으로서, 보다 구체적으로는 복수의 컴퓨터 시스템의 물리적 메모리를 바탕으로 대용량 데이터 처리시 시스템 오류에 따른 데이터 손실을 줄이기 위한 데이터 관리 방법 및 시스템에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and system for remote memory data management for mass memory based data processing, ≪ / RTI >

최근 들어 InfiniBand1, Quadrics2와 같은 네트워크 기술의 발달로 컴퓨팅 노드 간의 통신 시간이 단축되면서, 클러스터를 구성하는 원격 컴퓨팅 노드의 메모리를 활용하여 데이터를 고속 처리하는 원격 메모리 시스템(Remote Memory System, RMS)에 대한 연구가 활발하게 진행되고 있다.In recent years, the development of network technologies such as InfiniBand 1 and Quadrics 2 have reduced the communication time between computing nodes. As a result, a remote memory system (RMS), which processes data at high speed using the memory of the remote computing nodes constituting the cluster, Is being actively studied.

원격 메모리시스템은 컴퓨팅 노드에 장착된 물리 메모리 크기보다 더 큰 데이터 구조를 갖는 응용 프로그램을 실행시킬 수 있고, 성능 향상을 목적으로 대용량 데이터를 메모리 기반으로 처리한다.The remote memory system can execute an application program having a data structure larger than the physical memory size mounted on the computing node, and processes large amounts of data on a memory basis for the purpose of improving performance.

이러한 원격 메모리 시스템은 보통 원격 메모리(Remote Memory)를 지역 메모리(Local Memory)로 확장하거나 스와핑 장치(Swapping Device)로 이용할 수 있도록 개발되었으며, 도 1에 도시된 바와 같이 원격 메모리를 요구하는 mem_client와, 물리 메모리의 일부를 mem-client에게 제공하는 mem_server로 구성된다. Such a remote memory system is usually developed to expand a remote memory to a local memory or use it as a swapping device. The remote memory system includes a mem_client requesting a remote memory, It consists of mem_server which provides a part of physical memory to mem-client.

mem_client는 대용량의 메모리를 필요로 하는 응용 프로그램이 실행 중인 컴퓨팅 노드(노드 0)에서 구동되며, mem_server는 물리 메모리를 제공하는 1개 이상의 컴퓨팅 노드(노드 1, 노드 2) 각각에서 구동된다.mem_client is run on a compute node (node 0) where an application requiring a large amount of memory is running, and mem_server is run on each of one or more compute nodes (node 1, node 2) that provide physical memory.

mem_client는 지역 컴퓨팅 노드의 메모리 부족시 지역 메모리 내에 로드된 데이터를 원격 컴퓨팅 노드의 메모리에 전송하여 응용 프로그램이 사용할 메모리 공간을 생성한다.mem_client creates memory space for application programs by sending data loaded in local memory to the remote computing node's memory when the local computing node runs out of memory.

한편, mem_client는 응용 프로그램이 지역 메모리에 없는 데이터 요청시, 원격 컴퓨팅 노드(노드 1 혹은 노드 2)의 메모리로부터 데이터를 지역 메모리로 가져와 응용 프로그램에 제공한다(A. Samih, R. Wang, C. Maciocco, T.-Y. C. Tai and Y. Solihn, “A Collaborative Memory System for High-Performance and Cost-Effective Clustered Architectures”, Workshop on Architecture and Systems for Big Data, 2011 참조.)Meanwhile, mem_client fetches data from the memory of the remote computing node (node 1 or node 2) to the local memory and provides it to the application when the application requests data that is not in local memory (A. Samih, R. Wang, Maciocco, T.-YC Tai and Y. Solihn, "A Collaborative Memory System for High-Performance and Cost-Effective Clustered Architectures", Workshop on Architecture and Systems for Big Data, 2011.)

현재, 원격 메모리 시스템에 대한 연구는 클러스터를 구성하는 컴퓨팅 노드들의 원격 메모리를 발견(detecting)하고 이를 활용(utilizing)함으로써 데이터 처리 응용 프로그램의 성능을 향상시키는데 집중되어 왔기 때문에, 원격 메모리를 지원하는 컴퓨팅 노드들에 장애가 발생할 경우 데이터 손실로 응용 프로그램의 실행 중지가 불가피하다 라는 문제점이 있다.Currently, research on remote memory systems has focused on improving the performance of data processing applications by detecting and utilizing the remote memory of the computing nodes that make up the cluster, There is a problem in that the execution of the application program is inevitable due to data loss when the nodes fail.

따라서, 차세대 시퀀싱(Next Generation Sequencing) 서열 데이터 정렬을 위한 BFAST, BWA와 같이 많은 메모리와 장시간의 실행 시간을 요구하는 응용 프로그램을 원격 메모리 시스템에서 실행시키기 위해서는 시스템 및 컴퓨팅 노드의 오류에 따른 원격 메모리 데이터 손실을 줄일 수 있는 데이터 관리 방법이 필요하다.Therefore, in order to execute an application program requiring a large amount of memory and a long execution time such as BFAST and BWA for sequencing of next generation sequencing data in a remote memory system, There is a need for a data management method that can reduce losses.

본 발명은 상기와 같은 필요에 의해 창출된 것으로서, 복수의 컴퓨팅 노드들에 장착된 메모리를 바탕으로 대용량 데이터 처리를 지원하는 원격 메모리 시스템에서 원격 메모리 데이터 손실에 따른 응용 프로그램의 중지를 방지하거나 실행 중지 횟수를 줄일 수 있는 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법 및 시스템을 제공하는 데 그 목적이 있다.It is an object of the present invention to provide a remote memory system that supports mass data processing based on a memory mounted on a plurality of computing nodes, And more particularly, to a method and system for remote memory data management for data processing based on a large-capacity memory capable of reducing the number of times.

전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법은 응용 프로그램의 요청에 따라 메모리 할당시 해당 컴퓨팅 노드의 메모리가 부족한 경우, 메모리 클라이언트가 지역 메모리에 상주해 있는 데이터 중 제거할 데이터(victim)를 선정하여 이를 원격 컴퓨팅 노드의 메모리 서버에 전송하는 단계; 제거할 데이터를 전송받은 원격 컴퓨팅 노드의 메모리 서버가 이를 메모리에 로드(저장)하고, 이에 대한 로그를 생성하여 다른 원격 컴퓨팅 노드의 메모리 서버에 전송하는 단계; 로그를 전송받은 상기 다른 원격 컴퓨팅 노드의 메모리 서버가 로그를 버퍼에 저장하는 단계; 및 상기 메모리 클라이언트가 상기 원격 컴퓨팅 노드의 메모리에 제거할 데이터를 이동시키고, 해당 메모리를 컴퓨팅 노드에 반환한 후 운영체제(커널)를 통해 새로운 메모리를 할당받아 상기 응용 프로그램에 반환하는 단계를 포함한다.According to an aspect of the present invention, there is provided a remote memory data management method for processing data based on a large memory according to an aspect of the present invention, Selecting victim to be removed from the data residing in the remote computing node and transmitting the victim to the memory server of the remote computing node; Loading (storing) the memory server of the remote computing node that receives the data to be removed into the memory, generating a log of the memory, and transmitting the log to the memory server of the remote computing node; Storing a log in a memory server of the other remote computing node having received the log; And transferring data to be removed to the memory of the remote computing node, returning the memory to the computing node, allocating a new memory through an operating system (kernel), and returning the allocated memory to the application program.

본 발명에 따르면, 원격 메모리에 데이터를 쓰고 읽는 경우에 원격 메모리를 제공하는 컴퓨팅 노드 및 원격 메모리 서버의 오류 발생 시에도 응용 프로그램이 중단되지 않고 지속 실행되도록 할 수 있다.According to the present invention, when data is written to and read from a remote memory, an application program can be continuously executed without interruption even when a fault occurs in a computing node and a remote memory server that provide a remote memory.

따라서, 긴 실행 시간이나 대용량 메모리를 요구하는 응용 프로그램의 안정적인 실행을 지원하여, 원격 메모리 시스템의 활용을 증대시킬 수 있다.Therefore, it is possible to increase the utilization of the remote memory system by supporting stable execution of application programs requiring long execution time or large memory.

원격 메모리를 제공하는 서버에 대한 데이터 쓰기 읽기에 대한 로그를 다른 원격 컴퓨팅 노드의 메모리에 저장하고 비동기적으로 공용 파일 시스템에 저장함으로써, 로그 저장에 따른 추가 시간을 최소화하고 메모리 복사본을 유지하는 것보다 적은 메모리를 사용하면서 복구를 위한 데이터 이중화가 가능하다.Writing data to the server providing remote memory As the logs for the reads are stored in the memory of the other remote computing nodes and asynchronously stored in the common file system, Data redundancy is possible for recovery while using less memory.

원격 메모리 제공 서버의 오류 발생 시, 이에 대한 로그가 공용 파일 시스템에 저장되어 있어 메모리 사용량이 적은 원격 메모리 서버를 선정하여 복구 및 서비스 재개가 가능하다.In case of a failure of the remote memory provisioning server, the log is stored in the common file system, so that the remote memory server having low memory consumption can be selected and the recovery and service can be resumed.

특히 원격 메모리 서버 간의 메모리 서비스 부하 분산에 효과가 있다.Especially, it is effective to distribute memory service load among remote memory servers.

원격 메모리 서버의 로그는 다수의 다른 원격 메모리 서버들에게 분산 저장되며, 원격 메모리 서버의 오류 발생 시 로그 분석을 통한 메모리 데이터 복구 및 서비스를 다수의 원격 메모리 서버들이 병렬로 수행하여, 데이터 복구 시간이 짧다.The remote memory server logs are distributed to a number of different remote memory servers. When a remote memory server fails, the memory data is recovered and analyzed through a log analysis. short.

도 1은 종래의 원격 메모리 시스템의 구조를 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 원격 메모리 시스템의 구조를 설명하기 위한 도면.
도 3은 지역 메모리 부족시 메모리 할당 흐름을 설명하기 위함 도면.
도 4는 원격 메모리 데이터 요청 흐름을 설명하기 위함 도면.
도 5는 로그 데이터 구조를 설명하기 위한 도면.
도 6은 원격 메모리 제공 서버의 오류시 데이터 요청 흐름을 설명하기 위한 도면.
도 7은 로그 서버의 오류 발생시 원격 메모리 시스템의 내부 동작 흐름을 설명하기 위한 도면.
Brief Description of the Drawings Fig. 1 is a diagram for explaining the structure of a conventional remote memory system. Fig.
2 is a diagram illustrating a structure of a remote memory system according to an embodiment of the present invention;
3 is a diagram for explaining a memory allocation flow when a local memory is short.
4 is a diagram for explaining a remote memory data request flow;
5 is a diagram for explaining a log data structure;
6 is a diagram for explaining a data request flow in case of an error of a remote memory providing server.
7 is a diagram for explaining an internal operation flow of a remote memory system when an error occurs in a log server.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.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 being 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. And is intended to enable a person skilled in the art to readily understand the scope of the invention, and the invention is defined by the claims. It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that " comprises, " or "comprising," as used herein, means the presence or absence of one or more other components, steps, operations, and / Do not exclude the addition.

본 발명은 복수의 컴퓨팅 노드들로 구성되는 원격 메모리 시스템에서 원격 메모리 데이터를 관리하는 방법에 관한 것으로서, 본 발명에 따른 원격 메모리 시스템은 응용 레벨과 커널 레벨(운영 체제 레벨)에서 구현 가능하며, 본 발명에 따른 원격 메모리 시스템의 구성을 설명하는 데 있어, 요지를 흐릴 수 있는 기존 원격 메모리 시스템의 구체적인 설명은 생략하도록 한다. The present invention relates to a method for managing remote memory data in a remote memory system comprising a plurality of computing nodes, wherein the remote memory system according to the present invention can be implemented at application level and kernel level (operating system level) In describing the configuration of the remote memory system according to the present invention, a detailed description of a conventional remote memory system that may obscure the gist is omitted.

이하, 도 2 내지 도 7을 참조하여 본 발명의 일 실시예에 따른 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법을 설명한다. 도 2는 본 발명의 일 실시예에 따른 원격 메모리 시스템의 구조를 설명하기 위한 도면이고, 도 3은 지역 메모리 부족시 메모리 할당 흐름을 설명하기 위함 도면이며, 도 4는 원격 메모리 데이터 요청 흐름을 설명하기 위함 도면이고, 도 5는 로그 데이터 구조를 설명하기 위한 도면이며, 도 6은 원격 메모리 제공 서버의 오류시 데이터 요청 흐름을 설명하기 위한 도면이고, 도 7은 로그 서버의 오류 발생시 원격 메모리 시스템의 내부 동작 흐름을 설명하기 위한 도면이다.Hereinafter, a remote memory data management method for mass-memory-based data processing according to an embodiment of the present invention will be described with reference to FIG. 2 to FIG. FIG. 2 is a diagram for explaining a structure of a remote memory system according to an embodiment of the present invention. FIG. 3 is a view for explaining a memory allocation flow when a local memory is short, FIG. FIG. 5 is a view for explaining a log data structure, FIG. 6 is a view for explaining a data request flow of a remote memory providing server, and FIG. Fig. 5 is a diagram for explaining an internal operation flow. Fig.

도 2에 도시된 바와 같이, 본 발명의 원격 메모리 시스템은 노드 0(100), 노드 1(200), 노드 2(300) 및 노드 3(400)을 포함한다.As shown in FIG. 2, the remote memory system of the present invention includes node 0 100, node 1 200, node 2 300, and node 3 400.

노드 0(100)은 메모리 클라이언트(mem_client, 110) 및 응용프로그램(application, 120)을 포함하고, 노드 1(200)은 메모리 서버 1(mem_server1, 210)을 포함하며, 노드 2(300)는 메모리 서버 2(mem_server2, 310)를 포함하고, 노드 3(400)은 메모리 코디네이터(mem_coord, 410)를 포함한다. Node 0 100 includes memory client 110 and application 120. Node 1 200 includes memory server 1 (mem_server1 210), and node 2 300 includes memory Server 2 (mem_server2, 310), and node 3 400 includes a memory coordinator (mem_coord, 410).

mem_client(110)는 원격 메모리를 사용한다.mem_client (110) uses remote memory.

mem_server 1(210) 및 mem_server 2(310)는 물리적인 메모리를 원격 메모리로 제공한다.mem_server 1 210 and mem_server 2 310 provide physical memory to the remote memory.

mem_coord(410)는 mem_client(110)와 연동 중인 메모리 서버 정보, 메모리 서버의 상태를 포함한 메타 정보, 로그 저장에 따른 메모리 서버 간의 관계 정보를 관리한다.The mem_coord 410 manages memory server information linked to the mem_client 110, meta information including the state of the memory server, and relationship information between the memory servers according to log storage.

메모리 서버는 mem_client(110)가 전송하는 데이터를 지역 메모리에 로드하고, mem_client(110)의 요청에 따라 메모리에 로드된 데이터를 반환한다.The memory server loads the data transmitted by the mem_client 110 into the local memory and returns the data loaded into the memory at the request of the mem_client 110.

또한, 메모리 서버는 mem_client(110)의 데이터 전송 요청 처리시 로그를 생성하여 이를 다른 컴퓨팅 노드의 메모리 서버에 전송한다.Also, the memory server generates a log when processing the data transmission request of the mem_client 110, and transmits the log to the memory server of the other computing node.

예컨대, mem_server 1(210)은 mem_client(110)의 데이터 전송 요청 처리시 로그를 생성하여 이를 다른 컴퓨팅 노드(300)의 mem_server 2(310)에 전송한다.For example, the mem_server 1 210 generates a log when processing the data transmission request of the mem_client 110 and transmits the log to the mem_server 2 310 of the other computing node 300.

전송된 로그는 비동기적으로 공용 파일 시스템에 저장된다. The transmitted logs are stored asynchronously in the common file system.

이때 하나의 메모리 서버의 로그는 연동되는 mem_client(110) 혹은 응용 프로그램(120)을 기준으로 분류되어 1개 이상의 다른 컴퓨팅 노드의 메모리 서버에 분산 저장될 수 있다. At this time, the logs of one memory server may be classified and stored based on the mem_client 110 or the application program 120 that are linked to the memory servers of one or more other computing nodes.

도 3에 도시된 바와 같이, 본 발명의 메모리 할당 방법은 응용 프로그램(application, 120)이 malloc() 등의 호출을 통해 메모리 할당을 요청할 경우(S300), mem_client(110)는 메모리가 부족한지 여부를 판단한다. As shown in FIG. 3, in the memory allocation method of the present invention, when an application program 120 requests memory allocation through a call such as malloc () (S300), the mem_client 110 determines whether memory is short .

여기서 메모리의 부족 여부의 판단은 메모리 데이터의 스와핑(swap-out)이 발생하거나 이미 제한된 크기만큼 메모리가 사용 중인 경우 등으로 판단할 수 있다.Here, the determination as to whether or not the memory is short-circuited can be determined as a swap-out of the memory data or a case where the memory is being used in a limited size.

판단 결과, 메모리가 부족하지 않은 경우, 해당 컴퓨팅 노드의 메모리를 할당하고, 메모리가 부족한 경우, mem_client(110)는 지역 메모리에 상주해 있는 데이터 중 제거할 데이터(victim)를 선정하며, 이를 원격 컴퓨팅 노드의 메모리 서버, 즉 mem_server1(210)에 전송한다(S301).As a result of the determination, if the memory is insufficient, the memory of the corresponding computing node is allocated. If the memory is insufficient, the mem_client 110 selects victim to be removed from the data residing in the local memory, To the memory server of the node, that is, mem_server1 210 (S301).

이때, victim 선정은 FIFO(First In First Out), LRU(Least Recently Used) 등의 다양한 알고리즘을 바탕으로 결정될 수 있고, Victim을 전송할 원격 컴퓨팅 노드의 메모리 서버를 선정하는 방법 또한 다양하다. In this case, victim selection can be determined based on various algorithms such as FIFO (First In First Out) and LRU (Least Recently Used), and a method of selecting a memory server of a remote computing node to transmit victim is also various.

예컨대, mem_client(110) 구동시 사용자가 설정한 메모리 서버를 Victim을 전송할 원격 컴퓨팅 노드의 메모리 서버로 결정할 수 있고, mem_coord(410)에 Victim을 전송할 원격 컴퓨팅 노드의 메모리 서버를 결정하도록 요청할 수 있으며, mem_client(110)가 mem_coord(410)로부터 메모리 서버들의 정보를 얻어와 이 정보를 토대로 Victim을 전송할 원격 컴퓨팅 노드의 메모리 서버를 결정할 수도 있다.For example, when the mem_client 110 is operated, the memory server set by the user may be determined to be the memory server of the remote computing node to transmit the victim, and the mem_coord 410 may be requested to determine the memory server of the remote computing node to transmit the victim, the mem_client 110 may obtain memory server information from mem_coord 410 and determine the memory server of the remote computing node to send the victim based on this information.

여기서 Victim을 전송할 원격 컴퓨팅 노드의 메모리 서버의 선정 기준은 mem_client(110)와의 짧은 데이터 전송 시간을 포함한다.Here, the selection criterion of the memory server of the remote computing node to transmit the victim includes a short data transfer time with the mem_client (110).

mem_client(110)로부터 victim 데이터를 전송받은 mem_server1(210)는 이를 메모리에 로드(저장)하고(S302), 이에 대한 로그를 생성하여 다른 원격 컴퓨팅 노드(300)의 mem_server2(S310)에 전송한다(S303).The mem_server1 210 that has received the victim data from the mem_client 110 loads it into the memory at step S302 and generates a log of the log at step S303 to the mem_server2 of the remote computing node 300 ).

로그를 전송받은 원격 컴퓨팅 노드(300)의 mem_server2(310)는 로그를 버퍼에 저장한다(S304).The mem_server2 310 of the remote computing node 300 receiving the log stores the log in the buffer (S304).

원격 컴퓨팅 노드(200)의 메모리에 데이터를 이동시킨 mem_client(110)는 해당 메모리를 컴퓨팅 노드에 반환한 후, 운영체제(커널)를 통해 새로운 메모리를 할당받아 응용 프로그램(120)에게 그 메모리 주소를 반환한다(S305, S306).The mem_client 110 that has moved the data to the memory of the remote computing node 200 returns the memory to the computing node and then allocates a new memory through the operating system (kernel) and returns the memory address to the application program 120 (S305, S306).

한편, 원격 컴퓨팅 노드(300)의 mem_server2(310)는 비동기적으로 메모리 버퍼에 저장된 로그를 공용 파일 시스템에 저장하고 버퍼에서 제거한다.Meanwhile, the mem_server2 310 of the remote computing node 300 stores the log stored in the memory buffer asynchronously in the common file system and removes it from the buffer.

이러한 로그 저장은 로그가 입력된 후 곧바로 수행되거나, 일정 시간 주기 혹은 버퍼가 특정 임계치만큼 차는 경우와 같이 조건에 맞춰 수행될 수 있다.Such log storage may be performed immediately after the log is input, or may be performed in accordance with conditions such as a certain time period or when the buffer is decreased by a certain threshold value.

한편, 로그 파일은 일정 주기 혹은 로그 개수가 특정 임계치에 이르면 전체 로그 파일을 스캔하여 삭제된 데이터의 삭제를 통해 현재 메모리 상에 있는 데이터에 대한 이력만으로 압축될 수 있다.On the other hand, the log file can be compressed only by the history of the data in the current memory by deleting the deleted data by scanning the entire log file when the predetermined period or the number of logs reaches a certain threshold value.

이러한 압축을 통해 로그 파일이 커지는 것을 방지할 수 있다.This compression can prevent the log file from becoming large.

도 4에 도시된 바와 같이, 본 발명의 원격 메모리 데이터 요청 방법은 응용 프로그램(120)이 특정 주소의 메모리 상의 데이터를 요청한다(S400).As shown in FIG. 4, in the remote memory data request method of the present invention, the application program 120 requests data on a memory at a specific address (S400).

지역 메모리(local memory)에 해당 데이터가 있으면 반환되나, 존재하지 않는 경우 mem_client(110)가 해당 데이터를 갖는 원격 컴퓨팅 노드(200), 즉 mem_server1(210)에 데이터를 요청한다(S401).If there is no corresponding data in the local memory, the mem_client 110 requests data to the remote computing node 200 having the corresponding data, that is, mem_server1 210 (S401).

데이터 반환을 요청받은 mem_server1(210)은 데이터 요청에 대한 로그를 생성한 후, 해당 로그를 원격 컴퓨팅 노드(300)의 mem_server2(310)에 전송한다(S402).The mem_server1 210, which is requested to return data, generates a log of the data request, and then transmits the log to the mem_server2 310 of the remote computing node 300 (S402).

로그를 받은 mem_server2(310)는 로그를 메모리 버퍼에 저장한다(S403).The mem_server2 310 receiving the log stores the log in the memory buffer (S403).

Mem_server1(210)은 로그 저장이 완료되면, 메모리 상의 데이터를 반환한다(S404).When the log storage is completed, the Mem_server1 210 returns the data on the memory (S404).

mem_server1(210)로부터 데이터를 받은 mem_client(110)는 해당 데이터를 지역 메모리에 로드한다(S405).The mem_client 110 receiving the data from the mem_server1 210 loads the corresponding data into the local memory (S405).

마지막으로 응용 프로그램(120)에게 메모리에 로드된 데이터가 반환된다(S406). Finally, the data loaded into the memory is returned to the application program 120 (S406).

도 5에 도시된 바와 같이, 메모리 서버의 로그 데이터는 년, 월, 일, 시, 분, 초를 포함한 시간 정보(TimeStamp), 그리고 각 메모리 서버(210, 310)를 구별할 수 있는 식별자(Mem_server ID), 그리고 각 메모리 서버(210, 310)가 제공하는 메모리의 위치 식별자(Page ID), 읽기/쓰기 정보(operation), 그리고 메모리에 로드된 데이터 정보를 포함한다.5, the log data of the memory server includes time information (TimeStamp) including year, month, day, hour, minute, and second, and an identifier (Mem_server ID), a location identifier (Page ID) of the memory provided by each of the memory servers 210 and 310, read / write operation, and data information loaded into the memory.

메모리 서버가 로그 저장을 위해 다른 여러 메모리 서버와 연동되는 경우 추가 정보를 포함할 수 있다.Additional information may be included if the memory server is interfaced with other memory servers for log storage.

예컨대, 로그는 메모리 서버가 하나의 메모리 클라이언트만을 연동하는 경우 응용 프로그램 식별자(Process ID), 다른 여러 메모리 클라이언트와 연동하는 경우 메모리 클라이언트 식별자(Mem_client ID)를 포함할 수 있다.For example, the log may include an application program identifier (Process ID) when the memory server is linked with only one memory client, and a memory client identifier (Mem_client ID) when the memory server is interworked with other memory clients.

본 발명에서 메모리 클라이언트로부터 전송되는 데이터의 크기는 보통 컴퓨팅 노드에서 사용되는 페이지 크기 4KByte 이상인 것으로 가정하며, 이는 페이지 부재(page fault)의 잦은 발생에 따른 데이터 전송의 오버헤드를 줄이기 위함이다.In the present invention, it is assumed that the size of data transmitted from a memory client is equal to or larger than a page size of 4 KByte used in a computing node. This is to reduce overhead of data transmission due to frequent occurrence of page faults.

도 6에 도시된 바와 같이, 본 발명의 원격 메모리를 제공하는 메모리 서버의 오류 발생 시, 메모리 상의 데이터 요청 방법은 응용 프로그램(120)이 원격 메모리 시스템의 특정 메모리 주소에 대한 데이터를 요청한다(S600).6, when an error occurs in a memory server providing a remote memory of the present invention, the application program 120 requests data on a specific memory address of the remote memory system (S600 ).

지역 메모리에 데이터가 존재하지 않은 경우, mem_client(110)는 해당 데이터를 저장하고 있는 mem_server1(210)에 데이터를 요청한다(S601).If there is no data in the local memory, the mem_client 110 requests data to the mem_server1 210 storing the data (S601).

특정 시간 간격을 두고 특정 임계치의 수만큼 시도 후에도 Mem_server1(210)에 연결되지 않을 경우, mem_client(110)는 mem_coord(410)로부터 Mem_server1(210)에 관한 메타 정보를 검색한다(S602).If the mem_client 110 does not connect to the Mem_server1 210 after a predetermined number of attempts at a specific time interval, the mem_client 110 retrieves meta information about the Mem_server1 210 from the mem_coord 410 (S602).

Mem_client(110)는 mem_coord(410)로부터 업데이트된(반환된) 메타 정보(S603)를 바탕으로 해당 데이터를 저장하고 있는 mem_server1(S210)에 연결을 시도하여 연결되지 않을 경우 mem_server1(210)를 오류라 판단하고, 이를 mem_coord에 보고한다(S604).The Mem_client 110 tries to connect to the mem_server1 (S210) storing the corresponding data based on the updated (returned) meta information S603 from the mem_cord 410. If the mem_client 110 does not connect to the mem_server1 And reports it to mem_coord (S604).

Mem_coord(S410)는 mem_server1(S210)의 로그를 바탕으로 데이터 복구를 위한 준비 절차를 수행한다(S605).Mem_coord (S410) performs preparation for data recovery based on the log of mem_server1 (S210) (S605).

복구 준비 절차는 오류가 발생한 mem_server1(210)의 로그 저장을 담당하는 메모리 서버들에게 메모리 상의 모든 로그를 파일로 저장하도록 요청하고, 저장된 로그 파일을 바탕으로 메모리에 데이터를 복구할 메모리 서버를 선정하는 것을 포함한다.In the recovery preparation procedure, the memory servers responsible for storing logs of the failed mem_server1 210 are requested to store all the logs in the memory as files, and a memory server to recover data to the memory is selected based on the stored log files .

로그 복구 서버는 기본적으로 mem_server1(210)의 로그를 저장하는 메모리 서버가 자신이 저장한 로그 데이터에 대한 복구를 담당하도록 한다.The log recovery server basically allows the memory server storing the log of the mem_server1 (210) to take charge of recovery of the log data stored therein.

그러나, mem_coord(410)는 메모리 서버의 원격 메모리 사용량을 바탕으로, 원격 메모리 사용량이 적은 메모리 서버를 복구 메모리 서버로 선정할 수 있다.However, mem_coord 410 may select a memory server with a low remote memory usage as a recovery memory server based on the remote memory usage of the memory server.

이때, 복구 메모리 서버는 1개 이상이 될 수 있으며, mem_coord(410)는 각 메모리 서버에 복구할 데이터를 지정할 수 있다.At this time, there may be one or more recovery memory servers, and mem_coord 410 may designate data to be restored to each memory server.

Mem_coord(410)는 선정한 1개 이상의 메모리 서버들에게 로그의 위치와 복구 데이터를 지정하여 메모리에 데이터를 복구하여 로드할 것을 요청한다(S606).The Mem_coord 410 designates the location of the log and the restoration data to the selected one or more memory servers, and requests the one or more memory servers to restore and load the data in the memory (S606).

Mem_coord(410)로부터 복구 요청을 받은 각 메모리 서버, 예컨대 mem_server2(310), mem_server3는 공용 파일 시스템에 접근하여 로그 파일을 바탕으로 mem_server1(210)의 지정된 데이터를 복구하여 메모리에 구축한다(S607).Each memory server, for example, mem_server2 310 and mem_server3 receiving the restoration request from the Mem_coord 410 accesses the common file system and restores the designated data of the mem_server1 210 based on the log file and constructs it in the memory in step S607.

이러한 mem_server2(310), mem_server3의 데이터 복구는 병렬로 수행된다.Data recovery of such mem_server2 (310), mem_server3 is performed in parallel.

모든 메모리 서버, 즉 mem_server2(310), mem_server3가 데이터 복구를 완료하면, mem_coord(410)는 mem_server1(210)의 원격 메모리 데이터를 복구한 메모리 서버들에 대한 정보를 mem_client(110)에 알린다(S308).When all of the memory servers, that is, mem_server2 310 and mem_server3 have completed data recovery, mem_coord 410 informs mem_client 110 of information about memory servers that have recovered the remote memory data of mem_server1 210 (S308) .

Mem_client(110)는 변경된 원격 데이터 서비스 정보를 바탕으로 해당 데이터를 갖는 메모리 서버에게 데이터를 요청한다(S609).The Mem_client 110 requests data from the memory server having the corresponding data based on the modified remote data service information (S609).

데이터를 복구하여 서비스하는 mem_server2(310)는 mem_client(110)에게 데이터를 반환한다(S610).The mem_server2 310 that has recovered the data returns the data to the mem_client 110 (S610).

mem_server2(310)로부터 데이터를 받은 mem_client(110)는 해당 데이터를 지역 메모리에 로드한다(S611).The mem_client 110 receiving the data from the mem_server2 310 loads the corresponding data into the local memory (S611).

마지막으로 응용 프로그램(120)에게 메모리에 로드된 데이터가 반환된다(S612). Finally, the data loaded into the memory is returned to the application program 120 (S612).

도 7에 도시된 바와 같이, 원격 메모리 시스템에서 로그 서버의 오류 발생 시의 내부 동작 방법은 Mem_server1(210)이 로그를 전송 실패에 따라 mem_server2(310)의 오류를 인지한다(S700).As shown in FIG. 7, in the remote memory system, when the error occurs in the log server, the internal operation method of the mem_server2 210 recognizes an error of the mem_server2 310 according to the failure of the log transfer in step S700.

여기서 mem_server2(310)의 오류 인지는 도 6에서의 오류 판단 절차를 포함한다.Here, the error of the mem_server2 (310) includes the error determination procedure in FIG.

Mem_server1(210)은 mem_server2(310)의 오류를 mem_coord(410)에 보고한다 (S701).The Mem_server1 210 reports an error of the mem_server2 310 to the mem_coord 410 (S701).

오류 보고를 받은 mem_coord(410)는 mem_server1(210)에게 로그를 전송할 새로운 로그 서버를 지정한다(S702).The mem_coord 410 receiving the error report designates a new log server to which the log is to be transmitted to the mem_server1 210 (S702).

Mem_server1(210)은 mem_coord(410)로부터 지정받은 새 로그 서버 mem_server3에 로그를 전송한다.The Mem_server1 210 sends a log to the new log server mem_server3 specified by the mem_coord 410.

이때, mem_server1(210)은 mem_server2(310)에 로그를 전송했던 메모리 내의 데이터에 대한 모든 로그를 생성하여 mem_server3에 전송한다(S703).At this time, the mem_server1 210 generates all logs of the data in the memory that has transmitted the log to the mem_server2 (310), and transmits it to the mem_server3 (S703).

한편, mem_coord(410)는 mem_sever2(310)에서 서비스했던 데이터 복구, 로그 저장 서비스 대체 작업을 수행한다(S704).Meanwhile, the mem_coord 410 performs a data restoration and log storage service substitution job serviced by the mem_sever2 (310) (S704).

먼저, mem_server2(310)의 메모리 데이터를 복구하기 위하여, 도 6에서 설명한 절차를 수행한다.First, in order to recover the memory data of the mem_server2 (310), the procedure described in FIG. 6 is performed.

그리고, mem_coord(410)는 mem_server2(310)에게 로그 저장을 요청하던 mem_server1(210)을 제외한 다른 메모리 서버들에게 새로운 로그 서버를 지정하여 서비스가 지속될 수 있도록 한다.The mem_coord 410 designates a new log server to the memory servers other than the mem_server1 210 which has requested the mem_server2 310 to store logs so that the service can be continued.

도 7에서는 각 메모리 서버의 로그 서버를 mem_coord(410)에서 지정하는 경우에 한하여 설명하였다. 로그 서버를 각 메모리 서버가 자율적으로 지정하는 경우 mem_coord(410)로부터 메모리 서버의 상태 정보를 얻어 결정하며, 이를 mem_coord(410)에게 알려 메타 정보를 수정토록 요청한다.In FIG. 7, only the case where the log server of each memory server is designated by mem_coord 410 has been described. When each memory server autonomously designates the log server, it obtains the status information of the memory server from mem_coord 410, and informs it to mem_coord 410 to request the meta information to be modified.

Mem_coord(410)는 오류가 발생한 로그 서버에서 서비스하던 원격 메모리 데이터 복구 절차(도 6의 단계(S605~S608))를 수행하여 응용 프로그램(120)의 실행이 중단되지 않도록 한다. The Mem_coord 410 performs the remote memory data recovery procedure (steps S605 to S608 in FIG. 6) that was serviced by the log server in which the error occurred, so that the execution of the application program 120 is not interrupted.

이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. Therefore, the scope of the present invention should not be limited by the illustrated embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

110 : 메모리 클라이언트
120, 130 : 메모리 서버
140 : 메모리 코디네이터
110: Memory Client
120, 130: memory server
140: Memory Coordinator

Claims (8)

응용 프로그램의 요청에 따라 메모리 할당시 해당 컴퓨팅 노드의 메모리가 부족한 경우, 상기 컴퓨팅 노드가 상기 메모리에 상주해 있는 데이터 중 제거할 데이터를 선정하여 이를 제1 원격 컴퓨팅 노드에 전송하는 단계;
상기 제거할 데이터를 전송받은 제1 원격 컴퓨팅 노드가 이를 상기 제1 원격 컴퓨팅 노드의 메모리에 저장하고, 이에 대한 로그를 생성하여 제2 원격 컴퓨팅 노드에 전송하는 단계;
상기 로그를 전송받은 상기 제2 원격 컴퓨팅 노드가 상기 로그를 상기 제2 원격 컴퓨팅 노드의 버퍼에 저장하고, 상기 버퍼에 저장된 로그를 네트워크를 통해 공용 파일 시스템에 저장한 후 상기 버퍼에서 제거하는 단계; 및
상기 컴퓨팅 노드가 상기 제1 원격 컴퓨팅 노드의 메모리에 상기 제거할 데이터를 이동시키고, 데이터가 제거된 메모리를 상기 컴퓨팅 노드에 반환한 후 운영체제를 통해 새로운 메모리를 할당받아 상기 응용 프로그램에 반환하는 단계를 포함하고,
상기 제1 원격 컴퓨팅 노드의 오류 발생으로 인해 상기 컴퓨팅 노드가 상기 제1 원격 컴퓨팅 노드로부터 해당 데이터를 전송받지 못하는 경우, 상기 제2 원격 컴퓨팅 노드가 상기 공용 파일 시스템에 저장된 로그를 바탕으로 상기 해당 데이터를 복구하고, 복구한 상기 해당 데이터를 상기 컴퓨팅 노드에 반환하여, 상기 컴퓨팅 노드가 상기 제2 원격 컴퓨팅 노드로부터 반환된 상기 복구한 해당 데이터를 지역 메모리에 로드함을 특징으로 하는 원격 메모리 데이터 관리 방법.
Selecting data to be removed from data residing in the memory and transmitting the selected data to the first remote computing node when memory of the corresponding computing node is insufficient at the memory allocation according to the request of the application program;
The first remote computing node receiving the data to be removed stores it in the memory of the first remote computing node, and generates and transmits a log to the second remote computing node;
Storing the log in the buffer of the second remote computing node, storing the log in the buffer in the common file system via the network, and removing the log from the buffer; And
The computing node moves the data to be removed to the memory of the first remote computing node, returns the memory with the data removed to the computing node, allocates a new memory through the operating system, and returns the memory to the application program Including,
Wherein if the computing node fails to receive the corresponding data from the first remote computing node due to an error in the first remote computing node, the second remote computing node generates, based on the log stored in the common file system, And returning the recovered data to the computing node so that the computing node loads the recovered corresponding data returned from the second remote computing node into the local memory. .
제1항에 있어서,
상기 제거할 데이터를 선정하는 방법은 FIFO(First In First Out) 또는 LRU(Least Recently Used) 알고리즘을 사용하는 것
인 원격 메모리 데이터 관리 방법.
The method according to claim 1,
The method of selecting the data to be removed is to use a FIFO (First In First Out) or LRU (Least Recently Used) algorithm
In remote memory data management.
제1항에 있어서,
상기 버퍼에 저장하는 단계 이후에, 상기 제2 원격 컴퓨팅 노드는 상기 버퍼에 저장된 로그가 기설정된 임계치 이상의 용량에 이르는 경우 압축하여 공용파일 시스템에 저장하는 단계를 더 포함하는 것
인 원격 메모리 데이터 관리 방법.
The method according to claim 1,
The second remote computing node compresses the log if the log stored in the buffer reaches a predetermined threshold or more and stores the compressed log in the common file system after storing the buffer in the buffer
In remote memory data management.
제1항에 있어서,
상기 버퍼에 저장하는 단계 이후에, 상기 제2 원격 컴퓨팅 노드는 상기 버퍼에 저장된 로그가 현재 상기 컴퓨팅 노드, 제1 원격 컴퓨팅 노드 또는 제2 원격 컴퓨팅 노드의 메모리상에 있는 데이터에 대한 로그인지 판단하여 상기 메모리상에 있지 않은 데이터에 대한 로그는 상기 버퍼에서 삭제하는 단계를 더 포함하는 것
인 원격 메모리 데이터 관리 방법.
The method according to claim 1,
After storing in the buffer, the second remote computing node determines whether the log stored in the buffer is currently logged on to the data in the memory of the computing node, the first remote computing node, or the second remote computing node And deleting the log for data not on the memory from the buffer
In remote memory data management.
컴퓨팅 노드와 복수의 원격 컴퓨팅 노드로 구성된 원격 메모리 데이터 관리 시스템에 있어서,
응용 프로그램의 요청에 따라 메모리 할당 시 메모리가 부족한 경우 상기 메모리에 존재하는 데이터 중 제거할 데이터를 선정하여 하기 제1 원격 컴퓨팅 노드로 전송하고, 상기 데이터가 제거되어 반환된 메모리를 운영체제를 통해 할당 받아 상기 응용 프로그램에 할당하는 컴퓨팅 노드; 및
상기 제거할 데이터를 전송받아 메모리에 저장하고 이에 대한 로그를 생성하여 제2 원격 컴퓨팅 노드로 전송하는 제1 원격 컴퓨팅 노드를 포함하고,
상기 로그를 전송받은 상기 제2 원격 컴퓨팅 노드가 상기 로그를 상기 제2 원격 컴퓨팅 노드의 버퍼에 저장하고, 상기 버퍼에 저장된 로그를 네트워크를 통해 공용 파일 시스템에 저장한 후 상기 버퍼에서 제거하고, 상기 제1 원격 컴퓨팅 노드의 오류 발생으로 인해 상기 컴퓨팅 노드가 상기 제1 원격 컴퓨팅 노드로부터 해당 데이터를 전송받지 못하는 경우, 상기 제2 원격 컴퓨팅 노드가 상기 공용 파일 시스템에 저장된 로그를 바탕으로 상기 해당 데이터를 복구하고, 복구한 상기 해당 데이터를 상기 컴퓨팅 노드에 반환하여, 상기 컴퓨팅 노드가 상기 제2 원격 컴퓨팅 노드로부터 반환된 상기 복구한 해당 데이터를 지역 메모리에 로드함을 특징으로 하는 원격 메모리 데이터 관리 시스템.
A remote memory data management system comprising a computing node and a plurality of remote computing nodes,
If the memory is insufficient in the memory allocation according to the request of the application program, data to be removed from the data existing in the memory is selected and transmitted to the first remote computing node, the memory is removed and the returned memory is allocated through the operating system A computing node to assign to the application program; And
And a first remote computing node for receiving the data to be removed and storing the data in a memory, generating a log of the log, and transmitting the log to the second remote computing node,
The second remote computing node having received the log stores the log in the buffer of the second remote computing node, stores the log in the buffer in the common file system via the network, removes the log from the buffer, When the computing node fails to receive the corresponding data from the first remote computing node due to an error of the first remote computing node, the second remote computing node transmits the corresponding data to the second remote computing node based on the log stored in the common file system And returns the restored and corresponding data to the computing node so that the computing node loads the recovered corresponding data returned from the second remote computing node into the local memory.
제5항에 있어서, 상기 컴퓨팅 노드는
상기 제거할 데이터는 FIFO(First In First Out) 또는 LRU(Least Recently Used) 알고리즘을 사용하여 선정하는 것
인 원격 메모리 데이터 관리 시스템.
6. The method of claim 5, wherein the computing node
The data to be removed may be selected using FIFO (First In First Out) or LRU (Least Recently Used) algorithm
In remote memory data management system.
제5항에 있어서, 상기 제2 원격 컴퓨팅 노드는
상기 버퍼에 저장된 로그가 기설정된 임계치 이상의 용량에 이르는 경우 압축하여 공용파일 시스템에 저장하는 것
인 원격 메모리 데이터 관리 시스템.
6. The method of claim 5, wherein the second remote computing node
If the log stored in the buffer reaches a capacity equal to or larger than a preset threshold value, the compressed file is stored in a common file system
In remote memory data management system.
제5항에 있어서, 상기 제2 원격 컴퓨팅 노드는
상기 버퍼에 저장된 로그가 현재 시스템의 메모리상에 있는 데이터에 대한 로그인지 판단하여 상기 현재 시스템의 메모리상에 있지 않은 데이터에 대한 로그는 상기 버퍼에서 삭제하는 것
인 원격 메모리 데이터 관리 시스템.
6. The method of claim 5, wherein the second remote computing node
Determining whether the log stored in the buffer is log-in to data currently in the memory of the system, and deleting the log of data not in the memory of the current system from the buffer
In remote memory data management system.
KR1020140002836A 2014-01-09 2014-01-09 Remote Memory Data Management Method and System for Data Processing Based on Mass Memory KR101793963B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140002836A KR101793963B1 (en) 2014-01-09 2014-01-09 Remote Memory Data Management Method and System for Data Processing Based on Mass Memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140002836A KR101793963B1 (en) 2014-01-09 2014-01-09 Remote Memory Data Management Method and System for Data Processing Based on Mass Memory

Publications (2)

Publication Number Publication Date
KR20150083276A KR20150083276A (en) 2015-07-17
KR101793963B1 true KR101793963B1 (en) 2017-11-07

Family

ID=53873410

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140002836A KR101793963B1 (en) 2014-01-09 2014-01-09 Remote Memory Data Management Method and System for Data Processing Based on Mass Memory

Country Status (1)

Country Link
KR (1) KR101793963B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467734B2 (en) 2019-10-25 2022-10-11 Samsung Electronics Co., Ltd. Managing swap area in memory using multiple compression algorithms

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101945117B1 (en) * 2017-08-14 2019-02-01 성균관대학교산학협력단 A smart device and method for managing memory thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467734B2 (en) 2019-10-25 2022-10-11 Samsung Electronics Co., Ltd. Managing swap area in memory using multiple compression algorithms

Also Published As

Publication number Publication date
KR20150083276A (en) 2015-07-17

Similar Documents

Publication Publication Date Title
US10467136B2 (en) Adaptable data caching mechanism for in-memory cluster computing
JP6791834B2 (en) Storage system and control software placement method
US8195777B2 (en) System and method for adding a standby computer into clustered computer system
US9330108B2 (en) Multi-site heat map management
CN106959820B (en) Data extraction method and system
US10298715B2 (en) Distributed processing system, task processing method, and storage medium
JP4920248B2 (en) Server failure recovery method and database system
CN109739435B (en) File storage and updating method and device
CN104935654A (en) Caching method, write point client and read client in server cluster system
CN107329704B (en) Cache mirroring method and controller
US20060026250A1 (en) Communication system
CN102298547A (en) Data backup method and device
US9298765B2 (en) Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network
JP2012514777A (en) Storage system and storage system processing efficiency improvement method
CN111225003B (en) NFS node configuration method and device
KR101793963B1 (en) Remote Memory Data Management Method and System for Data Processing Based on Mass Memory
CN105574008A (en) Task scheduling method and equipment applied to distributed file system
CN117520278A (en) Multi-client high-precision directory quota control method for distributed file system
JP2010044553A (en) Data processing method, cluster system, and data processing program
CN115390754A (en) Hard disk management method and device
CN106339279B (en) Service recovery method and device
CN112083886B (en) Storage management method, system and device of NAS (network attached storage) equipment
CN113518131B (en) Fault-tolerant processing method, device and system for transmission data of network abnormality
CN110098945B (en) Data processing method and device applied to node system
CN108023914B (en) Memory data sharing system, and memory data writing and reading method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right