KR20150089538A - 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 - Google Patents

인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 Download PDF

Info

Publication number
KR20150089538A
KR20150089538A KR1020140010280A KR20140010280A KR20150089538A KR 20150089538 A KR20150089538 A KR 20150089538A KR 1020140010280 A KR1020140010280 A KR 1020140010280A KR 20140010280 A KR20140010280 A KR 20140010280A KR 20150089538 A KR20150089538 A KR 20150089538A
Authority
KR
South Korea
Prior art keywords
page
data
memory
workload
memories
Prior art date
Application number
KR1020140010280A
Other languages
English (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 KR1020140010280A priority Critical patent/KR20150089538A/ko
Priority to US14/606,916 priority patent/US20150212741A1/en
Publication of KR20150089538A publication Critical patent/KR20150089538A/ko

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 인-메모리 데이터 관리 장치는, 상이한 특성을 갖는 복수 유형의 메모리들을 포함하는 이기종(hybrid) 메모리, 및 메모리들에 기입된 데이터들에 대한 워크로드를 모니터링하여 페이지 단위로 복수의 메모리들 사이에서 데이터를 재배치하고, 복수의 메모리들 각각을 구성하는 페이지 내의 페이지에 대한 어플리케이션의 데이터 접근 특성에 기초하여 페이지 단위로 페이지 레이아웃을 재구성하는 스토리지 엔진을 포함한다.

Description

인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 {Apparatus for in-memory data management and method for in-memory data management}
본 발명은 데이터 관리 장치 및 방법에 관한 것으로, 더욱 상세하게는 상이한 특성을 갖는 다수의 메모리들로 구성된 이기종 메모리를 포함하는 인-메모리 상에서 데이터를 관리하는 장치 및 방법에 관한 것이다.
DRAM(Dynamic Random Access Memory) 가격의 하락으로 예전에는 연산을 위한 영역으로만 여겨졌던 메모리 영역이 연산뿐 아니라 데이터 저장을 위한 공간으로 널리 사용되고 있다. 메인 메모리에 데이터를 저장하고 갱신, 삭제, 검색 등 데이터 관리 관련 모든 기능을 제공하는 시스템을 인-메모리 데이터 관리 시스템이라고 한다.
그러나 DRAM은 휘발성 메모리로서 전원 공급이 중단되면 기록된 데이터가 모두 사라진다. 따라서 DRAM을 활용하여 인-메모리 데이터 관리를 수행하기 위해서는 시스템이 아무런 일도 하지 않는 유휴(idle) 상태일지라도 DRAM에 저장된 데이터를 유지하기 위해 전력을 공급해야 한다. 따라서 지속적인 전력 공급으로 인하여 DRAM을 활용한 인-메모리 시스템의 전력 소모가 커지며, 나아가 하나의 시스템에서 DRAM으로 구성할 수 있는 메모리 공간의 크기에 제약이 있다.
데이터 서비스가 점차 클라우드, 모바일 및 글로벌 지향적으로 변해감에 따라, 이전에는 상상할 수 없었던 트랜잭션들이 발생하고 있다. 이들 트랜잭션들은 많은 양의 데이터를 포함하고 있으며 빠르게 처리될 필요가 있다.
데이터 서비스에 빠른 응답 시간을 제공하기 위해서는 고성능 컴퓨팅 기술뿐만 아니라 인-메모리 컴퓨팅 기술이 필요하다. 하지만, 구성 가능한 메모리 공간 크기에 제약이 있는 DRAM만을 이용한 인-메모리 데이터 관리 시스템을 구현하는 경우에는 빅데이터 시대의 어플리케이션이 필요로 하는 데이터 관리 요구를 모두 감당할 수 없다.
본 발명이 이루고자 하는 기술적 과제는 워크로드의 특성(데이터에 행해지는 연산별 빈도 등)을 페이지 단위로 파악하여 이에 적합한 특성을 갖는 메모리로 페이지를 재배치(이동)함으로써 시스템의 전체적인 처리량 및 메모리 장치의 수명을 향상시킬 수 있는 인-메모리 데이터 관리 장치 및 방법을 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제는 어플리케이션의 데이터 접근 패턴에 따라서 데이터가 저장되는 페이지의 레이아웃을 동적으로 재구성함으로써 어플리케이션 요청에 대한 응답 속도를 단축시킬 수 있는 인-메모리 데이터 관리 장치 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 인-메모리 데이터 관리 장치는 상이한 특성을 갖는 복수 유형의 메모리들을 포함하는 이기종(hybrid) 메모리, 및 상기 메모리들에 기입된 데이터들에 대한 워크로드를 모니터링하여 페이지 단위로 상기 복수의 메모리들 사이에서 데이터를 재배치하고, 상기 복수의 메모리들 각각을 구성하는 페이지에 대해 어플리케이션의 데이터 접근 특성(패턴)에 기초하여 페이지 단위로 페이지 레이아웃을 재구성하는 스토리지 엔진을 포함한다. 예를 들어, 상기 복수 유형의 메모리들은 휘발성 메모리 및 비휘발성 메모리를 포함할 수 있다.
일 실시예에 있어서, 상기 스토리지 엔진은, 상기 페이지에 대한 어플리케이션의 접근에 대하여 모니터링하여 모니터링 정보를 생성하는 페이지 접근 모니터, 상기 모니터링 정보에 기초하여 상기 페이지에 대한 워크로드를 분석하여 데이터를 재배치하는 동적 데이터 배치 관리자, 및 상기 모니터링 정보에 기초하여 어플리케이션의 데이터 접근 특성(패턴)에 적합하게 페이지 레이아웃을 재구성하는 동적 페이지 레이아웃 관리자를 포함할 수 있다.
일 실시예에 있어서, 상기 동적 데이터 배치 관리자는, 상기 모니터링 정보에 기초하여 페이지의 워크로드 변화가 기설정된 값 이상인 것을 감지하는 워크로드 변화 감지부, 상기 워크로드 변화가 발생한 페이지에 대한 워크로드에 기초하여 복수의 메모리들 중 다른 메모리로 데이터를 이동하는 것을 판단하는 데이터 이동 판단부, 및 상기 판단 결과에 따라 데이터를 이동하는 데이터 이동부를 포함할 수 있다. 예를 들어, 상기 데이터 이동 판단부는 상기 워크로드 변화가 발생한 페이지로부터 데이터를 이동시킬 경우에 예상되는 손익을 계산하여 데이터 이동 여부를 판단할 수 있다. 다른 실시예에 있어서, 상기 워크로드 변화 감지부는 페이지에 대한 데이터 관리 연산의 수행 횟수에 기초하여 워크로드를 산출하되 연산의 종류에 따라서 상이한 가중치를 부여하여 워크로드를 산출할 수도 있다.
일 실시예에 있어서, 상기 동적 페이지 레이아웃 관리자는 상기 모니터링 정보에 포함된 페이지 별 데이터 관리 요청 처리 소요 시간에 기설정된 값 이상의 증가가 발생한 것을 감지하는 워크로드 변화 감지부, 상기 기설정된 값 이상의 소요 시간 증가가 발생한 페이지에 대하여 상기 모니터링 정보에 포함된 어플리케이션의 데이터 접근 특성인 열 접근 정보에 기초하여 페이지 레이아웃을 재정의하는 페이지 레이아웃 재정의부, 및 상기 재정의된 페이지 레이아웃에 기초하여 상기 기설정된 시간 이상의 소요 시간 증가가 발생한 페이지의 데이터를 재구성하는 페이지 데이터 재구성부를 포함한다.
예를 들어, 상기 페이지 레이아웃 재정의부는 상기 데이터 재배치를 수행하는 경우, 재배치되는 메모리의 특성에 기초하여 페이지 레이아웃을 재정의할 수 있다.
본 발명의 일 실시예에 따른 상이한 특성을 갖는 복수 유형의 메모리들을 포함하는 이기종(hybrid) 메모리를 관리하는 방법은, 상기 복수 유형의 메모리들을 페이지 단위로 모니터링하여 모니터링 정보를 생성하는 단계, 상기 모니터링 정보에 포함된 페이지 별 워크로드 변화에 기초하여 상기 복수 유형 메모리들 사이에서 데이터를 재배치하는 단계, 및 상기 모니터링 정보에 포함된 페이지 별 어플리케이션의 데이터 접근 특성에 기초하여 페이지내의 열 배치를 조정함으로써 레이아웃을 재구성하는 단계를 포함한다.
일 실시예에 있어서, 상기 데이터를 재배치하는 단계는 상기 워크로드에 기설정된 값 이상의 변화가 발생하는 지를 감지하는 단계, 상기 기설정된 값 이상의 워크로드 변화가 발생한 페이지에 수행된 연산 횟수 및 연산 종류에 기초하여 이동시킬 메모리를 판단하는 단계, 및 상기 판단 결과에 따라서 데이터를 이동시키는 단계를 포함할 수 있다. 실시예에 따라, 상기 워크로드 변화가 발생한 페이지로부터 상기 이동시킬 메모리로 데이터를 이동시킬 경우에 예상되는 손익을 계산하여 데이터 이동 여부를 판단하는 단계를 더 포함할 수도 있다.
일 실시예에 있어서, 상기 워크로드 변화를 감지하는 단계는 상기 페이지에 수행되는 연산의 횟수 및 종류에 기초하여 워크로드를 산출하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 페이지 레이아웃을 재구성하는 단계는, 상기 모니터링 정보에 포함된 페이지 별 데이터 관리 요청 처리 소요 시간이 기설정된 값 이상 증가가 발생한 것을 감지하는 단계, 상기 기설정된 값 이상의 소요 시간 증가가 발생한 페이지에 대하여 상기 모니터링 정보에 포함된 어플리케이션의 데이터 접근 특성인 열 접근 정보에 기초하여 페이지 레이아웃을 재정의하는 단계, 및 상기 재정의된 페이지 레이아웃에 기초하여 페이지 내의 데이터를 재구성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 페이지 레이아웃을 재정의하는 단계는, 상기 데이터 재배치되면서 페이지 레이아웃을 재정의하는 경우, 이동시킬 메모리의 특성에 기초하여 페이지 레이아웃을 재정의하는 단계를 포함할 수 있다.
본 발명에 따르면 데이터 관리를 위한 메모리 공간을 DRAM 뿐만 아니라 상변화 메모리, 플래시 메모리 등의 차세대 메모리를 혼합 활용하여 구성하고 각 메모리의 특성을 효과적으로 활용함으로써 DRAM만을 활용한 메모리 공간 구성에 비해 단일 노드에서 데이터 관리를 위한 저장 공간 구성에 대한 용량 한계치를 확대할 수 있다.
뿐만 아니라 에너지 효율이 높은 저전력 메모리 소자로 구성된 차세대 메모리를 활용함으로써 DRAM만을 활용한 경우에 비해 운영 유지 비용을 절감시킬 수 있다.
또한, 본 발명에 따르면 어플리케이션의 데이터 접근 빈도와 유형에 따라 데이터가 저장되는 메모리 배치를 달리하여 시스템의 전체적인 처리량과 메모리 장치의 수명을 증가시킬 수 있다. 나아가, 어플리케이션의 데이터 접근 패턴에 따라 데이터가 저장되는 페이지 레이아웃을 동적으로 재구성함으로써 CPU 캐시 활용률 극대화를 통해 어플리케이션의 요청에 대한 응답 속도를 단축시킬 수 있다.
또한, 이기종 메모리간 동적 데이터 배치와 동적 페이지 레이아웃 재구성을 통해 운영 데이터와 분석 데이터의 분리를 통한 데이터 이원화 없이 운영 중인 하나의 데이터를 이용하여 OLTP/OLAP 혼합 어플리케이션을 동시에 효과적으로 지원할 수 있다.
아울러 본 발명의 실시예는 예시를 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 인-메모리 데이터 관리 장치의 일실시예를 나타내는 도면이다.
도 2는 도 1의 인-메모리 데이터 관리 장치의 스토리지 엔진의 일 실시예를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 동적 데이터 배치 관리를 설명하기 위한 개념도이다.
도 4는 도 2의 동적 데이터 배치 관리자의 일 실시예를 나타내는 블록도이다.
도 5는 본 발명에 따른 동적 데이터 배치의 일실시예를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 동적 페이지 레이아웃 관리자를 나타내는 블록도이다.
도 7은 본 발명에 따른 동적 페이지 레이아웃 재구성의 일 실시예를 설명하기 위한 도면이다.
도 8은 도 7에서 설명한 바와 같이 페이지 레이아웃을 재구성한 이후 페이지에 데이터가 저장되는 방식을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 이기종 인-메모리 데이터 관리 방법을 설명하기 위한 흐름도이다.
도 10은 도 9의 데이터 재배치 방법의 일 실시예를 나타내는 흐름도이다.
도 11은 도 9의 페이지 레이아웃 재구성 방법의 일 실시예를 나타내는 흐름도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
또한, 본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.
도 1은 인-메모리 데이터 관리 장치의 일실시예를 나타내는 도면이다.
도 1을 참조하면, 인-메모리 데이터 관리 장치(10)는 SQL 엔진(Structured Query Language Engine, 100), 관계형 엔진(Relation Engine, 200), 스토리지 엔진(Storage Engine, 300), 트랜잭션 엔진(Transaction Engine, 400), 클라이언트 라이브러리(Client Library, 500) 및 이기종 메모리(hybrid memory, 600)를 포함할 수 있다.
클라이언트 라이브러리(500)는 사용자의 데이터 관리 서비스 요청을 인터페이싱하여 SQL 엔진(100)에 전달한다.
SQL 엔진(100)은 구문 분석, 의미 분석, 최적화 및 실행 제어 등의 과정을 통해 SQL문을 처리하고, 관계형 엔진(200)은 관계형 모델 지원을 위해 관계형 객체인 테이블, 인덱스 등에 대한 관리를 제공한다.
스토리지 엔진(300)은 이기종 메모리(600)에 데이터들을 저장하고 접근할 수 있도록 하기 위해 페이지 수준의 데이터베이스 관리, 메모리 할당 등을 수행한다. 본 발명의 일 실시예에 따른 스토리지 엔진(300)은 데이터의 워크로드에 따라서 이기종 메모리(600)의 특정 메모리로 데이터를 배치하고, 이기종 메모리(600) 내의 메모리들의 페이지 레이아웃을 동적으로 재구성한다. 스토리지 엔진(300)의 동작에 대해서는 도 2 이하에서 구체적으로 설명하도록 한다.
트랜잭션 엔진(400)은 트랜잭션 개념 지원을 위해 동시성 제어, 로깅, 회복 등을 제공한다.
종래의 인-메모리 데이터 관리 장치는 DRAM 기반 메모리에 데이터를 저장하여 다수의 데이터 관리 어플리케이션에서 데이터에 접근하여 활용할 수 있게 하지만, DRAM과 상이한 특성을 갖는 비휘발성 또는 차세대 메모리를 포함하는 이기종 메모리를 활용하여 인-메모리 상에서 효과적으로 데이터를 관리할 수는 없었다.
그러나 본 발명의 일 실시예에 따른 인-메모리 데이터 관리 장치(10)는 상이한 특성을 갖는 다양한 메모리를 포함하는 이기종 메모리(600)에 데이터를 저장하고 효과적으로 관리할 수 있도록 구성된다.
이기종 메모리(600)는 제1 메모리(610), 제2 메모리(620) 및 제3 메모리(630)를 포함할 수 있다. 예를 들어, 각각은 DRAM, 상변화 메모리(Phase change memory) 및 플래시 메모리에 상응할 수 있으나, 이는 예시적인 것에 불과하며 데이터 접근 지연 시간, 전원 차단에 따른 데이터의 휘발 여부, 셀 집적도 등에서 상이한 특성을 갖는 복수 유형의 메모리들을 포함하는 것으로 이해될 수 있다.
이기종 메모리(600)에 포함된 상이한 종류의 메모리들은 각각의 장단점을 가진다. 예를 들어, DRAM은 접근 속도와 갱신 비용 면에서 상변화 메모리나 플래시 메모리 보다 양호한 특성을 가지지만 유휴 모드에서 전력 소모가 크다는 단점이 있다. 그리고 플래시 메모리와 같은 비휘발성 메모리는 DRAM보다 집적도가 높을 뿐만 아니라 메모리 컨트롤러 외에도 PCIe 인터페이스에 연결 가능하기 때문에 대용량의 메모리 구성이 가능하지만 상술한 바와 같이 동작 속도가 DRAM 보다 느리다.
본 명세서에서는 이기종 메모리(600)가 DRAM, 상변화 메모리 및 플래시 메모리의 복수 유형의 메모리들을 포함하는 것으로 가정하여 설명한다. 그러나 본 발명이 이에 한정되는 것은 아니며 다양한 메모리로 구성된 이기종 메모리의 조합이 적용될 수 있음은 위에서 설명한 바와 같다.
본 발명의 일 실시예에 따른 인-메모리 데이터 관리 장치(10)는 이기종 메모리(600)를 이용하여 효율적인 데이터 관리를 위해 각 메모리의 특성뿐만 아니라 어플리케이션의 데이터 접근 특성을 이해하고 이를 활용한다.
본 발명에 따르는 이기종 메모리 기반 인-메모리 데이터 관리 장치(10)는 어플리케이션의 페이지 접근 패턴을 모니터링하여 갱신 연산이 많은 페이지나 자주 접근되는 페이지는 접근 속도 및 갱신비용 측면에서 다른 메모리들보다 좋은 DRAM에 위치시키고, 그렇지 않은 페이지는 상변화 메모리 혹은 플래시 메모리에 배치시킨다.
또한, 어플리케이션의 페이지 접근 패턴에 적합한 형태로 페이지 레이아웃을 동적으로 변경한다. 본 발명에서 페이지 레이아웃을 동적으로 변경한다는 것은 하나의 행(row)에 속하는 모든 열(column)을 항상 연속된 공간에 저장하는 것이 아니라 어플리케이션으로부터 함께 접근되는 열들을 그룹지어 연속된 공간에 위치하도록 페이지 레이아웃을 동적으로 조정하는 것을 의미한다. 이를 통해 CPU 캐시 히트율(cache hit ratio)을 증가시킬 수 있다.
상술한 이기종 메모리(600) 내부의 데이터 특성에 따른 데이터의 배치 및 페이지 접근 패턴 모니터링에 따른 페이지 레이아웃의 변경은 스토리지 엔진(300)에서 수행된다. 이하에서는 스토리지 엔진(300)에 대해서 구체적으로 설명하도록 한다.
도 2는 도 1의 인-메모리 데이터 관리 장치의 스토리지 엔진의 일 실시예를 나타낸 블록도이다.
도 2를 참조하면, 스토리지 엔진(300)은 이기종 메모리 관리자(310), 데이터베이스 관리자(320), 페이지 접근 모니터(330), 동적 페이지 레이아웃 관리자(340) 및 동적 데이터 배치 관리자(350)를 포함할 수 있다.
이기종 메모리 관리자(310)는 이기종 메모리(600)로 메모리 공간을 구성하여 메모리 연산으로 접근할 수 있도록 관리한다.
이기종 메모리 관리자(310)는 이기종 메모리(600)의 대용량의 메모리 공간에 대한 다른 구성요소(예를 들어, 데이터베이스 관리자(320), 동적 데이터 배치 관리자(350) 등)에서의 데이터 저장을 위한 공간 요청, 회수 요구에 대응하여 특정 단위(예를 들어, 페이지)로 메모리 공간을 할당하거나 할당 해제하는 기능을 제공한다.
다른 구성요소에서 이기종 메모리 관리자(310)로 데이터 저장을 위한 메모리 공간을 요청하면, 복수 유형의 메모리들 중 실제 어느 메모리를 이용할지를 명시하여 요청한다.
데이터베이스 관리자(320)는 이기종 메모리(600)의 각 메모리의 데이터에 페이지 단위로 접근하여 데이터 관리(삽입, 삭제, 갱신, 검색) 연산을 수행한다.
페이지 접근 모니터(330)는 어플리케이션의 페이지 접근에 대해 페이지 별로 모니터링을 수행한다. 페이지 접근 모니터(330)는 페이지에 대하여 수집된 모니터링 정보를 기설정된 시간 단위(예를 들어, 1분)로 동적 데이터 배치 관리자(350)와 동적 페이지 레이아웃 관리자(340)에 전달할 수 있다. 실시예에 따라, 페이지 접근 모니터(330)에서 수집된 모니터링 정보는 페이지에 행해지는 연산의 유형별 빈도, 페이지 별로 사용자의 데이터 관리 요청 처리를 위해 함께 접근하는 열에 대한 정보, 페이지 별 데이터 관리 요청 처리 수행 소요 시간을 포함할 수 있다.
동적 페이지 레이아웃 관리자(340)는 페이지 접근 모니터(330)가 수집한 정보를 기반으로 워크로드(Workload, 접근 패턴)에 적합한 레이아웃을 가지는 페이지 구조로 재구성 한다. 실시예에 따라, 동적 페이지 레이아웃 관리자(340)는 페이지에 대한 데이터 요청을 처리하는 데에 소요되는 시간에 기초하여 워크로드를 파악할 수 있다.
동적 데이터 배치 관리자(350)는 페이지 접근 모니터(330)가 수집한 정보 분석을 통해 페이지에 대한 활용 패턴(수행 연산)을 이해하여 이기종 메모리(600) 내부의 상이한 메모리들 사이에 동적 데이터를 배치한다. 실시예에 따라, 동적 데이터 배치 관리자(350)는 페이지에 대한 접근 횟수, 즉 다양한 연산이 수행된 횟수에 기초하여 워크로드를 산출할 수 있으며, 연산 종류에 따라서도 워크로드를 상이하게 산출할 수 있다.
본 발명에 따르면 이기종 메모리 관리자(310)는 데이터 관리를 위한 메모리 공간을 DRAM뿐만 아니라 상변화 메모리 및 플래시 메모리의 차세대 메모리를 혼합 활용하여 구성함으로써 DRAM만을 활용한 메모리 공간 구성에 비해 단일 노드에서 데이터 관리를 위한 저장 공간 구성에 대한 용량 한계치를 확대할 수 있다.
도 3은 본 발명의 일 실시예에 따른 동적 데이터 배치 관리를 설명하기 위한 개념도이다.
본 발명의 일 실시예에 따른 동적 데이터 배치 관리자(350)는 페이지 접근 모니터(330)에서 수집한 모니터링 정보에 기초하여 갱신 연산 빈도 또는 접근 빈도가 높은 데이터는 접근 지연 시간 및 갱신 비용 측면에서 상대적으로 좋은 특성을 갖는 메모리(예를 들어, DRAM) 에 배치하고, 갱신 연산 빈도 또는 접근 빈도가 낮은 데이터는 지연 시간 및 갱신 비용 측면에서 상대적으로 좋지 않은 메모리(예를 들어, 플래시 메모리)에 배치한다. 이에 따라, 전체 데이터 관리 장치 측면에서 데이터 관리 어플리케이션에 대한 빠른 응답시간을 보장할 수 있다.
동적 데이터 배치 관리자(350)는 이기종 메모리 간 데이터 배치를 페이지 단위로 수행할 수 있다. 실시예에 따라, 하나의 테이블을 구성하는 페이지들이 모두 동일한 메모리 상에 배치되어 관리될 수도 있지만(410, 430), 하나의 테이블을 구성하는 페이지들이 복수의 이기종 메모리 상에 흩어져서 배치되어 관리될 수도 있다(420, 440).
예를 들어, 테이블(440)을 구성하는 A 페이지(PA), B 페이지(PB) 및 C 페이지(PC)가 있으면, A 페이지(PA)는 DRAM에, B 페이지(PB)는 상변화 메모리에, C 페이지(PC)는 플래시 메모리에 배치될 수 있다.
본 발명의 일 실시예에 따른 동적 데이터 배치 관리자(350)는 페이지 별로 워크로드를 감지하여 특정 페이지에 대하여 기설정된 값 이상의 워크로드 변화가 감지된 경우, 이기종 메모리(600)의 다른 메모리로 배치되어야 하는지를 판단한다.
예를 들어, 워크로드가 이전보다 많이 높아진 페이지는 접근 지연 시간이 작은 메모리로 이동될 수 있고, 워크로드가 이전보다 많이 낮아진 페이지는 접근 지연 시간이 큰 메모리로 이동될 수 있다.
도 4는 도 2의 동적 데이터 배치 관리자의 일 실시예를 나타내는 블록도이다.
도 4를 참조하면, 동적 데이터 배치 관리자(350)은 워크로드 변화 감지부(351), 데이터 이동 판단부(352) 및 데이터 이동부(353)를 포함할 수 있다.
워크로드 변화 감지부(351)는 페이지 접근 모니터(330)로부터 수신한 워크로드에 대한 모니터링 정보를 분석하여 특정한 페이지의 워크로드가 기설정된 값 이상 변화했는지를 판단한다.
데이터 이동 판단부(352)는 기설정된 값 이상의 워크로드 변화가 감지된 페이지들에 대해 이기종 메모리(600)를 구성하는 어느 메모리로 이동하는 것이 적절한 지를 판단한다.
데이터 이동부(353)는 데이터 이동 판단부(352)의 판단 결과에 따라 상이한 특성의 이기종 메모리들 사이에서 데이터를 이동시킨다.
본 발명의 일 실시예에 따른 동적 데이터 배치 관리자(350)의 워크로드 변화 감지부(351)는 페이지에 대한 접근 빈도의 변화에 기초하여 동적 데이터 배치를 위한 워크로드 변화를 감지할 수 있다.
워크로드를 산출함 있어서, 실시예에 따라, 검색 연산과 갱신 연산을 동일하게 취급할 수도 있고, 검색 연산보다는 갱신 연산에 높은 가중치를 두어 워크로드를 산출하거나 그 반대일 수도 있다.
워크로드를 산출할 때 갱신 연산에 높은 가중치를 부여하는 경우, 상변화 메모리나 플래시 메모리와 같이 읽기와 쓰기 연산간 지연 시간 차이가 크거나 쓰기 회수에 제한이 있는 메모리보다는 DRAM에 갱신 연산이 많은 페이지가 배치될 수 있다. 이와 같은 워크로드에 기반한 데이터 이동을 통하여 전체적인 데이터 관리 요청에 대한 처리량이 증가되고 인-메모리 데이터 관리 장치의 수명을 증가시킬 수 있다.
일 실시예에 있어서, 데이터 이동 판단부(352)는 데이터 이동에 따른 손익 계산을 통하여 데이터 이동 판단할 수 있다. 예를 들어, 데이터 이동 판단부(352)는 데이터 유지 및 관리 연산 지원을 위한 비용, 이동 시 소요 비용 등을 고려하여 데이터가 이기종 메모리(600) 내의 다른 메모리로 이동했을 때 이익이 예상되는 경우에 한하여 데이터를 이동하도록 할 수 있다.
실시예에 따라, 데이터 이동부(353)가 메모리들 사이에서 데이터를 이동시킬 경우, 데이터 이동부(353)는 동적 페이지 레이아웃 관리자(340)와 협력하여 페이지의 데이터를 이동 시점의 워크로드에 최적화된 페이지 레이아웃의 형태로 변경하여 이동시킬 수 있다.
도 5는 본 발명에 따른 동적 데이터 배치의 일 실시예를 설명하기 위한 도면이다.
도 5에서는 이기종 메모리(600)가 DRAM, 상변화 메모리, 플래시 메모리의 상이한 메모리들로 구성되어 있고, 각각의 메모리가 3, 3 및 6 개의 페이지를 수용할 수 있는 용량을 가지고 있는 것으로 가정한다.
도 5의 510을 참조하면, 현재 DRAM에는 제3 페이지(P3) 및 제6 페이지(P6)가 배치되어 있고, 상변화 메모리에는 제2 페이지(P2) 및 제5 페이지(P5)가 배치되어 있으며, 플래시 메모리에는 제1 페이지(P1), 제4 페이지(P4), 제7 내지 제9 페이지들(P7, P8, P9)이 배치되어 있다.
이와 같은 현 상태의 데이터 배치에 있어서, 워크로드 정보는 520에 나타낸 바와 같다. 도 5를 참조하여 설명하는 일 실시예에 있어서, 쓰기 연산은 읽기 연산에 비하여 2배 가중치의 워크로드를 갖는 것으로 가정한다.
페이지 접근 모니터(330)는 현 상태에서 일정 시간이 경과한 후에 새로운 페이지 접근 모니터링 정보(530)를 수집하여 동적 데이터 배치 관리자(340)에 페이지 접근 모니터링 정보(530)를 전달한다. 이때 동적 데이터 배치 관리자(340)의 워크로드 변화 감지부(351)는 제2 페이지(P2), 제3 페이지(P3), 및 제6 페이지(P6)에서 기설정된 값(예를 들어, 25%)을 초과하는 워크로드의 변화를 감지한다.
데이터 이동 판단부(352)는 이기종 메모리(DRAM, 상변화 메모리, 플래시 메모리) 사이에서 데이터를 이동시킬 경우에 예상되는 손익을 계산하고 이에 기초하여 페이지의 이동 여부 및 이동 메모리를 판단한다.
데이터 이동 판단부(352)는 갱신 연산이 많이 증가한 제2 페이지(P2)를 DRAM으로 이동시키고, 접근 빈도가 많이 감소한 제6 페이지(P6)는 상변화 메모리로, 전체 접근 빈도는 감소했으나 갱신 연산이 많은 제3 페이지(P3)는 그대로 DRAM에 배치하는 것이 적절한 것으로 판단할 수 있다.
데이터 이동 판단부(352)의 판단 결과를 바탕으로 데이터 이동부(353)는 제2 페이지(P2)를 DRAM으로, 제6 페이지(P6)를 상변화 메모리로 이동시킨다. 새롭게 배치된 데이터는 540과 같이 나타낼 수 있다.
본 발명의 일 실시예에 따른 인-메모리 데이터 관리 장치(10)는, 이기종 메모리들 사이에서 데이터를 재배치하는 동작뿐만 아니라 페이지 접근 모니터(330)가 수집한 모니터링 정보를 기반으로 워크로드에 적합한 형태로 페이지 레이아웃을 동적으로 재구성할 수 있다,
도 6은 본 발명의 일 실시예에 따른 동적 페이지 레이아웃 관리자를 나타내는 블록도이다.
동적 페이지 레이아웃 관리자(340)는 어플리케이션의 데이터 접근 패턴에 따라 메모리의 인접한 공간에 저장되는 열(column)의 구성을 달리하는 방식으로 페이지 레이아웃을 재구성한다.
동적 페이지 레이아웃 관리자(340)는 현재 레이아웃에서 해당 페이지에 대한 데이터 관리 요청 처리에 소요되는 평균 시간을 파악하여 저장한다. 이후 페이지 접근 모니터(330)로부터 전달 받은 페이지 별 데이터 관리 요청 처리 수행 소요 시간과 저장되어 있는 시간을 비교하여 기설정된 값(예를 들어, 25%) 이상의 증가가 발생한 페이지에 대해 페이지 레이아웃 재구성을 수행한다.
도 6을 참조하면, 동적 페이지 레이아웃 관리자(340)는 워크로드 변화 감지부(341), 페이지 레이아웃 재정의부(342) 및 페이지 데이터 재구성부(343)를 포함할 수 있다.
워크로드 변화 감지부(341)는 페이지 접근 모니터(330)로부터 받은 페이지 별 데이터 관리 요청 처리 소요 시간에 대한 모니터링 정보를 분석하여 처리 소요 시간이 기설정된 값 이상 변화하는 지에 따른 워크로드 변화를 감지한다.
페이지 레이아웃 재정의부(342)는 워크로드 변화가 감지된 페이지에 대해 페이지 접근 모니터(330)로부터 받은 페이지 별 어플리케이션의 데이터 접근 특성인 열 접근 정보와 메모리의 특성을 기반으로 현재의 워크로드에 적합한 형태로 페이지 레이아웃을 재정의한다.
페이지 데이터 재구성부(343)는 페이지 레이아웃 재정의부(342)에서 정의한 페이지 레이아웃에 기초하여 페이지 데이터를 재구성한다.
본 발명에 따르는 동적 페이지 레이아웃 관리자(340)에 의한 동적 페이지 레이아웃 재구성에서 페이지 레이아웃은 페이지 별로 달리 구성할 수 있다. 따라서, 본 발명이 적용된 시스템에서 관리되는 하나의 데이터 테이블을 구성하는 페이지들이 모두 동일한 페이지 레이아웃을 가질 수도 있지만, 다른 페이지 레이아웃을 가질 수도 있다.
동적 페이지 레이아웃 재구성을 통해 해당 페이지에 대한 사용자의 데이터 관리 요청이 빠르게 처리되도록, 함께 접근되는 열 데이터를 연속된 공간에 저장되게 함으로써 CPU 캐시 미스(cache miss)의 가능성을 줄여 CPU 캐시 효율을 극대화할 수 있다. 이는 전체 시스템 측면에서 데이터 관리 응용에게 빠른 응답 시간을 제공할 수 있게 된다.
도 7은 본 발명에 따른 동적 페이지 레이아웃 재구성의 일 실시예를 설명하기 위한 도면이다.
도 7에서는 테이블 T2를 구성하는 3개의 페이지(Pa, Pb, Pc)가 각각 5개의 열(Ca, Cb, Cc, Cd, Ce)을 포함하는 것을 예를 들어 설명한다 (710).
각각의 페이지들(Pa, Pb, Pc)에는 모든 열들이 연속된 공간에 저장되어 있으며 (720), 워크로드 변화 감지부(341)가 페이지 레이아웃 재구성을 수행하기 위하여 기설정된 값은 직전 워크로드의 25%라고 가정한다.
현재 페이지 레이아웃을 구성한 후 최초의 데이터 관리 요청 처리를 수행하는 데에 소요된 평균 시간이 테이블 T2의 3 개의 페이지 모두 10 이었다고 가정한다 (730).
페이지 접근 모니터(330)가 테이블(T2)을 구성하는 페이지들(Pa, Pb, Pc)에 대하여 모니터링을 수행한 결과, 각 페이지 별 데이터 관리 요청 처리에 소요된 시간은 페이지 Pa, 페이지 Pb 및 페이지 Pc 가 각각 10, 15 및 14 이었다(740).
또한 페이지 별 어플리케이션의 데이터 접근 특성인 열 접근 정보에 따르면, 페이지 Pb와 페이지 Pc에 대해 열 Cc를 접근하는 어플리케이션에서, 많은 경우에 열 Cd를 함께 접근하는 경향이 있고, 열 Ca에 접근하는 어플리케이션에서는, 많은 경우에 열 Cb와 열 Ce를 함께 접근하는 경향이 있음이 파악되었다 (740).
동적 페이지 레이아웃 관리자(340)의 워크로드 변화 감지부(341)는 기억하고 있던 각 페이지 별 데이터 관리 요청 처리 평균 소요 시간(730)과 페이지 접근 모니터(330)로부터의 모니터링 정보(740)를 비교하여 페이지 Pb 와 페이지 Pc 에 대해 데이터 관리 요청 처리 평균 소요 시간이 25% 이상 증가했음을 감지한다.
페이지 레이아웃 재정의부(342)는 접근 모니터링 결과(740) 중 페이지 별 열 접근 정보에 기초하여, 페이지 Pb 와 페이지 Pc 에 대해 열 Ca, 열 Cb 및 열 Ce에 해당하는 데이터를 인접한 공간 배치({Ca, Cb, Ce})하고, 열 Cc 및 열 Cd에 해당하는 데이터를 연속된 공간에 배치({Cc, Cd})되도록 페이지 레이아웃을 재정의한다.
페이지 데이터 재구성부(343)는 페이지 레이아웃 재정의부(342)에서 생성한 페이지 레이아웃 재정의 정보를 바탕으로 동적으로 페이지 데이터를 재구성한다 (750).
도 8은 도 7에서 설명한 바와 같이 페이지 레이아웃을 재구성한 이후 페이지 Pc에 데이터가 저장되는 방식을 설명하기 위한 도면이다.
도 8에서 테이블 T2를 구성하는 데이터들 중 페이지 Pc에 속하는 데이터들(810)이 있다.
실제로 페이지 Pc의 데이터들은 페이지 레이아웃 재정의부(342)에서 생성한 페이지 레이아웃 재정의 정보에 따라 페이지 데이터 재구성부(343)에 의하여 우측에 도시된 형태로 저장된다.
페이지 Pc 헤더(820)가 위치하고, 열 Ca, 열 Cb 및 열 Ce에 해당하는 행의 데이터들이 연속된 공간에 저장된다 (830). 또한 열 Cc과 열 Cd에 해당하는 행의 데이터들이 연속된 공간에 저장된다 (840).
본 발명에 따르면 동적 페이지 레이아웃 재구성은 동일한 메모리 내에서뿐만 아니라 동적 데이터 배치 관리자(350)에서 수행되는 동적 데이터 배치에 의해 데이터가 저장되는 메모리가 바뀌는 경우에도 일어날 수 있다.
데이터가 저장되는 메모리가 바뀌는 경우, 페이지 접근 모니터(330)의 모니터링 정보뿐만 아니라 데이터가 이동되어 저장되는 메모리의 특성을 고려하여 메모리의 특성에 최적화된 형태로 페이지 레이아웃을 재구성하여 저장할 수 있다.
본 발명에 따르면 OLTP(OnLine Transaction Processing) 어플리케이션과 OLAP(OnLine Analytical Processing) 어플리케이션을 지원하기 위해 OLTP에 대한 운영 데이터와 OLAP의 분석 데이터를 분리 후 주기적으로 복제하여 서비스를 하는 것이 아니라 운영 중인 하나의 데이터를 가지고 동시에 효율적으로 데이터 처리를 지원할 수 있다.
예를 들어, 은행 거래 관련 데이터는 일반적으로 최근 일정 기간의 데이터에 대해서는 OLTP와 OLAP 성격의 어플리케이션들이 모두 접근하지만 오래된 데이터에 대해서는 OLAP 성격의 어플리케이션만이 드물게 접근한다. 따라서, 상대적으로 접근 및 갱신 빈도가 높은 최근 은행 거래 데이터는 DRAM에 배치하여 관리하고, 접근 빈도가 낮고 갱신 요청이 거의 없는 오래된 거래 이력 데이터는 비휘발성 메모리에 배치하여 관리함으로써 이기종 메모리를 포함하는 인-메모리 데이터 관리 장치를 효과적으로 활용할 수 있다.
또한 본 발명에 따르면 비휘발성 메모리로 데이터를 이동시킬 때 OLAP 어플리케이션의 특성을 고려하여 DRAM에 배치되었을 때와 다른 OLAP 어플리케이션에 적합한 페이지 레이아웃을 가지도록 동적으로 페이지 레이아웃을 재구성할 수 있다.
도 9는 본 발명의 일 실시예에 따른 이기종 인-메모리 데이터 관리 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 스토리지 엔진(300)에 포함된 페이지 접근 모니터(330)는 서로 다른 유형의 메모리들(도 1의 메모리 1(610) 내지 메모리 3(630) 참조)의 페이지 단위의 접근 특성을 모니터링하여 모니터링 정보를 생성한다 (단계 S910).
동적 데이터 배치 관리자(350)는 기설정된 시간 간격으로 모니터링 정보를 수신하여 페이지 별 워크로드 변화에 기초하여 워크로드가 변화된 페이지의 데이터를 다른 메모리로 재배치한다 (단계 S920).
동적 페이지 레이아웃 관리자(340)도 기설정된 시간 간격으로 모니터링 정보를 수신하고 모니터링 정보에 포함된 페이지 별 어플리케이션의 데이터 접근 특성에 기초하여 페이지 내의 열 배치를 조정함으로써 레이아웃을 재구성한다 (단계 S930).
실시예에 따라, 페이지에 대한 데이터 관리 요청 처리 소요 시간이 기설정된 값 이상 증가한 경우, 페이지에 대한 워크로드, 즉 연산 횟수와 연산 종류에 따라서 산출되는 워크로드도 함께 기설정된 값 이상이 증가할 수 있다. 이러한 경우에는 데이터 재배치와 페이지 레이아웃 재구성이 함께 수행될 수 있다. 동적 페이지 레이아웃 관리자(340)는 열 단위 데이터 접근 특성뿐만 아니라, 데이터가 재배치될 메모리의 특성에 기초하여 페이지 레이아웃을 재구성할 수 있다.
도 10은 도 9의 데이터 재배치 방법의 일 실시예를 나타내는 흐름도이다.
도 10을 참조하면, 워크로드 변화 감지부(351)는 페이지의 워크로드가 기설정된 값 이상으로 변화하는 것을 감지한다 (단계 S931). 동적 데이터 배치 관리자(350)는 페이지 접근 모니터(330)로부터 기설정된 시간 간격으로 모니터링 정보를 수신할 수 있으며, 이에 따라서 페이지에 대하여 수행된 연산 종류와 연산 횟수를 파악할 수 있다.
실시예에 따라, 워크로드를 산출함에 있어서 연산 종류에 따라서 모두 동등한 워크로드를 갖는 것으로 취급할 수도 있으나, 연산 종류에 따라서 상이한 가중치를 두고 워크로드를 산출할 수도 있다.
데이터 이동 판단부(352)는 워크로드가 기설정된 값 이상으로 변화된 페이지에 대하여 수행된 연산 종류 및 횟수에 기초하여 이동시킬 메모리를 판단한다 (단계 S922). 예를 들어, 워크로드를 산출한 것과 유사하게 접근 빈도가 동일하더라도 갱신 연산을 많이 수행하는 페이지의 경우에는 DRAM과 같은 휘발성 메모리에 배치시킬 수 있으며, 접근 빈도가 동일하더라도 단순 검색 연산을 많이 수행하는 경우에는 플래시 메모리와 같은 비휘발성 메모리에 배치시킬 수 있다.
실시예에 따라, 데이터 이동 판단부(352)는 워크로드 변화가 발생한 페이지로부터 이동시킬 메모리로 데이터를 이동시킬 경우에 예상되는 손익을 계산하여 데이터 이동 여부를 판단할 수도 있다 (단계 S923). 데이터를 이동시키는 것에 손해가 발생되는 경우에는 데이터를 이동시킬 필요가 없다.
데이터 이동부(353)는 판단 결과에 기초하여 데이터를 이동시킨다 (단계 S924).
도 11은 도 9의 페이지 레이아웃 재구성 방법의 일 실시예를 나타내는 흐름도이다.
도 11을 참조하면, 워크로드 변화 감지부(341)는 페이지 별 데이터 관리 요청 처리 소요 시간이 기설정된 값 이상 증가한 것을 감지한다 (단계 S931).
페이지 레이아웃 재정의부(342)는 기설정된 값 이상의 소요 시간 증가가 발생한 페이지에 대한 어플리케이션의 데이터 접근 특성인 열 접근 정보를 모니터링 정보로부터 추출하여 페이지 레이아웃을 재정의한다 (단계 S932).
페이지 데이터 재구성부(343)는 재구성된 페이지 레이아웃에 기초하여 페이지 내의 데이터를 재구성한다 (단계 S933). 구체적으로는 하나의 페이지 내에서 함께 접근하는 경향이 높은 열들끼리 인접한 곳에 위치하도록 레이아웃을 재구성하는 것이다. 레이아웃을 재구성함으로써 데이터 접근 효율이 향상되어 데이터 요청 처리에 소요되는 시간을 감소시킬 수 있다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
10 : 인-메모리 데이터 관리 장치
300 : 스토리지 엔진
600 : 이기종 메모리
310 : 이기종 메모리 관리자
320 : 데이터베이스 관리자
330 : 페이지 접근 모니터
340 : 동적 페이지 레이아웃 관리자
350 : 동적 데이터 배치 관리자

Claims (15)

  1. 상이한 특성을 갖는 복수 유형의 메모리들을 포함하는 이기종(hybrid) 메모리; 및
    상기 메모리들에 기입된 데이터들에 대한 워크로드를 모니터링하여 페이지 단위로 상기 복수의 메모리들 사이에서 데이터를 재배치하고, 상기 복수의 메모리들 각각을 구성하는 페이지 별 어플리케이션의 데이터 접근 접근 특성에 기초하여 페이지 단위로 페이지 레이아웃을 재구성하는 스토리지 엔진을 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  2. 청구항 1에 있어서,
    상기 스토리지 엔진은,
    상기 페이지에 대한 어플리케이션의 접근에 대하여 모니터링하여 모니터링 정보를 생성하는 페이지 접근 모니터;
    상기 모니터링 정보에 기초하여 상기 페이지에 대한 워크로드를 분석하여 데이터를 재배치하는 동적 데이터 배치 관리자; 및
    상기 모니터링 정보에 기초하여 상기 어플리케이션의 데이터 접근 특성에 적합하게 페이지 단위로 페이지 레이아웃을 재구성하는 동적 페이지 레이아웃 관리자를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  3. 청구항 2에 있어서,
    상기 동적 데이터 배치 관리자는,
    상기 모니터링 정보에 기초하여 페이지의 워크로드 변화가 기설정된 값 이상인 것을 감지하는 워크로드 변화 감지부;
    상기 워크로드 변화가 발생한 페이지에 대한 워크로드에 기초하여 복수의 메모리들 중 다른 메모리로 데이터를 이동하는 것을 판단하는 데이터 이동 판단부; 및
    상기 판단 결과에 따라 데이터를 이동하는 데이터 이동부를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  4. 청구항 3에 있어서,
    상기 데이터 이동 판단부는 상기 워크로드 변화가 발생한 페이지로부터 데이터를 이동시킬 경우에 예상되는 손익을 계산하여 데이터 이동 여부를 판단하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  5. 청구항 3에 있어서,
    상기 워크로드 변화 감지부는,
    상기 페이지에 대한 연산의 수행 횟수에 기초하여 상기 워크로드를 산출하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  6. 청구항 5에 있어서,
    상기 워크로드 변화 감지부는,
    쓰기 및 읽기를 포함하는 연산의 종류 별로 가중치를 부여하여 상기 워크로드를 산출하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  7. 청구항 2에 있어서,
    상기 동적 페이지 레이아웃 관리자는,
    상기 모니터링 정보에 포함된 페이지 별 데이터 관리 요청 처리 소요 시간에 기설정된 값 이상의 증가가 발생한 것을 감지하는 워크로드 변화 감지부;
    상기 기설정된 값 이상의 소요 시간 증가가 발생한 페이지에 대하여 상기 모니터링 정보에 포함된 상기 어플리케이션의 데이터 접근 특성에 기초하여 페이지 단위로 페이지 레이아웃을 재정의하는 페이지 레이아웃 재정의부; 및
    상기 재정의된 페이지 레이아웃에 기초하여 상기 기설정된 시간 이상의 소요 시간 증가가 발생한 페이지의 데이터를 재구성하는 페이지 데이터 재구성부를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  8. 청구항 7에 있어서,
    상기 페이지 레이아웃 재정의부는,
    상기 데이터 재배치를 수행하는 경우, 재배치되는 메모리의 특성에 기초하여 페이지 레이아웃을 재정의하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  9. 청구항 1에 있어서,
    상기 복수 유형의 메모리들은 휘발성 메모리 및 비휘발성 메모리를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 장치.
  10. 상이한 특성을 갖는 복수 유형의 메모리들을 포함하는 이기종(hybrid) 메모리를 관리하는 방법에 있어서,
    상기 복수 유형의 메모리들의 워크로드를 모니터링하여 모니터링 정보를 생성하는 단계;
    상기 모니터링 정보에 포함된 페이지 별 워크로드 변화에 기초하여 상기 복수 유형 메모리들 사이에서 데이터를 재배치하는 단계; 및
    상기 모니터링 정보에 포함된 페이지 별 어플리케이션의 데이터 접근 특성에 기초하여 페이지내의 열 배치를 조정함으로써 레이아웃을 재구성하는 단계를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 방법.
  11. 청구항 10에 있어서,
    상기 데이터를 재배치하는 단계는
    상기 워크로드에 기설정된 값 이상의 변화가 발생하는 지를 감지하는 단계;
    상기 기설정된 값 이상의 워크로드 변화가 발생한 페이지에 수행된 연산 횟수 및 연산 종류에 기초하여 이동시킬 메모리를 판단하는 단계; 및
    상기 판단 결과에 따라서 데이터를 이동시키는 단계를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 방법.
  12. 청구항 11에 있어서,
    상기 워크로드 변화가 발생한 페이지로부터 상기 이동시킬 메모리로 데이터를 이동시킬 경우에 예상되는 손익을 계산하여 데이터 이동 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 방법.
  13. 청구항 11에 있어서,
    상기 워크로드 변화를 감지하는 단계는,
    상기 페이지에 수행되는 연산 종류에 따라 가중치를 부여하여 워크로드를 산출하는 단계를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 방법.
  14. 청구항 10에 있어서,
    상기 페이지 레이아웃을 재구성하는 단계는,
    상기 모니터링 정보에 포함된 페이지 별 데이터 관리 요청 처리 소요 시간에 기설정된 값 이상 증가가 발생한 것을 감지하는 단계;
    상기 기설정된 값 이상의 소요 시간 증가가 발생한 페이지에 대하여 상기 모니터링 정보에 포함된 상기 어플리케이션의 데이터 접근 특성에 기초하여 페이지 레이아웃을 재정의하는 단계; 및
    상기 재정의된 페이지 레이아웃에 기초하여 페이지 내의 데이터를 재구성하는 단계를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 방법.
  15. 청구항 14에 있어서,
    상기 페이지 레이아웃을 재정의하는 단계는,
    상기 데이터 재배치되면서 페이지 레이아웃을 재정의하는 경우, 이동시킬 메모리의 특성에 기초하여 페이지 레이아웃을 재정의하는 단계를 포함하는 것을 특징으로 하는 인-메모리 데이터 관리 방법.
KR1020140010280A 2014-01-28 2014-01-28 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 KR20150089538A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140010280A KR20150089538A (ko) 2014-01-28 2014-01-28 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법
US14/606,916 US20150212741A1 (en) 2014-01-28 2015-01-27 Apparatus for in-memory data management and method for in-memory data management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140010280A KR20150089538A (ko) 2014-01-28 2014-01-28 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR20150089538A true KR20150089538A (ko) 2015-08-05

Family

ID=53679080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140010280A KR20150089538A (ko) 2014-01-28 2014-01-28 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법

Country Status (2)

Country Link
US (1) US20150212741A1 (ko)
KR (1) KR20150089538A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180052465A (ko) * 2016-11-10 2018-05-18 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
US10168907B2 (en) 2016-11-30 2019-01-01 SK Hynix Inc. Memory system and operating method thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639701B1 (en) * 2015-03-31 2017-05-02 EMC IP Holding Company LLC Scheduling data protection operations based on data activity
US10216543B2 (en) * 2015-08-14 2019-02-26 MityLytics Inc. Real-time analytics based monitoring and classification of jobs for a data processing platform
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10809942B2 (en) * 2018-03-21 2020-10-20 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705747B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705963B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
KR20200119164A (ko) 2019-04-09 2020-10-19 한국전자통신연구원 정보 처리 장치 및 그것에 포함된 신경망 연산 장치의 동작 방법
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688904B1 (en) * 2005-05-23 2014-04-01 Hewlett-Packard Development Company, L.P. Method for managing data storage
US7650259B2 (en) * 2007-10-01 2010-01-19 International Business Machines Corporation Method for tuning chipset parameters to achieve optimal performance under varying workload types
US9128845B2 (en) * 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180052465A (ko) * 2016-11-10 2018-05-18 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
US10168907B2 (en) 2016-11-30 2019-01-01 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
US20150212741A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
KR20150089538A (ko) 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법
Dulloor et al. Data tiering in heterogeneous memory systems
Huang et al. Improving flash-based disk cache with lazy adaptive replacement
Yang et al. I-CASH: Intelligently coupled array of SSD and HDD
Chen et al. Hystor: Making the best use of solid state drives in high performance storage systems
Stoica et al. Enabling efficient OS paging for main-memory OLTP databases
US20180276233A1 (en) Techniques for implementing hybrid flash/hdd-based virtual disk files
US8782324B1 (en) Techniques for managing placement of extents based on a history of active extents
KR101675199B1 (ko) 이종 메모리 액세스
US9280300B2 (en) Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage
Härder et al. Energy efficiency is not enough, energy proportionality is needed!
CN102521330A (zh) 一种桌面虚拟化环境下的镜像分布式存储方法
Jin et al. Optimizing B+-tree for hybrid storage systems
JP6323445B2 (ja) ストレージ装置と方法及びプログラム
Lee et al. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework
Xie et al. Dynamic data reallocation in hybrid disk arrays
Bhimani et al. FIOS: Feature based I/O stream identification for improving endurance of multi-stream SSDs
US20100257312A1 (en) Data Storage Methods and Apparatus
US20170322960A1 (en) Storing mid-sized large objects for use with an in-memory database system
CN106598501A (zh) 用于存储自动分层的数据迁移设备及方法
US20150213107A1 (en) Apparatus of managing data and method for managing data for supporting mixed workload
Qi et al. Indef: An advanced defragmenter supporting migration offloading on zns ssd
Fevgas et al. LB-Grid: An SSD efficient grid file
He et al. Improving update-intensive workloads on flash disks through exploiting multi-chip parallelism
CN203930810U (zh) 一种基于多维数据相似性的混合存储系统

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid