KR101997978B1 - 분산 데이터스토어 성능 개선 장치 및 방법 - Google Patents

분산 데이터스토어 성능 개선 장치 및 방법 Download PDF

Info

Publication number
KR101997978B1
KR101997978B1 KR1020170127961A KR20170127961A KR101997978B1 KR 101997978 B1 KR101997978 B1 KR 101997978B1 KR 1020170127961 A KR1020170127961 A KR 1020170127961A KR 20170127961 A KR20170127961 A KR 20170127961A KR 101997978 B1 KR101997978 B1 KR 101997978B1
Authority
KR
South Korea
Prior art keywords
controller
follower
reader
change command
data change
Prior art date
Application number
KR1020170127961A
Other languages
English (en)
Other versions
KR20190038019A (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 KR1020170127961A priority Critical patent/KR101997978B1/ko
Publication of KR20190038019A publication Critical patent/KR20190038019A/ko
Application granted granted Critical
Publication of KR101997978B1 publication Critical patent/KR101997978B1/ko

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

분산 데이터스토어 성능 개선 장치 및 방법이 개시된다. 분산 데이터스토어 성능 개선 방법은 샤드(shard)를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인하는 단계와, 상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 복수의 팔로워 컨트롤러 중 어느 하나로 전환하는 단계를 포함할 수 있다.

Description

분산 데이터스토어 성능 개선 장치 및 방법{APPARATUS AND METHOD FOR ENHANCING PERFORMANCE OF DISTRIBUTED DATA STORE}
본 발명의 실시예들은 리더 컨트롤러 및 복수의 팔로워 컨트롤러를 포함하는 샤드를 모니터링한 결과에 기초하여, 샤드 내 리더 컨트롤러를 재선정 함으로써, 데이터 처리 성능을 개선하는 분산 데이터스토어 성능 개선 장치 및 방법에 관한 것이다.
본 발명의 배경이 되는 기술은 다음의 문헌에 개시되어 있다.
1) 공개번호: 10-2016-0140875 (2016.12.07), "분산형 저장 시스템에서의 세션 관리"
2) 공개번호: 10-2016-0140800A (2016.12.07), "분산형 저장 시스템에서의 이름공간 관리"
최근 네트워크의 데이터 처리량은 급속하게 증가하고 있으며, 이에 따라 효율적 네트워크 관리기술의 필요성이 더욱 대두되고 있다.
최근 주목받고 있는 소프트웨어 정의 네트워킹(SDN, Software Defined Networking)은 소프트웨어에 기반하여 동작하며, 네트워크에 구조적 유연성과 개방성을 제공할 수 있는 기술로서, 구체적으로는 프로그래밍을 통하여 네트워크의 경로 설정, 제어 및 관리를 할 수 있게 한다. 이러한 프로그래머빌리티 (Programmability)를 통해, 확장성이 부족한 기존 네트워크 구조의 단점을 보완하고 새로운 기술과 새로운 요구사항들을 네트워크에 용이하게 반영할 수 있다.
상기 소프트웨어 정의 네트워킹(SDN)은 컨트롤러 클러스터(멀티 컨트롤러) 기능을 지원 함으로써, 고가용성(High Availability)을 제공할 수 있다. 고가용성이란 하나 이상의 컨트롤러에 이상이 생겨도 시스템이 문제없이 운영될 수 있는 능력을 의미한다.
상기 컨트롤러 클러스터를 구성하는 서비스 중 하나로서, 분산 데이터스토어(Distributed Datastore)가 있다. SDN 분산 데이터스토어는 트리 형태로 구현된 데이터 저장소인 샤드(Shard)들로 구성된다.
샤드 내 리더 컨트롤러 및 복수의 팔로워 컨트롤러 각각은 클라이언트 단말로부터 데이터 변경명령을 수신할 수 있다. 이때, 리더 컨트롤러는 클라이언트 단말로부터 데이터 변경명령을 수신하면, 샤드의 데이터 변경 및 동기화 과정을 수행할 수 있다. 반면, 팔로워 컨트롤러는 클라이언트 단말로부터 데이터 변경명령을 수신하면, 수신한 데이터 변경명령을 리더 컨트롤러로 전달하여, 리더 컨트롤러를 통해 데이터 변경명령을 처리하도록 하고, 리더 컨트롤러에 의한 처리 결과만을 클라이언트 단말로 전송한다.
여기서, 팔로워 컨트롤러가 클라이언트 단말로부터 데이터 변경명령을 수신하여 처리하는 경우는, 리더 컨트롤러가 클라이언트 단말로부터 데이터 변경명령을 수신하여 처리하는 경우 보다 처리 시간이 더 소요된다. 따라서, 클라이언트 단말이 팔로워 컨트롤러로 데이터 변경명령을 전송하는 횟수가 증가하면, 이로 인해 데이터 처리 성능이 저하될 수 있다.
본 발명은 리더 컨트롤러 및 복수의 팔로워 컨트롤러를 포함하는 샤드를 설정된 시간 동안 모니터링한 결과(예컨대, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율 비교)에 기초하여, 샤드 내 리더 컨트롤러를 재선정 함으로써, 샤드 내 리더 컨트롤러를 주기적으로 변경하여, 데이터 처리 성능을 개선하는 것을 목적으로 한다.
본 발명은 샤드 내 리더 컨트롤러가 '비정상'으로 확인되는 경우, 복수의 팔로워 컨트롤러 중 리더 컨트롤러를 재선정 함으로써, 상기 리더 컨트롤러에 에러가 발생하는 경우에도, 샤드가 정상적으로 동작할 수 있게 하는 것을 목적으로 한다.
상기의 목적을 이루기 위한, 분산 데이터스토어 성능 개선 장치는 샤드를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인하는 모니터링부와, 상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 복수의 팔로워 컨트롤러 중 어느 하나로 전환하는 프로세서를 포함할 수 있다.
상기의 목적을 이루기 위한, 분산 데이터스토어 성능 개선 방법은 샤드를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인하는 단계와, 상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 복수의 팔로워 컨트롤러 중 어느 하나로 전환하는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, 리더 컨트롤러 및 복수의 팔로워 컨트롤러를 포함하는 샤드를 설정된 시간 동안 모니터링한 결과에 기초하여, 샤드 내 리더 컨트롤러를 재선정 함으로써, 샤드 내 리더 컨트롤러를 주기적으로 변경하여, 데이터 처리 성능을 개선할 수 있다.
또한, 본 발명의 실시예에 따르면, 샤드 내 리더 컨트롤러가 '비정상'으로 확인되는 경우, 복수의 팔로워 컨트롤러 중 리더 컨트롤러를 재선정 함으로써, 상기 리더 컨트롤러에 에러가 발생하는 경우에도, 샤드가 정상적으로 동작할 수 있게 한다.
도 1은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치를 포함하는 네트워크의 일례를 도시하는 도면이다.
도 2는 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치의 구성을 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치가 모니터링하는 샤드 내 리더 컨트롤러로, 클라이언트 단말로부터의 데이터 변경명령이 전송될 때, 분산 데이터스토어 성능 개선 장치에서의 동작 일례를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치가 모니터링하는 샤드 내 팔로워 컨트롤러로, 클라이언트 단말로부터의 데이터 변경명령이 전송될 때, 분산 데이터스토어 성능 개선 장치에서의 동작 일례를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치에서 샤드 내 리더 컨트롤러에 대한 비율을 획득하는 일례를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 방법을 나타내는 흐름도이다.
도 7은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 방법의 일례를 나타내는 흐름도이다.
이하, 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 다양한 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
도 1은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치를 포함하는 네트워크의 일례를 도시하는 도면이다.
도 1을 참조하면, 네트워크(100)는 클라이언트 단말(101), 샤드(103) 및 분산 데이터스토어 성능 개선 장치(109)를 포함할 수 있다.
클라이언트 단말(101)은 데이터 변경명령(예컨대, 데이터 생성, 쓰기, 읽기, 삭제 등에 관한 명령)을 샤드(103) 내 복수의 컨트롤러 중 어느 하나로 전송할 수 있다.
샤드(103)는 리더 컨트롤러(leader controller)(105)와 복수의 팔로워 컨트롤러(follower controller)(107)를 포함할 수 있다. 여기서, 리더 컨트롤러(105)는 클라이언트 단말(101)로부터 데이터 변경명령을 직접적으로 수신하거나, 또는 복수의 팔로워 컨트롤러(107) 중 어느 하나의 팔로워 컨트롤러를 통해, 클라이언트 단말(101)에서 전송한 데이터 변경명령을 전달받을 수 있다.
리더 컨트롤러(105)는 데이터 변경명령을 수신하면, 분산 데이터스토어 성능 개선 장치(109)의 제어에 따라, 상기 수신된 데이터 변경명령을 수행하는 한편, 복수의 팔로워 컨트롤러(107) 각각에 데이터 변경명령을 전달하여, 복수의 팔로워 컨트롤러(107)에서 데이터 변경명령을 수행하도록 한다.
분산 데이터스토어 성능 개선 장치(109)는 샤드(103) 내 복수의 컨트롤러 중에서, 랜덤하게 하나의 컨트롤러를 지정하여, 리더 권한을 부여 함으로써, 리더 컨트롤러로 선정하고, 리더 컨트롤러를 제외한 나머지 컨트롤러를 팔로워 컨트롤러로 선정할 수 있다.
분산 데이터스토어 성능 개선 장치(109)는 샤드를 모니터링하여, 설정된 시간 동안 리더 컨트롤러(105)와 복수의 팔로워 컨트롤러(107)에 대해, 클라이언트 단말(101)로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 클라이언트 단말(101)로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인할 수 있다.
이후, 분산 데이터스토어 성능 개선 장치(109)는 리더 컨트롤러(105)에 대해 확인한 제1 비율과, 복수의 팔로워 컨트롤러(107) 각각에 대해 확인한 복수의 제2 비율을 이용하여, 리더 컨트롤러(105)의 리더 권한을 복수의 팔로워 컨트롤러(107) 중 어느 하나로 전환할 수 있다. 예컨대, 분산 데이터스토어 성능 개선 장치(109)는 상기 복수의 제2 비율 각각에서, 상기 제1 비율을 차감하고, 상기 차감한 결과값 중 양의 결과값이, 설정치 이상일 경우, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환할 수 있다.
분산 데이터스토어 성능 개선 장치(109)는 리더 컨트롤러 및 복수의 팔로워 컨트롤러를 포함하는 샤드를 설정된 시간 동안 모니터링한 결과에 기초하여, 리더 컨트롤러의 재선정을 위한 조건이 만족되는 경우, 기존 리더 컨트롤러에 에러가 발생하지 않더라도, 샤드 내 리더 컨트롤러를 재선정 함으로써, 샤드 내 리더 컨트롤러를 주기적으로 변경하여, 데이터 처리 성능을 개선할 수 있다.
도 2는 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치의 구성을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치(200)는 제어부(201), 모니터링부(203) 및 프로세서(205)를 포함할 수 있다.
제어부(201)는 클라이언트 단말과 샤드(shard) 내 리더(leader) 컨트롤러 및 복수의 팔로워(follower) 컨트롤러 간의 데이터 변경명령을 제어할 수 있다.
구체적으로, 제어부(201)는 상기 클라이언트 단말로부터 상기 리더 컨트롤러로 데이터 변경명령이 전송되면, 상기 데이터 변경명령을 복수의 팔로워 컨트롤러로 전달하고, 리더 컨트롤러 및 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 한다.
또한, 제어부(201)는 상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송되면, 상기 임의의 팔로워 컨트롤러에서 상기 데이터 변경명령을 상기 리더 컨트롤러에 전달할 수 있다. 이때, 제어부(201)는 상기 전달된 데이터 변경명령을, 상기 임의의 팔로우 컨트롤러를 포함한 상기 복수의 팔로워 컨트롤러로 전달하고, 상기 리더 컨트롤러 및 상기 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 한다.
다른 일례로서, 제어부(201)는 상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송되면, 상기 임의의 팔로워 컨트롤러에서, 상기 리더 컨트롤러 및 상기 임의의 팔로우 컨트롤러를 제외한 상기 복수의 팔로워 컨트롤러 각각으로 상기 데이터 변경명령을 전달하도록 한다. 이때, 프로세서(205)는 상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송됨에 따라, 상기 임의의 팔로워 컨트롤러로 리더 권한을 부여하고, 상기 데이터 변경명령의 전달이 완료되면, 상기 임의의 팔로우 컨트롤러에 부여된 리더를 해제시킬 수 있다.
모니터링부(203)는 샤드(shard)를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 및 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수를 확인하고, 상기 처리 횟수 대비 상기 수신 횟수의 비율을 확인할 수 있다. 여기서, 상기 수신 횟수는 컨트롤러에서, 클라이언트 단말로부터 데이터 변경명령을 직접적으로 수신한 횟수이고, 상기 처리 횟수는 클라이언트 단말로부터 직접적으로 수신한 데이터 변경명령, 또는 타 컨트롤러를 통해 전달받은 데이터 변경명령을 처리한 횟수이다.
상기 비율은, [수학식 1]에 의해, 나타낼 수 있다.
Figure 112017096298488-pat00001
여기서,
Figure 112017096298488-pat00002
는 컨트롤러에서, 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수를 의미하고,
Figure 112017096298488-pat00003
는 컨트롤러에서, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수를 의미하며,
Figure 112017096298488-pat00004
는 상기 처리 횟수 대비 상기 수신 횟수의 비율을 의미할 수 있다.
모니터링부(203)는 제어부(201)에 의해, 상기 클라이언트 단말로부터 상기 리더 컨트롤러로 데이터 변경명령이 전송됨에 따라, 상기 데이터 변경명령을 복수의 팔로워 컨트롤러로 전달하고, 리더 컨트롤러 및 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 한 경우, 상기 리더 컨트롤러에 대한 수신 횟수 및 처리 횟수와, 상기 복수의 팔로워 컨트롤러 각각에 대한 처리 횟수를 증가(예컨대, 누적하여, 1회 증가)시킬 수 있다.
모니터링부(203)는 제어부(201)에 의해, 상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송됨에 따라, 상기 임의의 팔로워 컨트롤러에서 상기 리더 컨트롤러로 전달된 상기 데이터 변경명령을 상기 복수의 팔로워 컨트롤러로 전달하고, 상기 리더 컨트롤러 및 상기 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 한 경우, 상기 임의의 팔로워 컨트롤러에 대한 수신 횟수, 상기 리더 컨트롤러에 대한 처리 횟수, 및 상기 복수의 팔로워 컨트롤러 각각에 대한 처리 횟수를 증가(예컨대, 누적하여, 1회 증가)시킬 수 있다.
또한, 모니터링부(203)는 샤드 내 리더 컨트롤러를 모니터링하여, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 및 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수를 확인하고, 상기 처리 횟수 대비 상기 수신 횟수의 비율을 확인할 수 있으나, 이에 한정되지 않고, 상기 리더 컨트롤러로부터, 상기 비율이 포함된 감마 메시지(Gamma message)를 설정된 주기 마다 수신하고, 상기 감마 메시지를 통해, 리더 컨트롤러에 대한 비율을 확인할 수 있다.
프로세서(205)는 상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 복수의 팔로워 컨트롤러 중 어느 하나로 전환할 수 있다.
구체적으로, 프로세서(205)는 상기 복수의 제2 비율 중, 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러에게 상기 리더 권한을 전환하되, 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러가 다수이면, 큰 값이 확인된 상기 다수의 팔로워 컨트롤러 중, 가장 큰 제2 비율을 갖는 팔로우 컨트롤러에게 상기 리더 권한을 전환할 수 있다. 이때, 프로세서(205)는 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러가 다수이면, 큰 값이 확인된 상기 다수의 팔로워 컨트롤러 중, 상기 시간 동안 상기 데이터 변경명령을 마지막으로 수신한 팔로워 컨트롤러에게 상기 리더 권한을 전환할 수 있다.
다른 일례로서, 프로세서(205)는 상기 복수의 제2 비율 각각에서, 상기 제1 비율을 차감하고, 상기 차감한 결과값 중 양의 결과값이, 설정치 이상인지를 [수학식 2]에 의해, 판단할 수 있으며, 상기 차감한 결과값 중 양의 결과값이, 설정치 이상일 경우, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환할 수 있다.
Figure 112017096298488-pat00005
Figure 112017096298488-pat00006
여기서, 팔로워 컨트롤러에 대한 제2 비율,
Figure 112017096298488-pat00007
리더 컨트롤러에 대한 제1 비율,
Figure 112017096298488-pat00008
는 설정치이다.
예컨대, 프로세서(205)는
Figure 112017096298488-pat00009
리더 컨트롤러에 대한 제1 비율이, 0.4이고, 제1 내지 제3 팔로우 컨트롤러에 대한 제2 비율이, 각각 0.4, 0.8, 0.5이며, 설정치가 0.3일 경우, 복수의 제2 비율 각각에서 제1 비율을 차감한 결과값(0.0, 0.4, 0.1)을 산출하고, 설정치 이상의 결과값을 갖는 제2 팔로우 컨트롤러를 선정하여, 리더 컨트롤러의 리더 권한을 상기 제2 팔로우 컨트롤러로 전환할 수 있다.
프로세서(205)는 설정치 이상의 결과값을 갖는 팔로우 컨트롤러가 복수일 경우, 상기 설정치를 조정 함으로써, 리더 컨트롤러의 재선정이 빈번히 발생하는 것을 제한할 수 있다.
또한, 프로세서(205)는 리더 권한이 전환되거나, 또는 상기 샤드에 신규 컨트롤러가 추가되면, 상기 리더 컨트롤러와 상기 복수의 팔로워 컨트롤러에 대한 수신 횟수 대비 및 처리 횟수를 리셋시킬 수 있다.
리더 권한을 전환하는 다른 일례로서, 프로세서(205)는 리더 컨트롤러로부터, 감마 메시지가 설정된 주기 마다 수신되지 않는 경우, 상기 리더 컨트롤러를 '비정상'으로 확인하고, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환할 수 있다. 여기서, 감마 메시지는 상기 리더 컨트롤러에 대한 비율을 포함할 수 있다.
도 3은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치가 모니터링하는 샤드 내 리더 컨트롤러로, 클라이언트 단말로부터의 데이터 변경명령이 전송될 때, 분산 데이터스토어 성능 개선 장치에서의 동작 일례를 설명하기 위한 도면이다.
도 3을 참조하면, 분산 데이터스토어 성능 개선 장치(309)는 클라이언트 단말(301)로부터 리더 컨트롤러(303)로 데이터 변경명령이 전송되면(311), 데이터 변경명령을 복수의 팔로워 컨트롤러(305, 307)로 전달할 수 있게 한다(313, 315). 이때, 리더 컨트롤러(303) 및 복수의 팔로워 컨트롤러(305, 307)는 데이터 변경명령을 로그(Log)에 각각 기록할 수 있다.
분산 데이터스토어 성능 개선 장치(309)는 리더 컨트롤러(303)에서, 복수의 팔로워 컨트롤러(305, 307) 각각으로부터 데이터 변경명령에 대한 응답을 수신하면(317, 319), 리더 컨트롤러(303)에서, 로그에 기록한 데이터 변경명령을 수행하도록 한다. 이때, 분산 데이터스토어 성능 개선 장치(309)는 복수의 팔로워 컨트롤러(305, 307) 중 과반수 이상의 팔로워 컨트롤러로부터 데이터 변경명령에 대한 응답을 수신한 경우, 리더 컨트롤러(303)에서, 데이터 변경명령을 수행할 수 있게 한다.
이후, 분산 데이터스토어 성능 개선 장치(309)는 리더 컨트롤러(303)에서 클라이언트 단말(301)로 상기 데이터 변경명령에 대한 응답을 전송할 수 있게 한다(321).
분산 데이터스토어 성능 개선 장치(309)는 리더 컨트롤러(303)에서, 데이터 변경명령에 대한 수행 요청을 복수의 팔로워 컨트롤러(305, 307) 각각에 전송하도록 하여(323, 325), 복수의 팔로워 컨트롤러(305, 307)에서 상기 데이터 변경명령을 수행하도록 한다.
이때, 분산 데이터스토어 성능 개선 장치(309)는 리더 컨트롤러(303)에 대해, 클라이언트 단말(301)로부터 데이터 변경명령을 수신한 수신 횟수 및 클라이언트 단말(301)로부터의 데이터 변경명령을 처리한 처리 횟수를 증가시킬 수 있다. 또한, 분산 데이터스토어 성능 개선 장치(309)는 복수의 팔로워 컨트롤러(305, 307) 각각에 대해, 클라이언트 단말(301)로부터의 데이터 변경명령을 처리한 처리 횟수를 증가시킬 수 있다.
이후, 분산 데이터스토어 성능 개선 장치(309)는 리더 컨트롤러(303)에서의 처리 횟수 대비 수신 횟수의 제1 비율과 복수의 팔로워 컨트롤러(305, 307) 각각에서의 처리 횟수 대비 수신 횟수의 제2 비율을 이용하여, 리더 컨트롤러(303)의 리더 권한을 복수의 팔로워 컨트롤러(305, 307) 중 어느 하나로 전환할 수 있다.
도 4는 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치가 모니터링하는 샤드 내 팔로워 컨트롤러로, 클라이언트 단말로부터의 데이터 변경명령이 전송될 때, 분산 데이터스토어 성능 개선 장치에서의 동작 일례를 설명하기 위한 도면이다.
도 4를 참조하면, 분산 데이터스토어 성능 개선 장치(409)는 클라이언트 단말(401)로부터 제1 팔로워 컨트롤러(405)로 데이터 변경명령이 전송되면(411), 제1 팔로워 컨트롤러(405)에서 상기 데이터 변경명령을 리더 컨트롤러(403)에 전달할 수 있게 한다(413).
분산 데이터스토어 성능 개선 장치(409)는 리더 컨트롤러(403)에서 상기 전달된 데이터 변경명령에 대한 응답을 제1 팔로워 컨트롤러(405)로 전송(415)하도록 한 후, 상기 데이터 변경명령을, 복수의 팔로워 컨트롤러 즉, 제1 팔로워 컨트롤러(405) 및 제2 팔로워 컨트롤러(407)로 전달하게 한다(417, 419).
분산 데이터스토어 성능 개선 장치(409)는 리더 컨트롤러(403)에서, 제1 팔로워 컨트롤러(405) 및 제2 팔로워 컨트롤러(407) 각각으로부터 데이터 변경명령에 대한 응답을 수신하면(421, 423), 리더 컨트롤러(403)에서, 데이터 변경명령에 대한 수행 요청을 복수의 팔로워 컨트롤러(405, 407) 각각에 전송하도록 하여(425, 427), 복수의 팔로워 컨트롤러(405, 407)에서 상기 데이터 변경명령을 수행하도록 한다.
이후, 분산 데이터스토어 성능 개선 장치(409)는 리더 컨트롤러(403)에서, 상기 데이터 변경명령 및 동기화를 수행하도록 하고(429), 그 결과를 제1 팔로워 컨트롤러(405)에 전송할 수 있다. 여기서, 제1 팔로워 컨트롤러(405)는 클라이언트 단말(401)로 상기 데이터 변경명령에 대한 응답을 전송할 수 있다(431).
이때, 분산 데이터스토어 성능 개선 장치(409)는 제1 팔로워 컨트롤러(405)에 대해, 클라이언트 단말(401)로부터 데이터 변경명령을 수신한 수신 횟수, 리더 컨트롤러(403)에 대해, 클라이언트 단말(401)로부터의 데이터 변경명령을 처리한 처리 횟수를 증가시킬 수 있다. 또한, 분산 데이터스토어 성능 개선 장치(409)는 제1,2 복수의 팔로워 컨트롤러(405, 407) 각각에 대해, 클라이언트 단말(401)로부터의 데이터 변경명령을 처리한 처리 횟수를 증가시킬 수 있다.
이후, 분산 데이터스토어 성능 개선 장치(409)는 리더 컨트롤러(403)에서의 처리 횟수 대비 수신 횟수의 제1 비율과 복수의 팔로워 컨트롤러(405, 407) 각각에서의 처리 횟수 대비 수신 횟수의 제2 비율을 이용하여, 리더 컨트롤러(403)의 리더 권한을 복수의 팔로워 컨트롤러(405, 407) 중 어느 하나로 전환할 수 있다.
한편, 분산 데이터스토어 성능 개선 장치(409)는 리더 컨트롤러(403)를 통해, 데이터동기화를 수행하도록 함으로써, 강한 일관성 (Strong Consistency)을 보장할 수 있다.
도 5는 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 장치에서 샤드 내 리더 컨트롤러에 대한 비율을 획득하는 일례를 설명하기 위한 도면이다.
도 5를 참조하면, 분산 데이터스토어 성능 개선 장치(500)는 샤드 내 리더 컨트롤러(501)를 모니터링하여, 클라이언트 단말(도시하지 않음)로부터의 데이터 변경명령을 처리한 처리 횟수 및 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수를 확인하고, 상기 처리 횟수 대비 상기 수신 횟수의 비율을 확인할 수 있으나, 이에 한정되지 않고, 리더 컨트롤러(501)로부터, 상기 비율이 포함된 감마 메시지(Gamma message)를 수신하고, 상기 감마 메시지를 통해, 리더 컨트롤러(501)에 대한 비율을 확인할 수 있다.
이때, 분산 데이터스토어 성능 개선 장치(500)는 리더 컨트롤러(501)에 대해 확인한 비율과 샤드 내 복수의 팔로워 컨트롤러(도시하지 않음)에 대한 비율을 이용하여, 리더 컨트롤러(501)의 리더 권한을 복수의 팔로워 컨트롤러 중 어느 하나(예컨대, 비율이 가장 큰 팔로워 컨트롤러)로 전환할 수 있다.
다른 일례로서, 분산 데이터스토어 성능 개선 장치(500)는 상기 감마 메시지가 설정된 주기 마다 수신되지 않는 경우, 리더 컨트롤러(501)를 '비정상'으로 확인하고, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여, 리더 컨트롤러(501)의 리더 권한을 복수의 팔로워 컨트롤러 중 어느 하나로 전환할 수 있다.
도 6은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 방법을 나타내는 흐름도이다.
도 6을 참조하면, 단계(601)에서, 분산 데이터스토어 성능 개선 장치는 샤드(shard)를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인할 수 있다.
구체적으로, 분산 데이터스토어 성능 개선 장치는 상기 클라이언트 단말로부터 상기 리더 컨트롤러로 데이터 변경명령이 전송되면, 상기 데이터 변경명령을 복수의 팔로워 컨트롤러로 전달하고, 리더 컨트롤러 및 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 한다. 이때, 분산 데이터스토어 성능 개선 장치는 상기 리더 컨트롤러에 대한 수신 횟수 및 처리 횟수와, 상기 복수의 팔로워 컨트롤러 각각에 대한 처리 횟수를 증가시킬 수 있다.
또한, 분산 데이터스토어 성능 개선 장치는 상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송되면, 상기 임의의 팔로워 컨트롤러에서 상기 데이터 변경명령을 상기 리더 컨트롤러에 전달할 수 있다. 이후, 분산 데이터스토어 성능 개선 장치는 상기 전달된 데이터 변경명령을, 상기 임의의 팔로우 컨트롤러를 포함한 상기 복수의 팔로워 컨트롤러로 전달하고, 상기 리더 컨트롤러 및 상기 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 한다. 이때, 분산 데이터스토어 성능 개선 장치는 상기 임의의 팔로워 컨트롤러에 대한 수신 횟수, 상기 리더 컨트롤러에 대한 처리 횟수, 및 상기 복수의 팔로워 컨트롤러 각각에 대한 처리 횟수를 증가시킬 수 있다.
또한, 분산 데이터스토어 성능 개선 장치는 샤드 내 리더 컨트롤러를 모니터링하여, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 및 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수를 확인하고, 상기 처리 횟수 대비 수신 횟수의 비율을 확인할 수 있으나, 이에 한정되지 않고, 상기 리더 컨트롤러로부터, 상기 비율이 포함된 감마 메시지를 수신하고, 상기 감마 메시지를 통해, 리더 컨트롤러에 대한 비율을 확인할 수 있다.
단계(603)에서, 분산 데이터스토어 성능 개선 장치는 상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 팔로워 컨트롤러 중 어느 하나로 전환할 수 있다.
구체적으로, 분산 데이터스토어 성능 개선 장치는 상기 복수의 제2 비율 중, 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러에게 상기 리더 권한을 전환하되, 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러가 다수이면, 큰 값이 확인된 상기 다수의 팔로워 컨트롤러 중, 가장 큰 제2 비율을 갖는 팔로우 컨트롤러에게 상기 리더 권한을 전환할 수 있다. 이때, 분산 데이터스토어 성능 개선 장치는 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러가 다수이면, 큰 값이 확인된 상기 다수의 팔로워 컨트롤러 중, 상기 시간 동안 상기 데이터 변경명령을 마지막으로 수신한 팔로워 컨트롤러에게 상기 리더 권한을 전환할 수 있다.
다른 일례로서, 분산 데이터스토어 성능 개선 장치는 상기 복수의 제2 비율 각각에서, 상기 제1 비율을 차감하고, 상기 차감한 결과값 중 양의 결과값이, 설정치 이상일 경우, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환할 수 있으며, 설명의 편의상 이후, 도 7을 참조하여 자세히 설명한다.
한편, 분산 데이터스토어 성능 개선 장치는 상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송되면, 상기 임의의 팔로워 컨트롤러로 리더 권한을 부여할 수 있다. 이때, 분산 데이터스토어 성능 개선 장치는 상기 임의의 팔로워 컨트롤러에서, 상기 리더 컨트롤러 및 상기 임의의 팔로우 컨트롤러를 제외한 상기 복수의 팔로워 컨트롤러 각각으로 상기 데이터 변경명령을 전달하도록 하고, 상기 데이터 변경명령의 전달이 완료되면, 상기 임의의 팔로우 컨트롤러에 부여된 리더를 해제시킬 수 있다.
또한, 분산 데이터스토어 성능 개선 장치는 리더 권한이 전환되거나, 또는 상기 샤드에 신규 컨트롤러가 추가되면, 상기 리더 컨트롤러와 상기 복수의 팔로워 컨트롤러에 대한 수신 횟수 대비 및 처리 횟수를 리셋시킬 수 있다.
리더 권한을 전환하는 다른 일례로서, 분산 데이터스토어 성능 개선 장치는 리더 컨트롤러로부터, 감마 메시지가 설정된 주기 마다 수신되지 않는 경우, 상기 리더 컨트롤러를 '비정상'으로 확인하고, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환할 수 있다. 여기서, 감마 메시지는 상기 리더 컨트롤러에 대한 비율을 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 분산 데이터스토어 성능 개선 방법의 일례를 나타내는 흐름도이다.
도 7을 참조하면, 단계(701)에서, 분산 데이터스토어 성능 개선 장치는 리더 컨트롤러에 대한 제1 비율과, 복수의 팔로워 컨트롤러 각각에 대한 복수의 제2 비율을 확인할 수 있다. 여기서, 제1 비율은 리더 컨트롤러에서, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 의미한다. 또한, 제2 비율은 팔로워 컨트롤러에서, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 의미한다.
단계(703)에서, 분산 데이터스토어 성능 개선 장치는 첫번째 팔로워 컨트롤러를 선택한다. 분산 데이터스토어 성능 개선 장치는 복수의 팔로워 컨트롤러를 설정된 기준(예컨대, 컨트롤러의 저장용량 크기가 큰 순서, 클라이언트 단말로부터 데이터 변경명령을 수신한 시점이 최근인 순서, 컨트롤러가 샤드에 추가된 순서)으로 정렬하고, 정렬된 순서대로 복수의 팔로워 컨트롤러를 선택할 수 있다.
단계(705)에서, 분산 데이터스토어 성능 개선 장치는 상기 선택한 팔로워 컨트롤러에 대한 제2 비율에서, 상기 제1 비율을 차감하고, 상기 차감한 결과값이 설정치 이상일 경우, 단계(707)에서, 리더 컨트롤러의 리더 권한을 상기 선택한 팔로워 컨트롤러로 전환할 수 있다.
상기 단계(705)에서, 상기 차감한 결과값이 설정치 미만일 경우, 단계(709)에서, 분산 데이터스토어 성능 개선 장치는 다음 팔로워 컨트롤러를 선택하고, 단계(705)로 이동할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 저장될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 저장되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광저장 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 분산 데이터스토어 성능 개선 장치를 포함하는 네트워크
101: 클라이언트 단말 103: 샤드
105: 리더 컨트롤러 107: 복수의 팔로워 컨트롤러
109: 분산 데이터스토어 성능 개선 장치

