KR101566884B1 - 비정형 데이터 관리를 위한 분산 저장 시스템 - Google Patents

비정형 데이터 관리를 위한 분산 저장 시스템 Download PDF

Info

Publication number
KR101566884B1
KR101566884B1 KR1020140061572A KR20140061572A KR101566884B1 KR 101566884 B1 KR101566884 B1 KR 101566884B1 KR 1020140061572 A KR1020140061572 A KR 1020140061572A KR 20140061572 A KR20140061572 A KR 20140061572A KR 101566884 B1 KR101566884 B1 KR 101566884B1
Authority
KR
South Korea
Prior art keywords
data
database
servers
file
server
Prior art date
Application number
KR1020140061572A
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 KR1020140061572A priority Critical patent/KR101566884B1/ko
Application granted granted Critical
Publication of KR101566884B1 publication Critical patent/KR101566884B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment

Landscapes

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

Abstract

본 발명은 비정형 데이터 관리를 위한 분산 저장 시스템에 관한 것으로서, 데이터 파일을 저장하며 관리하는 데이터베이스; 및 데이터베이스와 접속되고, 데이터 파일을 OS 파일 시스템에 연결하여 데이터베이스와 동기화시키며, OS 파일 시스템 상에 인덱스 파일을 위치시키는 서버를 포함하되, 서버와 데이터베이스의 쌍은 각각 병렬적으로 연결되어, 복수 개의 서버 중, 데이터 파일의 트랜잭션이 발생하는 일 서버는, 트랜잭션의 로그를 남기며, 로그를 복수 개의 서버에서 상호 공유하도록 하여, 복수 개의 서버에 분산하여 데이터를 저장하지만, 접속자의 입장에서는 하나의 서버에 저장하는 것과 같은 효과를 제공한다.

Description

