KR101696911B1 - 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법 - Google Patents

분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법 Download PDF

Info

Publication number
KR101696911B1
KR101696911B1 KR1020110113032A KR20110113032A KR101696911B1 KR 101696911 B1 KR101696911 B1 KR 101696911B1 KR 1020110113032 A KR1020110113032 A KR 1020110113032A KR 20110113032 A KR20110113032 A KR 20110113032A KR 101696911 B1 KR101696911 B1 KR 101696911B1
Authority
KR
South Korea
Prior art keywords
data
node
request
write
master
Prior art date
Application number
KR1020110113032A
Other languages
English (en)
Other versions
KR20130048093A (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 KR1020110113032A priority Critical patent/KR101696911B1/ko
Publication of KR20130048093A publication Critical patent/KR20130048093A/ko
Application granted granted Critical
Publication of KR101696911B1 publication Critical patent/KR101696911B1/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

본 발명은 분산 데이터 베이스 장치로, 하나 이상의 마스터 노드와 둘 이상의 데이터 노드를 포함하되, 상기 마스터 노드 각각은 외부 클라이언트로부터 쓰기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 쓰기 요청 중개기와, 외부 클라이언트로부터 읽기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 읽기 요청 중개기를 포함하고, 상기 데이터 노드 각각은 상기 마스터 노드로부터 쓰기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 쓰는 기능을 수행하는 데이터 쓰기 처리부와, 상기 마스터 노드로부터 읽기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽는 기능을 수행하는 데이터 읽기 처리부를 포함한다.

Description

분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법{Distributed Database Apparatus and Method for Processing Stream Data Thereof}
본 발명은 분산 데이터베이스 기술에 관한 것으로, 특히 스트림 데이터의 읽기/쓰기(Read/Write)를 수행하는 방법에 관한 것이다.
최근 컴퓨팅 디바이스의 성능 향상으로 복잡 다양한 응용 서비스가 제공되고 있고, 데이터 양이 폭발적으로 증가하고 있다. 이로 인해 대용량 데이터 처리에 대한 요구가 발생되고, 실제로 네트워크를 통해 복수 개의 서버가 연결된 분산 데이터베이스가 현재 널리 사용되고 있다.
분산 데이터베이스에서는 성능(처리속도)과 안정성의 향상을 위해 데이터 복제(data replication) 기법을 사용한다. 데이터 복제는 동일한 데이터를 물리적으로 상이한 둘 이상의 서버 저장소에 복사하여 저장하는 기술이다. 이러한 데이터 복제에 의해 동일한 데이터가 여러 저장소에 존재하기 때문에 다수의 클라이언트가 동일한 데이터에 동시에 접근할 수 있어, 데이터 처리에 대한 전체 응답 시간이 줄고, 작업 부하가 여러 데이터 노드로 분산될 수가 있다. 또한 하나의 서버가 고장 또는 시스템 다운됨에 따라 정지된 상태에서도 계속해서 데이터 처리가 가능하다. 전술한 바와 같이 데이터 복제 기법을 사용하는 분산 데이터베이스는 단일 데이터베이스보다 성능과 안정성 측면에서 이점에 있다.
그러나, 이러한 데이터 복제 기법은 데이터베이스 상에서 데이터의 정확성을 보장하기 위해 복제본에 대한 일관성을 유지하는 추가 비용(overhead, 오버헤드)이 발생된다는 문제점이 있다.
본 발명은 일관성 유지를 마스터 노드를 통해 수행하는 중앙집중적인 방식이, 아니라 데이터 노드들 중 복제본 그룹에서 수행하는 장치 및 방법을 제공한다.
본 발명은 일관성 유지가 된 후에 작업부하 분산(Load Balancing)을 마스터 노드를 통해 수행하지 않고, 데이터 노드간에 작업량을 비교하여 복제본 그룹에서 수행하는 장치 및 방법을 제공한다
본 발명은 분산 데이터 베이스 장치로, 하나 이상의 마스터 노드와 둘 이상의 데이터 노드를 포함하되, 상기 마스터 노드 각각은 외부 클라이언트로부터 쓰기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 쓰기 요청 중개기와, 외부 클라이언트로부터 읽기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 읽기 요청 중개기를 포함하고, 상기 데이터 노드 각각은 상기 마스터 노드로부터 쓰기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 쓰는 기능을 수행하는 데이터 쓰기 처리부와, 상기 마스터 노드로부터 읽기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽는 기능을 수행하는 데이터 읽기 처리부를 포함한다.
본 발명에서의 복제본 일관성 유지 기법은 읽기/쓰기 수행 시에 처리하지 않으므로 성능에 영향을 미치지 않는다. 또한 스트림 데이터는 빈번하게 읽기/쓰기가 요청되는 특성을 가지므로 최근 사용한 데이터에 대해서는 일관성이 보장되고, 이를 이용하여 읽기 요청 수행 시에 작업부하 분산을 한다.
도 1은 일반적인 분산 데이터베이스를 설명하기 위한 도면이다.
도 2는 본 발명의 바람직한 실시 예에 따른 분산 데이터베이스의 개략적인 구성도이다.
도 3은 본 발명의 바람직한 실시 예에 따른 분산 데이터베이스에서 데이터 영역과 복제본 영역을 분할하여 저장하는 일 예를 설명하기 위한 도면이다.
도 4는 본 발명의 바람직한 실시 예에 따라 데이터 쓰기 요청에 대한 분산 데이터베이스에서의 처리 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 바람직한 실시 예에 따라 데이터 읽기 요청에 대한 분산 데이터 베이스 동작을 설명하기 위한 순서도이다.
도 6은 복제본 데이터 업데이트의 예를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일반적인 분산 데이터베이스를 설명하기 위한 도면이다.
도 1을 참조하면, 6개의 데이터 노드에 데이터가 분산되어 저장되어 있다. 영문자 알파벳 A, B, C, D, E, F는 데이터의 레이블(label)을 의미하며, 각 데이터는 세 번 중첩되어 전체 데이터 노드에 4개의 복제본이 저장되어 있다. 데이터 버전 넘버(Data Version Number : DVN)는 데이터가 갱신(update)될 때마다 증가하므로, 가장 높은 DVN를 갖는 데이터가 최신 데이터이다.
도 1에서 레이블이 C인 데이터는 데이터 노드 1, 데이터 노드 2, 데이터 노드 3, 데이터 노드 6에 저장되어 있다. 데이터 C의 최신 DVN는 34로, 데이터 노드 2, 3, 6은 DVN이 34인 데이터를 저장하지만, 데이터 노드 1은 DVN이 33인 데이터를 저장한다. 즉, 데이터 노드 1의 데이터가 다른 데이터 노드들과 일관성이 유지되지 않고 있다. 이런 경우, 클라이언트가 해당 데이터에 대해서 읽기를 요청했을 때 정확한 데이터 반환을 보장할 수 없다.
전술한 바와 같은 문제점을 극복하기 위해 분산 데이터 베이스는 쓰기 또는 읽기 요청에 대한 동작을 수행할 때 데이터의 일관성을 유지해야 한다. 그런데, 일반적으로 쓰기 또는 읽기 요청에 따라 상이한 일관성 유지 동작이 수행된다.
첫째, 쓰기 요청시에 일관성을 유지하는 기법은 클라이언트가 데이터베이스에 쓰기를 요청했을 때, 데이터베이스에서 설정한 복제본의 개수만큼 데이터를 복사하여 저장을 한다. 이 방법은 데이터를 저장할 때 일관성이 보장되므로, 읽기 요청 때는 지연시간 없이 빠르게 응답할 수가 있다. 그러나 쓰기를 수행하는 동안 시간지연이 일어나고 하나의 클라이언트가 쓰기를 요청하는 동안, 같은 데이터에 다른 클라이언트가 쓰기를 요청할 수 없다.
둘째, 읽기 요청시에 일관성을 유지하는 기법은 클라이언트가 데이터베이스에 읽기를 요청했을 때, 전체 데이터 노드에 있는 데이터들을 모두 비교하여 가장 DVN이 높은 데이터(최신 데이터)를 클라이언트에게 반환한다. 이 방법은 쓰기 요청 시에는 지연 시간이 없이 저장을 할 수 있지만, 읽기를 수행할 때 데이터 버전 확인을 위해서 불필요한 데이터 접근이 많아져 매우 느리다.
이와 같이 분산 데이터베이스에서 일관성을 유지하여 정확한 데이터 처리를 위해서는 읽기-최적화(쓰기 시에 일관성을 유지하여 읽기 시에 속도를 빠르게 함) 혹은 쓰기-최적화(읽기 시에 일관성을 유지하여 쓰기 시에 속도를 빠르게 함) 중에서 선택하여 시스템을 운용할 수밖에 없었다. 그러므로 응용 서비스를 지원하는 분산 데이터베이스들은 쓰기가 빈번한 경우 쓰기-최적화 기법을 사용하고 읽기가 빈번한 경우 읽기-최적화 기법을 사용하여 용도에 맞게 구현된다.
그런데, 본 발명은 스트림 데이터를 처리하기 위한 것으로, 스트림 데이터는 데이터 쓰기/읽기가 중단없이 요청된다. 또한, 데이터 처리 요청에 대해서 실시간성을 요구한다. 즉, 쓰기/읽기 두 가지 요청에 대해서 모두 신속한 요청 처리 시간이 매우 중요하다. 그러므로 전술한 데이터베이스 기술로는 스트림 데이터를 분산 데이터베이스에서 처리할 수 없다.
따라서, 이를 극복하기 위해 본 발명은 데이터 복제본에 대한 일관성을 읽기/쓰기 처리와는 독립적으로 수행하여, 읽기/쓰기 처리 시간을 모두 신속히 처리하는 분산 데이터베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법을 제안한다.
도 2는 본 발명의 바람직한 실시 예에 따른 분산 데이터베이스 장치의 개략적인 구성을 도시한 도면이다.
도 2를 참조하면, 본 발명의 바람직한 실시 예에 따른 분산 데이터베이스 장치는 M개의 마스터 노드(100-1, ..., 100-M)와 N개의 데이터 노드(200-1,..,220-N)로 구성된다(M < N). 여기서, 마스터 노드(100-1, ..., 100-M)와 데이터 노드(200-1,..,220-N)의 개수는 분산 데이터베이스를 구축할 때 요구하는 성능에 따라 관리자에 의해 결정된다.
마스터 노드(100-1, ..., 100-M)는 디스크나 메모리에 접근하는 데이터 처리를 하지 않으므로 작업량 부하가 매우 작기 때문에 적은 수를 두어도 무방하다. 마스터 노드(100-1, ..., 100-M)는 외부 클라이언트로부터 읽기 또는 쓰기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드(200-1,..,220-N)로 요청을 중개 전송(routing)한다. 이를 위해 마스터 노드(100-1, ..., 100-M) 각각은 쓰기 요청 중개기(110-1, ..., 110-M) 및 읽기 요청 중개기(120-1, ..., 120-M)를 포함한다.
데이터 노드(200-1,..,220-N)는 마스터 노드(100-1, ..., 100-M)로부터 읽기 또는 쓰기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽거나 쓰는 기능을 수행한다. 이를 위해 데이터 노드(200-1,..,220-N) 각각은 데이터 쓰기 처리부(200-1,..,220-N) 및 데이터 읽기 처리부(200-1,..,220-N)를 포함한다.
도 3은 본 발명의 바람직한 실시 예에 따른 분산 데이터베이스에서 데이터 영역과 복제본 영역을 분할하여 저장하는 일 예를 설명하기 위한 도면이다. 여기서는 1개의 마스터 노드(320)와 N개의 데이터 노드(330-1, ...330-N)을 포함하는 분산 데이터베이스의 동작을 예로 들어 설명하기로 한다.
데이터 노드(330-1, ...330-N)가 N개이고, 데이터 영역이 0부터 K까지 일 때, 각 데이터 노드(330-1, ...330-N)는 크기가 K/N인 데이터 영역(단위 데이터 영역, unit data range)을 할당받는다. 이를 주 데이터 영역이라고 한다.
예를 들어, 데이터 노드 1(330-1)의 경우 0부터 K/N의 데이터 영역을 할당받고, 이 영역에 대한 데이터 처리를 책임지는 역할을 한다. 영역(0 ~ K/N)에 대한 읽기/쓰기 요청이 클라이언트(310)로부터 전송된 경우, 마스터 노드(320)는 그 요청을 데이터 노드 1(330-1)에게 전달하여 수행하도록 한다.
여기서, 복사본의 개수는 R로 표기하며 시스템을 관리하면서 설정할 수 있는데, 도 3의 예에서는 R=3이며 각 데이터 노드는 주 데이터 영역과 2개의 복제본 데이터 영역을 갖는다. 전체 시스템에는 동일한 단위 데이터 영역이 3번 중복 저장된다.
도 3에 도시된 바와 같이, 데이터 노드 1(330-1)이 할당받은 영역인 (0 ~ K/N)은 데이터 노드 2(330-2)와 데이터 노드 3(330-3)에 각각 복제되어 저장된다. 동일한 데이터 영역을 가진 데이터 노드들, 즉 할당된 주 데이터 혹은 복제본 데이터 영역이 서로 겹치는 데이터 노드들은 서로 클러스터 상에서의 식별자(Identifier: MAC address 또는 IP)를 인식하고 있으며, 동일한 복제본 그룹이 된다. 주 데이터 영역, 복제본 데이터 영역 및 복제본 그룹의 리스트는 마스터 노드(320)가 쓰기/읽기 요청시에 사용하기 위해서 메타 데이터 형태로 저장 및 유지한다.
도 4는 본 발명의 바람직한 실시 예에 따라 데이터 쓰기 요청에 대한 분산 데이터베이스에서의 처리 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 410 단계에서 외부 클라이언트로부터 분산 데이터베이스로 쓰기 요청 메시지가 입력된다. 420 단계에서 입력된 요청 메시지는 마스터 노드의 쓰기 요청 중개기로 전달된다. 430 단계에서 마스터 노드의 쓰기 요청 중개기는 쓰기 요청 메시지의 데이터가 어느 데이터 영역에 쓰여져야 하는가를 확인한 후, 해당 데이터 영역을 주 데이터 영역으로 가지는 데이터 노드에 요청 메시지를 전달한다. 440 단계에서 데이터 노드는 요청 메시지를 수신하면, 450 단계에서 데이터 쓰기 처리부를 통해 메모리 또는 디스크에 데이터를 저장한다. 460 단계에서 데이터 쓰기가 정상적으로 완료되면 마스터 노드로 쓰기 완료 메시지를 송신한다.
470 단계에서 마스터 노드가 정상적으로 쓰기 완료 메시지가 수신되는지 확인한다. 470 단계의 확인 결과 쓰기 완료 메시지가 수신되었으면 절차가 종료된다.
그러나, 470 단계의 확인 결과 일정 시간이 지나도록 쓰기 완료 메시지가 도착하지 않으면, 마스터 노드는 데이터 노드가 실패한 것으로 판단하고, 480 단계에서 그 다음 복사본 데이터 영역을 가진 데이터 노드로 쓰기 메시지를 송신하여 데이터 쓰기를 재시도한다.
마스터 노드는 쓰기 완료 메시지를 송신한 데이터 노드를 해당 데이터 영역의 주인으로 설정(메타데이터 업데이트)한다. 이는 쓰기 완료를 수행한 데이터 노드가 최신 데이터를 가지기 때문이다.
도 5는 본 발명의 바람직한 실시 예에 따라 데이터 읽기 요청에 대한 분산 데이터 베이스 동작을 설명하기 위한 순서도이다.
도 5를 참조하면, 510 단계에서 우선 외부 클라이언트로부터 분산 데이터베이스로 읽기 요청 메시지가 입력된다. 520 단계에서 입력된 요청 메시지는 마스터 노드의 읽기 요청 중개기로 전달된다. 530 단계에서 마스터 노드의 읽기 요청 중개기는 읽기 요청 메시지를 확인하여 어떤 데이터 영역으로부터 데이터를 로드해야 하는가를 결정한 후, 해당 데이터 영역을 주 데이터 영역으로 가지는 데이터 노드에 요청 메시지를 전달한다. 540 단계에서 데이터 노드는 요청 메시지를 수신하면, 550 단계에서 요청 메시지에서 요구하는 데이터가 이전에 응답한 적이 있는가를 확인한다.
550 단계의 확인 결과 데이터를 응답한 적이 없다면 해당 데이터의 최신 버전은 오직 현재 주 데이터 영역에만 저장되어 있는 것으로 판단된다. 즉, 복제본 그룹에 업데이트한 적이 없다.
따라서, 580 단계에서 해당 데이터 노드는 로컬 메모리 혹은 디스크에서 데이터를 로드하여 클라이언트에게 데이터 응답 메시지를 송신한다. 그리고, 590 단계에서 데이터 응답 메시지를 송신하는 동안 복제본 그룹에 속한 노드들과 마스터 노드는 해당 메시지를 캡쳐하고, 읽기 요청이 정상 완료되었음을 확인한다. 그리고, 복제본 데이터 영역을 가지는 데이터 노드들은 자신의 복제본 데이터를 최신 데이터로 업데이트한다.
반면, 550 단계의 확인 결과 데이터를 응답한 적이 있다면, 해당 데이터는 복제본 데이터 영역에도 저장된 것으로 판단된다. 따라서, 560 단계에서 현재 데이터 노드의 작업량과 복제본 데이터 노드의 작업량을 확인한다.
560 단계의 확인 결과 현재 데이터 노드의 작업량이 복제본 데이터 노드의 작업량보다 많지 않은 것으로 판단되면, 전술한 580 단계의 로컬에서 읽기 요청을 수행한다.
그러나, 560 단계의 확인 결과 현재 데이터 노드의 작업량이 복제본 데이터 노드의 작업량보다 많은 것으로 판단되면, 570 단계에서 복제본 데이터 노드로 데이터 읽기 요청 메시지를 전달하여 읽기를 수행한다.
도 6은 복제본 데이터 업데이트의 예를 설명하기 위한 도면이다.
데이터 노드 I가 데이터 응답 메시지를 보내는 동안 복제본 그룹의 노드인 데이터 노드 J와 데이터 노드K는 해당 메시지를 캡쳐한다. 캡쳐한 메시지의 포함된 DVN을 확인하여 자신의 데이터영역의 데이터를 최신 버전으로 업데이트한다. 이와 같은 방법으로 복제본 데이터의 일관성을 유지한다.

Claims (10)

  1. 하나 이상의 마스터 노드와 둘 이상의 데이터 노드를 포함하되,
    상기 마스터 노드 각각은
    외부 클라이언트로부터 쓰기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 쓰기 요청 중개기와,
    외부 클라이언트로부터 읽기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 읽기 요청 중개기를 포함하고,
    상기 데이터 노드 각각은
    상기 마스터 노드로부터 쓰기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 쓰는 기능을 수행하는 데이터 쓰기 처리부와,
    상기 마스터 노드로부터 읽기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽는 기능을 수행하는 데이터 읽기 처리부를 포함하되,
    상기 쓰기 요청 중개기는
    마스터 노드는 쓰기 요청 메시지의 데이터가 어느 데이터 영역에 쓰여져야 하는가를 확인하고, 확인된 해당 데이터 영역을 주 데이터 영역으로 가지는 데이터 노드에 요청 메시지를 전달하고,
    상기 데이터 쓰기 처리부는
    데이터 노드는 요청 메시지를 수신하면, 메모리 또는 디스크에 데이터를 저장하고, 데이터 쓰기가 정상적으로 완료되면 마스터 노드로 쓰기 완료 메시지를 송신함을 특징으로 하는 분산 데이터 베이스 장치.
  2. 제 1항에 있어서, 상기 쓰기 요청 중개기는
    상기 해당 명령을 수행해야 하는 데이터 노드로부터 일정 시간이 지나도록 쓰기 완료 메시지가 도착하지 않으면, 데이터 노드가 실패한 것으로 판단하고, 그 다음 복사본 데이터 영역을 가진 데이터 노드로 쓰기 메시지를 송신하여 데이터 쓰기를 재시도하고, 쓰기 완료 메시지를 송신한 데이터 노드를 해당 데이터 영역의 주인으로 설정함을 특징으로 하는 분산 데이터 베이스 장치.
  3. 하나 이상의 마스터 노드와 둘 이상의 데이터 노드를 포함하되,
    상기 마스터 노드 각각은
    외부 클라이언트로부터 쓰기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 쓰기 요청 중개기와,
    외부 클라이언트로부터 읽기 요청을 받아, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하는 읽기 요청 중개기를 포함하고,
    상기 데이터 노드 각각은
    상기 마스터 노드로부터 쓰기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 쓰는 기능을 수행하는 데이터 쓰기 처리부와,
    상기 마스터 노드로부터 읽기 요청을 수신함에 따라, 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽는 기능을 수행하는 데이터 읽기 처리부를 포함하되,
    상기 읽기 요청 중개기는
    읽기 요청 메시지를 확인하여 어떤 데이터 영역으로부터 데이터를 로드해야 하는가를 결정하고, 결정된 해당 데이터 영역을 주 데이터 영역으로 가지는 데이터 노드에 요청 메시지를 전달하고,
    상기 데이터 읽기 처리부는
    읽기 요청 메시지를 수신하면, 읽기 요청 메시지에서 요구하는 데이터가 이전에 응답한 적이 있는가를 확인하고, 확인 결과 데이터를 응답한 적이 없다면 해당 데이터의 최신 버전은 오직 현재 주 데이터 영역에만 저장되어 있는 것으로 판단하고, 로컬 메모리 혹은 디스크에서 데이터를 로드하여 클라이언트에게 데이터 응답 메시지를 송신함을 특징으로 하는 분산 데이터 베이스 장치.
  4. 제 3항에 있어서, 상기 데이터 읽기 처리부는
    상기 읽기 요청 메시지에서 요구하는 데이터를 이전에 응답한 적이 없을 경우, 로컬 메모리 혹은 디스크에서 데이터를 로드하여 클라이언트에게 데이터 응답 메시지를 송신하고,
    상기 읽기 요청 메시지에서 요구하는 데이터를 응답한 적이 있다면, 현재 데이터 노드의 작업량과 복제본 데이터 노드의 작업량을 확인하여, 현재 데이터 노드의 작업량이 복제본 데이터 노드의 작업량보다 많지 않을 경우, 로컬에서 읽기 요청을 수행하고, 현재 데이터 노드의 작업량이 복제본 데이터 노드의 작업량보다 많은 것으로 판단되면, 복제본 데이터 노드로 데이터 읽기 요청 메시지를 전달하여 읽기를 수행함을 특징으로 하는 분산 데이터 베이스 장치.
  5. 하나 이상의 마스터 노드와 둘 이상의 데이터 노드를 포함하는 분산 데이터 베이스 장치에서의 스트림 데이터 처리 방법에 있어서,
    상기 마스터 노드 각각은 외부 클라이언트로부터 쓰기 요청됨에 따라, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하고, 해당 데이터 노드가 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 쓰는 기능을 수행하는 단계와,
    상기 마스터 노드 각각은 외부 클라이언트로부터 읽기 요청됨에 따라, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하고, 상기 데이터 노드 각각은 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽는 기능을 수행하는 단계를 포함하되,
    상기 쓰는 기능을 수행하는 단계는
    마스터 노드는 쓰기 요청 메시지의 데이터가 어느 데이터 영역에 쓰여져야 하는가를 확인하는 단계와,
    확인된 해당 데이터 영역을 주 데이터 영역으로 가지는 데이터 노드에 요청 메시지를 전달하는 단계와,
    데이터 노드는 요청 메시지를 수신하면, 메모리 또는 디스크에 데이터를 저장하는 단계와,
    데이터 쓰기가 정상적으로 완료되면 마스터 노드로 쓰기 완료 메시지를 송신하는 단계를 포함함을 특징으로 하는 스트림 데이터 처리 방법.
  6. 제 5항에 있어서, 상기 쓰는 기능을 수행하는 단계는
    마스터 노드가 정상적으로 쓰기 완료 메시지가 수신되는지 확인하는 단계와,
    확인 결과 일정 시간이 지나도록 쓰기 완료 메시지가 도착하지 않으면, 데이터 노드가 실패한 것으로 판단하고, 그 다음 복사본 데이터 영역을 가진 데이터 노드로 쓰기 메시지를 송신하여 데이터 쓰기를 재시도하는 단계를 더 포함함을 특징으로 하는 스트림 데이터 처리 방법.
  7. 제 5항에 있어서, 상기 쓰는 기능을 수행하는 단계는
    상기 마스터 노드가 쓰기 완료 메시지를 송신한 데이터 노드를 해당 데이터 영역의 주인으로 설정하는 단계를 포함함을 특징으로 하는 스트림 데이터 처리 방법.
  8. 하나 이상의 마스터 노드와 둘 이상의 데이터 노드를 포함하는 분산 데이터 베이스 장치에서의 스트림 데이터 처리 방법에 있어서,
    상기 마스터 노드 각각은 외부 클라이언트로부터 쓰기 요청됨에 따라, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하고, 해당 데이터 노드가 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 쓰는 기능을 수행하는 단계와,
    상기 마스터 노드 각각은 외부 클라이언트로부터 읽기 요청됨에 따라, 해당 명령을 수행해야 하는 데이터 노드로 요청을 중개 전송하고, 상기 데이터 노드 각각은 직접 자신의 메모리 혹은 디스크에 접근하여 데이터를 읽는 기능을 수행하는 단계를 포함하되,
    상기 읽는 기능을 수행하는 단계는
    마스터 노드는 읽기 요청 메시지를 확인하여 어떤 데이터 영역으로부터 데이터를 로드해야 하는가를 결정하는 단계와,
    마스터 노드는 결정된 해당 데이터 영역을 주 데이터 영역으로 가지는 데이터 노드에 요청 메시지를 전달하는 단계와,
    데이터 노드는 요청 메시지를 수신하면, 요청 메시지에서 요구하는 데이터가 이전에 응답한 적이 있는가를 확인하는 단계와,
    확인 결과 데이터를 응답한 적이 없다면 해당 데이터의 최신 버전은 오직 현재 주 데이터 영역에만 저장되어 있는 것으로 판단하는 단계와,
    데이터 노드는 로컬 메모리 혹은 디스크에서 데이터를 로드하여 클라이언트에게 데이터 응답 메시지를 송신하는 단계를 포함함을 특징으로 하는 스트림 데이터 처리 방법.
  9. 제 8항에 있어서, 상기 읽는 기능을 수행하는 단계는
    상기 데이터 노드가 응답 메시지를 송신하는 동안, 복제본 그룹에 속한 데이터 노드들과 마스터 노드는 해당 메시지를 캡쳐하고, 읽기 요청이 정상 완료되었음을 확인하는 단계와,
    복제본 데이터 영역을 가지는 데이터 노드들은 자신의 복제본 데이터를 최신 데이터로 업데이트하는 단계를 더 포함함을 특징으로 하는 스트림 데이터 처리 방법.
  10. 제 9항에 있어서, 상기 읽는 기능을 수행하는 단계는
    상기 데이터 노드가 확인 결과 데이터를 응답한 적이 있다면, 현재 데이터 노드의 작업량과 복제본 데이터 노드의 작업량을 확인하는 단계와,
    상기 확인 결과 현재 데이터 노드의 작업량이 복제본 데이터 노드의 작업량보다 많지 않은 것으로 판단되면, 로컬에서 읽기 요청을 수행하는 단계와,
    상기 확인 결과 현재 데이터 노드의 작업량이 복제본 데이터 노드의 작업량보다 많은 것으로 판단되면, 복제본 데이터 노드로 데이터 읽기 요청 메시지를 전달하여 읽기를 수행하는 단계를 포함함을 특징으로 하는 스트림 데이터 처리 방법.
KR1020110113032A 2011-11-01 2011-11-01 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법 KR101696911B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110113032A KR101696911B1 (ko) 2011-11-01 2011-11-01 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110113032A KR101696911B1 (ko) 2011-11-01 2011-11-01 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20130048093A KR20130048093A (ko) 2013-05-09
KR101696911B1 true KR101696911B1 (ko) 2017-01-17

Family

ID=48659314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110113032A KR101696911B1 (ko) 2011-11-01 2011-11-01 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법

Country Status (1)

Country Link
KR (1) KR101696911B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654969B1 (ko) * 2014-02-10 2016-09-06 단국대학교 산학협력단 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치
KR102038527B1 (ko) * 2018-03-28 2019-11-26 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법
CN110874382B (zh) * 2018-08-29 2023-07-04 阿里云计算有限公司 一种数据写入方法、装置及其设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
KR101035857B1 (ko) * 2008-12-19 2011-05-19 한국전자통신연구원 데이터 관리 방법 및 그 시스템
KR101626117B1 (ko) * 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법

Also Published As

Publication number Publication date
KR20130048093A (ko) 2013-05-09

Similar Documents

Publication Publication Date Title
US11687555B2 (en) Conditional master election in distributed databases
US10255148B2 (en) Primary role reporting service for resource groups
US11893264B1 (en) Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US10178168B2 (en) Read-after-write consistency in data replication
US9753954B2 (en) Data node fencing in a distributed file system
US10462250B2 (en) Distributed caching cluster client configuration
US20100318608A1 (en) Systems and methods for efficient live application migration within bandwidth constrained networks
US11550679B2 (en) Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
CN108183961A (zh) 一种基于Redis的分布式缓存方法
US9262323B1 (en) Replication in distributed caching cluster
US20070112812A1 (en) System and method for writing data to a directory
US20140059315A1 (en) Computer system, data management method and data management program
US9432449B2 (en) Managing connection failover in a load balancer
JP2005050165A (ja) 分散ストレージ装置のファイル管理方法及び分散ストレージシステム
US9754032B2 (en) Distributed multi-system management
US9298765B2 (en) Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network
US20150106468A1 (en) Storage system and data access method
KR101696911B1 (ko) 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
US10545667B1 (en) Dynamic data partitioning for stateless request routing
JP2012008934A (ja) 分散ファイルシステム及び分散ファイルシステムにおける冗長化方法
US10169440B2 (en) Synchronous data replication in a content management system
WO2015196692A1 (zh) 一种云计算系统以及云计算系统的处理方法和装置
WO2012046585A1 (ja) 分散ストレージシステム、その制御方法、およびプログラム
US20160357780A1 (en) Hierarchical file block variant tracker apparatus coupled to a Librarian and to a remote file service
CN113434290A (zh) 基于raft协议的数据处理方法和设备,及计算机存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4