Claims (10)

  1. 샤드(shard)를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인하는 단계; 및
    상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 복수의 팔로워 컨트롤러 중 어느 하나로 전환하는 단계
    를 포함하는 분산 데이터스토어 성능 개선 방법.
  2. 제1항에 있어서,
    상기 전환하는 단계는,
    상기 복수의 제2 비율 중, 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러에게 상기 리더 권한을 전환하되, 상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러가 다수이면, 큰 값이 확인된 상기 다수의 팔로워 컨트롤러 중, 가장 큰 제2 비율을 갖는 팔로우 컨트롤러에게 상기 리더 권한을 전환하는 단계
    를 포함하는 분산 데이터스토어 성능 개선 방법.
  3. 제2항에 있어서,
    상기 전환하는 단계는,
    상기 제1 비율 보다 큰 값이 확인된 팔로워 컨트롤러가 다수이면, 큰 값이 확인된 상기 다수의 팔로워 컨트롤러 중, 상기 시간 동안 상기 데이터 변경명령을 마지막으로 수신한 팔로워 컨트롤러에게 상기 리더 권한을 전환하는 단계
    를 더 포함하는 분산 데이터스토어 성능 개선 방법.
  4. 제1항에 있어서,
    상기 전환하는 단계는,
    상기 복수의 제2 비율 각각에서, 상기 제1 비율을 차감하는 단계; 및
    상기 차감한 결과값 중 양의 결과값이, 설정치 이상일 경우, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환하는 단계
    를 포함하는 분산 데이터스토어 성능 개선 방법.
  5. 제1항에 있어서,
    상기 클라이언트 단말로부터 상기 리더 컨트롤러로 상기 데이터 변경명령이 전송되면, 상기 데이터 변경명령을 상기 복수의 팔로워 컨트롤러로 전달하고, 상기 리더 컨트롤러 및 상기 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 하는 단계; 및
    상기 리더 컨트롤러에 대한 수신 횟수 및 처리 횟수와, 상기 복수의 팔로워 컨트롤러 각각에 대한 처리 횟수를 증가시키는 단계
    를 더 포함하는 분산 데이터스토어 성능 개선 방법.
  6. 제1항에 있어서,
    상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송되면,
    상기 임의의 팔로워 컨트롤러에서 상기 데이터 변경명령을 상기 리더 컨트롤러에 전달하는 단계;
    상기 전달된 데이터 변경명령을, 상기 임의의 팔로우 컨트롤러를 포함한 상기 복수의 팔로워 컨트롤러로 전달하고, 상기 리더 컨트롤러 및 상기 복수의 팔로워 컨트롤러 각각에서, 상기 데이터 변경명령을 수행하도록 하는 단계; 및
    상기 임의의 팔로워 컨트롤러에 대한 수신 횟수, 상기 리더 컨트롤러에 대한 처리 횟수, 및 상기 복수의 팔로워 컨트롤러 각각에 대한 처리 횟수를 증가시키는 단계
    를 더 포함하는 분산 데이터스토어 성능 개선 방법.
  7. 제1항에 있어서,
    상기 클라이언트 단말로부터 임의의 팔로워 컨트롤러로 데이터 변경명령이 전송되면,
    상기 임의의 팔로워 컨트롤러로 리더 권한을 부여하는 단계;
    상기 임의의 팔로워 컨트롤러에서, 상기 리더 컨트롤러 및 상기 임의의 팔로우 컨트롤러를 제외한 상기 복수의 팔로워 컨트롤러 각각으로 상기 데이터 변경명령을 전달하도록 하는 단계; 및
    상기 데이터 변경명령의 전달이 완료되면, 상기 임의의 팔로우 컨트롤러에 부여된 리더를 해제시키는 단계
    를 더 포함하는 분산 데이터스토어 성능 개선 방법.
  8. 제1항에 있어서,
    리더 권한이 전환되거나, 또는 상기 샤드에 신규 컨트롤러가 추가되면, 상기 리더 컨트롤러와 상기 복수의 팔로워 컨트롤러에 대한 수신 횟수 대비 및 처리 횟수를 리셋시키는 단계
    를 더 포함하는 분산 데이터스토어 성능 개선 방법.
  9. 제1항에 있어서,
    상기 리더 컨트롤러로부터, 비율이 포함된 감마 메시지(Gamma message)를 수신하는 단계
    를 더 포함하고,
    상기 감마 메시지가 설정된 주기 마다 수신되지 않는 경우,
    상기 전환하는 단계는,
    상기 리더 컨트롤러를 '비정상'으로 확인하고, 리더 컨트롤러의 재선정을 위한 조건이 만족된 것으로 판단하여 상기 리더 권한을 전환하는 단계
    를 포함하는 분산 데이터스토어 성능 개선 방법.
  10. 샤드를 모니터링하여, 설정된 시간 동안 리더 컨트롤러와 복수의 팔로워 컨트롤러에 대해, 클라이언트 단말로부터의 데이터 변경명령을 처리한 처리 횟수 대비, 상기 클라이언트 단말로부터 데이터 변경명령을 수신한 수신 횟수의 비율을 확인하는 모니터링부; 및
    상기 리더 컨트롤러에 대해 확인한 제1 비율과, 상기 복수의 팔로워 컨트롤러 각각에 대해 확인한 복수의 제2 비율을 이용하여, 상기 리더 컨트롤러의 리더 권한을 상기 복수의 팔로워 컨트롤러 중 어느 하나로 전환하는 프로세서
    를 포함하는 분산 데이터스토어 성능 개선 장치.
KR1020170127961A 2017-09-29 2017-09-29 분산 데이터스토어 성능 개선 장치 및 방법 KR101997978B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170127961A KR101997978B1 (ko) 2017-09-29 2017-09-29 분산 데이터스토어 성능 개선 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170127961A KR101997978B1 (ko) 2017-09-29 2017-09-29 분산 데이터스토어 성능 개선 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190038019A KR20190038019A (ko) 2019-04-08
KR101997978B1 true KR101997978B1 (ko) 2019-07-08

Family

ID=66164245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170127961A KR101997978B1 (ko) 2017-09-29 2017-09-29 분산 데이터스토어 성능 개선 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101997978B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102192442B1 (ko) 2020-02-10 2020-12-17 충북대학교 산학협력단 쿠버네티스 클러스터에서의 리더 분산 방법 및 리더 분산 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024453A1 (en) 2015-07-20 2017-01-26 Cisco Technology, Inc. Methods and systems for load balancing based on data shard leader

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527634B1 (ko) * 2012-08-10 2015-06-10 네이버 주식회사 샤딩 서비스를 제공하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024453A1 (en) 2015-07-20 2017-01-26 Cisco Technology, Inc. Methods and systems for load balancing based on data shard leader

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김태홍 등, "오픈데이라이트 컨트롤러 클러스터 성능 분석 및 최적 운영 방안", 한국통신학회논문지, pp 1801-1810 (10 pages), 2016.12 1부.*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102192442B1 (ko) 2020-02-10 2020-12-17 충북대학교 산학협력단 쿠버네티스 클러스터에서의 리더 분산 방법 및 리더 분산 시스템