비정형 데이터 관리를 위한 분산 저장 시스템{DISTRIBUTION STORE SYSTEM FOR MANAGING UNSTRUCTURED DATA}
본 발명은 비정형 데이터 관리를 위한 분산 저장 시스템에 관한 것으로서, 더욱 자세하게는, 복수 개의 서버를 수평적으로 증가시키는 경우, 이들 서버에 데이터를 분산 처리하도록 함과 동시에, 이들 서버들에 분산 저장되는 데이터들에 일관성(consistency), 가용성(availability) 또는 파티션 허용(partition tolerance)을 를 제공하도록 하기 위한 분산 저장 시스템에 관한 기술 분야이다.
데이터 베이스 관리 시스템은 다수의 컴퓨터 사용자들이 데이터 베이스 안에 데이터를 기록하거나 수정, 접근할 수 있도록 해주는 시스템을 말한다.
가장 일반적인 형태의 데이터 베이스 시스템은 RDBMS(Relational Data Base Management System)인데, 이는 RDMBS의 표준화된 사용자 및 프로그램 인터페이스는 SQL(Structured Query Language)이다.
도 1은 RDBMS와 연결되는 종래 아키텍처를 설명하기 위한 블록도이다.
도 1에 도시된 바와 같이, 개발자가 관계형 데이터베이스 즉, RDBMS에 연결해서 앱을 개발하는 경우, RDBMS에 JDBC(Java database connectivity) 등을 통해 연결하게 된다.
그리고, 도 2는 도 1에서 파일 등의 처리를 위해 OS 파일 시스템을 연결하고, 데이터베이스와 동시화시키는 것을 도시하는 블록도인데, 도 2에 도시되 바와 같이, RDBMS에 연결한 후, 파일 예컨대 BLOB 등의 처리를 위해 OS 파일 시스템을 Java I/O로 연결한 후 이를 데이터베이스와 동기화시키게 된다.
도 3은 도 2에서, 검색 엔진 연결을 위해, OS 파일 시스템 위에 인덱스 파일을 위치시키며 검색 엔진을 데이터베이스와 동시화시키는 것을 도시한 블록도인데, 도 3에 도시된 바와 같이, 검색 엔진의 연결을 위해서, OS 파일 시스템 위에 인덱스 파일을 위치시킨 후, 검색 엔진을 데이터베이스와 동기화시키는 것이다.
도 4는 도 3에서 데이터 및 접속의 증가로 인해, 데이터 분산을 위해 서버를 선형적으로 용량을 증가시키는 것을 도시한 블록도이다.
도 4와 같이, 데이터의 분산 처리를 위하여, 이들 서버를 병렬적 및 선형적으로 증가시키는 경우에도, 로드 밸런싱(load balancing)을 통해 분산되는 서버의 클러스터링은 가능하지만 파일과 인덱스의 정보를 공유할 수 없는 문제점을 가지고 있었다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템은 상기한 바와 같은 종래 문제점을 해결하기 위해 안출된 것으로서, 비정형 데이터 관리를 위한 경량 분산 복합 저장 시스템을 제공하되, 병렬적으로 분산되는 다수의 서버 간에 파일과 인덱스 정보를 공유할 수 있는 시스템을 제공하고자 한다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템은 상기의 해결하고자 하는 과제를 위하여 다음과 같은 과제 해결 수단을 가진다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템은 데이터 파일을 저장하며 관리하는 데이터베이스; 및 상기 데이터베이스와 접속되고, 상기 데이터 파일을 OS 파일 시스템에 연결하여 상기 데이터베이스와 동기화시키며, 상기 OS 파일 시스템 상에 인덱스 파일을 위치시키는 서버를 포함하되, 상기 서버와 상기 데이터베이스의 쌍은 각각 병렬적으로 연결되어, 상기 복수 개의 서버 중, 상기 데이터 파일의 트랜잭션이 발생하는 일 서버는, 상기 트랜잭션의 로그를 남기며, 상기 로그를 상기 복수 개의 서버에서 상호 공유하도록 하는 것을 특징으로 한다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템의 상기 일 서버는, 상기 트랜잭션 발생에 대한 이벤트 통지(event notification)를 통해, 상기 로그를 상기 복수 개의 서버에서 상호 공유하는 것을 특징으로 할 수 있다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템은 상기 복수 개의 서버 상의 상기 데이터 파일과 상기 인덱스 그리고 상기 데이터베이스에 저장된 데이터를 통합하여, 상호 복제하는 것을 특징으로 할 수 있다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템의 상기 데이터베이스는, 분산 캐시층을 제공하는 인-메모리(In-Memory Data Grid)형식으로 상기 데이터 파일을 저장하는 것을 특징으로 할 수 있다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템의 상기 분산 캐시층에 저장되는 데이터는 백업 메모리에 데이터를 백업하도록 하는 것을 특징으로 할 수 있다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템의 상기 데이터베이스에 저장되는 데이터 파일은 비정형 데이터(Unstructured Data)인 것을 특징으로 할 수 있다.
이상과 같은 구성의 본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템은 다음과 같은 효과를 가진다.
첫째, 복수 개의 서버에 분산하여 데이터를 저장하지만, 접속자의 입장에서는 하나의 서버에 저장하는 것과 같은 효과를 제공한다.
둘째, 복수 개의 서버 상호간에 트랜잭션 로그를 상호 복사하여, 파일, 인덱스, 데이터베이스를 상호 복제하여 동기화하는바, 분산된 어느 서버에 접속하더라도, 해당 데이터 혹은 정보를 이용할 수 있도록 하게 된다.
셋째, 서버 접속자의 기하 급수적인 증가에도 불구하고, 서버를 선형적 및 병렬적으로 증설하여, 상술한 바와 같은 정보의 복제 즉, 동기화할 수 있도록 한다.
넷째, 데이터베이스에 저장되는 데이터는 하드 디스크 드라이브가 아닌 메모리에 저장되도록 하며, 각 서버는 캐쉬(cache)에 로딩되는 데이터를 메모리에 백업하여, 데이터 로딩 속도가 현저히 상승되는 효과를 제공한다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 RDBMS와 연결되는 종래 아키텍처를 설명하기 위한 블록도이다.
도 2는 도 1에서 파일 등의 처리를 위해 OS 파일 시스템을 연결하고, 데이터베이스와 동시화시키는 것을 도시하는 블록도이다.
도 3은 도 2에서, 검색 엔진 연결을 위해, OS 파일 시스템 위에 인덱스 파일을 위치시키며 검색 엔진을 데이터베이스와 동시화시키는 것을 도시한 블록도이다.
도 4는 도 3에서 데이터 및 접속의 증가로 인해, 데이터 분산을 위해 서버를 선형적으로 용량을 증가시키는 것을 도시한 블록도이다.
도 5는 본 발명의 바람직한 실시예에 따라, 데이터베이스의 데이터, 파일 그리고 인덱스를 하나로 통합하는 것을 도시한 블록도이다.
도 6은 본 발명의 바람직한 실시예에 따라, 각 노드가 트랜잭션이 발생하면, 해당 트랜잭션의 로그를 상호 교류하도록 하여 동기화하도록 하는 것을 도시한 개념도이다.
본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하에서는 도면을 참조하여, 본 발명에 따른 비정형 데이터 관리를 위한 분산 저장 시스템을 상세히 설명하고자 한다.
도 5는 본 발명의 바람직한 실시예에 따라, 데이터베이스의 데이터, 파일 그리고 인덱스를 하나로 통합하는 것을 도시한 블록도이다. 도 6은 본 발명의 바람직한 실시예에 따라, 각 노드가 트랜잭션이 발생하면, 해당 트랜잭션의 로그를 상호 교류하도록 하여 동기화하도록 하는 것을 도시한 개념도이다.
본 발명에 따른, 도 5에 도시된 바와 같이, 개별적인 노드 즉, 서버와 서버에 접속되는 데이터베이스(database)를 포함한다.
여기서, 데이터베이스는 기존의 RDBMS 뿐만 아니라, 비정형 데이터를 위한 데이터베이스 시스템을 아우르는 개념이다. 즉, 데이터베이스에 저장되는 데이터의 형식에는 제한이 없으며, 데이터베이스에 저장되는 데이터 형식은 정형 혹은 비정형 데이터 형식을 동시에 갖추도록 구현할 수 있다.
일반적인 애플리케이션 개발의 경우, 관계형 데이터베이스에 해당하는 경우, 데이터 예컨대 BLOB와 이들 데이터의 검색을 위한 인덱스를 포함하게 된다.
데이터베이스의 경우, 일반적으로 SQL을 사용하여 삽입, 수정, 삭제, 자르기, 데이터 병합을 DML(Data Manipulation Language) 형태의 구문을 사용해 데이터의 복잡한 관계를 표현할 수도 있다.
데이터베이스의 데이터 트랜잭션(transaction)은 ACID 속성, 즉 원자성(atomicity), 일관성(consistency), 고립성(isolation) 및 지속성(durability)을 가지는 것을 전제로 한다.
서버는 데이터베이스와 네트워크 연결되어 접속되며, 데이터 파일을 OS 파일 시스템에 연결하여, 데이터베이스와 동기화(synchronization)시키며, 파일의 검색을 위해 OS 파일 시스템 상에 인덱스 파일을 위치시키는 구성이다.
아울러, 서버는 도 5 및 도 6(craken)과 같이, 상술한 바와 같이 데이터 베이스와 네트워크 연결되되, 이러한 서버 및 데이터베이스의 연결은 병렬적으로, 그리고 선형적으로 연결되어 확장될 수 있다.
이후, 복수 개의 서버 중, 하나의 서버에서 데이터 트랜잭션 즉, 데이터의 추가, 수정, 삭제 등이 발생하면, 해당 트랜잭션 로그가 남게 되며, 이들 복수 개의 서버는 이러한 로그를 상호 공유하게 되어, 서버끼리 동기화 즉 트랜잭션이 발생한 데이터의 복제가 일어나게 된다.
여기서 복제 즉, 동기화의 대상은, 파일(BLOB), 검색을 위한 인덱스, 그리고 데이터베이스 테이블이 일괄적으로 복제되어, 상호간에 데이터를 공유하게 되는 것이다.
이에 따라, 상이한 위치에서 접속을 시도하는 다양한 유저는 로드 밸런싱을 통해 상이한 서버에 접속하는 경우에도 열람하는 데이터가 동일 즉, 일관성(consistency)이 보장되는 것이다.
또한 상술한 서버들 중에서 일부의 서버가 다른 서버와의 네트워크 연결이 끊어지는 경우 혹은 일부의 서버에 문제가 발생하는 경우에도, 정상적인 서버에 접속하는 유저의 경우에는 상술한 트랜잭션이 이루어진 데이터를 읽을 수가 있게 되어, 파티션 허용성(partition tolerance)이 보장되는 것이다.
아울러, 모든 유저들은 모든 서버를 통해 접속하면서, 데이터의 트랜잭션을 수행 즉, 가용성을 보장할 수 있으나, CAP 이론상 적어도 2개의 속성만을 선택적으로 충족시키는 것으로 보아야할 것이다.
이들 서버는 트랜잭션의 발생에 대한 이벤트 통지(event notification)을 통해 상술한 바와 같은 트랜잭션의 로그를 복수 개의 서버를 통해 상호 공유 즉, 동기화하는 것이 바람직하다.
이벤트 통지의 경우, 각 서버는 데이터의 트랜잭션을 감지하는 트랜잭션 감지부를 포함하며, 이러한 트랜잭션 감지부는 데이터의 처리가 발생되면, 해당 트랜잭션에 대한 로그 기록을 남기게 된다.
트랜잭션 감지부는 감지된 정보를 나머지 서버들로 통지하게 되며, 이들 통지를 받은 서버들은 트랜잭션이 발생한 서버의 데이터를 인덱스, 데이터베이스 테이블과 함께 일괄적으로 복사하게 된다.
언급한 데이터베이스는 그 내부의 데이터의 저장소로서, 하드 디스크 뿐만 아니라, 메모리를 활용할 수도 있다. 즉, 연산을 위한 영역으로서 메모리를 활용하는 것 뿐만 아니라, 대량의 데이터를 저장하여 처리할 수 있는 공간 즉, 저장소로서 메모리를 활용할 수도 있다.
이러한 인-메모리 형식은 인-메모리 응용 플랫폼(In-Memory Application Platform), 인-메모리 데이터 관리(In-Memory Data Management), 인-메모리 메시징(In-Memory Messaging)의 3 가지를 포함할 수 있는데, 여기서는 데이터 관리를 위한 것만을 기준으로 설명한다.
여기서 다시 인-메모리 데이터 관리는 인-메모리 데이터 베이스 관리 시스템과 분산 환경에서 응용의 성능을 높일 수 있는 분산 캐시층을 제공하는 인-메모리 데이터 그리드가 있는데, 여기서는 바람직한 방법으로 후자의 방식을 사용하는 것을 상정한다.
하드 디스크 방식의 경우, 디스크의 데이터를 메모리로 불러들이고, 이를 다시, CPU로 전송하야하는 구조를 취하지만, 인-메모리 형식의 경우는 메인 메모리에서 바로 CPU로 데이터를 전송하면 되는 구조인바, 상당히 간단하면서도 속도가 빠른 장점을 제공하게 된다.
분산 캐시층에 저장되는 데이터는 백업 메모리에 데이터를 백업하며, 이러한 백업 메모리 역시, 병렬적으로 즉, 수평적으로 확장가능하게 된다.
본 발명의 권리 범위는 특허청구범위에 기재된 사항에 의해 결정되며, 특허 청구범위에 사용된 괄호는 선택적 한정을 위해 기재된 것이 아니라, 명확한 구성요소를 위해 사용되었으며, 괄호 내의 기재도 필수적 구성요소로 해석되어야 한다.

Claims (6)

  1. 데이터 파일을 저장하며 관리하는 데이터베이스; 및
    상기 데이터베이스와 접속되고, 상기 데이터 파일을 OS 파일 시스템에 연결하여 상기 데이터베이스와 동기화시키며, 상기 OS 파일 시스템 상에 인덱스 파일을 위치시키는 서버를 포함하되,
    상기 서버와 상기 데이터베이스의 쌍은 각각 병렬적으로 연결되어, 상기 서버가 복수 개로 구비되는 경우, 복수 개의 상기 서버 중, 상기 데이터 파일의 트랜잭션이 발생하는 일 서버는, 상기 트랜잭션의 로그를 남기며, 상기 트랜잭션 발생에 대한 이벤트 통지(event notification)를 통해, 상기 로그를 복수 개의 상기 서버에서 상호 공유하는 것을 특징으로 하는, 분산 저장 시스템.
  2. 삭제
  3. 제1항에 있어서, 상기 시스템은,
    복수 개의 상기 서버 상의 상기 데이터 파일과 상기 인덱스 그리고 상기 데이터베이스에 저장된 데이터를 통합하여, 상호 복제하는 것을 특징으로 하는, 분산 저장 시스템.
  4. 제1항에 있어서, 상기 데이터베이스는,
    분산 캐시층을 제공하는 인-메모리(In-Memory Data Grid)형식으로 상기 데이터 파일을 저장하는 것을 특징으로 하는, 분산 저장 시스템.
  5. 제4항에 있어서, 상기 분산 캐시층에 저장되는 데이터는 백업 메모리에 데이터를 백업하도록 하는 것을 특징으로 하는, 분산 저장 시스템.
  6. 제1항에 있어서, 상기 데이터베이스에 저장되는 데이터 파일은 비정형 데이터(Unstructured Data)인 것을 특징으로 하는, 분산 저장 시스템.
