KR101672901B1 - 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템 - Google Patents

분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템 Download PDF

Info

Publication number
KR101672901B1
KR101672901B1 KR1020140172272A KR20140172272A KR101672901B1 KR 101672901 B1 KR101672901 B1 KR 101672901B1 KR 1020140172272 A KR1020140172272 A KR 1020140172272A KR 20140172272 A KR20140172272 A KR 20140172272A KR 101672901 B1 KR101672901 B1 KR 101672901B1
Authority
KR
South Korea
Prior art keywords
cache
file
client
metadata
node
Prior art date
Application number
KR1020140172272A
Other languages
English (en)
Other versions
KR20160067289A (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 KR1020140172272A priority Critical patent/KR101672901B1/ko
Publication of KR20160067289A publication Critical patent/KR20160067289A/ko
Application granted granted Critical
Publication of KR101672901B1 publication Critical patent/KR101672901B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

본 발명은 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템에 관한 것으로서, 데이터 노드에 저장된 파일의 청크 메타데이터 및 캐시 메타데이터를 저장하는 네임 노드, 자주 소형 파일을 유지하는 데이터 노드 캐시 및 청크를 유지하는 데이터 노드 로컬 디스크로 구성되는 하나 이상의 데이터 노드들 및 상기 소형 파일, 상기 청크 메타데이터 및 상기 캐시 메타데이터를 저장하는 클라이언트 캐시 및 청크를 유지하는 클라이언트 로컬 디스크로 구성되는 하나 이상의 클라이언트를 포함하는 하둡 분산 파일 시스템부 및 상기 HDFS와 연동되어 상기 HDFS가 소형 파일을 효과적으로 사용할 수 있도록 상기 HDFS 내 다수의 이벤트를 저장 및 통합 관리하는 서버 노드를 포함함으로써, HDFS 상에서 소형 파일의 접근 속도를 향상시키고 네트워크 부하를 최소화할 수 있다.

Description

분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템{Cache Management System for Enhancing the Accessibility of Small Files in Distributed File System}
본 발명은 캐시 관리 시스템에 관한 것으로, 더욱 상세하게는 하둡 분산 파일 시스템(HDFS; Hadoop Distributed File System)에서 클라이언트(client)의 캐시(cache)와 데이터 노드들(data nodes)의 캐시를 함께 사용함으로써 더욱 많은 소형 파일 정보들을 저장하고 데이터 노드의 디스크(disk)에 접근하는 횟수를 더욱 감소시켜 분산 파일 시스템에서 소형 파일의 처리 속도를 향상시키는 캐시 관리 시스템에 관한 것이다.
소셜 미디어의 성장과 인터넷 서비스 등의 발달로 일상 속에서 다양한 형태의 빅 데이터(big data)가 급속히 생성되어 유통되고 있다. 이러한 상황에서 방대한 데이터를 축적하고 분석하려는 노력이 활발하게 이어지고 있다. 이는 축적된 다양한 데이터의 분석을 통해 기존에 알지 못했던 새로운 가치들을 도출할 수 있기 때문이다. 이와 같이 기하급수적으로 증가하고 있는 대규모 데이터의 처리와 관리를 위한 분산 저장 처리 시스템의 연구 및 활용이 중요해지고 있다. 따라서 이에 따른 해답을 찾기 위한 시스템으로 오픈 소스 프레임워크인 하둡(Hadoop)이 주목받고 있다. 하둡은 대규모 자료의 저장 및 처리를 위한 분산 응용 프로그램을 지원하는 대표적인 오픈소스 소프트웨어 프레임워크이다. 하둡은 페타바이트 이상의 대규모 데이터를 클러스터 환경에서 저장하기 위한 하둡 분산 파일 시스템(HDFS; Hadoop Distributed File System)과 이를 기반으로 병렬 처리를 지원하기 위한 맵-리듀스(MapReduce) 프레임워크로 구성된다.
한편, 개인의 특성을 반영한 개인화 서비스가 크게 증가함에 따라 사용자 프로파일, 사용자 구매 성향 정보, 데이터 액세스 로그 등 수 ~ 수십 KB의 매우 작은 소형 파일이 다양한 분야에서 활용되고 있다. HDFS는 대용량의 데이터를 처리하기 위해 설계되었기 때문에 수십 ~ 수백 GB이상의 파일들이 64MB의 청크에 나뉘어 관리된다. HDFS의 경우 소형 파일을 저장하기 위해 하나의 청크에 수십 KB 밖에 되지 않는 단일 파일 정보가 관리되기 때문에 저장해야 할 소형 파일 수가 증가하면 파일을 관리해야 할 청크의 수도 증가한다. 이에 따라, 네임 노드에서 관리해야 할 메타데이터의 양도 증가되므로 소형 파일을 처리하는데 있어서 네임 노드에 병목 현상이 발생하게 된다.
이에, 최근 HDFS 환경에서 소형 파일을 효과적으로 저장하고 사용하기 위한 연구들이 진행되고 있다. 기존 HDFS에서 대용량 데이터의 저장을 고려하여 연관된 소형 파일들을 64MB까지 병합해 저장함으로써, HDFS에서 과도하게 발생하는 메타데이터를 감소시키기 위한 기법을 제안하였다. B. Dong은 교육용 PPT(Power Point)파일들을 슬라이드 단위로 청크에 저장하여 클라이언트 요청에 따라 연관된 슬라이드 파일들을 웹 서버의 캐시에 프리패치하여 관리한다. D. Chandrasekar는 클라이언트가 요청한 소형 파일이 포함된 청크의 메타데이터 전체를 클라이언트의 캐시에 프리패치하여 활용한다. 이러한 정책들을 통해 소형 파일 요청 시 네임 노드의 요청 부하를 최소화하였다. 그러나 하나의 캐시만을 사용하기 때문에 많은 메타데이터와 소형 파일들을 유지할 수 없다. 또한, 캐시에 유지하고 있는 파일 정보에 대한 읽기 요청이 발생하지 않게 될 경우, 데이터 노드의 디스크에 접근해서 자료를 빈번하게 전송받아야 하는 문제점이 발생한다.
이러한 문제를 해결하기 위해 단일 캐시가 아닌 다수의 데이터 노드 캐시를 사용하는 분산 캐시 기법이 요구된다. 이러한 기법은 여러 데이터 노드의 캐시에 저장된 정보들을 사용하기 때문에 클라이언트의 캐시만을 사용하던 기존 방식보다 빠르게 처리할 수 있다. 이에, 본 발명에서는 소형 파일을 효율적으로 접근하기 위한 분산 캐시 관리 시스템을 제안한다.
대한민국 공개특허공보 제10-2014-0104882호(공개일 2014.08.29.) 대한민국 공개특허공보 제10-2014-0112427호(공개일 2014.09.23.)
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 하둡 분산 파일 시스템에서 각 데이터 노드의 캐시에는 자주 요청된 소형 파일들을 유지하고 클라이언트에는 캐시 메타데이터를 저장하는 구조를 가짐으로써 분산 파일 시스템에서 파일의 읽기 성능을 향상시키는 캐시 관리 시스템을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 캐시 관리 시스템은, 데이터 노드에 저장된 파일의 청크 메타데이터 및 캐시 메타데이터를 저장하는 네임 노드, 자주 소형 파일을 유지하는 데이터 노드 캐시 및 청크를 유지하는 데이터 노드 로컬 디스크로 구성되는 하나 이상의 데이터 노드들 및 상기 소형 파일, 상기 청크 메타데이터 및 상기 캐시 메타데이터를 저장하는 클라이언트 캐시 및 청크를 유지하는 클라이언트 로컬 디스크로 구성되는 하나 이상의 클라이언트를 포함하는 하둡 분산 파일 시스템부 및 상기 HDFS와 연동되어 상기 HDFS가 소형 파일을 효과적으로 사용할 수 있도록 상기 HDFS 내 다수의 이벤트를 저장 및 통합 관리하는 서버 노드를 포함한다.
바람직하게는, 상기 서버 노드는, 상기 클라이언트가 소형 파일에 접근하도록 동작하는 분산 캐시 데이터 접근 모듈, 상기 클라이언트가 상기 클라이언트 캐시에 상기 소형 파일, 상기 캐시 메타데이터를 저장하도록 동작하는 분산 캐시 관리 모듈, 상기 클라이언트가 상기 클라이언트 캐시의 메타데이터를 갱신하도록 동작하는 분산 캐시 갱신 모듈 및 상기 클라이언트가 요청 빈도 및 요청 시간을 고려하여 상기 클라이언트 캐시에 저장된 파일을 교체하도록 동작하는 분산 캐시 교체 모듈을 포함한다.
상술한 바와 같이, 본 발명에 의한 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템에 따르면, 사용자들이 자주 사용하는 소형 파일을 각 데이터 노드의 캐시에서 유지하고 이에 대한 캐시 메타데이터 정보를 네임 노드에서 관리함으로써 디스크 접근 횟수를 감소시키며, 클라이언트 캐시에 청크 메타데이터뿐만 아니라 캐시 메타데이터를 유지함으로써 네임 노드와의 통신을 최소화하여 소형 파일의 접근 속도를 향상시키고 네트워크 부하를 최소화할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 하둡 기반 캐시 관리 시스템의 구조를 개략적으로 나타낸 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 HDFS에 관한 상세 구성도이다.
도 3은 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 소형 파일이 병합된 청크 구조를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 서버 노드의 분산 캐시 데이터 접근 모듈을 통해 소형 파일에 접근하는 과정을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 서버 노드의 분산 캐시 관리 모듈을 통해 클라이언트 캐시에 메타데이터 및 소형 파일을 저장하는 과정을 나타내는 흐름도이다.
도 6은 클라이언트 캐시에 아무 정보도 저장되지 않은 상태에서 최초로 소형 파일이 요청되는 경우 캐시 변화를 나타내는 그림이다.
도 7은 본 발명의 하둡 기반 캐시 관리 시스템에서 서버 노드의 분산 캐시 갱신 모듈을 통해 클라이언트 캐시의 메타데이터를 갱신함으로써 변화되는 캐시를 나타내는 그림이다.
도 8은 본 발명의 서버 노드의 분산 캐시 교체 모듈이 캐시 교체시 이용하는 데이터 접근 패턴 테이블을 나타내는 도면이다.
도 9는 본 발명의 하둡 기반 캐시 관리 시스템에서 서버 노드의 분산 캐시 교체 모듈을 통해 캐시 교체 시 캐시 교체 데이터를 로컬에 유지하는 과정을 나타내는 그림이다.
도 10은 본 발명의 일 실시예에 따른 캐시 관리 시스템의 분산 캐시 환경에서 서버 노드의 분산 캐시 데이터 접근 모듈(210)을 통해 요청 데이터를 검색하는 과정을 나타내는 흐름도이다.
이하, 본 발명의 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 하둡 기반 캐시 관리 시스템의 구조를 개략적으로 나타낸 블록 구성도이다.
도 1을 참조하면, 본 발명이 적용된 캐시 관리 시스템은 하둡 분산 파일 시스템(HDFS; Hadoop Distributed File System)부(100) 및 서버 노드(200)를 포함한다.
상기 HDFS(100)는 클라이언트 캐시에 사용자가 요청한 소형 파일과 메타데이터를 유지하고 데이터 노드 캐시에 여러 사용자들이 빈번하게 요청했던 소형 파일을 유지하고, 또한 서버 노드(200)와 연동되어 대용량 데이터에 최적화되어 있던 기존 HDFS의 한계를 극복하고 소형 파일을 효과적으로 저장 및 관리한다.
상기 서버 노드(200)는 HDFS(100)와 연동되고 분산 캐시 데이터 접근 모듈(210), 분산 캐시 관리 모듈(220), 분산 캐시 갱신 모듈(230) 및 분산 캐시 교체 모듈(240)을 포함하여, HDFS(100)가 소형 파일을 효과적으로 사용할 수 있도록 HDFS(100) 내 다수의 이벤트를 저장 및 통합 관리한다.
더욱 상세하게 도 2를 참조하여 설명하면, 도 2는 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 HDFS(100)에 관한 상세 구성도로서, 본 발명의 HDFS(100)는 크게 하둡 클러스터(110)와 이에 접근하여 실제 데이터를 활용하는 클라이언트(120-1, 120-2)(총괄하여 "120")로 구성된다.
먼저, 하둡 클러스터(110)는 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템으로서, 데이터 노드에 저장된 파일의 메타데이터 정보를 저장하는 네임 노드(112) 및 실제 파일 복사본을 저장하는 데이터 노드들(114-1, 114-2, ..., 114-n)(총괄하여 "114")을 포함하여 구성된다.
구체적으로, 네임 노드(112)는, 각 데이터 노드(114)의 로컬 디스크(118-1, 118-2, ..., 118-n)(총괄하여 "118")에서 유지되고 있는 청크의 위치 정보를 나타내는 청크 메타데이터뿐만 아니라, 각 데이터 노드(114)의 캐시(116-1, 116-2, ..., 116-n)(총괄하여 "116")에 유지되고 있는 소형 파일의 위치 정보를 나타내는 캐시 메타데이터를 함께 관리한다.
그리고, 각각의 데이터 노드(114)는, 다수의 클라이언트들(120)에 의해 자주 요청된 소형 파일을 유지하는 캐시(116) 및 청크를 유지하는 로컬 디스크(118)로 구성된다.
다음으로, 각각의 클라이언트(120)는 클라이언트가 요청한 소형 파일, 요청된 파일을 저장하고 있는 청크의 메타데이터와 캐시의 메타데이터를 네임 노드(112)와 데이터 노드(114)로부터 수신하여 저장하는 캐시(122-1, 122-2)(총괄하여 "122") 및 청크를 유지하는 로컬 디스크(124-1, 124-2)(총괄하여 "124")로 구성된다. 즉, 본 발명의 일 실시예에 따른 클라이언트(120)의 캐시(122)는 청크 메타데이터 외에 추가적으로 클라이언트가 요청한 소형 파일과 캐시 메타데이터를 유지하는 구조이다.
본 발명에서 초점을 맞추고 있는 소형 파일 데이터는 일반적으로 크기가 매우 작고 순차 쓰기 및 읽기가 수행될 가능성이 높다. 살펴본 바와 같이, 본 발명의 클라이언트(120)는 요청한 파일을 저장하고 있는 청크의 메타데이터 정보와 요청 파일을 각각 네임 노드(112)와 데이터 노드(114)로부터 수신하여 자신의 캐시(122)에 저장한다. 이에, 본 발명에 따르면, 클라이언트 캐시에 청크 메타데이터만을 유지하여 요청한 파일 정보가 캐시에 존재하지 않을 시 데이터 노드의 디스크로 파일을 요청해야 하는 종래 기법과 달리, 소형 파일의 처리 속도를 향상시킬 수 있다.
또한, 서로 연관된 정보의 소형 파일들은 클라이언트들이 다시 찾을 가능성이 높으며, 유사한 성향을 갖는 클라이언트들은 서로 비슷한 파일 정보를 찾을 확률이 높다. 따라서, 본 발명과 같이, 클라이언트들이 빈번하게 요청했던 정보들을 각 데이터 노드(114)의 캐시(116)가 유지하게 되면, 요청 파일을 유지하고 있는 해당 데이터 노드(114)의 캐시(116)에서 정보를 검색하여 요청한 파일을 빠르게 찾을 수 있다. 또한, 캐시 메타데이터 정보를 청크 메타데이터 정보와 함께 사용하면 처리 속도를 향상시킬 수 있고, 더불어 클라이언트(120)가 네임 노드(112)에 메타 데이터를 요청하는 횟수가 감소되어 네임 노드(112)에서 발생하게 되는 처리 부하를 저하시킬 수 있다.
도 3은 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 소형 파일이 병합된 청크 구조를 나타낸 도면이다.
HDFS는 기본적으로 크기가 큰 데이터를 64MB 청크 단위로 관리를 한다. 그렇기 때문에 크기가 수 ~ 수십 KB 단위인 소형 파일들을 관리하기에는 적합하지 않다. 실제 HDFS에서 소형 파일을 관리하게 될 경우 청크 하나에 수십 KB 밖에 되지 않는 소형 파일이 저장되어 관리된다. 따라서, 많은 양의 소형 파일을 관리해야 할 경우, 소형 파일을 저장하기 위한 청크의 수가 증가되고 네임 노드에서 관리해야할 메타데이터의 양도 많아져 병목현상이 발생할 수도 있다.
이를 해결하기 위해 본 발명의 캐시 관리 시스템에서는 연관된 소형 파일들을 병합하여 도 3과 같이 64MB가 넘지 않는 병합된 파일 형태로 관리한다. 도 3에 도시된 바와 같이, 병합된 파일의 상위에는 소형 파일들의 (offset, length)가 인덱스 형태로 유지되어 파일들의 위치를 알 수 있다. 여기서, offset과 length는 각각 해당 소형 파일의 캐시 내 위치와 파일 크기 정보를 나타낸다. 이렇게 병합된 파일에 대한 메타데이터 정보는 상기와 같이 네임 노드(112)에 저장되어 관리된다.
도 4는 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 서버 노드(200)의 분산 캐시 데이터 접근 모듈(210)을 통해 소형 파일에 접근하는 과정을 나타내는 흐름도이다.
도 4에 도시된 바와 같이, 만약 사용자로부터 최초로 소형 파일(File 1, File 2 또는 File 3)이 요청되면, 서버 노드(200)의 분산 캐시 데이터 접근 모듈(210)을 통해 클라이언트(120)는 네임 노드(112)와의 통신을 통해 요청된 소형 파일을 포함하고 있는 청크가 어떤 데이터 노드(114)에 존재하는지 위치를 파악한다(S410). 그 후 요청된 파일이 포함된 해당 데이터 노드(120)의 청크에 접근하여(S420), 병합 파일의 인덱스 정보(offset, length)를 통해 해당 청크에서 요청된 파일을 추출하게 된다(S430).
도 5는 본 발명의 일 실시예에 따른 하둡 기반 캐시 관리 시스템에서 서버 노드(200)의 분산 캐시 관리 모듈(220)을 통해 클라이언트 캐시(122)에 메타데이터 및 소형 파일을 저장하는 과정을 나타내는 흐름도이다.
도 5에 도시된 바와 같이, 사용자로부터 최초로 소형 파일이 요청되면, 서버 노드(200)의 분산 캐시 관리 모듈(220)을 통해 클라이언트(120)는 네임 노드(112)와의 통신을 통해 메타데이터를 요청하고, 메타데이터 정보를 통해 요청된 소형 파일이 어떤 데이터 노드(114)의 캐시(116) 혹은 디스크(118)에 존재하는지 위치를 파악한다(S510). 단계 S510에서 요청된 파일의 위치를 파악하면, 클라이언트(120)는 네임 노드(112)에서 요청된 파일에 대한 메타데이터들을 추출하여 클라이언트의 캐시(122)에 저장한다(S520). 이러한 과정을 통해 추후 파일 요청 시, 캐시(122)에 저장된 메타데이터에 요청된 파일 정보가 존재하게 되면, 클라이언트(120)는 네임 노드(112)와의 통신을 하지 않고 바로 데이터 노드(114)에 접근할 수 있어 소형 파일에 대한 접근성을 향상시킬 수 있다.
다음으로, 클라이언트(120)는 요청 파일들이 데이터 노드의 캐시(116)에 포함되어 있으면 해당 캐시에 접근하여 파일을 요청하고, 데이터 노드의 디스크(118)에 포함되어 있으면 해당 청크에 접근하여 인덱스 정보(offest, length)를 통해 원하는 파일을 요청한다(S530). 마지막으로, 클라이언트(120)는 데이터 노드(114)에서 받아온 파일을 클라이언트 캐시(122)에 저장한다(S540). 이를 통해, 본 발명의 일 실시예에 따른 캐시 관리 시스템에 의하면, 추가적인 파일 요청 시 클라이언트 캐시(122)에 요청한 소형 파일이 존재하는지 확인하고, 존재할 경우 바로 파일을 읽어들일 수 있어 소형 파일에 대한 요청을 빠르게 처리할 수 있다.
보다 구체적으로, 도 6은 클라이언트 캐시에 아무 정보도 저장되지 않은 상태에서 최초로 소형 파일이 요청되는 경우 캐시 변화를 나타내는 그림이다.
도 6을 참조하여, 클라이언트 캐시(122-1)에 아무 정보도 저장되지 않은 상태에서 클라이언트(120-1)를 통해 최초로 소형 파일이 요청되면, 클라이언트(120-1)는 네임 노드(112)와의 통신을 통해 캐시 메타데이터 정보를 검색하고, 요청 파일을 저장하고 있는 청크 메타데이터 정보를 검색하게 된다. 캐시 메타데이터에 정보가 존재하지 않으면, 청크 메타데이터를 통해 정보를 찾아, 해당 데이터 노드(114-1)의 청크(A)에 접근하여 파일을 요청한다. 그 후, 클라이언트의 캐시(122-1)에는 파일 1, 2 및 3을 포함하고 있는 청크의 메타데이터 정보와 요청받은 파일 1, 2 및 3을 저장하고, 해당 데이터 노드(114-1)의 캐시(116-1)에는 파일 1, 2 및 3을 저장한다. 이런 처리 과정을 통해 향후 데이터 요청 시, 클라이언트 캐시(122)에 요청 파일이 존재하면 요청을 빠르게 처리할 수 있게 된다. 또한, 클라이언트 캐시(122)에 저장된 청크 메타데이터의 정보에 요청 파일 정보가 포함되어 있다면, 네임 노드(112)와 통신을 하지 않고 바로 해당 청크에 접근해 파일을 요청 받기 때문에 네임 노드(112)와의 통신을 통해 처리할 때보다 빠른 처리를 수행한다. 클라이언트(120-2)도 클라이언트(120-1)과 같은 방법으로 처리된다.
이후, 시간이 지남에 따라 여러 클라이언트들(120)이 많은 파일들을 요청하기 때문에 각 데이터 노드(114)의 캐시(116)에 유지하는 파일들은 변경된다. 따라서, 클라이언트 캐시(122)에서 유지하고 있던 캐시 메타데이터 정보와 네임 노드(112)에서 유지하는 캐시 메타데이터 정보가 다른 경우가 발생된다. 이를 해결하기 위해, 본 발명의 하둡 기반 캐시 관리 시스템에서는 서버 노드(200)의 분산 캐시 갱신 모듈(230)을 통해 캐시 메타데이터 갱신 정책을 수행하며, 이는 아래 도 7을 참조하여 보다 상세히 설명된다.
도 7은 본 발명의 하둡 기반 캐시 관리 시스템에서 서버 노드(200)의 분산 캐시 갱신 모듈(230)을 통해 클라이언트 캐시(122)의 메타데이터를 갱신함으로써 변화되는 캐시를 나타내는 그림이다.
우선, 갱신 정책이 적용되지 않은 처리 과정에 대해 살펴보면, 파일 21에 대한 요청이 왔을 때, 클라이언트(120-1)는 자신의 캐시(122-1)에 있는 정보를 검색한다. 이때, 파일 21에 대한 캐시 메타데이터 정보가 존재하기 때문에 데이터 노드(114-2)에 파일을 요청 받기 위해 접근한다. 하지만 데이터 교체로 인하여 파일 21이 데이터 노드(114-2)의 캐시(116-2)에 존재 하지 않으므로, 클라이언트(122-1)는 파일 21을 전송받지 못한다. 따라서, 다시 네임 노드(112)와의 통신을 통해 파일 21이 저장된 위치를 파악 후, 파일 21을 요청 받아야 한다. 이처럼 네임 노드(112)의 캐시 메타데이터 정보와 클라이언트의 캐시(122)에 저장된 캐시 메타데이터 정보의 동기화가 이루어지지 않으면, 위와 같은 문제가 발생하여 파일을 처리하는데 오랜 시간이 소요된다. 그러므로 클라이언트(120)와 네임 노드(112)와의 캐시 메타데이터 갱신 정책이 필요하다.
이에, 본 발명의 하둡 기반 캐시 관리 시스템에서는 서버 노드(200)의 분산 캐시 갱신 모듈(230)을 통해 클라이언트(120)가 일정 주기마다 네임 노드(112)와의 통신을 통해 자신의 캐시 메타데이터 정보를 갱신한다. 이때, 클라이언트(120)는 네임 노드(112)로부터 자신의 캐시에 유지하고 있는 캐시 메타데이터의 정보만을 받아온다. 이를 통해, 파일 21에 대한 요청이 왔을 때, 자신의 캐시에 요청 파일에 대한 정보가 없는 것을 확인한다. 따라서, 바로 네임 노드(112)와의 통신을 통해 파일 21을 요청 받을 수 있다. 이처럼, 본 발명의 캐시 관리 시스템에 따르면, 주기적으로 클라이언트 캐시(122)의 캐시 메타데이터를 갱신하여 네임 노드(112)와 동기화를 시켜줌으로써 불필요한 작업 처리 시간이 감소될 수 있다. 이하, 서버 노드(200)의 분산 캐시 갱신 모듈(230)을 통한 클라이언트 캐시의 메타데이터 갱신에 대하여 보다 구체적으로 설명된다.
클라이언트의 캐시(122)에도 제한된 용량이 있기 때문에 일정 양의 파일과 메타 데이터만을 유지할 수 있다. 따라서, 캐시 용량이 차고 새로운 소형 파일이 요청되면 클라이언트 캐시(122)는 저장된 파일 중 가장 필요 없다고 판단되는 파일과 교체를 한다. 대부분의 캐시 정책이나 기존 기법의 경우, LRU(Least Recently Used) 정책을 사용하여 가장 최근에 사용되지 않은 데이터를 교체한다. 하지만, 저장된 소형 파일들의 특성상 연관된 정보들이고 유사한 성향의 다른 사용자들이 비슷한 파일들을 많이 요청하기 때문에 요청 빈도가 많은 파일들이 다음에도 활용될 확률이 높다. 따라서, 데이터를 사용한 최종 시간이 좀 지났다 하더라도 요청 빈도가 높은 파일이 캐시에 유지되고 있어야 한다. 하지만, 너무 오래 사용되지 않은 파일은 의미가 없는 데이터가 될 수도 있기 때문에 사용 시간에 대한 부분도 무시할 수 없게 된다.
상기한 점에 착안하여, 본 발명의 하둡 기반 캐시 관리 시스템의 캐시 교체에서 분산 캐시 교체 모듈(240)은 LFU(Least Frequently Used)와 LRU(Least Recently Used) 정책을 결합하여 사용한다. 도 8은 본 발명의 서버 노드(200)의 분산 캐시 교체 모듈(240)이 캐시 교체시 이용하는 데이터 접근 패턴 테이블을 나타내는 도면으로서, 분산 캐시 교체 모듈(240)은 요청 빈도와 요청 시간 사이의 적절한 비중을 통해 교체할 파일을 추출하기 위해, 클라이언트(120)가 도 8과 같이 소형 파일 이름, 요청 빈도, 시간 정보 형태의 데이터 접근 패턴 테이블을 유지하게 한다. 그리고, 분산 캐시 교체 모듈(240)은 클라이언트(120)가 접근 패턴 테이블에서 유지하고 있는 각 파일들의 요청 빈도와 시간 정보를 가지고 클라이언트 캐시(122)에서 교체해야 할 파일을 수학식 1을 통해 선별하도록 한다.
(수학식 1)
αRFre + (1-α)RTime
이때, RFre는 요청 빈도를 나타내고 RTime은 요청 시간을 나타내며, α는 RFre와 Rtime에 대해 가중치를 부여하기 위해 사용하는 값이다. 분산 캐시 교체 모듈(240)은 클라이언트(120)가 계산된 값 중에 가장 낮은 값을 갖는 파일을 캐시에서 교체하도록 한다.
도 9는 본 발명의 하둡 기반 캐시 관리 시스템에서 서버 노드(200)의 분산 캐시 교체 모듈(240)을 통해 캐시 교체 시 캐시 교체 데이터를 로컬에 유지하는 과정을 나타내는 그림이다.
본 발명의 분산 캐시 교체 모듈(240)은 캐시 교체 시 클라이언트(120-1)가 클라이언트 캐시(122-1)에서 수학식 1에 의해 선택되어 교체된 파일을 완전히 삭제하지 않고 도 9와 같이 클라이언트 디스크(124-1)에 유지하도록 한다. 이에, 본 발명에 따르면, 현재는 캐시 저장 공간이 부족하여 파일이 교체되지만 캐시에 비해 상대적으로 저장 공간이 큰 클라이언트 디스크(124-1)에 유지함으로써, 추후 다시 파일이 요청 되었을 때 네임 노드(112)와의 통신 없이 빠르게 파일에 접근할 수 있도록 한다.
도 10은 본 발명의 일 실시예에 따른 캐시 관리 시스템의 분산 캐시 환경에서 서버 노드(200)의 분산 캐시 데이터 접근 모듈(210)을 통해 요청 데이터를 검색하는 과정을 나타내는 흐름도이다.
도 10을 참조하면, 사용자로부터 파일이 요청되면 클라이언트(120)는 우선 자신의 캐시(122)에 요청 파일이 존재하는지 확인하고(S1010), 파일이 존재하면 바로 요청 파일을 전송받는다(S1012).
단계 S1010에서 클라이언트 캐시(122)에 요청 파일이 존재하지 않으면, 클라이언트(120)는 캐시에서 유지하고 있는 청크 메타데이터와 캐시 메타데이터를 활용하여 요청한 파일이 존재하는지 확인하고(S1020), 메타데이터가 존재하면 해당 분산 캐시(116) 또는 데이터 노드(118)에 접근하여 요청 파일을 전송받는다(S1022).
단계 S1020에서 클라이언트 캐시의 메타데이터에도 요청 파일이 존재하지 않으면, 클라이언트(120)는 자신의 로컬 디스크(124)를 검색하여 캐시(122)에서 삭제되어 내려온 파일 정보들을 중 요청 파일이 존재하는지 확인하고(S1030), 로컬 디스크(124)에 요청 파일이 존재하면 요청 파일을 전송받는다.
단계 S1030에서 클라이언트의 로컬 디스크(124)에도 요청 파일이 존재하지 않으면, 클라이언트(120)는 네임 노드(112)와의 통신을 통해 네임 노드(112)에서 유지하고 있는 전체 캐시 메타데이터 정보를 활용해 다른 분산 캐시에 정보가 존재하는지 확인하고(S1040), 해당 분산 캐시에서 요청 파일을 전송받는다(S1042).
마지막으로, 단계 S1040에서 클라이언트의 분산 캐시(114)에도 요청 파일이 존재하지 않으면, 클라이언트(120)는 데이터 노드의 로컬 디스크(116)의 청크에 접근하여 파일을 전송받는다(S1050).
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
100 : HDFS부 110 : 하둡 분산 클러스터
112 : 네임 노드 114 : 데이터 노드
116 : 데이터 노드 캐시 118 : 데이터 노드 로컬 디스크
120 : 클라이언트 122 : 클라이언트 캐시
124 : 클라이언트 로컬 디스크 200 : 서버 노드
210 : 분산 캐시 데이터 접근 모듈 220 : 분산 캐시 관리 모듈
230 : 분산 캐시 갱신 모듈 240 : 분산 캐시 교체 모듈

Claims (8)

  1. 삭제
  2. 데이터 노드에 저장된 파일의 청크 메타데이터 및 캐시 메타데이터를 저장하는 네임 노드, 자주 소형 파일을 유지하는 데이터 노드 캐시 및 청크를 유지하는 데이터 노드 로컬 디스크로 구성되는 하나 이상의 데이터 노드들 및 상기 소형 파일, 상기 청크 메타데이터 및 상기 캐시 메타데이터를 저장하는 클라이언트 캐시 및 청크를 유지하는 클라이언트 로컬 디스크로 구성되는 하나 이상의 클라이언트를 포함하는 하둡 분산 파일 시스템부 및
    상기 하둡 분산 파일 시스템부와 연동되어 상기 하둡 분산 파일 시스템부가 소형 파일을 효과적으로 사용할 수 있도록 상기 하둡 분산 파일 시스템부 내 다수의 이벤트를 저장 및 통합 관리하는 서버 노드를 포함하며,
    상기 청크는,
    상기 소형 파일들이 병합된 것으로서, 병합된 상기 소형 파일들의 상위에는 상기 소형 파일의 캐시 내 위치를 나타내는 오프셋(offset) 및 상기 소형 파일의 크기를 나타내는 길이(length)가 인덱스 형태로 유지되는, 캐시 관리 시스템.
  3. 데이터 노드에 저장된 파일의 청크 메타데이터 및 캐시 메타데이터를 저장하는 네임 노드, 자주 소형 파일을 유지하는 데이터 노드 캐시 및 청크를 유지하는 데이터 노드 로컬 디스크로 구성되는 하나 이상의 데이터 노드들 및 상기 소형 파일, 상기 청크 메타데이터 및 상기 캐시 메타데이터를 저장하는 클라이언트 캐시 및 청크를 유지하는 클라이언트 로컬 디스크로 구성되는 하나 이상의 클라이언트를 포함하는 하둡 분산 파일 시스템부 및
    상기 하둡 분산 파일 시스템부와 연동되어 상기 하둡 분산 파일 시스템부가 소형 파일을 효과적으로 사용할 수 있도록 상기 하둡 분산 파일 시스템부 내 다수의 이벤트를 저장 및 통합 관리하는 서버 노드를 포함하며,
    상기 서버 노드는,
    상기 클라이언트가 소형 파일에 접근하도록 동작하는 분산 캐시 데이터 접근 모듈,
    상기 클라이언트가 상기 클라이언트 캐시에 상기 소형 파일, 상기 캐시 메타데이터를 저장하도록 동작하는 분산 캐시 관리 모듈,
    상기 클라이언트가 상기 클라이언트 캐시의 메타데이터를 갱신하도록 동작하는 분산 캐시 갱신 모듈 및
    상기 클라이언트가 요청 빈도 및 요청 시간을 고려하여 상기 클라이언트 캐시에 저장된 파일을 교체하도록 동작하는 분산 캐시 교체 모듈을 포함하는, 캐시 관리 시스템.
  4. 청구항 제3항에서,
    상기 분산 캐시 데이터 접근 모듈은, 상기 클라이언트가:
    사용자로부터 최초로 상기 소형 파일이 요청되면, 상기 네임 노드의 메타데이터를 통해 요청된 상기 소형 파일이 포함된 데이터 노드의 위치를 파악하는 단계,
    요청된 상기 소형 파일이 포함된 상기 데이터 노드의 청크에 접근하는 단계 및
    인덱스 정보를 통해 해당 청크에서 요청된 상기 소형 파일을 추출하는 단계를 통해 동작하도록 구성되는, 캐시 관리 시스템.
  5. 청구항 제3항에서,
    상기 분산 캐시 관리 모듈은, 상기 클라이언트가:
    사용자로부터 최초로 상기 소형 파일이 요청되면, 상기 네임 노드의 메타데이터를 통해 요청된 상기 소형 파일이 포함된 데이터 노드의 위치를 파악하는 단계,
    상기 네임 노드에서 요청된 상기 소형 파일에 대한 메타데이터를 추출하여 클라이언트 캐시에 저장하는 단계,
    상기 데이터 노드의 캐시 또는 로컬 디스크에 접근하여 상기 소형 파일을 추출하는 단계 및
    상기 소형 파일을 상기 클라이언트 캐시에 저장하는 단계를 통해 동작하도록 구성되는, 캐시 관리 시스템.
  6. 청구항 제3항에서,
    상기 분산 캐시 갱신 모듈은,
    상기 클라이언트가 일정 주기마다 상기 네임 노드와의 통신을 통해 자신의 캐시 메타데이터 정보를 갱신하도록 구성되는, 캐시 관리 시스템.
  7. 청구항 제3항에서,
    상기 분산 캐시 교체 모듈은,
    상기 클라이언트가 하기 수학식 1을 통해 계산된 값 중 가장 낮은 값을 가지는 파일을 캐시에서 교체하도록 구성되는, 캐시 관리 시스템.
    (수학식 1)
    αRFre + (1-α)RTime
    단, RFre는 요청 빈도, RTime은 요청 시간, α는 가중치 값을 나타낸다.
  8. 청구항 제3항에서,
    상기 분산 캐시 데이터 접근 모듈은, 상기 클라이언트가:
    사용자로부터 파일이 요청되면, 상기 클라이언트 캐시에 요청 파일이 존재하는지 확인하고, 존재하면 상기 클라이언트 캐시에서 상기 요청 파일을 추출하는 단계,
    상기 클라이언트 캐시에 상기 요청 파일이 존재하지 않으면, 상기 클라이언트 캐시의 청크 메타데이터 및 캐시 메타데이터에 상기 요청 파일에 대한 정보가 존재하는지 확인하고, 존재하면 해당 데이터 노드의 캐시 또는 로컬 디스크에 접근하여 요청 파일을 전송받는 단계;
    상기 클라이언트 캐시의 메타데이터에 상기 요청 파일이 존재하지 않으면, 클라이언트 로컬 디스크에 상기 요청 파일이 존재하는지 확인하고, 존재하면 상기 클라이언트 로컬 디스크에서 상기 요청 파일을 추출하는 단계,
    상기 클라이언트 로컬 디스크에 상기 요청 파일이 존재하지 않으면, 상기 네임 노드의 캐시 메타데이터 정보를 활용해 다른 데이터 노드 캐시에 상기 요청 파일이 존재하는지 확인하고, 존재하면 상기 데이터 노드 캐시에서 상기 요청 파일을 전송받는 단계 및
    상기 데이터 노드 캐시에 상기 요청 파일이 존재하지 않으면, 상기 데이터 노드 로컬 디스크로부터 상기 요청 파일을 전송받는 단계를 포함하는, 캐시 관리 시스템.
KR1020140172272A 2014-12-03 2014-12-03 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템 KR101672901B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140172272A KR101672901B1 (ko) 2014-12-03 2014-12-03 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140172272A KR101672901B1 (ko) 2014-12-03 2014-12-03 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템

Publications (2)

Publication Number Publication Date
KR20160067289A KR20160067289A (ko) 2016-06-14
KR101672901B1 true KR101672901B1 (ko) 2016-11-07

Family

ID=56191560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140172272A KR101672901B1 (ko) 2014-12-03 2014-12-03 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템

Country Status (1)

Country Link
KR (1) KR101672901B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368608A (zh) * 2017-08-07 2017-11-21 杭州电子科技大学 基于arc替换算法的hdfs小文件缓存管理方法
KR20190023809A (ko) 2017-08-30 2019-03-08 단국대학교 산학협력단 소형 이미지 데이터의 분산 데이터베이스 저장 시스템 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10298709B1 (en) * 2014-12-31 2019-05-21 EMC IP Holding Company LLC Performance of Hadoop distributed file system operations in a non-native operating system
CN107590191A (zh) * 2017-08-11 2018-01-16 郑州云海信息技术有限公司 一种hdfs海量小文件处理方法及系统
CN107657027B (zh) * 2017-09-27 2021-09-21 北京小米移动软件有限公司 数据存储方法及装置
CN107613016B (zh) * 2017-10-11 2020-05-22 网宿科技股份有限公司 文件批量下载方法、客户端、分发服务器及系统
CN109271361B (zh) * 2018-08-13 2020-07-24 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 海量小文件的分布式存储方法和系统
CN109063192B (zh) * 2018-08-29 2021-01-29 江苏云从曦和人工智能有限公司 一种高性能海量文件存储系统工作方法
CN109766318B (zh) * 2018-12-17 2021-03-02 新华三大数据技术有限公司 文件读取方法及装置
CN109451069B (zh) * 2018-12-29 2021-01-29 江苏鼎峰信息技术有限公司 基于分布式存储的网络数据文件库存储及查询方法
CN110069466B (zh) * 2019-04-15 2021-02-19 武汉大学 一种面向分布式文件系统的小文件存储方法及装置
CN112882999A (zh) * 2021-01-31 2021-06-01 云知声智能科技股份有限公司 基于分布式缓存亲和性调度的训练加速方法、装置及系统
CN114168084A (zh) * 2021-12-10 2022-03-11 中国电信股份有限公司 文件合并方法、文件合并装置、电子设备以及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101601877B1 (ko) * 2011-10-24 2016-03-09 한국전자통신연구원 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법
KR101371202B1 (ko) * 2012-04-19 2014-03-10 케이티하이텔 주식회사 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법
KR20140045738A (ko) * 2012-10-09 2014-04-17 성균관대학교산학협력단 클라우드 스토리지 시스템
KR101553986B1 (ko) * 2012-10-30 2015-09-18 동국대학교 산학협력단 분산 데이터 저장, 복원 시스템 및 방법
KR101542299B1 (ko) 2013-02-18 2015-08-07 단국대학교 산학협력단 하둡 기반의 질의 처리 방법 및 장치
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368608A (zh) * 2017-08-07 2017-11-21 杭州电子科技大学 基于arc替换算法的hdfs小文件缓存管理方法
KR20190023809A (ko) 2017-08-30 2019-03-08 단국대학교 산학협력단 소형 이미지 데이터의 분산 데이터베이스 저장 시스템 및 방법

Also Published As

Publication number Publication date
KR20160067289A (ko) 2016-06-14

Similar Documents

Publication Publication Date Title
KR101672901B1 (ko) 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
US20210044662A1 (en) Server side data cache system
US9858303B2 (en) In-memory latch-free index structure
CN104243425B (zh) 一种在内容分发网络中进行内容管理的方法、装置及系统
US9396290B2 (en) Hybrid data management system and method for managing large, varying datasets
JP2019194882A (ja) ファーストクラスデータベース要素としての半構造データの実装
US11561930B2 (en) Independent evictions from datastore accelerator fleet nodes
US8463846B2 (en) File bundling for cache servers of content delivery networks
CN103530387A (zh) 一种hdfs针对小文件的改进方法
US11747996B2 (en) System and methods for implementing a key-value data store
CN110162528A (zh) 海量大数据检索方法及系统
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
US9195611B2 (en) Efficiently updating and deleting data in a data storage system
CN109033292A (zh) 一种数据库分布式缓存系统及方法
US8874860B2 (en) Logical buffer pool extension
US9262511B2 (en) System and method for indexing streams containing unstructured text data
CN105683928B (zh) 用于数据高速缓存策略的方法、服务器和存储器设备
Sheoran et al. Optimized mapfile based storage of small files in hadoop
JP2020528614A (ja) 分散ストレージ環境のための認知ファイルおよびオブジェクト管理のための方法、コンピュータ・プログラムおよびシステム
Bok et al. An efficient distributed caching for accessing small files in HDFS
Patel et al. A novel approach for efficient handling of small files in HDFS
US20220342888A1 (en) Object tagging
Bok et al. An efficient cache management scheme for accessing small files in Distributed File Systems
Chandrasekar et al. Classification based metadata management for HDFS
US11341163B1 (en) Multi-level replication filtering for a distributed database

Legal Events

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