KR102258456B1 - 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체 - Google Patents

인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체 Download PDF

Info

Publication number
KR102258456B1
KR102258456B1 KR1020190102875A KR20190102875A KR102258456B1 KR 102258456 B1 KR102258456 B1 KR 102258456B1 KR 1020190102875 A KR1020190102875 A KR 1020190102875A KR 20190102875 A KR20190102875 A KR 20190102875A KR 102258456 B1 KR102258456 B1 KR 102258456B1
Authority
KR
South Korea
Prior art keywords
data
memory
processing framework
data processing
application
Prior art date
Application number
KR1020190102875A
Other languages
English (en)
Other versions
KR20210023130A (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 KR1020190102875A priority Critical patent/KR102258456B1/ko
Publication of KR20210023130A publication Critical patent/KR20210023130A/ko
Application granted granted Critical
Publication of KR102258456B1 publication Critical patent/KR102258456B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에서는 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱방법 및 시스템, 이를 위한 기록매체가 개시된다. 구체적으로, 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크 시스템에 의해 제어되는 애플리케이션을 캐싱(caching)하는 방법에 있어서, 인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하는 단계, 상기 프로파일링을 기반으로 각 중간 데이터가 사용되는 횟수, 상기 각 중간 데이터의 상기 입력 데이터 대비 크기를 도출하는 단계, 사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 단계 및 파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하는 단계를 포함할 수 있다.

Description

인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체 {Method and system for Data caching based on In-Memory data processing framework, and recoding medium therefor}
본 발명은 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체에 관한 것으로서, 보다 상세하게 방향성 비순환성 그래프(DAG: Directed Acyclic Graph) 기반으로 작동하는 인-메모리(in-memory) 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체에 관한 것이다.
최근 빅데이터 분석 및 머신러닝의 중요성이 높아지면서 아파치 스파크(Apache Spark), 아파치 플링크(Apache Flink)와 같은 메모리에 데이터를 캐싱하는 프레임워크들이 대두되고 있다. 메모리에 자주 사용되는 중간 데이터를 캐싱하여 전체 실행 시간을 줄이는 장점 때문에 이러한 프레임워크들의 중요성 또한 높아지고 있다.
이러한 프레임워크의 사용자들은 자신들이 메모리에 캐싱할 데이터를 선정해야 한다. 하지만, 이 프레임워크의 구조와 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)의 특성 등을 잘 이해하지 못한 사용자들은 최적의 캐시 할 데이터를 선정하는 것에 어려움을 겪는다. 또한, 인-메모리(in-memory) 프레임워크들은 메모리 용량에 치명적이기에 메모리 용량에 따라 최적의 캐시 해야 하는 탄력적 분산 데이터 집합(RDD: Resilient Distributed Dataset)이 달라진다.
한국등록특허 제10-1722643호, 2017년 03월 28일 등록 (명칭: RDD 관리 방법, RDD 관리 장치 및 RDD 관리 프로그램을 저장하는 저장매체)
본 발명의 목적은 DAG 기반 인-메모리(in-memory) 데이터처리 프레임워크의 사용자를 대신하여 해당 프레임워크에서 사용할 데이터를 캐싱하기 위한 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상은, 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크 기반에서 데이터 캐싱 방법에 있어서, 인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하는 단계, 상기 프로파일링을 기반으로 각 중간 데이터가 사용되는 횟수, 상기 각 중간 데이터의 상기 입력 데이터 대비 크기를 도출하는 단계, 사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 단계 및 파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하는 단계를 포함할 수 있다.
본 발명의 다른 일 양상은, 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크 시스템에 있어서, 인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하고, 상기 프로파일링을 기반으로 각 중간 데이터가 사용되는 횟수, 상기 각 중간 데이터의 상기 입력 데이터 대비 크기를 도출하는 프로파일링부, 사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 파티셔닝부 및 파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 기반으로 캐싱(caching)할 중간 데이터를 결정하는 캐싱(caching)부를 포함할 수 있다.
본 발명의 또 다른 일 양상은, 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크에 대한 프로그램을 저장한 기록매체 있어서, 인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하는 단계, 상기 프로파일링을 기반으로 각 중간 데이터가 사용되는 횟수, 상기 각 중간 데이터의 상기 입력 데이터 대비 크기를 도출하는 단계, 사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 단계 및 파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하는 단계를 포함하는 인-메모리 데이터처리 프레임워크 기반에서 데이터 방법을 실행하기 위한 프로그램을 포함할 수 있다.
바람직하게, 상기 애플리케이션 타입은 데이터 중심 애플리케이션(data intensive application) 또는 계산 중심 애플리케이션(compute intensive application)을 포함할 수 있다.
바람직하게, 상기 파티셔닝된 DAG 내에서 사용되는 횟수가 많은 중간 데이터부터 먼저 캐싱(caching)하도록 결정될 수 있다.
바람직하게, 상기 캐싱(caching)할 중간 데이터는 잔여 메모리 용량을 초과하지 않도록 결정될 수 있다.
본 발명의 실시예에 따르면, DAG 기반 인-메모리(in-memory) 데이터 처리 프레임워크 사용자들이 해당 프레임워크의 구조, 데이터 처리 방식, DAG의 특성 등에 대해 정확한 이해가 없어도 해당 프레임워크에서 사용할 애플리케이션의 중간 데이터의 메모리 캐싱을 통해 해당 프레임워크를 효과적으로 사용할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법을 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 인-메모리(in-memoty) 데이터 프레임워크의 작동 방식을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 캐시를 결정하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 인-메모리 데이터 처리 프레임워크 시스템을 예시하는 도면이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "??부", "??기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
도 1은 본 발명의 일 실시예에 따른 애플리케이션을 캐싱하는 방법을 예시하는 도면이다.
도 1을 참조하면, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 인-메모리(In-memory) 데이터 처리 프레임워크(즉, 데이터 처리를 하면서 생기는 재사용될 중간 데이터를 동적 램(DRAM: dynamic random access memory)에 캐싱하여 작업 속도를 빠르게 하는 프레임워크)에서 사용할 애플리케이션과 입력 데이터를 사용하여 프로파일링(profiling)을 진행한다(S101). 이때, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 실제로 사용할 입력 데이터보다 작은 크기의 입력 데이터를 사용하여서 프로파일링을 진행할 수 있다.
여기서, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 작은 크기의 소정의 입력 데이터로 애플리케이션을 실행하여 해당 애플리케이션의 비순환성 그래프(DAG: Directed Acyclic Graph), 중간 데이터 크기(size) 및/또는 중간 데이터가 사용되는 횟수(즉, 참조 카운트(reference count))를 획득(도출)한다. 여기서, 인-메모리(in-memory) 데이터처리 프레임워크에서는 작업을 진행하면서 얻을 수 있는 데이터의 흐름을 그래프의 형태로 나타내고, 이것을 DAG라 칭한다.
이때, 입력 파일 크기 대비 상대적인 중간 데이터의 크기를 통해 실제로 사용될 입력 파일에서의 중간 데이터의 크기가 계산될 수 있다. 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 프로파일링을 통해 얻은 DAG, 참조 카운트 및/또는 중간 데이터의 크기의 정보들을 이후 S103 및 S104 단계에서 사용한다.
작은 크기의 입력 데이터를 사용하여 애플리케이션을 실행하여도 DAG(Directed Acyclic Graph), 참조 카운트(작업을 진행하면서 생성되는 데이터들이 사용되는 횟수) 그리고 중간 데이터의 크기를 획득할 수 있기 때문이다.
인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, DAG 정보와 참조 카운트를 이용하여 DAG를 파티셔닝(partitioning)/분할한다(S102). 즉, 프로파일링한 결과들을 사용하여 같은 횟수로 나타나는 연결된 데이터들의 집합으로 DAG를 나눈다. 이를 DAG 분할/파티셔닝(DAG partitioning)이라 칭한다.
DAG 분할/파티셔닝을 설명하기 위해 인-메모리(in-memoty) 데이터 프레임워크의 작동 방식을 살펴본다.
도 2는 본 발명의 일 실시예에 따른 인-메모리(in-memoty) 데이터 프레임워크의 작동 방식을 설명하기 위한 도면이다.
도 2를 참조하면, 인-메모리(in-memoty) 데이터 프레임워크는 데이터를 처리할 때 단계(stage)와 같은 단위로 나누어서 작업을 진행한다.
도 2와 같이, 인-메모리(in-memoty) 데이터 프레임워크에서는 중간 데이터들을 탄력적 분산 데이터 집합(RDD: Resilient Distributed Dataset)으로 표시할 수 있다.
단계 0(stage 0)에서는 RDD0와 RDD1이 생성된다. 그리고 단계 1(Stage1)에서는 RDD0, RDD1 및 RDD2가 생성된다. 그리고 단계 2(stage2)에서는 RDD0, RDD3 및 RDD4가 생성된다. 그리고 단계 3(stage3)에서는 RDD0, RDD3, RDD4 및 RDD5가 생성된다.
여기서, 주목해야 할 점은 각 단계에서 생성되는 RDD가 중복된다는 것이다. 예를 들어, stage0과 stage1에서 생성되는 RDD가 겹친다(즉, RDD0, RDD1).
인-메모리(in-memoty) 데이터 프레임워크에서는 생성된 중간 데이터(즉, RDD)를 자동으로 저장하지 않고, 다음 단계(stage)를 진행할 때 각 중간 데이터들의 의존도(dependency)에 따라 처음(즉, RDD0)부터 작업을 실행해야 한다. 이때, 중간 데이터가 캐싱(caching)이 되어 있다면, 캐싱이 되어 있는 RDD부터 연산이 시작된다.
도 2에서는 인-메모리(in-memoty) 데이터 프레임워크의 작업 흐름을 나타내는 DAG들과 그에 따른 파티셔닝/분할의 예시를 나타낸 것이다.
파티셔닝을 하는 방식은 다음과 같다. 모든 단계의 DAG들을 종합하였을 때 같은 횟수만큼 나타나고, 서로 의존적인 중간 데이터끼리 파티션(partition)을 구성해주는 것이다.
도 2에서는 RDD0가 4번 나타나고, RDD0를 통해 RDD1과 RDD3이 생성되지만 RDD1과 RDD3은 같은 횟수만큼 나타나지 않기 때문에, RDD0만 분리하여 파티션(P0)을 형성하고, RDD1만을 분리하여 파티션(P1)을 형성한다. 그리고, RDD3과 RDD4는 같은 횟수로 나타나고, 의존적인 관계이므로 같이 파티션(P2)을 형성한다. 정리하면, 각 파티션은 전체 DAG들 중에서 공통적으로 같은 횟수만큼 나타나는 중간 데이터들의 집합을 의미한다.
도 3은 본 발명의 일 실시예에 따른 캐시를 결정하는 방법을 설명하기 위한 도면이다.
DAG들을 합산하여 본다면 도 3과 같은 전체 DAG를 얻을 수 있다. 전체 DAG는 모든 중간 데이터들의 의존성을 나타내는 그래프이다. DAG에서 2번 이상 나타나는 RDD들은 처음 생성된 후 재사용이 되는 것이기에, 2번 이상 사용되는 RDD가 속한 파티션들 중 하나를 캐싱한다.
도 3은 전체 DAG에서 캐싱해야 할 RDD를 나타낸다. 파티션에서 가장 아래에 있는 RDD를 캐싱(caching)한다. 가장 아래에 있는 RDD를 캐싱하는 것이 아니라면 파티션 내에서도 연산을 반복해서 해야하기 때문이다.
다시 도 1을 참조하면, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 파티셔닝된 DAG 내에서 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하고, 결정된 중간 데이터를 캐싱(caching)할 수 있다(S103).
이때, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 파티셔닝된 DAG 내에서 애플리케이션의 타입(예를 들어, 데이터 중심(data intensive), 계산 중심(compute intensive) 등)에 따라 캐시(cache)할 중간 데이터를 선정할 수 있다.
또한, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 메모리가 충분할 때와 부족할 때를 구분하여 선정하여 경우에 따라 다르게 캐싱을 할 수도 있다(S104). 즉, 애플리케이션을 사용할 프레임워크 메모리 환경에 따라 캐시 할 메모리가 충분한 경우와 부족한 경우로 나누어 캐시 리스트(즉, 캐싱할 하나 이상의 중간 데이터의 리스트) 선정할 수 있다. 다시 말해, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 메모리 용량과 중간 데이터의 크기를 고려하여 최종적으로 캐싱할 중간 데이터를 런타임(runtime)에 설정할 수 있다.
즉, 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 사용되는 횟수가 많은 중간 데이터부터 캐싱할 중간 데이터로 결정하되, 메모리 용량과 비교하여 캐싱하는 중간 데이터의 용량이 메모리(DRAM)의 용량보다 많지 않도록 결정한다.
도 4는 본 발명의 일 실시예에 따른 인-메모리 데이터 처리 프레임워크 시스템을 예시하는 도면이다.
도 4에서 도시된 본 발명에 따른 인-메모리 데이터 처리 프레임워크 시스템의 구성은, 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되거나 분리되어 구현될 수도 있다.
도 4를 참조하면, 따른 인-메모리 데이터 처리 프레임워크 시스템은 프로파일링(profiling)부(401), 파티셔닝(patitioning)부(402), 캐싱(caching)부(403)을 포함하여 구성될 수 있다.
프로파일링(profiling)부(401)는 인-메모리(In-memory) 데이터 처리 프레임워크에서 사용할 애플리케이션과 입력 데이터를 사용하여 프로파일링(profiling)을 진행한다. 이때, 프로파일링(profiling)부(401)는 실제로 사용할 입력 데이터보다 작은 크기의 입력 데이터를 사용하여서 프로파일링을 진행할 수 있다.
프로파일링(profiling)부(401)는 작은 크기의 소정의 입력 데이터로 애플리케이션을 실행하여 해당 애플리케이션의 비순환성 그래프(DAG), 중간 데이터 크기(size) 및/또는 중간 데이터가 사용되는 횟수(즉, 참조 카운트(reference count))를 획득(도출)한다.
이때, 입력 파일 크기 대비 상대적인 중간 데이터의 크기를 통해 실제로 사용될 입력 파일에서의 중간 데이터의 크기가 계산될 수 있다. 인-메모리(In-memory) 데이터 처리 프레임워크 시스템은, 프로파일링을 통해 얻은 DAG, 참조 카운트 및/또는 중간 데이터의 크기의 정보들을 이후 파티셔닝부(402) 및 캐싱부(403)에서 사용한다.
파티셔닝부(402)는 DAG 정보와 참조 카운트를 이용하여 DAG를 파티셔닝(partitioning)/분할한다. 즉, 프로파일링한 결과들을 사용하여 같은 횟수로 나타나는 연결된 데이터들의 집합으로 DAG를 나눈다. 이에 대한 구체적인 설명은 앞서 도 2 내지 도 3를 참조한다.
캐싱부(403)는 파티셔닝된 DAG 내에서 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하고, 결정된 중간 데이터를 캐싱(caching)할 수 있다.
이때, 캐싱부(403)는 파티셔닝된 DAG 내에서 애플리케이션의 타입(예를 들어, 데이터 중심(data intensive), 계산 중심(compute intensive) 등)에 따라 캐시(cache)할 중간 데이터를 선정할 수 있다.
또한, 캐싱부(403)는 메모리가 충분할 때와 부족할 때를 구분하여 선정하여 경우에 따라 다르게 캐싱을 할 수도 있다(S104). 즉, 애플리케이션을 사용할 프레임워크 메모리 환경에 따라 캐시 할 메모리가 충분한 경우와 부족한 경우로 나누어 캐시 리스트(즉, 캐싱할 하나 이상의 중간 데이터의 리스트) 선정할 수 있다. 다시 말해, 캐싱부(403)는 메모리 용량과 중간 데이터의 크기를 고려하여 최종적으로 캐싱할 중간 데이터를 런타임(runtime)에 설정할 수 있다.
즉, 캐싱부(403)는 사용되는 횟수가 많은 중간 데이터부터 캐싱할 중간 데이터로 결정하되, 메모리 용량과 비교하여 캐싱하는 중간 데이터의 용량이 메모리(DRAM)의 용량보다 많지 않도록 결정한다.
본 발명을 통해 다양한 여러 DAG 기반 인-메모리(in-memory) 데이터 처리 프레임워크들에 적용하여 성능을 개선하고 캐싱을 자동화 하여 사용자들에게 편의성을 제공할 수 있다.
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명에 따른 DAG 기반 인-메모리(in-memory) 데이터 처리 프레임워크 시스템에 의해 제어되는 캐싱 방안을 통해 데이터 캐싱을 자동화할 수 있다.
401: 프로파일링부
402: 파티셔닝부
403: 캐싱부

Claims (6)

  1. 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크 시스템에 의해 제어되는 애플리케이션을 캐싱(caching)하는 방법에 있어서,
    인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하는 단계;
    상기 프로파일링을 기반으로 탄력적 분산 데이터 집합에 해당하는 중간 데이터들이 각각 사용되는 횟수, 및 상기 입력 데이터 크기에 대비한 상기 중간 데이터들 각각의 크기를 도출하는 단계;
    사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 단계; 및
    파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하는 단계를 포함하는 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법.
  2. 제1항에 있어서,
    상기 애플리케이션 타입은 데이터 중심 애플리케이션(data intensive application) 또는 계산 중심 애플리케이션(compute intensive application)을 포함하는 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법.
  3. 제1항에 있어서,
    상기 파티셔닝된 DAG 내에서 사용되는 횟수가 많은 중간 데이터부터 먼저 캐싱(caching)하도록 결정되는 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱방법.
  4. 제1항에 있어서,
    상기 캐싱(caching)할 중간 데이터는 잔여 메모리 용량을 초과하지 않도록 결정되는 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법.
  5. 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크 시스템에 있어서,
    인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하고, 상기 프로파일링을 기반으로 탄력적 분산 데이터 집합에 해당하는 중간 데이터들이 각각 사용되는 횟수, 및 상기 입력 데이터 크기에 대비한 상기 중간 데이터들 각각의 크기를 도출하는 프로파일링부;
    사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 파티셔닝부; 및
    파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 기반으로 캐싱(caching)할 중간 데이터를 결정하는 캐싱(caching)부를 포함하는 인-메모리 데이터 처리 프레임워크 시스템.
  6. 비순환성 그래프(DAG: Directed Acyclic Graph)를 기반으로 작동하는 인-메모리 데이터 처리 프레임워크에 대한 프로그램을 저장한 기록매체 있어서,
    인-메모리 데이터 처리 프레임워크 시스템에서 사용할 애플리케이션을 소정의 입력 데이터로 프로파일링(profiling)하는 단계;
    상기 프로파일링을 기반으로 탄력적 분산 데이터 집합에 해당하는 중간 데이터들이 각각 사용되는 횟수, 및 상기 입력 데이터 크기에 대비한 상기 중간 데이터들 각각의 크기를 도출하는 단계;
    사용되는 횟수가 동일하면서 의존성이 있는 하나 이상의 중간 데이터들의 집합을 기반으로 하나 이상의 방향성 비순환성 그래프(DAG: Directed Acyclic Graph)를 파티셔닝하는 단계; 및
    파티셔닝된 DAG 내에서 상기 애플리케이션의 타입 및/또는 잔여 메모리 용량에 따라 캐싱(caching)할 중간 데이터를 결정하는 단계를 포함하는 애플리케이션을 캐싱(caching)하는 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020190102875A 2019-08-22 2019-08-22 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체 KR102258456B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190102875A KR102258456B1 (ko) 2019-08-22 2019-08-22 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190102875A KR102258456B1 (ko) 2019-08-22 2019-08-22 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체