KR1020140061572A 2014-05-22 2014-05-22 비정형 데이터 관리를 위한 분산 저장 시스템 KR101566884B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140061572A KR101566884B1 (ko) 2014-05-22 2014-05-22 비정형 데이터 관리를 위한 분산 저장 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140061572A KR101566884B1 (ko) 2014-05-22 2014-05-22 비정형 데이터 관리를 위한 분산 저장 시스템

Publications (1)

Publication Number Publication Date
KR101566884B1 true KR101566884B1 (ko) 2015-11-06

Family

ID=54601328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140061572A KR101566884B1 (ko) 2014-05-22 2014-05-22 비정형 데이터 관리를 위한 분산 저장 시스템

Country Status (1)

Country Link
KR (1) KR101566884B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180058096A (ko) * 2016-11-23 2018-05-31 재단법인대구경북과학기술원 분산 파일 공유 시스템 및 분산 파일 공유 시스템에서 파일을 복제하는 방법
KR102047233B1 (ko) * 2018-10-22 2019-11-21 강릉원주대학교산학협력단 이중 부하 분산을 이용한 메타데이터 검색 시스템 및 이중 부하 분산을 통한 데이터베이스 관리 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180058096A (ko) * 2016-11-23 2018-05-31 재단법인대구경북과학기술원 분산 파일 공유 시스템 및 분산 파일 공유 시스템에서 파일을 복제하는 방법
KR102047233B1 (ko) * 2018-10-22 2019-11-21 강릉원주대학교산학협력단 이중 부하 분산을 이용한 메타데이터 검색 시스템 및 이중 부하 분산을 통한 데이터베이스 관리 방법