Also Published As

Publication number Publication date
KR20190038019A (ko) 2019-04-08

Similar Documents

Publication Publication Date Title
CN107872402B (zh) 全局流量调度的方法、装置及电子设备
RU2749339C1 (ru) Способ управления оборудованием, кластерная система, электронное устройство и читаемый носитель данных
US20160267040A1 (en) Interconnect channel management
US8849756B2 (en) Selecting data nodes in distributed storage system
US20070033205A1 (en) Method or apparatus for selecting a cluster in a group of nodes
US8510742B2 (en) Job allocation program for allocating jobs to each computer without intensively managing load state of each computer
US9513835B2 (en) Impact-based migration scheduling from a first tier at a source to a second tier at a destination
US20180288152A1 (en) Storage dynamic accessibility mechanism method and apparatus
CN109189578B (zh) 存储服务器分配方法、装置、管理服务器以及存储系统
CN112615905B (zh) 区块链分片的调度方法、装置、设备及存储介质
CN109739435B (zh) 文件存储和更新方法及装置
WO2015196686A1 (zh) 一种数据存储方法以及一种数据存储管理服务器
US20070022192A1 (en) Method and system for managing time-out events in a storage area network
US10216593B2 (en) Distributed processing system for use in application migration
KR101997978B1 (ko) 분산 데이터스토어 성능 개선 장치 및 방법
CN110858986A (zh) 带宽调整方法、装置、通信设备及计算机可读存储介质
CN113746763B (zh) 一种数据处理的方法、装置和设备
JP7364940B2 (ja) 系判定装置、系判定方法および系判定プログラム
US20150372895A1 (en) Proactive Change of Communication Models
CN109587218B (zh) 一种集群选举的方法和装置
JP2015153330A (ja) 仮想マシン配置システム及び方法
CN113901076A (zh) 数据同步方法、装置、服务器及存储介质
CN109462639B (zh) 端口扩展设备管理方法及装置
CN115878450A (zh) 执行测试任务的方法及装置
CN113190347A (zh) 一种边缘云系统及任务管理方法

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