KR102171027B1 - 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법 - Google Patents

비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법 Download PDF

Info

Publication number
KR102171027B1
KR102171027B1 KR1020190090654A KR20190090654A KR102171027B1 KR 102171027 B1 KR102171027 B1 KR 102171027B1 KR 1020190090654 A KR1020190090654 A KR 1020190090654A KR 20190090654 A KR20190090654 A KR 20190090654A KR 102171027 B1 KR102171027 B1 KR 102171027B1
Authority
KR
South Korea
Prior art keywords
information
server device
log information
storage unit
hash
Prior art date
Application number
KR1020190090654A
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 KR1020190090654A priority Critical patent/KR102171027B1/ko
Application granted granted Critical
Publication of KR102171027B1 publication Critical patent/KR102171027B1/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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • 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

Abstract

요청 명령을 생성하는 클라이언트; 상기 클라이언트에서 생성되는 요청 명령에 대한 로그 정보를 생성하는 선도 서버 장치; 및 상기 선도 서버 장치로부터 상기 로그 정보를 전달받고, 상기 로그 정보를 저장하여 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 추종 서버 장치를 포함하는, 합의 시스템을 제공할 수 있다.

Description

비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법{FOLLOWER SERVER APPARATUS AND LEAD SERVER APPARATUS FOR PROCESSING UNSTRUCTURED LOG, CONSENSUS SYSTEM INCLUDING THE SAME AND METHOD THEREOF}
본 발명은 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 분산 시스템에서 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법에 관한 것이다.
분산 시스템을 구성하는 복수개의 서버는 클라이언트로부터 발생하는 요청을 처리하기 위해 각각의 서버가 포함하는 데이터베이스에 동일한 로그를 저장할 필요가 있다. 이때, 복수개의 서버는 합의 알고리즘을 통해 동일한 로그를 저장하게 된다.
예를 들어, 합의 알고리즘 중 하나인 Raft 알고리즘은 일정한 시간 간격의 주기에 따라 선도 서버를 선출하고, 선도 서버가 로그를 생성하고, 모든 추종 서버에 로그 기록을 전송하여 저장하는 방식으로 합의 알고리즘이 진행되는 것으로 알려져 있다.
그러나, 이러한 Raft 알고리즘은 모든 서버가 매 순간 발생하는 로그를 각각 저장하고, 각각 확인하는 과정이 필요하여 합의 알고리즘을 수행하는데 오랜 시간이 걸리는 단점이 존재한다.
이에 따라, 이러한 합의 알고리즘의 수행 시간을 단축시키는 방안이 필요한 실정이다.
본 발명이 해결하고자 하는 기술적 과제는 분산 시스템에서 비정형 로그를 처리하기 위한 합의 알고리즘을 수행하는 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법을 제공하는 것이다.
본 발명의 일측면은, 요청 명령을 생성하는 클라이언트; 상기 클라이언트에서 생성되는 요청 명령에 대한 로그 정보를 생성하는 선도 서버 장치; 및 상기 선도 서버 장치로부터 상기 로그 정보를 전달받고, 상기 로그 정보를 저장하여 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 추종 서버 장치를 포함할 수 있다.
또한, 상기 선도 서버 장치는, 상기 로그 정보를 저장하여 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성할 수 있다.
또한, 상기 선도 서버 장치는, 상기 선도 서버 장치에서 생성되는 해시 정보와 상기 추종 서버 장치에서 생성되는 해시 정보를 비교하고, 해시 정보의 일치 여부에 따라 상기 로그 정보에 대한 제어 명령을 생성할 수 있다.
본 발명의 다른 일측면은, 외부로부터 발생하는 요청 명령에 대한 로그 정보를 생성하는 로그 생성부; 상기 로그 정보를 저장하는 임시 저장부; 사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 해시 생성부; 상기 해시 생성부에서 생성되는 해시 정보와 외부로부터 전달받는 해시 정보를 비교하고, 해시 정보가 일치하는 경우, 상기 임시 저장부에 저장된 로그 정보에 대한 저장 명령을 생성하는 일치 판단부; 및 상기 저장 명령에 따라 상기 로그 정보를 저장하는 데이터베이스 저장부를 포함할 수 있다.
또한, 상기 일치 판단부는, 상기 해시 생성부에서 생성되는 해시 정보와 외부로부터 전달받는 해시 정보가 불일치하는 경우, 상기 임시 저장부에 저장된 로그 정보에 대한 제거 명령을 생성할 수 있다.
또한, 상기 임시 저장부는, 상기 로그 개수 정보와 동일한 개수의 로그 정보가 저장되도록 크기가 결정될 수 있다.
또한, 상기 데이터베이스 저장부는, 상기 임시 저장부에 저장된 로그 정보를 저장할 때, 상기 로그 정보가 저장되는 순서를 나타내는 목록 정보를 저장할 수 있다.
본 발명의 또 다른 일측면은, 외부로부터 전달받는 로그 정보를 저장하는 임시 저장부; 사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 해시 생성부; 및 상기 해시 정보를 외부에 전달하여 생성되는 저장 명령을 외부로부터 전달받고, 상기 저장 명령에 따라 상기 로그 정보를 저장하는 데이터베이스 저장부를 포함할 수 있다.
또한, 상기 임시 저장부는, 상기 로그 개수 정보와 동일한 개수의 로그 정보가 저장되도록 크기가 결정될 수 있다.
또한, 상기 데이터베이스 저장부는, 상기 임시 저장부에 저장된 로그 정보를 저장할 때, 상기 로그 정보가 저장되는 순서를 나타내는 목록 정보를 저장할 수 있다.
본 발명의 또 다른 일측면은, 복수의 추종 서버 장치 중 적어도 하나의 서버 장치가 선도 서버 장치로 선출되는 합의 시스템을 이용하는 합의 방법에 있어서, 외부로부터 발생하는 요청 명령에 대한 로그 정보를 생성하는 단계; 상기 로그 정보를 상기 추종 서버 장치에 전송하고, 상기 선도 서버 장치의 임시 저장부에 저장하는 단계; 사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 단계; 상기 추종 서버 장치에서 생성되는 해시 정보를 전달받는 단계; 상기 해시 정보를 생성하는 단계에서 생성되는 해시 정보와 상기 해시 정보를 전달받는 단계에서 전달받는 해시 정보를 비교하고, 해시 정보의 일치 여부를 판단하여 상기 로그 정보에 대한 제어 명령을 생성하는 단계; 및 상기 추종 서버 장치에 상기 제어 명령을 전달하고, 상기 제어 명령에 따라 상기 임시 저장부에 저장된 로그 정보를 제어하는 단계를 포함할 수 있다.
또한, 상기 추종 서버 장치는, 상기 선도 서버 장치로부터 상기 로그 정보를 전달받는 단계; 상기 로그 정보를 상기 추종 서버 장치의 임시 저장부에 저장하는 단계; 사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 추종 서버 장치의 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 단계; 상기 선도 서버 장치에 해시 정보를 전달하는 단계; 및 상기 해시 정보를 전달하는 단계에 의해서 상기 선도 서버 장치에서 제어 명령을 전달받고, 상기 제어 명령에 따라 상기 추종 서버 장치의 임시 저장부에 저장된 로그 정보를 제어하는 단계를 포함할 수 있다.
또한, 상기 선도 서버 장치는, 사전에 설정되는 주기 정보에 따라 상기 복수의 추종 서버 장치 중 하나의 서버 장치가 선도 서버 장치로 선출되고, 상기 선도 서버 장치로 선출된 경우, 상기 선도 서버 장치의 서버 정보를 상기 추종 서버 장치의 데이터베이스 저장부에 저장하도록 상기 선도 서버 장치의 서버 정보를 상기 추종 서버 장치에 전달할 수 있다.
또한, 상기 제어 명령을 생성하는 단계는, 상기 해시 정보를 생성하는 단계에서 생성된 해시 정보와 상기 해시 정보를 전달받는 단계에서 전달받은 해시 정보가 일치하는 경우, 상기 로그 정보에 대한 저장 명령을 생성하거나, 또는 상기 해시 정보를 생성하는 단계에서 생성된 해시 정보와 상기 해시 정보를 전달받는 단계에서 전달받은 해시 정보가 불일치하는 경우, 상기 로그 정보에 대한 제거 명령을 생성할 수 있다.
또한, 상기 로그 정보를 제어하는 단계는, 상기 저장 명령에 따라, 상기 로그 정보를 데이터베이스 저장부에 저장하고, 상기 임시 저장부의 로그 정보가 데이터베이스 저장부에 저장된 경우에, 상기 임시 저장부의 로그 정보를 제거할 수 있다.
또한, 상기 로그 정보를 제어하는 단계는, 상기 로그 정보를 상기 임시 저장부에서 제거할 수 있다.
상술한 본 발명의 일측면에 따르면, 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법을 제공함으로써, 분산 시스템에서 비정형 로그를 처리하기 위한 합의 알고리즘을 수행할 수 있다.
도1은 본 발명의 일 실시예에 따른 합의 시스템의 개략도이다.
도2는 본 발명의 일 실시예에 따른 선도 서버 장치의 제어블록도이다.
도3은 본 발명의 일 실시예에 따른 추종 서버 장치의 제어블록도이다.
도4는 본 발명의 일 실시예에 따른 합의 시스템의 데이터베이스 저장부에 로그 정보가 저장되는 형태를 나타낸 개략도이다.
도5는 본 발명의 일 실시예에 따른 합의 방법의 순서도이다.
도6은 본 발명의 일 실시예에 따른 선도 서버 장치에서 실시되는 합의 방법의 순서도이다.
도7은 본 발명의 일 실시예에 따른 추종 서버 장치에서 실시되는 합의 방법의 세부 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구한들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도1은 본 발명의 일 실시예에 따른 합의 시스템의 개략도이다.
본 발명의 일 실시예에 따른 합의 시스템(1)은 클라이언트(100), 선도 서버 장치(200) 및 추종 서버 장치(300)를 포함할 수 있다.
클라이언트(100)는 클라이언트(100)에서 사용되는 시스템에 대한 요청 명령을 생성할 수 있다.
예를 들어, 요청 명령은 데이터의 이동, 데이터 내용 변경, 데이터 제거, 데이터 생성 등을 포함할 수 있으며, 이와 같이, 요청 명령은 클라이언트(100)의 시스템에서 실행되는 이벤트를 포함할 수 있다.
선도 서버 장치(200)는 추종 서버 장치(300)로부터 선출될 수 있으며, 이에 따라, 현재의 선도 서버 장치(200)가 추종 서버 장치(300)가 되고, 다른 추종 서버 장치(300)가 선도 서버 장치(200)로 선출될 수 있다.
선도 서버 장치(200)는 클라이언트(100)에서 생성되는 요청 명령에 대한 로그 정보를 생성할 수 있다.
여기에서, 로그 정보는 요청 명령을 시간 순서에 따라 작성한 것으로 이해할 수 있다.
이를 위해, 선도 서버 장치(200)는 클라이언트(100)로부터 요청 명령을 전달받을 수 있다.
또한, 선도 서버 장치(200)는 생성되는 로그 정보를 추종 서버 장치(300)에 전달할 수 있다.
추종 서버 장치(300)는 선도 서버 장치(200)로부터 로그 정보를 전달받을 수 있으며, 이에 따라, 추종 서버 장치(300)는 로그 정보를 저장할 수 있다.
추종 서버 장치(300)는 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 저장된 로그 정보에 대한 해시 정보를 생성할 수 있다.
여기에서, 해시 정보는 로그 정보를 입력으로 하는 해시 함수에 따라 생성될 수 있으며, 해시 함수는 사전에 설정되어 선도 서버 장치(200) 및 추종 서버 장치(300)에 각각 구비될 수 있다.
추종 서버 장치(300)는 생성된 해시 정보를 선도 서버 장치(200)에 전달할 수 있으며, 이에 따라, 선도 서버 장치(200)는 추종 서버 장치(300)로부터 해시 정보를 전달받을 수 있다.
한편, 선도 서버 장치(200)는 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 저장된 로그 정보에 대한 해시 정보를 생성할 수 있다.
이에 따라, 선도 서버 장치(200)는 생성된 해시 정보와 추종 서버 장치(300)에서 전달받은 해시 정보를 비교할 수 있으며, 해시 정보의 일치 여부에 따라 로그 정보에 대한 제어 명령을 생성할 수 있다.
한편, 합의 시스템(1)은 복수개의 추종 서버 장치(300a, 300b, 300c, 300d)를 포함할 수 있다.
이에 따라, 각각의 추종 서버 장치(300a, 300b, 300c, 300d)는 선도 서버 장치(200)를 선출하는 투표에 의해서 선도 서버 장치(200)로 선출될 수 있다.
여기에서, 선도 서버 장치(200)를 선출하는 투표는 선도 서버 장치(200)에서 생성되는 로그 정보를 저장하는 시점 또는 횟수에 관련되어 사전에 설정되는 주기 정보에 따라 실행될 수 있다.
선도 서버 장치(200) 및 추종 서버 장치(300)에 대해서는 하기에서 상세히 설명하도록 한다.
한편, 클라이언트(100), 선도 서버 장치(200) 및 추종 서버 장치(300)는 서로 간에 통신이 이루어질 수 있도록 구비될 수 있다.
여기에서, 통신은 장치 간에 데이터를 송수신할 수 있는 유, 무선의 근거리 및 광역 데이터 송수신망을 의미할 수 있으며, 이에 따라, 본 명세서의 '전달'한다는 표현은 어느 하나의 구성요소에서 다른 구성요소로 데이터를 직접 전달할 수도 있고, 상기에서 설명한 통신을 사용하여 다른 구성요소로 데이터를 전달할 수도 있는 것을 의미한다.
한편, 본 발명의 일 실시예에 따른 합의 시스템(1)은 이하에서 설명할 선도 서버 장치(200) 및 추종 서버 장치(300)와 실질적으로 동일한 구성 상에서 설명될 수 있다. 이에 따라, 합의 시스템(1)은 선도 서버 장치(200) 및 추종 서버 장치(300)와 동일한 구성요소에 대해 이하의 설명에 따라 보충될 수 있다.
도2는 본 발명의 일 실시예에 따른 선도 서버 장치의 제어블록도이다.
선도 서버 장치(200)는 저장부(210) 및 제어부(220)를 포함할 수 있으며, 저장부(210)는 임시 저장부(211) 및 데이터베이스 저장부(212)를 포함할 수 있고, 제어부(220)는 로그 생성부(221), 해시 생성부(222) 및 일치 판단부(223)를 포함할 수 있다.
로그 생성부(221)는 클라이언트(100)에서 생성되는 요청 명령에 대한 로그 정보를 생성할 수 있다.
여기에서, 로그 정보는 요청 명령을 시간 순서에 따라 작성한 것으로 이해할 수 있다.
이에 따라, 로그 정보는 클라이언트(100)에서 생성되는 요청 명령에 대한 분류 정보, 세부 정보, 시간 정보 등의 요청 명령을 설명하는 정보를 포함할 수 있다.
여기에서, 분류 정보는 요청 명령이 어떤 종류의 요청인지를 나타내는 정보로써, 이동 명령, 제거 명령, 수정 명령, 생성 명령 등을 포함할 수 있으며, 세부 정보는 분류 정보에 의해 변화되는 데이터를 나타내는 데이터 서지 정보 및 요청 명령을 생성하는 클라이언트(100)의 명칭, 주소 등을 나타내는 클라이언트 서지 정보 등을 포함할 수 있고, 시간 정보는 요청 명령이 생성되는 시점을 나타내는 정보를 포함할 수 있다.
한편, 선도 서버 장치(200)는 로그 정보를 추종 서버 장치(300)에 전달할 수 있다.
임시 저장부(211)는 로그 생성부(221)에서 생성된 로그 정보를 저장할 수 있으며, 임시 저장부(211)는 사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 저장되도록 크기가 결정될 수 있다.
예를 들어, 로그 개수 정보가 5를 나타내는 경우에, 임시 저장부(211)에 저장되는 로그 정보는 5개일 수 있으며, 이는, 클라이언트(100)에서 생성되는 요청 명령이 5건인 것으로 이해할 수 있다.
한편, 임시 저장부(211)는 로그 정보를 저장할 수 없는 상태가 된 경우에, 임시 저장부(211)에 저장된 로그 정보로부터 해시 정보를 생성하도록 하는 해시 신호를 생성할 수 있다.
여기에서, 로그 정보를 저장할 수 없는 상태가 된 경우는 임시 저장부(211)에 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우를 의미할 수도 있다.
한편, 임시 저장부(211)는 해시 정보가 생성되는 순서를 나타내는 순서 정보를 포함할 수 있으며, 여기에서, 순서 정보는 해시 신호가 생성될 때, 1이 추가되는 카운트 형식의 정보로써, 기본 값은 0으로 설정될 수 있다.
해시 생성부(222)는 임시 저장부(211)에 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 임시 저장부(211)에 저장된 로그 정보에 대한 해시 정보를 생성할 수 있다.
이때, 해시 생성부(222)는 임시 저장부(211)에서 생성되는 해시 신호에 따라, 임시 저장부(211)에 저장된 로그 정보에 대한 해시 정보를 생성할 수도 있다.
이때, 해시 생성부(222)는 임시 저장부(211)에 저장된 로그 정보를 사전에 설정되는 해시 함수에 입력하여 해시 정보를 생성할 수 있으며, 로그 정보에 포함되는 정보의 일부를 해시 함수에 입력하여 해시 정보를 생성할 수 있음은 물론이다.
또한, 해시 함수는 선도 서버 장치(200) 및 추종 서버 장치(300)에서 동일하게 설정되어, 동일한 로그 정보에 대해 동일한 해시 정보를 나타내도록 할 수 있다.
일치 판단부(223)는 해시 생성부(222)에서 생성되는 해시 정보와 추종 서버 장치(300)로부터 전달받는 해시 정보를 비교하고, 해시 정보의 일치 여부를 판단하여 임시 저장부(211)에 저장된 로그 정보에 대한 제어 명령을 생성할 수 있다.
여기에서, 제어 명령은 로그 정보를 데이터베이스 저장부(212)에 저장하도록 하는 저장 명령 및 로그 정보를 제거하도록 하는 제거 명령을 포함할 수 있다.
이를 위해, 선도 서버 장치(200)는 추종 서버 장치(300)로부터 해시 정보를 전달받을 수 있다.
일치 판단부(223)는 해시 생성부(222)에서 생성되는 해시 정보와 추종 서버 장치(300)로부터 전달받는 해시 정보를 비교하고, 해시 정보가 일치하는 경우에, 임시 저장부(211)에 저장된 로그 정보에 대한 저장 명령을 생성할 수 있다.
일치 판단부(223)는 해시 생성부(222)에서 생성되는 해시 정보와 추종 서버 장치(300)로부터 전달받는 해시 정보를 비교하고, 해시 정보가 불일치하는 경우에, 임시 저장부(211)에 저장된 로그 정보에 대한 제거 명령을 생성할 수 있다.
이에 따라, 임시 저장부(211)는 일치 판단부(223)에서 생성되는 제거 명령에 따라, 임시 저장부(211)에 저장된 로그 정보를 제거하여 임시 저장부(211)를 초기화할 수 있으며, 이때, 임시 저장부(211)는 저장이 가능한 상태로 설정될 수 있다.
한편, 선도 서버 장치(200)는 추종 서버 장치(300)에 로그 정보에 대한 제어 명령을 전달할 수 있다
데이터베이스 저장부(212)는 일치 판단부(223)에서 생성되는 저장 명령에 따라, 임시 저장부(211)에 저장된 로그 정보를 저장할 수 있다.
이에 따라, 임시 저장부(211)는 임시 저장부(211)에 저장된 로그 정보가 데이터베이스 저장부(212)에 저장된 경우에, 임시 저장부(211)에 저장된 로그 정보를 제거하여 임시 저장부(211)를 초기화할 수 있으며, 이때, 임시 저장부(211)는 저장이 가능한 상태로 설정될 수 있다.
데이터베이스 저장부(212)는 임시 저장부(211)의 로그 정보를 저장할 때, 임시 저장부(211)의 로그 정보가 저장되는 순서를 나타내는 목록 정보를 저장할 수 있다.
여기에서, 목록 정보는 임시 저장부(211)에서 해시 정보가 생성되는 순서를 나타내는 순서 정보에 따른 목록을 나타낼 수 있다.
이에 따라, 목록 정보는 순서 정보에 따라 정렬되고, 순서 정보의 각각의 순서에서 임시 저장부(211)에 저장된 로그 정보의 시간 정보에 따라 정렬될 수 있으며, 이때, 목록 정보는 각각의 순서에서 선출된 선도 서버 장치(200)의 서지 정보를 나타내는 서버 정보를 포함할 수 있다.
여기에서, 서버 정보는 선도 서버 장치(200) 및 추종 서버 장치(300)의 서버 명칭, 서버 주소, 복수의 서버가 나열되어 생성되는 서버의 순서 등을 나타내는 서지 정보를 포함할 수 있다.
이에 따라, 목록 정보는 임시 저장부(211)의 순서 정보에 따라 나열되고, 각각의 순서 정보는 선도 서버 장치(200)의 서버 정보를 포함하고, 각각의 순서 정보의 하위에 로그 정보가 나열되는 형태인 것으로 이해할 수 있다.
한편, 데이터베이스 저장부(212)에 로그 정보가 저장된 경우에, 선도 서버 장치(200)는 클라이언트(100)에 로그 정보가 저장된 것을 알리는 저장 완료 신호를 전달할 수 있다.
도3은 본 발명의 일 실시예에 따른 추종 서버 장치의 제어블록도이다.
추종 서버 장치(300)는 저장부(310) 및 제어부(320)를 포함할 수 있으며, 저장부(310)는 임시 저장부(311) 및 데이터베이스 저장부(312)를 포함할 수 있고, 제어부(320)는 해시 생성부(321)를 포함할 수 있다.
임시 저장부(311)는 선도 서버 장치(200)로부터 전달받는 로그 정보를 저장할 수 있으며, 임시 저장부(311)는 사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 저장되도록 크기가 결정될 수 있다.
예를 들어, 로그 개수 정보가 5를 나타내는 경우에, 임시 저장부(311)에 저장되는 로그 정보는 8개일 수 있으며, 이는, 클라이언트(100)에서 생성되는 요청 명령이 8건인 것으로 이해할 수 있다.
한편, 임시 저장부(311)는 로그 정보를 저장할 수 없는 상태가 된 경우에, 임시 저장부(311)에 저장된 로그 정보로부터 해시 정보를 생성하도록 하는 해시 신호를 생성할 수 있다.
여기에서, 로그 정보를 저장할 수 없는 상태가 된 경우는 임시 저장부(311)에 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우를 의미할 수도 있다.
한편, 임시 저장부(311)는 해시 정보가 생성되는 순서를 나타내는 순서 정보를 포함할 수 있으며, 여기에서, 순서 정보는 해시 신호가 생성될 때, 1이 추가되는 카운트 형식의 정보로써, 기본 값은 0으로 설정될 수 있다.
이에 따라, 선도 서버 장치(200) 및 추종 서버 장치(300)가 동일한 횟수로 로그 정보를 저장하는 경우에, 선도 서버 장치(200) 및 추종 서버 장치(300)에서 특정 시점에 생성되는 순서 정보는 동일한 순서를 나타낼 수 있다.
임시 저장부(311)는 선도 서버 장치(200)로부터 전달받는 제거 명령에 따라, 임시 저장부(311)에 저장된 로그 정보를 제거하여 임시 저장부(311)를 초기화할 수 있으며, 이때, 임시 저장부(311)는 저장이 가능한 상태로 설정될 수 있다.
해시 생성부(321)는 임시 저장부(311)에 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 임시 저장부(311)에 저장된 로그 정보에 대한 해시 정보를 생성할 수 있다.
이때, 해시 생성부(321)는 임시 저장부(311)에서 생성되는 해시 신호에 따라, 임시 저장부(311)에 저장된 로그 정보에 대한 해시 정보를 생성할 수도 있다.
이때, 해시 생성부(321)는 임시 저장부(311)에 저장된 로그 정보를 사전에 설정되는 해시 함수에 입력하여 해시 정보를 생성할 수 있으며, 로그 정보에 포함되는 정보의 일부를 해시 함수에 입력하여 해시 정보를 생성할 수 있음은 물론이다.
또한, 해시 성성부(321)는 선도 서버 장치(200) 및 추종 서버 장치(300)에 설정되는 해시 함수를 동일하게 설정하여, 동일한 로그 정보에 대해 동일한 해시 정보를 나타내도록 할 수 있다.
이에 따라, 추종 서버 장치(300)는 선도 서버 장치(200)에 해시 정보를 전달할 수 있다.
데이터베이스 저장부(312)는 선도 서버 장치(200)로부터 전달받는 저장 명령에 따라, 임시 저장부(311)에 저장된 로그 정보를 저장할 수 있다
이에 따라, 임시 저장부(311)는 임시 저장부(311)에 저장된 로그 정보가 데이터베이스 저장부(312)에 저장된 경우에, 임시 저장부(311)에 저장된 로그 정보를 제거하여 임시 저장부(311)를 초기화할 수 있으며, 이때, 임시 저장부(311)는 저장이 가능한 상태로 설정될 수 있다.
데이터베이스 저장부(312)는 임시 저장부(311)의 로그 정보를 저장할 때, 임시 저장부(311)의 로그 정보가 저장되는 순서를 나타내는 목록 정보를 저장할 수 있다.
여기에서, 목록 정보는 임시 저장부(311)에서 해시 정보가 생성되는 순서를 나타내는 순서 정보에 따른 목록을 나타낼 수 있다.
이에 따라, 목록 정보는 순서 정보에 따라 정렬되고, 순서 정보의 각각의 순서에서 임시 저장부(311)에 저장된 로그 정보의 시간 정보에 따라 정렬될 수 있으며, 이때, 목록 정보는 각각의 순서에서 선출된 선도 서버 장치(200)의 서지 정보를 나타내는 서버 정보를 포함할 수 있다.
여기에서, 서버 정보는 선도 서버 장치(200) 및 추종 서버 장치(300)의 서버 명칭, 서버 주소, 복수의 서버가 나열되어 생성되는 서버의 순서 등을 나타내는 서지 정보를 포함할 수 있다.
이에 따라, 목록 정보는 임시 저장부(311)의 순서 정보에 따라 나열되고, 각각의 순서 정보는 선도 서버 장치(200)의 서버 정보를 포함하고, 각각의 순서 정보의 하위에 로그 정보가 나열되는 형태인 것으로 이해할 수 있다.
한편, 합의 시스템(1)은 복수개의 추종 서버 장치(300)를 포함할 수 있으며, 이에 따라, 각각의 추종 서버 장치(300)는 선도 서버 장치(200)를 선출하는 투표에 의해서 선도 서버 장치(200)로 선출될 수 있다.
여기에서, 선도 서버 장치(200)를 선출하는 투표는 선도 서버 장치(200)에서 생성되는 로그 정보를 저장하는 시점 또는 횟수에 관련되어 사전에 설정되는 주기 정보에 따라 실행될 수 있다.
예를 들어, 주기 정보는 임시 저장부(311)에서 데이터베이스 저장부(312)에 로그 정보를 1회 저장하는 주기로 설정될 수 있으며, 이러한 경우에는, 임시 저장부(311)에서 로그 개수 정보에 따라 로그 정보를 저장하고, 이로부터 생성되는 해시 정보를 비교하여 생성되는 저장 명령에 따라 로그 정보를 데이터베이스 저장부(312)에 1회 저장하는 경우에, 새로운 선도 서버 장치(200)를 선출하는 것으로 이해할 수 있다.
한편, 선도 서버 장치(200)는 새로운 선도 서버 장치(200)로 선출된 경우에, 추종 서버 장치(300)에 선도 서버 장치(200)의 서버 정보를 전달할 수 있으며, 이에 따라, 추종 서버 장치(300)는 로그 정보를 데이터베이스 저장부(312)에 저장할 때, 선도 서버 장치(200)의 서버 정보를 데이터베이스 저장부(312)에 저장할 수 있다.
또한, 선도 서버 장치(200)는 추종 서버 장치(300)로부터 선출되므로, 선도 서버 장치(200) 및 추종 서버 장치(300)의 구성요소는 동일한 명칭이 부여된 경우, 실질적으로 동일한 구성 상에서 진행되는 것으로 이해할 수 있음은 물론이다.
도4는 본 발명의 일 실시예에 따른 합의 시스템의 데이터베이스 저장부에 로그 정보가 저장되는 형태를 나타낸 개략도이다.
도4에서 C1 및 C2는 임시 저장부(211, 311)의 순서 정보에 따라 순서를 구분한 것을 나타내고, S1 내지 S5는 서버 정보에 따라 서버를 구분한 것을 나타내며, L1 내지 Ln, Ln 내지 Ln+n은 로그 정보에 포함되는 시간 정보에 따라 로그 정보가 나열된 것을 나타내는 것으로 이해할 수 있다.
이에 따라, 데이터베이스 저장부(212, 312)에 로그 정보가 저장되는 형태는 임시 저장부(211, 311)에서 생성되는 순서 정보에 따라 정렬되고, 데이터베이스 저장부(212, 312)의 각각의 순서 정보는 서버 정보 및 시간 정보에 따라 나열되는 로그 정보를 포함하는 것으로 이해할 수 있다.
한편, 도4를 참조하면, 각각의 순서 정보 내에서 강조된 서버 정보를 확인할 수 있으며, 강조 표시된 정보가 데이터베이스 저장부(212, 312)에 저장되는 것으로 이해할 수 있다.
이때, 강조 표시된 정보의 서버 정보가 나타내는 서버 장치는 해당 시점에서 선도 서버 장치(200)로 선출된 상태인 서버 장치일 수 있다.
또한, 도4에서 강조 표시되지 않은 정보는 해당 정보의 서버 정보가 나타내는 서버 장치가 선도 서버 장치(200)로 선출되었을 경우에 데이터베이스 저장부(212, 312)에 저장되는 형태를 나타내는 일 실시예로 이해할 수 있다.
한편, 도4를 참조하면, 임시 저장부(211, 311)에 저장된 로그 정보를 데이터베이스 저장부(212, 312)에 저장한 이후에, 새로운 선도 서버 장치(200)를 선출하는 것으로 이해할 수 있고, 이러한 일 실시예는 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 형태로 변경될 수 있음은 물론이다.
예를 들어, 새로운 선도 서버 장치(200)를 선출하는 시점은 임시 저장부(211, 311)에서 데이터베이스 저장부(212, 312)에 로그 정보를 2회 저장한 경우로 설정될 수 있으며, 이러한 경우에는, 도4의 C1과 C2가 임시 저장부(211, 311)에서 데이터베이스 저장부(212, 312)에 저장된 후에, 새로운 선도 서버 장치(200)를 선출하는 것으로 이해할 수 있다.
도5는 본 발명의 일 실시예에 따른 합의 방법의 순서도이다.
본 발명의 일 실시예에 따른 합의 방법은 클라이언트(100), 선도 서버 장치(200) 및 추종 서버 장치(300)를 포함하는 시스템에서 실시될 수 있다.
도5를 참조하면, 선도 서버 장치(200)는 클라이언트(100)에서 생성되는 요청 명령에 대한 로그 정보를 생성할 수 있고, 선도 서버 장치(200)는 생성된 로그 정보를 저장할 수 있다.
또한, 선도 서버 장치(200)는 추종 서버 장치(300)에 로그 정보를 전달할 수 있고, 추종 서버 장치(300)는 선도 서버 장치(200)로부터 로그 정보를 전달받고, 로그 정보를 저장할 수 있다.
도5를 참조하면, 선도 서버 장치(200)가 클라이언트(100)에서 생성되는 요청 명령에 따라 로그 정보를 저장하고, 추종 서버 장치(300)에 전달하고, 추종 서버 장치(300)는 전달받은 로그 정보를 저장하는 과정은 로그 개수 정보와 동일한 개수의 로그 정보가 저장될 때까지 반복될 수 있다.
선도 서버 장치(200) 및 추종 서버 장치(300)는 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 로그 정보에 대한 해시 정보를 생성할 수 있고, 추종 서버 장치(300)는 생성된 해시 정보를 선도 서버 장치(200)에 전달할 수 있다.
이에 따라, 선도 서버 장치(200)는 선도 서버 장치(200)에서 생성된 해시 정보와 추종 서버 장치(300)에서 전달받은 해시 정보를 비교하고, 복수의 해시 정보의 일치 여부에 따라 제어 명령을 생성할 수 있다.
한편, 선도 서버 장치(200)는 생성된 제어 명령에 따라 선도 서버 장치(200)에 저장된 로그 정보를 데이터베이스 저장부(212)에 저장하거나, 선도 서버 장치(200)에 저장된 로그 정보를 제거할 수 있으며, 선도 서버 장치(200)는 제어 명령을 추종 서버 장치(300)에 전달하여 추종 서버 장치(300)에 저장된 로그 정보를 데이터베이스 저장부(312)에 저장하거나, 추종 서버 장치(300)에 저장된 로그 정보를 제거할 수 있다.
또한, 선도 서버 장치(200)는 제어 명령에 따른 결과를 클라이언트(100)에 전달 또는 출력할 수 있다.
합의 방법은 로그 정보가 데이터베이스 저장부(212, 312)에 저장되어 임시 저장부(211, 311)가 초기화 되거나, 또는 제거 명령에 따라 임시 저장부(211, 311)가 초기화 되는 경우에, 클라이언트의 요청 명령에 따라 로그 정보를 생성하는 합의 방법의 초기 단계부터 다시 반복할 수 있다.
이때, 선도 서버 장치(200)가 새롭게 선출되어야 하는 경우에는, 복수의 추종 서버 장치(300)로부터 선도 서버 장치(200)가 새롭게 선출되고, 합의 방법을 반복할 수 있다.
도6은 본 발명의 일 실시예에 따른 선도 서버 장치에서 실시되는 합의 방법의 순서도이다.
본 발명의 일 실시예에 따른 합의 방법은 도 1에 도시된 선도 서버 장치(200) 및 추종 서버 장치(300)와 실질적으로 동일한 구성 상에서 진행되므로, 도 1의 선도 서버 장치(200) 및 추종 서버 장치(300)와 동일한 구성요소에 대해 동일한 도면 부호를 부여하고, 반복되는 설명은 생략하기로 한다.
본 발명의 일 실시예에 따른 합의 방법은 로그 정보를 생성하는 단계(600), 임시 저장부에 저장하는 단계(610), 해시 정보를 생성하는 단계(620), 해시 정보를 전달받는 단계(630), 제어 명령을 생성하는 단계(640) 및 로그 정보를 제어하는 단계(650)를 포함할 수 있다.
이때, 로그 정보를 생성하는 단계(600), 임시 저장부에 저장하는 단계(610), 해시 정보를 생성하는 단계(620), 해시 정보를 전달받는 단계(630), 제어 명령을 생성하는 단계(640) 및 로그 정보를 제어하는 단계(650)를 포함하는 합의 방법은 선도 서버 장치(200)에서 실시될 수 있는 것으로 이해할 수 있다.
로그 정보를 생성하는 단계(600)는 클라이언트(100)에서 생성되는 요청 명령에 대한 로그 정보를 생성할 수 있다.
한편, 선도 서버 장치(200)는 로그 정보를 추종 서버 장치(300)에 전달할 수 있다.
임시 저장부에 저장하는 단계(610)는 로그 정보를 생성하는 단계(600)에서 생성된 로그 정보를 저장할 수 있다.
한편, 임시 저장부에 저장하는 단계(610)는 로그 정보를 저장할 수 없는 상태가 된 경우에, 저장된 로그 정보로부터 해시 정보를 생성하도록 하는 해시 신호를 생성할 수 있다.
여기에서, 로그 정보를 저장할 수 없는 상태가 된 경우는 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우를 의미할 수도 있다.
해시 정보를 생성하는 단계(620)는 임시 저장부에 저장하는 단계(610)에서 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 임시 저장부에 저장하는 단계(610)에서 저장된 로그 정보에 대한 해시 정보를 생성할 수 있다.
해시 정보를 생성하는 단계(620)는 임시 저장부에 저장하는 단계(610)에서 생성되는 해시 신호에 따라, 임시 저장부에 저장하는 단계(610)에서 저장된 로그 정보에 대한 해시 정보를 생성할 수도 있다.
이때, 해시 정보를 생성하는 단계(620)는 임시 저장부에 저장하는 단계(610)에서 저장된 로그 정보를 사전에 설정되는 해시 함수에 입력하여 해시 정보를 생성할 수 있으며, 로그 정보에 포함되는 정보의 일부를 해시 함수에 입력하여 해시 정보를 생성할 수 있음은 물론이다.
해시 정보를 전달받는 단계(630)는 추종 서버 장치(300)로부터 해시 정보를 전달받을 수 있다.
이때, 추종 서버 장치(300)는 복수개의 서버 장치일 수 있으며, 이에 따라, 추종 서버 장치(300)로부터 전달받는 해시 정보는 복수개의 해시 정보일 수 있다.
제어 명령을 생성하는 단계(640)는 해시 정보를 생성하는 단계(620)에서 생성되는 해시 정보와 해시 정보를 전달받는 단계(630)에서 전달받는 해시 정보를 비교하고, 해시 정보의 일치 여부를 판단하여 임시 저장부(211)에 저장된 로그 정보에 대한 제어 명령을 생성할 수 있다.
여기에서, 제어 명령은 로그 정보를 데이터베이스 저장부(212, 312)에 저장하도록 하는 저장 명령 및 로그 정보를 제거하도록 하는 제거 명령을 포함할 수 있다.
로그 정보를 제어하는 단계(650)는 추종 서버 장치(300)에 저장 명령 또는 제거 명령을 전달할 수 있다.
로그 정보를 제어하는 단계(650)는 제어 명령을 생성하는 단계(640)에서 생성되는 저장 명령에 따라, 임시 저장부(211)에 저장된 로그 정보를 데이터베이스 저장부(212)에 저장할 수 있다.
이에 따라, 로그 정보를 제어하는 단계(650)는 임시 저장부(211)에 저장된 로그 정보가 데이터베이스 저장부(212)에 저장된 경우에, 임시 저장부(211)에 저장된 로그 정보를 제거하여 임시 저장부(211)를 초기화할 수 있으며, 이때, 임시 저장부(211)는 저장이 가능한 상태로 설정될 수 있다.
로그 정보를 제어하는 단계(650)는 제어 명령을 생성하는 단계(640)에서 생성되는 제거 명령에 따라, 임시 저장부(211)에 저장된 로그 정보를 제거하여 임시 저장부(211)를 초기화할 수 있으며, 이때, 임시 저장부(211)는 저장이 가능한 상태로 설정될 수 있다.
한편, 선도 서버 장치(200)는 사전에 설정되는 주기 정보에 따라 복수의 추종 서버 장치(300) 중에서 하나의 서버 장치가 선도 서버 장치(200)로 선출될 수 있다.
또한, 선도 서버 장치(200)는 새로운 선도 서버 장치(200)로 선출된 경우에, 추종 서버 장치(300)에 선도 서버 장치(200)의 서버 정보를 전달할 수 있으며, 이에 따라, 추종 서버 장치(300)는 로그 정보를 데이터베이스 저장부(312)에 저장할 때, 선도 서버 장치(200)의 서버 정보를 데이터베이스 저장부(312)에 저장할 수 있다.
도7은 본 발명의 일 실시예에 따른 추종 서버 장치에서 실시되는 합의 방법의 세부 순서도이다.
합의 방법은 로그 정보를 전달받는 단계(700), 임시 저장부에 저장하는 단계(710), 해시 정보를 생성하는 단계(720), 해시 정보를 전달하는 단계(730) 및 로그 정보를 제어하는 단계(740)를 포함할 수 있다.
이때, 로그 정보를 전달받는 단계(700), 임시 저장부에 저장하는 단계(710), 해시 정보를 생성하는 단계(720), 해시 정보를 전달하는 단계(730) 및 로그 정보를 제어하는 단계(740)를 포함하는 합의 방법은 추종 서버 장치(300)에서 실시될 수 있는 것으로 이해할 수 있다.
로그 정보를 전달받는 단계(700)는 선도 서버 장치(200)로부터 로그 정보를 전달받을 수 있다.
임시 저장부에 저장하는 단계(710)는 로그 정보를 전달받는 단계(700)에서 전달받은 로그 정보를 저장할 수 있다.
한편, 임시 저장부에 저장하는 단계(710)는 로그 정보를 저장할 수 없는 상태가 된 경우에, 임시 저장부(311)에 저장된 로그 정보로부터 해시 정보를 생성하도록 하는 해시 신호를 생성할 수 있다.
여기에서, 로그 정보를 저장할 수 없는 상태가 된 경우는 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우를 의미할 수도 있다.
해시 정보를 생성하는 단계(720)는 임시 저장부에 저장하는 단계(710)에서 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우에, 임시 저장부에 저장하는 단계(710)에서 저장된 로그 정보에 대한 해시 정보를 생성할 수 있다.
해시 정보를 생성하는 단계(720)는 임시 저장부에 저장하는 단계(710)에서 생성되는 해시 신호에 따라, 임시 저장부에 저장하는 단계(710)에서 저장된 로그 정보에 대한 해시 정보를 생성할 수도 있다.
이때, 해시 정보를 생성하는 단계(720)는 임시 저장부에 저장하는 단계(710)에서 저장된 로그 정보를 사전에 설정되는 해시 함수에 입력하여 해시 정보를 생성할 수 있으며, 로그 정보에 포함되는 정보의 일부를 해시 함수에 입력하여 해시 정보를 생성할 수 있음은 물론이다.
해시 정보를 전달하는 단계(730)는 해시 정보를 생성하는 단계(720)에서 생성되는 해시 정보를 선도 서버 장치(200)에 전달할 수 있다.
로그 정보를 제어하는 단계(740)는 선도 서버 장치(200)로부터 임시 저장부(211, 311)에 저장된 로그 정보를 제어하는 제어 명령을 전달받을 수 있다.
로그 정보를 제어하는 단계(740)는 선도 서버 장치(200)로부터 전달받는 저장 명령에 따라, 임시 저장부(311)에 저장된 로그 정보를 데이터베이스 저장부(312)에 저장할 수 있다.
이에 따라, 로그 정보를 제어하는 단계(740)는 임시 저장부(311)에 저장된 로그 정보가 데이터베이스 저장부(312)에 저장된 경우에, 임시 저장부(311)에 저장된 로그 정보를 제거하여 임시 저장부(311)를 초기화할 수 있으며, 이때, 임시 저장부(311)는 저장이 가능한 상태로 설정될 수 있다.
로그 정보를 제어하는 단계(740)는 선도 서버 장치(200)로부터 전달받는 제거 명령에 따라, 임시 저장부(311)에 저장된 로그 정보를 제거하여 임시 저장부(311)를 초기화할 수 있으며, 이때, 임시 저장부(311)는 저장이 가능한 상태로 설정될 수 있다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 클라이언트
200: 선도 서버 장치
300: 추종 서버 장치