Similar Documents

Publication Publication Date Title
US10740319B2 (en) Graph-based data models for partitioned data
US11030185B2 (en) Schema-agnostic indexing of distributed databases
Vora Hadoop-HBase for large-scale data
US20140279871A1 (en) System and method for providing near real time data synchronization
WO2018059032A1 (zh) 一种虚拟节点的数据迁移方法和虚拟节点
AU2015369723B2 (en) Identifying join relationships based on transactional access patterns
US11263236B2 (en) Real-time cross-system database replication for hybrid-cloud elastic scaling and high-performance data virtualization
US20170249246A1 (en) Deduplication and garbage collection across logical databases
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US10970300B2 (en) Supporting multi-tenancy in a federated data management system
US11314717B1 (en) Scalable architecture for propagating updates to replicated data
KR20140014268A (ko) 클라우드 저장소
JP2013242906A (ja) ストレージ性能の最適化
US20190188309A1 (en) Tracking changes in mirrored databases
US11151081B1 (en) Data tiering service with cold tier indexing
CN111522880A (zh) 一种基于mysql数据库集群的提升数据读写性能的方法
Liu et al. Cfs: A distributed file system for large scale container platforms
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
KR101566884B1 (ko) 비정형 데이터 관리를 위한 분산 저장 시스템
US10521398B1 (en) Tracking version families in a file system
US11222036B1 (en) Data warehouse access reporting
Weintraub Dynamo and BigTable—Review and comparison
Zhang et al. Big Data
Vohra Apache HBase Primer
Krogh et al. Pro MySQL NDB Cluster

Legal Events

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

Payment date: 20180831

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 5