Publications (2)

Publication Number Publication Date
KR20210023130A KR20210023130A (ko) 2021-03-04
KR102258456B1 true KR102258456B1 (ko) 2021-06-01

Family

ID=75174362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190102875A KR102258456B1 (ko) 2019-08-22 2019-08-22 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체

Country Status (1)

Country Link
KR (1) KR102258456B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115175A (ja) 2014-12-16 2016-06-23 株式会社東芝 ソフトウェアテスト装置およびソフトウェアテストプログラム
JP2017515215A (ja) 2014-03-31 2017-06-08 アマゾン・テクノロジーズ・インコーポレーテッド 分散格納システムにおける名前空間管理

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080096306A (ko) * 2007-04-27 2008-10-30 재단법인서울대학교산학협력재단 규칙에 기반하여 스케일링 쉬프트의 최적의 위치를 찾는컴파일 방법 및 시스템
KR20160112830A (ko) * 2015-03-20 2016-09-28 한국전자통신연구원 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017515215A (ja) 2014-03-31 2017-06-08 アマゾン・テクノロジーズ・インコーポレーテッド 分散格納システムにおける名前空間管理
JP2016115175A (ja) 2014-12-16 2016-06-23 株式会社東芝 ソフトウェアテスト装置およびソフトウェアテストプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PARK Seongsoo 등, "Caching Automation for In-memory Data Analytics Framework", EuroDW’19, (2019.03.25.) 1부.*