Claims (16)

  1. 요청 명령을 생성하는 클라이언트;
    상기 클라이언트에서 생성되는 요청 명령에 대한 로그 정보를 생성하는 선도 서버 장치; 및
    상기 선도 서버 장치로부터 상기 로그 정보를 전달받고, 상기 로그 정보를 저장하여 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 추종 서버 장치를 포함하는, 합의 시스템.
  2. 제1항에 있어서, 상기 선도 서버 장치는,
    상기 로그 정보를 저장하여 사전에 설정된 로그 개수 정보와 동일한 개수의 로그 정보가 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는, 합의 시스템.
  3. 제2항에 있어서, 상기 선도 서버 장치는,
    상기 선도 서버 장치에서 생성되는 해시 정보와 상기 추종 서버 장치에서 생성되는 해시 정보를 비교하고, 해시 정보의 일치 여부에 따라 상기 로그 정보에 대한 제어 명령을 생성하는, 합의 시스템.
  4. 외부로부터 발생하는 요청 명령에 대한 로그 정보를 생성하는 로그 생성부;
    상기 로그 정보를 저장하는 임시 저장부;
    사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 해시 생성부;
    상기 해시 생성부에서 생성되는 해시 정보와 외부로부터 전달받는 해시 정보를 비교하고, 해시 정보가 일치하는 경우, 상기 임시 저장부에 저장된 로그 정보에 대한 저장 명령을 생성하는 일치 판단부; 및
    상기 저장 명령에 따라 상기 로그 정보를 저장하는 데이터베이스 저장부를 포함하는, 선도 서버 장치.
  5. 제4항에 있어서, 상기 일치 판단부는,
    상기 해시 생성부에서 생성되는 해시 정보와 외부로부터 전달받는 해시 정보가 불일치하는 경우, 상기 임시 저장부에 저장된 로그 정보에 대한 제거 명령을 생성하는, 선도 서버 장치.
  6. 제4항에 있어서, 상기 임시 저장부는,
    상기 로그 개수 정보와 동일한 개수의 로그 정보가 저장되도록 크기가 결정되는, 선도 서버 장치.
  7. 제6항에 있어서, 상기 데이터베이스 저장부는,
    상기 임시 저장부에 저장된 로그 정보를 저장할 때, 상기 로그 정보가 저장되는 순서를 나타내는 목록 정보를 저장하는, 선도 서버 장치.
  8. 외부로부터 전달받는 로그 정보를 저장하는 임시 저장부;
    사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 해시 생성부; 및
    상기 해시 정보를 외부에 전달하여 생성되는 저장 명령을 외부로부터 전달받고, 상기 저장 명령에 따라 상기 로그 정보를 저장하는 데이터베이스 저장부를 포함하는, 추종 서버 장치.
  9. 제8항에 있어서, 상기 임시 저장부는,
    상기 로그 개수 정보와 동일한 개수의 로그 정보가 저장되도록 크기가 결정되는, 추종 서버 장치.
  10. 제9항에 있어서, 상기 데이터베이스 저장부는,
    상기 임시 저장부에 저장된 로그 정보를 저장할 때, 상기 로그 정보가 저장되는 순서를 나타내는 목록 정보를 저장하는, 추종 서버 장치.
  11. 복수의 추종 서버 장치 중 적어도 하나의 서버 장치가 선도 서버 장치로 선출되는 합의 시스템을 이용하는 합의 방법에 있어서,
    외부로부터 발생하는 요청 명령에 대한 로그 정보를 생성하는 단계;
    상기 로그 정보를 상기 추종 서버 장치에 전송하고, 상기 선도 서버 장치의 임시 저장부에 저장하는 단계;
    사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 단계;
    상기 추종 서버 장치에서 생성되는 해시 정보를 전달받는 단계;
    상기 해시 정보를 생성하는 단계에서 생성되는 해시 정보와 상기 해시 정보를 전달받는 단계에서 전달받는 해시 정보를 비교하고, 해시 정보의 일치 여부를 판단하여 상기 로그 정보에 대한 제어 명령을 생성하는 단계; 및
    상기 추종 서버 장치에 상기 제어 명령을 전달하고, 상기 제어 명령에 따라 상기 임시 저장부에 저장된 로그 정보를 제어하는 단계를 포함하는, 합의 방법.
  12. 제11항에 있어서, 상기 추종 서버 장치는,
    상기 선도 서버 장치로부터 상기 로그 정보를 전달받는 단계;
    상기 로그 정보를 상기 추종 서버 장치의 임시 저장부에 저장하는 단계;
    사전에 설정되는 로그 개수 정보와 동일한 개수의 로그 정보가 상기 추종 서버 장치의 임시 저장부에 저장된 경우, 상기 로그 정보에 대한 해시 정보를 생성하는 단계;
    상기 선도 서버 장치에 해시 정보를 전달하는 단계; 및
    상기 해시 정보를 전달하는 단계에 의해서 상기 선도 서버 장치에서 제어 명령을 전달받고, 상기 제어 명령에 따라 상기 추종 서버 장치의 임시 저장부에 저장된 로그 정보를 제어하는 단계를 포함하는, 합의 방법.
  13. 제11항에 있어서, 상기 선도 서버 장치는,
    사전에 설정되는 주기 정보에 따라 상기 복수의 추종 서버 장치 중 하나의 서버 장치가 선도 서버 장치로 선출되고,
    상기 선도 서버 장치로 선출된 경우, 상기 선도 서버 장치의 서버 정보를 상기 추종 서버 장치의 데이터베이스 저장부에 저장하도록 상기 선도 서버 장치의 서버 정보를 상기 추종 서버 장치에 전달하는, 합의 방법.
  14. 제11항에 있어서, 상기 제어 명령을 생성하는 단계는,
    상기 해시 정보를 생성하는 단계에서 생성된 해시 정보와 상기 해시 정보를 전달받는 단계에서 전달받은 해시 정보가 일치하는 경우, 상기 로그 정보에 대한 저장 명령을 생성하거나, 또는
    상기 해시 정보를 생성하는 단계에서 생성된 해시 정보와 상기 해시 정보를 전달받는 단계에서 전달받은 해시 정보가 불일치하는 경우, 상기 로그 정보에 대한 제거 명령을 생성하는, 합의 방법.
  15. 제14항에 있어서, 상기 로그 정보를 제어하는 단계는,
    상기 저장 명령에 따라, 상기 로그 정보를 데이터베이스 저장부에 저장하고,
    상기 임시 저장부의 로그 정보가 데이터베이스 저장부에 저장된 경우에, 상기 임시 저장부의 로그 정보를 제거하는, 합의 방법.
  16. 제14항에 있어서, 상기 로그 정보를 제어하는 단계는,
    상기 로그 정보를 상기 임시 저장부에서 제거하는, 합의 방법.
