KR20160050930A - 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR20160050930A
KR20160050930A KR1020140150131A KR20140150131A KR20160050930A KR 20160050930 A KR20160050930 A KR 20160050930A KR 1020140150131 A KR1020140150131 A KR 1020140150131A KR 20140150131 A KR20140150131 A KR 20140150131A KR 20160050930 A KR20160050930 A KR 20160050930A
Authority
KR
South Korea
Prior art keywords
data
query
transaction
change log
information
Prior art date
Application number
KR1020140150131A
Other languages
English (en)
Other versions
KR102253841B1 (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 KR1020140150131A priority Critical patent/KR102253841B1/ko
Publication of KR20160050930A publication Critical patent/KR20160050930A/ko
Application granted granted Critical
Publication of KR102253841B1 publication Critical patent/KR102253841B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체를 개시한다.
본 실시예의 일 측면에 의하면, 하둡의 HDFS에 축적된 빅 데이터를 그대로 사용하면서 데이터의 수정을 포함하는 트랜잭션을 처리할 수 있는 빅 데이터 시스템을 제공하는 데 주된 목적이 있다.

Description

대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체{Apparatus for Processing Transaction with Modification of Data in Large-Scale Distributed File System and Computer-Readable Recording Medium with Program}
본 실시예는 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아님을 밝혀둔다.
PC(Personal Computer), 모바일 장치 및 인터넷의 이용이 일상화되면서 IT 사업자가 처리해야 하는 데이터양은 기하급수적으로 증가하고 있다. 사용자가 제작하는 UCC(User Created Contents), SNS(Social Network Service) 데이터는 데이터 증가 속도뿐 아니라 형태와 질에서도 기존과 다른 양상을 보이고 있다. 따라서 이와 같이 다양하고 방대한 규모의 데이터는 기업이나 국가의 미래 경쟁력을 좌우하는 중요한 요소로 활용될 수 있다. 과거에도 대규모 데이터를 분석하고 의미 있는 정보를 찾아내려는 시도는 있었지만, 현재의 빅데이터(BigData) 환경은 과거와 비교해 데이터양과 다양성 측면에서 과거와는 비교할 수 없을 정도가 되었다.
최근에 등장한 빅데이터 처리 시스템으로 하둡(Hadoop)은 구글(Google)의 GFS(Google File System)을 기반으로 인터넷 환경에서 HTML, TEXT 등의 다양한 대규모의 비정형 데이터를 처리할 수 있도록 개발되어 왔다. 하둡은 HDFS(Hadoop Distributed File System)와 HDFS에서 관계형 데이터베이스(Relational Database)에서 사용하는 SQL(Structured Query Language)과 같은 질의를 처리하는 엔진을 포함한다.
그러나 하둡과 같은 빅데이터 처리 시스템은 한번 데이터가 적재되면, 갱신하거나 삭제하는 등의 수정이 곤란한 불편을 있다. 이러한 불편을 해소하고자 데이터의 수정을 포함하는 트랜잭션(Transaction)을 처리하기 위해 별도의 데이터 베이스를 사용하는 것은 용량에 있어서나 가격에 있어서 제약이 존재하게 된다. 최근 제안되고 있는 빅데이터 처리 시스템으로써, 데이터 수정이 용이한 키(Key)/밸류(Value) 기반으로 저장하여 이미 파일 시스템 내에 저장된 데이터에 트랜잭션을 지원하도록 하는 빅데이터 처리 시스템이 잇다. 그러나 기존의 빅 데이터 처리 시스템을 앞서 언급한 빅 데이터 처리 시스템으로 마이그레이션(Migration) 하는 것은 상당한 비용을 필요로 하는 단점이 있다.
본 실시예는, 하둡의 HDFS에 축적된 빅 데이터를 그대로 사용하면서 데이터의 수정을 포함하는 트랜잭션을 처리할 수 있는 빅 데이터 시스템을 제공하는 데 주된 목적이 있다.
본 실시예의 일 측면에 의하면, 대용량 분산 파일 시스템에, 클라이언트(Client)로부터 수신한 질의를 파싱(Parsing)하는 과정과 파싱된 질의가 데이터 수정을 포함하는 트랜잭션(Transaction)에 관한 질의인 경우, 상기 트랜잭션과 관련된 데이터에 대해 락(Lock)을 획득하는 과정과 상기 트랜잭션과 관련된 데이터가 저장되어 있는 데이터 노드로 상기 트랜잭션 정보를 전송하는 과정과 상기 트랜잭션 정보를 수신하여 수정할 청크(Chunk) 데이터에 대한 변경 로그(Log)를 로컬(Local) 데이터베이스에 저장하는 과정과 상기 변경 로그가 저장된 후, 커밋(Commit) 여부를 통지하여 상기 커밋을 승인하는 과정 및 상기 커밋을 수신한 후, 상기 트랜잭션과 관련된 데이터에 대한 락을 해제하는 과정을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또한, 본 실시예의 다른 측면에 의하면, 클라이언트(Client)로부터 질의(Query)를 수신하여 수신한 질의를 파싱하고, 파싱한 질의 정보를 전송하는 네임 노드와 데이터를 저장하고 있으며, 상기 파싱한 질의 정보를 수신하여 전달하는 데이터 노드와 상기 데이터 노드에 저장된 각각의 데이터의 메타데이터(Metadata)를 저장하고 있으며, 상기 파싱한 질의 정보가 데이터의 수정을 포함하는 트랜잭션(Transaction)에 관한 질의인 경우 상기 네임 노드로 상기 트랜잭션과 관련된 데이터에 대해 락(Lock)을 전송하는 메타데이터 데이터베이스(Database) 및 상기 데이터 노드로부터 전달받은 질의 정보가 데이터의 수정을 포함하는 트랜잭션(Transaction)에 관한 질의인 경우, 수정할 청크(Chunk) 데이터에 대한 변경 로그를 저장하고, 상기 데이터 노드로부터 전달받은 질의 정보가 데이터 조회와 관련된 질의인 경우, 상기 청크 데이터에 대한 변경 로그가 존재하는지 여부를 확인하는 로컬 데이터베이스를 포함하는 것을 특징으로 하는 질의 처리장치를 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 트랜잭션의 4가지 성질 ACID - 원자성(Atomic), 일관성(Consistent), 고립성(Isolated), 지속성(Durable)을 만족하면서도, 별도의 데이터 베이스나 빅 데이터 처리 시스템 전제의 마이그레이션이 없이 빅 데이터 처리 시스템이 데이터의 수정을 포함하는 트랜잭션을 처리할 수 있다.
도 1은 본 발명의 일 실시예에 따른 대용량 분산파일 시스템의 구성을 도시한 블럭도이다.
도 2는 본 발명의 일 실시예에 따른 대용량 분산파일 시스템에서 트랜잭션의 처리 방법을 예시한 순서도이다.
도 3은 본 발명의 다른 일 실시예에 따른 대용량 분산파일 시스템에서 데이터의 수정이 존재하는지 여부를 조회하기 위한 방법을 예시한 순서도이다.
도 4는 본 발명의 다른 일 실시예에 따른 대용량 분산파일 시스템에서 트랜잭션의 수정내용이 반영된 새로운 파일을 생성하는 방법을 예시한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 일 실시예에 따른 대용량 분산파일 시스템의 구성을 도시한 블럭도이다.
본 발명의 일 실시예에 따른 대용량 분산파일 시스템은 빅데이터를 처리하기 위해 수집된 대용량의 데이터를 여러 서버에 나눠서 저장하도록 하는 기술이다. 도 1을 참조하면, 본 발명의 일 실시예에 따른 대용량 분산파일 시스템(100)는 네임 노드(마스터)(110), 메타 데이터 데이터베이스(Database, 이하 'DB'라고 약칭함)(120) 데이터 노드(130) 및 로그 DB(140, 142, 144)를 포함한다.
네임 노드(마스터)(110)는 저장할 데이터를 데이터 노드(130)로 분배를 하는 역할을 하는 노드로서, 실제로 저장할 데이터가 저장되는 곳은 아니고, 클라이언트(Client, 미도시)로부터 저장할 데이터를 수신하여 이를 각각의 데이터 노드(130)로 분배하는 역할을 한다. 또한, 클라이언트로부터 트랜잭션(Transaction) 질의(Query)를 수신하는 경우, 수신한 질의를 파싱(Parsing)하여 데이터 노드로 수신한 질의에 관한 정보를 송신한다.
메타 데이터 DB(Meta Data DB)(120)는 네임 노드(마스터)가 분배한 실제 데이터들의 메타 정보를 저장하고 있는 DB로서, 각각의 데이터 노드에 저장되어 있는 데이터의 메타 정보를 저장한다. 또한 네임 노드(마스터)가 클라이언트로부터 트랜잭션 질의를 수신하는 경우, 다른 클라이언트 또는 다른 장치들이 트랜잭션이 완료되지 않은 데이터에 접근하는 것을 방지하기 위해 메타 데이터 DB에 기 저장된 락(Lock)을 부여할 수 있다. 도 1에서 메타 데이터 DB(120)는 네임 노드(마스터)(110) 외부에 존재하는 것으로 도시되어 있으나, 반드시 이에 한정하는 것은 아니고 네임 노드(마스터)(110) 내부에 존재할 수 있다.
데이터 노드(130)는 실제 적재할 데이터가 저장되는 공간으로서, 네트워크로 연결된 서버 또는 스토리지에 해당한다. 즉, 데이터 노드(130)는 네임 노드(마스터)가 분배한 데이터들을 저장한다. 데이터 노드(130)는 데이터 노드 1(132), 데이터 노드 2(134) 및 데이터 노드 N(136)으로 복수의 데이터 노드들을 가질 수 있다. 또한 데이터 노드가 수신한 질의에 관한 정보를 로그 DB(140, 142, 144)에 전달하고, 로그 DB가 기록을 완료한 경우, 네임 노드(마스터)(마스터)에 커밋(Commit)을 통지한다.
로그 DB(140, 142, 144)는 데이터 노드로부터 질의에 관한 정보를 수신한 경우, 그에 따른 청크(Chunk) 데이터들에 대한 변경 로그(Log)를 기록하는 역할을 한다. 특히 질의가 데이터 수정을 포함하는 트랜잭션에 관한 질의인 경우, 로그 DB는 수정할 청크 데이터들에 대한 변경 로그를 기록한다. 로그 DB는 변경 로그를 기록함에 있어, 수정이 필요한 청크 데이터들에 각각 식별자(ID: Identifier)를 부여할 수 있다. 도 1에서 로그 DB는 데이터 노드 외부에 존재하는 것으로 도시되어 있으나, 반드시 이에 한정하는 것은 아니고 데이터 노드 내부에 존재할 수 있다.
본 발명의 일 실시예에 따른 대용량 분산파일 시스템은 HDFS로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 대용량 분산파일 시스템에서 트랜잭션의 처리 방법을 예시한 순서도이다.
클라이언트로부터 데이터 수정 등의 트랜잭션 질의를 수신한다(S210). 네임 노드(마스터)가 클라이언트로부터 데이터 수정 등을 포함하는 트랜잭션 질의를 수신한다.
수신한 질의를 파싱하여, 트랜잭션과 관련된 질의인 경우 락을 획득한다(S220). 네임 노드(마스터)는 수신한 질의를 파싱하고, 데이터 수정 등을 포함하는 트랜잭션과 관련된 질의인 경우 메타 데이터 DB로부터 락을 획득한다. 락을 획득하는 이유로는 데이터 수정을 요하는 트랜잭션인 경우, 다른 클라이언트 또는 다른 기타 장치가 트랜잭션이 완료되지 않은 데이터를 이용하여 다른 별도의 처리나 작업을 하지 못하도록 접근하는 것을 방지하기 위함이다. 락에 관한 정보는 이미 메타 데이터 DB에 저장되어 있기 때문에, 네임 노드(마스터)가 수신한 질의를 파싱하고, 트랜잭션에 관한 정보를 데이터 노드로 전송하기 전에 먼저 락에 관한 정보를 수신한다.
트랜잭션과 관련된 데이터 노드에 트랜잭션에 관한 정보를 전송한다(S230). 네임 노드(마스터)에서 트랜잭션과 관련된 질의이기 때문에 메타 데이터 DB로부터 락을 획득한 경우, 트랜잭션을 요하는 데이터와 관련된 데이터 노드에 트랜잭션에 관한 정보를 전송한다. 실제 데이터는 데이터 노드에 축적되어 있기 때문에, 네임 노드(마스터)는 트랜잭션에 관한 정보를 데이터 노드로 전송한다.
트랜잭션에 따라 변경할 청크 데이터들에 대한 변경 로그를 로그 DB에 저장한다(S240). 데이터 노드는 트랜잭션에 관한 정보를 수신한 경우, 트랜잭션에 관한 정보에 따라 변경할 청크 데이터들에 대하여 변경 로그를 생성하고, 이를 로그 DB에 저장한다. 트랜잭션에 관한 정보를 수신할 때마다 데이터 노드에 저장된 데이터를 수정하는 것은 곤란하기 때문에, 이들에 관한 변경 로그를 생성하고 이를 저장한다.
커밋 여부를 네임 노드(마스터)에 통지한다(S250). 트랜잭션에 따라 변경할 청크 데이터들에 대하여 변경 로그를 생성하고 이를 로그 DB에 저장한 경우, 로그 DB는 커밋 정보(로그 DB로 변경 로그를 저장을 완료하였음을 나타내는 정보)를 데이터 노드로 통지를 하고 데이터 노드는 이를 네임 노드(마스터)로 통지를 한다.
트랜잭션과 관련된 데이터 노드로부터 커밋 정보를 통지받은 경우, 커밋을 승인하고 락을 해제한다(S260). 네임 노드(마스터)가 데이터 노드로부터 커밋 정보를 통지받은 경우, 이미 로그 DB에 청크 데이터들에 대한 변경 로그가 저장된 상태이기 때문에, 데이터 노드가 통시한 커밋 여부에 대하 커밋을 승인하고, 메타 데이터 DB는 락을 해제한다.
도 3은 본 발명의 다른 일 실시예에 따른 대용량 분산파일 시스템에서 데이터의 수정이 존재하는지 여부를 조회하기 위한 방법을 예시한 순서도이다.
클라이언트로부터 데이터 조회에 관한 질의를 수신한다(S310). 클라이언트로부터 네임 노드(마스터)가 데이터 조회에 관한 질의를 수신한다. 데이터 조회에 관한 질의는 데이터 수정 등을 포함하는 트랜잭션이 아닌 데이터 노드에 저장된 데이터 및 저장된 데이터에 수정이 되었는지 여부를 확인하기 위한 질의에 해당한다.
수신한 질의를 파싱하여, 데이터 노드에 질의에 관한 정보를 전송한다(S320). 네임 노드(마스터)는 수신한 질의를 파싱하고, 데이터 노드에 파싱한 질의에 관한 정보를 전송한다. 이때, 메타 데이터 DB로부터 락을 획득할 필요는 없다. 데이터 노드에 저장된 데이터를 수정을 포함하는 트랜잭션에 관한 질의가 아니라 데이터 조회를 하기 위한 질의이기 때문에, 네임 노드(마스터)는 메타 데이터 DB로부터 락을 획득하지 않는다.
쿼리에 포함된 데이터에 대하여 변경 로그가 존재하는지 여부를 판단한다(S330). 데이터 노드가 질의에 관한 정보를 수신하는 경우, 로그 DB에 변경 로그가 존재하는지 여부를 확인한다. 이때, 로그 DB는 수정이 필요한 청크 데이터들에 각각 식별자를 부여하여 저장할 수 있기 때문에, 변경 로그가 존재하는지 여부를 확인함에 있어서 용이하게 확인할 수 있다.
쿼리에 포함된 데이터에 대하여 변경 로그가 존재하는 경우, 쿼리에 포함된 데이터의 청크 데이터에 대한 스냅샷을 생성하여 전송한다(S340). 쿼리에 포함된 데이터에 대하여 변경 로그가 존재하는 경우, 로그 DB는 쿼리에 포함된 데이터의 청크 데이터에 대한 스냅샷(Snapshot)을 생성하여 이를 데이터 노드를 거쳐 네임 노드(마스터)로 전송한다.
쿼리에 포함된 데이터에 대하여 변경 로그가 존재하지 않는 경우, 쿼리에 포함된 데이터에 대해 데이터 노드에 저장된 데이터를 전송한다(S350). 쿼리에 포함된 데이터에 대하여 변경 로그가 존재하지 않기 때문에, 데이터 노드에 저장된 데이터에 트랜잭션에 따른 수정 요청은 존재하지 않는다. 이에 따라 데이터 노드에 저장된 데이터를 네임 노드(마스터)에 전송한다.
도 4는 본 발명의 다른 일 실시예에 따른 대용량 분산파일 시스템에서 트랜잭션의 수정내용이 반영된 새로운 파일을 생성하는 방법을 예시한 순서도이다.
클라이언트로부터 데이터 수정 등의 트랜잭션 질의를 수신한다(S410).
수신한 질의를 파싱하여, 트랜잭션과 관련된 질의인 경우 락을 획득한다(S420).
트랜잭션과 관련된 데이터 노드에 트랜잭션에 관한 정보를 전송한다(S430).
트랜잭션에 따라 변경할 청크 데이터들에 대한 변경 로그를 로그 DB에 저장한다(S440).
로그 DB에 청크 데이터가 기 설정된 양 이상 저장되었는지 여부를 판단한다(S450). 로그 DB에 트랜잭션에 따라 변경할 청크 데이터가 기 설정된 양 이상이 저장되었는지 여부를 판단한다. 이는 청크 데이터가 일정량 이상이 되는 경우, 전체 HDFS의 성능 저하를 가져올 수 있고, 로그 DB의 용량을 초과할 수 있기 때문이다.
로그 DB에 청크 데이터가 기 설정된 양 이상 저장된 경우, 변경 로그가 반영된 청크 데이터들로 이루어진 새로운 데이터 파일을 백그라운드(Background)로 생성하고 네임 노드(마스터)로 통지한다(S460). 로그 DB에 청크 데이터가 기 설정된 양 이상 저장된 경우, 데이터 노드는 기존에 저장되어 있던 데이터들에 변경 로그가 반영된 청크 데이터들로 이루어진 새로운 데이터 파일을 생성한다. 새로운 데이터 파일을 생성함에 있어 백그라운드로 새로운 데이터 파일을 생성하기 때문에, HDFS가 동작함에 있어서 어떠한 영향을 미치지 않는다. 다만 새로운 데이터 파일을 생성함에 있어 상당한 시간을 필요로 하는 경우가 많기 때문에, 데이터 노드에 저장된 파일의 양에 따라 기 설정된 양을 조절할 수 있다. 데이터 노드가 새로운 데이터 파일을 백그라운드로 생성한 경우, 이를 네임 노드(마스터)로 통지한다.
생성된 새로운 데이터 파일에 따라 메타 데이터 정보를 갱신한 후 락을 해제한다(S470). 네임 노드(마스터)가 데이터 노드로부터 새로운 데이터 파일이 생성되었음을 통지받은 경우, 네임 노드(마스터)는 메타 데이터 DB에 이를 통지하고, 메타 데이터 DB는 새로운 데이터 파일에 따라 메타 데이터 정보를 갱신한다. 메타 데이터 정보를 갱신한 후, 메타 데이터 DB는 락을 해제한다.
도 2에서는 과정 S210 내지 과정 S260을, 도 3에서는 과정 S310 내지 과정 S350을, 도 4에서는 과정 S410 내지 과정 S470을 각각 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 2 내지 도 4에 기재된 순서를 변경하여 실행하거나 각각의 복수의 과정 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 2 내지 도 4는 시계열적인 순서로 한정되는 것은 아니다.
한편, 도 2 내지 도 4에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 네임 노드(마스터) 120: 메타 데이터 DB
130, 132, 134, 136: 데이터 노드
140, 142, 144: 로그 DB

Claims (13)

  1. 대용량 분산 파일 시스템에,
    클라이언트(Client)로부터 수신한 질의(Query)를 파싱(Parsing)하는 과정;
    파싱된 질의가 데이터 수정을 포함하는 트랜잭션(Transaction)에 관한 질의인 경우, 상기 트랜잭션과 관련된 데이터에 대해 락(Lock)을 획득하는 과정;
    상기 트랜잭션과 관련된 데이터가 저장되어 있는 데이터 노드로 상기 트랜잭션에 관한 정보를 전송하는 과정;
    상기 트랜잭션에 관한 정보를 수신하여 수정할 청크(Chunk) 데이터에 대한 변경 로그(Log)를 로컬(Local) 데이터베이스에 저장하는 과정;
    상기 변경 로그가 저장된 후, 커밋(Commit) 여부를 통지하여 상기 커밋을 승인하는 과정; 및
    상기 커밋을 수신한 후, 상기 트랜잭션과 관련된 데이터에 대한 락을 해제하는 과정
    을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  2. 제1항에 있어서,
    상기 락에 관한 정보는,
    메타데이터(Metadata) 데이터베이스에 저장되어 있으며, 상기 메타데이터 데이터베이스로부터 획득하는 것을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  3. 제1항에 있어서,
    상기 로컬(Local) 데이터베이스에 저장하는 과정은,
    상기 청크 데이터에 대한 변경로그를 로컬 데이터베이스에 저장함에 있어, 각각의 청크 데이터에 대해 식별자를 생성하여 부여하는 것을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  4. 제1항에 있어서,
    상기 파싱된 질의가 데이터 조회와 관련된 질의인 경우, 상기 데이터 조회와 관련된 질의에 관한 정보를 전송하는 과정;
    상기 로컬 데이터베이스 내에 상기 데이터 조회와 관련된 질의에 관한 정보에 대해 상기 청크 데이터의 변경 로그가 존재하는지 여부를 확인하는 과정; 및
    상기 데이터 조회와 관련된 질의에 관한 정보에 대해 상기 청크 데이터의 변경 로그가 존재하는 경우, 상기 데이터 조회와 관련된 질의에 관한 정보의 청크 데이터 스냅샷(Snapshot)을 생성하여 전송하는 과정
    을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  5. 제3항 또는 제4항에 있어서,
    상기 데이터 조회와 관련된 질의에 관한 정보에 대해 상기 청크 데이터의 변경 로그가 존재하는지 여부를 상기 식별자를 이용해 확인하는 것을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  6. 제1항에 있어서,
    상기 로컬(Local) 데이터베이스에 저장하는 과정은,
    상기 로컬 데이터베이스에 저장된 변경 로그가 기 설정된 양을 초과하는 경우, 상기 변경 로그가 반영된 청크 데이터로 이루어진 새로운 파일을 백그라운드(Background)로 생성하는 것을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  7. 제6항에 있어서,
    상기 새로운 파일의 변경 내용이 반영된 새로운 메타데이터를 생성하는 것을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  8. 클라이언트(Client)로부터 질의(Query)를 수신하여 수신한 질의를 파싱하고, 파싱한 질의 정보를 전송하는 네임 노드;
    데이터를 저장하고 있으며, 상기 파싱한 질의 정보를 수신하여 전달하는 데이터 노드;
    상기 데이터 노드에 저장된 각각의 데이터의 메타데이터(Metadata)를 저장하고 있으며, 상기 파싱한 질의 정보가 데이터의 수정을 포함하는 트랜잭션(Transaction)에 관한 질의인 경우 상기 네임 노드로 상기 트랜잭션과 관련된 데이터에 대해 락(Lock)을 전송하는 메타데이터 데이터베이스(Database); 및
    상기 데이터 노드로부터 전달받은 질의 정보가 데이터의 수정을 포함하는 트랜잭션(Transaction)에 관한 질의인 경우, 수정할 청크(Chunk) 데이터에 대한 변경 로그를 저장하고, 상기 데이터 노드로부터 전달받은 질의 정보가 데이터 조회와 관련된 질의인 경우, 상기 청크 데이터에 대한 변경 로그가 존재하는지 여부를 확인하는 로컬 데이터베이스
    를 포함하는 것을 특징으로 하는 질의 처리장치.
  9. 제8항에 있어서,
    상기 메타데이터 데이터베이스는,
    상기 네임 노드가 트랜잭션에 관한 질의 정보를 전송하기 전에 상기 트랜잭션에 관한 데이터에 대해 락을 저장하고 있는 것을 특징으로 하는 질의 처리장치.
  10. 제8항에 있어서,
    상기 로컬 데이터베이스가 상기 변경 로그를 저장한 경우, 커밋(Commit) 여부를 상기 데이터 노드를 거쳐 상기 네임 노드로 전송하고,
    상기 네임 노드는 상기 커밋을 승인하여 상기 메타데이터 데이터베이스로부터 수신한 락을 해제하는 것을 특징으로 하는 질의 처리장치.
  11. 제8항에 있어서,
    상기 메타데이터 데이터베이스는,
    상기 청크(Chunk) 데이터에 대한 변경 로그를 저장함에 있어, 각각의 청크 데이터에 대해 식별자를 생성하여 부여하는 것을 특징으로 하는 질의 처리장치.
  12. 제8항에 있어서,
    상기 데이터 노드는
    상기 로컬 데이터베이스에 저장된 변경 로그가 기 설정된 양을 초과하는 경우, 상기 변경 로그가 반영된 청크 데이터로 이루어진 새로운 파일을 백그라운드(Background)로 생성하는 것을 특징으로 하는 질의 처리장치.
  13. 제12항에 있어서,
    상기 메타데이터 데이터베이스는,
    상기 새로운 파일의 변경 내용이 반영된 새로운 메타데이터를 생성하는 것을 특징으로 하는 질의 처리장치.
KR1020140150131A 2014-10-31 2014-10-31 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체 KR102253841B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140150131A KR102253841B1 (ko) 2014-10-31 2014-10-31 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140150131A KR102253841B1 (ko) 2014-10-31 2014-10-31 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20160050930A true KR20160050930A (ko) 2016-05-11
KR102253841B1 KR102253841B1 (ko) 2021-05-18

Family

ID=56025792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140150131A KR102253841B1 (ko) 2014-10-31 2014-10-31 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR102253841B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826827B1 (ko) * 2017-10-11 2018-02-09 (주)데이타뱅크시스템 데이터베이스 간의 실시간 통합 복제 시스템
KR101859094B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 복제 방식의 변경을 고려한 통합 복제 시스템
KR101859090B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 통합 복제 시스템
WO2020105785A1 (ko) * 2018-11-23 2020-05-28 연세대학교 산학협력단 스냅샷을 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070031209A (ko) * 2004-03-29 2007-03-19 마이크로소프트 코포레이션 데이터베이스 복구 중의 스냅샷 쿼리를 위한 시스템 및방법
JP2008287548A (ja) * 2007-05-18 2008-11-27 Hitachi Ltd データベースの制御方法及びプログラム
KR20090065131A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 메타데이터의 일관성을 보장하기 위한 분산 파일 시스템 및방법
JP4293794B2 (ja) * 2001-05-24 2009-07-08 オラクル・インターナショナル・コーポレイション リレーショナルデータベース内での同期式変更データキャプチャ
US20100042790A1 (en) * 2008-08-12 2010-02-18 Netapp, Inc. Scalable deduplication of stored data
US20100082547A1 (en) * 2008-09-22 2010-04-01 Riverbed Technology, Inc. Log Structured Content Addressable Deduplicating Storage
KR20120016747A (ko) * 2010-08-17 2012-02-27 에스케이 텔레콤주식회사 분산파일 시스템에서의 중복 제거 장치 및 방법
US8495304B1 (en) * 2010-12-23 2013-07-23 Emc Corporation Multi source wire deduplication
KR101296778B1 (ko) * 2012-09-18 2013-08-14 (주)카디날정보기술 NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4293794B2 (ja) * 2001-05-24 2009-07-08 オラクル・インターナショナル・コーポレイション リレーショナルデータベース内での同期式変更データキャプチャ
KR20070031209A (ko) * 2004-03-29 2007-03-19 마이크로소프트 코포레이션 데이터베이스 복구 중의 스냅샷 쿼리를 위한 시스템 및방법
JP2008287548A (ja) * 2007-05-18 2008-11-27 Hitachi Ltd データベースの制御方法及びプログラム
KR20090065131A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 메타데이터의 일관성을 보장하기 위한 분산 파일 시스템 및방법
US20100042790A1 (en) * 2008-08-12 2010-02-18 Netapp, Inc. Scalable deduplication of stored data
US20100082547A1 (en) * 2008-09-22 2010-04-01 Riverbed Technology, Inc. Log Structured Content Addressable Deduplicating Storage
KR20120016747A (ko) * 2010-08-17 2012-02-27 에스케이 텔레콤주식회사 분산파일 시스템에서의 중복 제거 장치 및 방법
US8495304B1 (en) * 2010-12-23 2013-07-23 Emc Corporation Multi source wire deduplication
KR101296778B1 (ko) * 2012-09-18 2013-08-14 (주)카디날정보기술 NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
테크넷 "제7장 분산 트랜잭션", https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20131217-000019/tibero_admin/ch_07.html (2013.12.17.) 1부.* *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826827B1 (ko) * 2017-10-11 2018-02-09 (주)데이타뱅크시스템 데이터베이스 간의 실시간 통합 복제 시스템
KR101859094B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 복제 방식의 변경을 고려한 통합 복제 시스템
KR101859090B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 통합 복제 시스템
WO2019074155A1 (ko) * 2017-10-11 2019-04-18 (주) 데이타뱅크시스템즈 데이터베이스 간의 실시간 통합 복제 시스템
WO2019074154A1 (ko) * 2017-10-11 2019-04-18 (주) 데이타뱅크시스템즈 통합 복제 시스템
WO2020105785A1 (ko) * 2018-11-23 2020-05-28 연세대학교 산학협력단 스냅샷을 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스

Also Published As

Publication number Publication date
KR102253841B1 (ko) 2021-05-18

Similar Documents

Publication Publication Date Title
US10230733B2 (en) System and method for maintenance of transitive closure of a graph and user authentication
KR101475964B1 (ko) 공유되는 커스터마이즈가능한 멀티-테넌트 데이터의 메모리내 캐싱
US20090012932A1 (en) Method and System For Data Storage And Management
US8799291B2 (en) Forensic index method and apparatus by distributed processing
US10970300B2 (en) Supporting multi-tenancy in a federated data management system
US20090234880A1 (en) Remote storage and management of binary object data
EP2780834A1 (en) Data processing service
KR101435789B1 (ko) Dlp 시스템의 빅데이터 처리 시스템 및 방법
US20140351884A1 (en) Data mapping using trust services
US11797575B2 (en) Capturing data lake changes
US11086995B2 (en) Malware scanning for network-attached storage systems
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
US20220188340A1 (en) Tracking granularity levels for accessing a spatial index
US20140289268A1 (en) Systems and methods of rationing data assembly resources
KR102253841B1 (ko) 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체
US11100129B1 (en) Providing a consistent view of associations between independently replicated data objects
Kumar et al. Modern Big Data processing with Hadoop: Expert techniques for architecting end-to-end Big Data solutions to get valuable insights
US11657088B1 (en) Accessible index objects for graph data structures
US20170031983A1 (en) Template based generation of cross views
US20210097026A1 (en) System and method for managing data using an enumerator
Leff et al. Integrator: An architecture for an integrated cloud/on-premise data-service
US11205049B2 (en) Method for managing semantic information on M2M/IoT platform
CN112889039A (zh) 用于克隆后租户标识符转换的记录的标识
US20190340359A1 (en) Malware scan status determination for network-attached storage systems
US10713305B1 (en) Method and system for document search in structured document repositories

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
GRNT Written decision to grant