Also Published As

Publication number Publication date
KR20210023130A (ko) 2021-03-04

Similar Documents

Publication Publication Date Title
EP3545435B1 (en) Database system and method for compiling serial and parallel database query execution plans
US9244883B2 (en) Reconfigurable processor and method of reconfiguring the same
CN109213601B (zh) 一种基于cpu-gpu的负载均衡方法及设备
US8793528B2 (en) Dynamic hypervisor relocation
US9684600B2 (en) Dynamic process/object scoped memory affinity adjuster
JP6412244B2 (ja) 負荷に基づく動的統合
US9465840B2 (en) Dynamically indentifying and preventing skewed partitions in a shared-nothing database
US20070124274A1 (en) Apparatus and method for autonomic adjustment of resources in a logical partition to improve partitioned query performance
US9268875B2 (en) Extensible content focus mode
US20240061712A1 (en) Method, apparatus, and system for creating training task on ai training platform, and medium
US8954969B2 (en) File system object node management
US20140067794A1 (en) Database grouping set query
WO2014184606A1 (en) Identifying workload and sizing of buffers for the purpose of volume replication
CN103617133B (zh) 一种Windows系统中虚拟内存压缩方法和装置
US20070055852A1 (en) Processing operation management systems and methods
KR102258456B1 (ko) 인-메모리 데이터처리 프레임워크 기반에서 데이터 캐싱 방법 및 시스템, 이를 위한 기록매체
US8332595B2 (en) Techniques for improving parallel scan operations
US9158551B2 (en) Activating and deactivating Operating System (OS) function based on application type in manycore system
KR20220072656A (ko) 파일 시스템 기반의 블록 할당 장치 및 방법
US20200042634A1 (en) Methods and apparatus to partition a database
JP3092656B2 (ja) 試験プログラム実行制御方法
US20210064575A1 (en) Data storage method and method for executing an application with reduced access time to the stored data
KR102456017B1 (ko) 응용 프로그램간 파일 공유 장치 및 방법
US8239865B2 (en) Waiting and synchronization of parallel task executions based on task groups and task object representations
JP2009211540A (ja) コンピュータ使用可能コードを実行する装置及び方法

Legal Events

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