KR1020190090654A 2019-07-26 2019-07-26 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법 KR102171027B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190090654A KR102171027B1 (ko) 2019-07-26 2019-07-26 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190090654A KR102171027B1 (ko) 2019-07-26 2019-07-26 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102171027B1 true KR102171027B1 (ko) 2020-10-28

Family

ID=73018231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190090654A KR102171027B1 (ko) 2019-07-26 2019-07-26 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102171027B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070055560A (ko) * 2004-08-23 2007-05-30 구글, 인코포레이티드 사용자의 행위를 결정하는 시스템 및 방법
KR20100124801A (ko) * 2008-03-04 2010-11-29 애플 인크. 동기화 서버 프로세스
KR101539072B1 (ko) * 2010-12-20 2015-07-23 네이버비즈니스플랫폼 주식회사 게임 서비스를 위한 로그 데이터를 효율적으로 저장할 수 있는 로그 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101946196B1 (ko) * 2018-03-26 2019-02-08 그래프 블록체인 리미티드 프라이빗 블록체인 기반 시스템을 관제하는 관제시스템 및 관제방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070055560A (ko) * 2004-08-23 2007-05-30 구글, 인코포레이티드 사용자의 행위를 결정하는 시스템 및 방법
KR20100124801A (ko) * 2008-03-04 2010-11-29 애플 인크. 동기화 서버 프로세스
KR101539072B1 (ko) * 2010-12-20 2015-07-23 네이버비즈니스플랫폼 주식회사 게임 서비스를 위한 로그 데이터를 효율적으로 저장할 수 있는 로그 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101946196B1 (ko) * 2018-03-26 2019-02-08 그래프 블록체인 리미티드 프라이빗 블록체인 기반 시스템을 관제하는 관제시스템 및 관제방법

Similar Documents

Publication Publication Date Title
KR102433285B1 (ko) 이벤트들의 삭제를 가능하게 하는 분산 데이터베이스를 위한 방법 및 장치
CN107332876B (zh) 区块链状态的同步方法及装置
CN109542888B (zh) 区块链的数据修改和同步方法、装置、设备及存储介质
US10237295B2 (en) Automated event ID field analysis on heterogeneous logs
CN110995513B (zh) 物联网系统中的数据发送、接收方法、物联网设备及平台
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
US20220245173A1 (en) Blockchain-based data synchronization method, apparatus, and computer-readable storage medium
CN107333248B (zh) 一种短信实时发送方法和系统
CN106453460B (zh) 一种文件分发方法、装置和系统
CN112184436B (zh) 数据同步方法、电子设备及可读存储介质
US10700934B2 (en) Communication control device, communication control method, and computer program product
US20130262601A1 (en) Method and device for sending and receiving emails
CN113867782A (zh) 灰度发布方法、装置、计算机设备和存储介质
CN109167819A (zh) 数据同步系统、方法、装置及存储介质
KR102171027B1 (ko) 비정형 로그를 처리하기 위한 추종 서버 장치 및 선도 서버 장치, 이를 포함하는 합의 시스템 및 그 방법
CN114416883A (zh) 区块链轻节点数据同步方法、装置、设备及可读存储介质
US20180293317A1 (en) Prefix matching using distributed tables for storage services compatibility
CN103905512A (zh) 一种数据处理方法和设备
US20210382872A1 (en) Blockchain-based Data Storage Method, Related Device and Storage Medium
JP2007299019A (ja) データ通信システム、サーバ装置及びそれに用いるデータ通信方法並びにそのプログラム
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
KR20210102404A (ko) 조정 가능한 수의 트랜잭션 블록 및 복수의 중간 블록을 포함하는 블록을 가진 블록체인의 생성
CN104969217A (zh) 预测缓存装置和缓存预测方法
US20240036772A1 (en) Method and system for storage management, storage medium and device
CN112738153B (zh) 业务系统中的网关选择方法、系统、装置、服务器及介质

Legal Events

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