KR20160057944A - 분산 시스템에서의 데이터베이스 동기화 방법 - Google Patents

분산 시스템에서의 데이터베이스 동기화 방법 Download PDF

Info

Publication number
KR20160057944A
KR20160057944A KR1020140159215A KR20140159215A KR20160057944A KR 20160057944 A KR20160057944 A KR 20160057944A KR 1020140159215 A KR1020140159215 A KR 1020140159215A KR 20140159215 A KR20140159215 A KR 20140159215A KR 20160057944 A KR20160057944 A KR 20160057944A
Authority
KR
South Korea
Prior art keywords
set value
server
read command
database
stored data
Prior art date
Application number
KR1020140159215A
Other languages
English (en)
Other versions
KR101645163B1 (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 KR1020140159215A priority Critical patent/KR101645163B1/ko
Publication of KR20160057944A publication Critical patent/KR20160057944A/ko
Application granted granted Critical
Publication of KR101645163B1 publication Critical patent/KR101645163B1/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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in 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)

Abstract

본 발명은 분산 시스템에서의 데이터베이스 동기화 방법에 관한 것으로서, 본 발명에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하는 단계, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하는 단계, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하는 단계, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하는 단계 및 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 단계를 포함하고, 본 발명은 수신된 명령이 읽기 명령으로 판별된 경우 분산 코디네이터로부터 락을 획득하지 않고 검증 서버에 저장된 설정값을 통해 동기화 여부를 확인함으로써, 분산 코디네이터에 문제가 발생하더라도 읽기 명령은 정상적으로 실행할 수 있는 효과가 있다.

Description

분산 시스템에서의 데이터베이스 동기화 방법{METHOD FOR SYNCHRONIZING DATABASE IN DISTRIBUTED SYSTEM}
본 발명은 분산 시스템에서의 데이터베이스 동기화 방법에 관한 것으로서, 보다 상세하게는 읽기 명령의 실행 전과 후에 데이터베이스의 상태를 나타내는 설정값을 획득하여 비교함으로써 분산 시스템에서 데이터베이스를 동기화 하는 방법에 관한 것이다.
분산 시스템이란 하나의 고성능 디바이스에서 수행하던 복잡한 프로세스를 작은 단위로 나누어 네트워크를 통해 연결된 복수의 디바이스에서 나누어 처리하는 시스템을 말한다. 분산 시스템에서는 하나의 작업을 복수의 디바이스에서 병렬로 처리함으로써 시스템의 처리율이 향상되고, 데이터의 복사본을 복수의 디바이스에 저장함으로써 시스템의 신뢰도가 향상된다. 또한, 분산 시스템은 새로운 디바이스를 네트워크에 추가함으로써 용이하게 시스템을 확장할 수 있다는 장점을 갖는다. 복수의 어플리케이션 서버 (AS; application server) 를 갖는 분산 시스템의 경우, 복수의 어플리케이션 서버는 하나의 데이터베이스 서버 (DB server; database server) 를 공유할 수 있다. 하나의 데이터베이스 서버를 공유하는 경우, 공유된 데이터베이스의 동기화 문제를 해결하기 위해 어플리케이션 서버는 분산 코디네이터 또는 데이터베이스 서버로부터 락 (lock) 을 획득한 후에만 데이터베이스 서버에 접근할 수 있다.
도 1은 종래 기술에 따른 복수의 어플리케이션 서버를 포함하는 분산 시스템의 예시적인 구성을 도시한다. 도 1을 참조하면, 복수의 어플리케이션 서버 (111 및 112) 는 분산 코디네이터 (120) 또는 데이터베이스 서버 (140) 로부터 락을 획득한 후에 데이터베이스 서버 (140) 에 접근할 수 있다. 따라서, 복수의 어플리케이션 서버 (111 및 112) 는 동시에 데이터베이스 서버 (140) 에 접근할 수 없고, 하나의 어플리케이션 서버가 데이터베이스 서버 (140) 에 접근한 경우 다른 어플리케이션 서버는 락을 획득하기 위해 대기해야 한다. 그러나, 어플리케이션 서버 (111 및 112) 가 데이터베이스 서버 (140) 로부터 락 (lock) 을 획득하는 경우에는 데이터베이스 (140) 서버에 과도한 부하가 몰린다는 문제점과 복수의 쓰기 데이터베이스와 읽기 전용의 데이터베이스를 혼용 하는 경우 모든 데이터베이스에 동시에 락을 걸지 못하는 이슈 문제점이 있다. 또한, 어플리케이션 서버 (111 및 112) 가 분산 코디네이터 (120) 로부터 락을 획득하는 경우에는 분산 코디네이터 (120) 에 문제가 발생하게 되면 어플리케이션 서버 (111 및 112) 를 통해 제공되는 전체 서비스가 중단된다는 문제점이 있다.
따라서, 분산 시스템에서 데이터베이스의 동기화 문제를 해결하는 동시에 특정 서버에 과부하를 유발하지 않고 시스템의 일부에 문제가 발생하더라도 안정적인 서비스를 제공할 수 있는 방법의 개발이 요구되었다.
본 발명이 해결하고자 하는 과제는 검증 서버로부터 읽기 명령의 실행 전과 후의 데이터베이스의 상태를 나타내는 설정값을 획득하여 비교함으로써, 데이터베이스의 동기화를 수행할 수 있는 분산 시스템에서의 데이터베이스 동기화 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 읽기 명령을 수신한 경우 검증 서버에 저장된 설정값을 통해 동기화 여부를 확인함으로써, 분산 코디네이터에 문제가 발생하더라도 읽기 명령은 정상적으로 실행할 수 있는 분산 시스템에서의 데이터베이스 동기화 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는 데이터베이스의 상태를 나타내는 설정값을 캐시 서버에 저장함으로써, 설정값을 어플리케이션 서버에 신속하게 제공하여 읽기 명령을 빠르게 수행할 수 있는 분산 시스템에서의 데이터베이스 동기화 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하는 단계, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하는 단계, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하는 단계, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하는 단계 및 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 특징에 따르면, 제1 설정값과 제2 설정값이 상이한 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 제2 설정값이 널 (null) 인 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 읽기 명령이 재실행된 후, 검증 서버로부터 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하는 단계 및 제2 설정값과 제3 설정값을 비교하여 제2 설정값과 제3 설정값이 동일한지 여부를 검증하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 읽기 명령을 수신하는 단계는 사용자 단말로부터 명령을 수신하는 단계 및 명령이 읽기 명령인지 여부를 판별하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 제1 시점은 검증 서버로 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고, 제2 시점은 검증 서버로 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 검증 서버는 캐시 서버인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 검증 서버는 어플리케이션 서버가 저장 데이터에 대한 변경 명령을 실행한 경우 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버는 수신부, 획득부, 실행부 및 검증부를 포함하고, 수신부는, 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고, 획득부는, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고, 실행부는, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하고, 획득부는, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고, 검증부는, 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 것을 특징으로 한다.
본 발명의 다른 특징에 따르면, 실행부는, 제1 설정값과 제2 설정값이 상이한 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실행부는, 제2 설정값이 널 (null) 인 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 획득부는, 읽기 명령이 재실행된 후, 검증 서버로부터 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하고, 검증부는, 제2 설정값과 제3 설정값을 비교하여 제2 설정값과 제3 설정값이 동일한지 여부를 검증하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 수신부는, 사용자 단말로부터 명령을 수신하고, 명령이 읽기 명령인지 여부를 판별하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 제1 시점은 검증 서버로 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고, 제2 시점은 검증 서버로 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 검증 서버는 캐시 서버인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 검증 서버는 어플리케이션 서버가 저장 데이터에 대한 변경 명령을 실행한 경우 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 또 다른 실시예에 따른 컴퓨터 판독 가능 매체는 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하고, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고, 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 명령어들의 세트를 포함하는 것을 특징으로 한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 검증 서버로부터 읽기 명령의 실행 전과 후에 획득된 데이터베이스의 상태를 나타내는 설정값을 비교하는 간단한 과정을 통해 분산 시스템에서 공유된 데이터베이스의 동기화를 수행할 수 있는 효과가 있다.
본 발명은 수신된 명령이 읽기 명령으로 판별된 경우 분산 코디네이터로부터 락을 획득하지 않고 검증 서버에 저장된 설정값을 통해 동기화 여부를 확인함으로써, 분산 코디네이터에 문제가 발생하더라도 읽기 명령은 정상적으로 실행할 수 있는 효과가 있다.
본 발명은 어플리케이션 서버에 설정값을 제공하는 서버로 캐시서버를 채용함으로써, 어플리케이션 서버가 신속하게 읽기 명령을 실행할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 종래 기술에 따른 복수의 어플리케이션 서버를 포함하는 분산 시스템의 예시적인 구성을 도시한다.
도 2는 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화를 위한 시스템의 개략적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.
도 5a 내지 5d는 본 발명의 또 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법에 따라 구현된 예시적인 실시예를 도시한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화를 위한 시스템의 개략적인 구성도이다. 도 2를 참조하면, 분산 시스템에서의 데이터베이스 동기화를 위한 시스템 (200) 은 제1 어플리케이션 서버 (211), 제2 어플리케이션 서버 (212), 분산 코디네이터 (220), 검증 서버 (230) 및 데이터베이스 서버 (240) 를 포함한다.
제1 어플리케이션 서버 (211) 및 제2 어플리케이션 서버 (212) 는 분산 시스템을 구성하는 서버로서, 사용자 단말과 분산 코디네이터 (220), 검증 서버 (230) 및 데이터베이스 서버 (240) 사이에 위치하여 양자를 연결한다. 제1 어플리케이션 서버 (211) 및 제2 어플리케이션 서버 (212) 는 웹 어플리케이션 서버 (web application server) 일 수도 있다. 제1 어플리케이션 서버 (211) 및 제2 어플리케이션 서버 (212) 는 각각 사용자 단말로부터 수신된 명령을 데이터베이스 서버 (240) 에 대해 실행할 수 있다.
어플리케이션 서버 (211 및 212) 는 수신부, 획득부 및 실행부를 포함할 수 있다. 수신부는 사용자 단말로부터 데이터베이스 서버 (240) 의 저장 데이터에 대한 명령을 수신할 수 있다. 획득부는 검증 서버 (230) 로부터 설정값을 획득할 수 있다. 실행부는 데이터베이스 서버 (240) 에 대해 수신된 명령을 실행할 수 있다. 상술한 바와 같이, 어플리케이션 서버 (211 및 212) 는 수신부, 획득부 및 실행부를 개별적인 구성으로 포함할 수도 있으나, 각각의 부는 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적 형태 또는 분리적 형태로 설계 구현될 수도 있다.
도 2에서는 설명의 편의를 위해 2개의 어플리케이션 서버 (211 및 212) 가 도시되었으나, 어플리케이션 서버는 임의의 개수의 디바이스로 이루어질 수도 있고, 가상화된 디바이스로 이루어질 수도 있다.
분산 코디네이터 (220) 는 데이터베이스 서버 (240) 의 저장 데이터에 대한 변경 명령을 실행하고자 하는 어플리케이션 서버 (211 및 212) 에 락 (lock) 을 부여한다. 분산 코디네이터 (200) 는 복수의 서버로 구성된 분산 시스템일 수도 있다. 분산 코디네이터 (200) 는 주키퍼 (Zookeeper) 등과 같은 분산 코디네이션을 위한 소프트웨어에 의해 동작할 수 있다.
검증 서버 (230) 는 데이터베이스 서버 (240) 의 저장 데이터에 대한 변경 명령을 실행한 어플리케이션 서버로부터 설정값을 수신하여 메모리에 저장한다. 검증 서버 (230) 는 저장 데이터에 대한 읽기 명령을 실행하고자 하는 어플리케이션 서버로 읽기 명령을 실행하기 전과 후에 메모리에 저장된 설정값을 제공한다. 검증 서버 (230) 는 캐시 서버일 수도 있다.
데이터베이스 서버 (240) 는 데이터베이스를 저장하는 서버로서 어플리케이션 서버 (211 및 212) 와 연결된다. 즉, 어플리케이션 서버 (211 및 212) 는 데이터베이스 서버 (240) 의 저장 데이터를 공유한다. 데이터베이스 서버 (240) 는 어플리케이션 서버 (211 및 212) 로부터 저장 데이터에 대한 변경 명령 또는 읽기 명령을 수신할 수 있고, 어플리케이션 서버 (211 및 212) 로 저장 데이터에 대한 리비전값 (revision value) 을 제공할 수 있다.
도 3은 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 어플리케이션 서버 (310) 가 사용자 단말 (30) 로부터 데이터베이스 서버 (340) 의 저장 데이터에 대한 읽기 명령을 수신함으로써 개시된다 (S310). 어플리케이션 서버 (310) 는, 예를 들어, 저장 데이터에 대한 복사 명령 또는 저장 데이터 리스트의 출력 명령 등과 같이 저장 데이터를 변경하지 않는 명령인 읽기 명령을 수신할 수 있다. 어플리케이션 서버 (310) 는 사용자 단말 (30) 로부터 명령을 수신한 후, 수신된 명령이 읽기 명령인지 여부를 판별할 수도 있다. 어플리케이션 서버 (310) 는, 예를 들어, 수신된 명령의 “API” (application program interface) 를 분석하여 수신된 명령이 읽기 명령인지 여부를 판별할 수도 있다.
다음으로, 어플리케이션 서버 (310) 는 검증 서버 (330) 로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득한다 (S320). 어플리케이션 서버 (310) 는 검증 서버 (330) 로 설정값을 요청하여 검증 서버 (330) 로부터 검증 서버의 메모리에 저장된 설정값을 획득할 수 있다. 제1 시점이란 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 제1 설정값을 획득하는 시점일 수 있다. 한편, 제1 설정값은 제1 시점에 검증 서버 (330) 에 저장된 설정값을 지칭한다. 설정값은 검증 서버 (330) 의 메모리에 저장된 데이터로서, 최근 시점에 데이터베이스 서버에 변경 명령을 실행한 사용자의 아이디 정보 및 그 변경 명령이 실행된 후 데이터베이스의 리비전 (revision) 값을 포함할 수도 있다. 리비전값은 특정 사용자에 의해 데이터베이스가 변경될 때마다 1씩 증가하는 정수값으로서, 리비전값은 사용자에 따라 별도로 카운팅된다. 어플리케이션 서버 (310) 는 데이터베이스가 변경되는 경우 함께 변경되는 리비전값의 비교를 통해 데이터베이스의 변경 여부를 파악할 수 있다.
본 발명의 일 실시예에 따르면, 검증 서버 (330) 는 다른 어플리케이션 서버가 저장 데이터에 대한 변경 명령을 실행한 경우, 변경 명령을 실행한 어플리케이션 서버로부터 설정값을 수신하는 서버일 수도 있다. 검증 서버 (330) 는 변경 명령을 실행한 어플리케이션 서버로부터 그 어플리케이션 서버에 접속된 사용자의 아이디 정보 및 변경 명령 실행 후 데이터베이스의 리비전값을 포함하는 설정값을 수신할 수도 있다. 검증 서버 (330) 가 데이터베이스 서버 (340) 에 대한 변경 명령이 실행될 때마다 변경 명령을 실행한 어플리케이션 서버로부터 설정값을 수신함으로써, 데이터베이스가 변경되는 경우 검증 서버 (330) 에 저장된 설정값도 변경될 수 있다.
본 발명의 일 실시예에 따르면, 검증 서버 (330) 는 캐시 서버 (cache server) 일 수도 있다. 캐시 서버는 설정값을 임시 저장 메모리에 저장하고 일정 시간이 지난 후 반환시키는 서버로서 응답 속도가 빠르다는 특성을 갖는다. 검증 서버 (330) 가 캐시 서버인 경우, 어플리케이션 서버 (310) 가 설정값을 보다 빨리 획득할 수 있으므로, 읽기 명령을 실행하기 위한 전체 시간이 단축될 수 있다.
다음으로, 어플리케이션 서버 (310) 는 제1 설정값이 획득된 후, 데이터베이스 서버 (340) 에 대해 읽기 명령을 실행한다 (S330). 예를 들어, 어플리케이션 서버 (310) 는 획득된 제1 설정값을 저장한 후, 수신된 읽기 명령을 실행하여 데이터베이스 서버 (340) 의 저장 데이터를 복사하거나 저장 데이터의 리스트 정보를 수신할 수도 있다. 어플리케이션 서버 (310) 가 락의 획득 없이 제1 설정값을 획득한 후 읽기 명령을 실행하므로, 어플리케이션 서버 (310) 는 분산 코디네이터 (320) 로부터 락을 획득하기 위한 대기 시간을 소모하지 않고 읽기 명령을 신속하게 실행 할 수 있다.
본 발명의 몇몇 실시예에 따르면, 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 설정값을 획득할 수 없는 경우, 어플리케이션 서버 (310) 는 분산 코디네이터 (320) 로부터 락을 획득한 후 데이터베이스 서버 (340) 에 대해 읽기 명령을 실행할 수도 있다. 구체적으로, 검증 서버 (330) 에 문제가 발생한 경우, 어플리케이션 서버 (310) 는 검증 서버 (330) 로 설정값을 요청하더라도 검증 서버 (330) 로부터 설정값을 획득할 수 없다. 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 설정값을 획득하지 못한 경우, 어플리케이션 서버 (310) 는 분산 코디네이터 (320) 로 락을 요청할 수도 있다. 어플리케이션 서버 (310) 는 분산 코디네이터 (320) 로부터 락을 획득한 다른 어플리케이션 서버가 없는 경우 분산 코디네이터 (320) 로부터 즉시 락을 획득할 수도 있고, 분산 코디네이터 (330) 로부터 락을 획득한 다른 어플리케이션 서버가 있는 경우 락을 획득하기 위해 대기할 수도 있다. 어플리케이션 서버 (310) 가 분산 코디네이터 (320) 로부터 락을 획득한 후, 어플리케이션 서버 (310) 는 데이터베이스 서버 (340) 에 대해 읽기 명령을 실행할 수도 있다. 어플리케이션 서버 (310) 가 분산 코디네이터 (320) 로부터 락을 획득한 후 읽기 명령을 실행함으로써, 검증 서버 (330) 에 문제가 발생하더라도 어플리케이션 서버 (310) 는 데이터베이스 서버 (340) 에 대해 정상적으로 읽기 명령을 수행할 수 있다.
다음으로, 어플리케이션 서버 (310) 는 읽기 명령이 실행된 후, 검증 서버 (330) 로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득한다 (S340). 제2 시점이란 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 제2 설정값을 획득하는 시점일 수 있다. 한편, 제2 설정값은 제2 시점에 검증 서버 (330) 에 저장된 설정값을 지칭한다. 어플리케이션 서버 (310) 가 제2 설정값을 획득하는 단계 (S340) 는 제1 설정값을 획득하는 단계 (S320) 와 동일하므로 중복 설명은 생략한다.
다음으로, 어플리케이션 서버 (310) 는 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증한다 (S350). 어플리케이션 서버 (310) 는 제1 설정값에 포함된 사용자 아이디 정보 및 리비전값과 제2 설정값에 포함된 사용자 아이디 정보 및 리비전값을 비교하여 모두 일치하는지 여부를 검증할 수 있다. 제1 설정값과 제2 설정값이 동일하다면 어플리케이션 서버 (310) 가 읽기 명령을 실행하는 동안 데이터베이스 서버 (340) 의 저장 데이터가 다른 경로를 통해 변경되지 않은 것이므로, 어플리케이션 서버 (310) 가 동기화된 저장 데이터에 대해 읽기 명령을 실행한 것으로 간주된다. 어플리케이션 서버 (310) 는, 예를 들어, 복사 명령에 따른 복사된 저장 데이터 또는 리스트 명령에 따른 저장 데이터의 리스트 정보 등과 같은 읽기 명령의 실행 결과를 사용자 단말로 전송할 수도 있다.
제1 설정값과 제2 설정값이 상이한 경우, 어플리케이션 서버 (310) 는 데이터베이스 서버 (340) 에 대해 읽기 명령을 재실행할 수 있다 (S360). 제1 설정값과 제2 설정값이 상이하다면 어플리케이션 서버 (310) 가 읽기 명령을 실행하는 동안 데이터베이스 서버 (340) 의 저장 데이터가 다른 경로를 통해 변경된 것이므로, 어플리케이션 서버 (310) 가 동기화되지 않은 저장 데이터에 대해 읽기 명령을 실행한 것으로 간주되고, 어플리케이션 서버 (310) 는 읽기 명령을 재실행한다. 어플리케이션 서버 (310) 는 제2 설정값이 널 (null) 인 경우, 즉, 제2 설정값을 획득하지 못한 경우에도 제1 설정값과 제2 설정값이 상이한 것으로 판단하여, 데이터베이스 서버 (340) 에 대해 읽기 명령을 재실행할 수도 있다. 어플리케이션 서버 (310) 가 읽기 명령을 재실행하는 단계 (S360) 는 어플리케이션 서버 (310) 가 읽기 명령을 실행하는 단계 (S360) 와 동일하므로 중복 설명은 생략한다.
다음으로, 어플리케이션 서버 (310) 는 읽기 명령이 재실행된 후 검증 서버 (330) 로부터 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하고 (S370), 제2 설정값과 제3 설정값을 비교하여 제2 설정값과 제3 설정값이 동일한지 여부를 검증할 수 있다 (S380). 제3 시점이란 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 제3 설정값을 획득하는 시점일 수 있다. 한편, 제3 설정값은 제3 시점에 검증 서버 (330) 에 저장된 설정값을 지칭한다. 어플리케이션 서버 (310) 가 제3 설정값을 획득하는 단계 (S370) 및 제2 설정값과 제3 설정값이 동일한지 여부를 검증하는 단계 (S380) 는 제2 설정값을 획득하는 단계 (S340) 및 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 단계 (S350) 와 동일하므로 중복 설명은 생략한다.
상술한 바와 같이, 어플리케이션 서버 (310) 에 읽기 명령이 수신된 경우 분산 코디네이터로부터 락을 획득하지 않고 검증 서버 (330) 에 저장된 설정값을 통해 데이터베이스 서버 (340) 의 저장 데이터의 변경 여부를 확인함으로써, 분산 코디네이터에 문제가 발생한 경우에도 읽기 명령은 정상적으로 실행할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.
본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 어플리케이션 서버 (410) 가 사용자 단말 (40) 로부터 변경 명령을 수신함으로써 개시된다 (S410). 어플리케이션 서버 (410) 는, 예를 들어, 업로드 명령 또는 삭제 명령 등과 같은 데이터베이스 서버 (440) 의 저장 데이터를 변경하는 변경 명령을 수신할 수 있다. 어플리케이션 서버 (410) 및 사용자 단말 (40) 은 도 3의 어플리케이션 서버 (310) 및 사용자 단말 (30) 과 상이한 디바이스일 수 있다. 어플리케이션 서버 (410) 는 사용자 단말 (40) 로부터 명령을 수신한 후, 수신된 명령이 변경 명령인지 여부를 판별할 수도 있다. 어플리케이션 서버 (410) 는, 예를 들어, 수신된 명령의 “API”를 분석하여 수신된 명령이 변경 명령인지 여부를 판별할 수도 있다.
다음으로, 어플리케이션 서버 (410) 는 분산 코디네이터 (420) 로부터 락을 획득한다 (S420). 어플리케이션 서버 (410) 가 변경 명령을 실행하는 동안 다른 어플리케이션 서버가 동시에 변경 명령을 실행하는 것을 방지하기 위해, 어플리케이션 서버 (410) 는 변경 명령을 수신한 경우 우선적으로 분산 코디네이터 (420) 에 락을 요청하여 분산 코디네이터 (420) 로부터 락을 획득할 수 있다. 어플리케이션 서버 (310) 는 다른 어플리케이션 서버가 먼저 락을 획득하여 변경 명령을 실행하는 중인 경우 다른 어플리케이션 서버의 명령이 실행 완료될 때까지 대기한 후 분산 코디네이터 (420) 로부터 락을 획득할 수 있다.
다음으로, 어플리케이션 서버 (410) 는 데이터베이스 서버 (440) 에 대해 변경 명령을 실행한다 (S430). 어플리케이션 서버 (410) 는 분산 코디네이터 (420) 로부터 락을 획득한 후 수신된 변경 명령을 실행하여, 예를 들어, 데이터베이스 서버 (440) 에 데이터를 업로드 하거나 데이터베이스 서버 (440) 의 저장 데이터를 변경하거나 삭제할 수 있다.
다음으로, 데이터베이스 서버 (440) 는 저장 데이터에 변경 명령을 적용한다 (S440). 데이터베이스 서버 (440) 에 변경 명령이 적용된 경우, 변경 명령을 전송한 사용자에 대한 리비젼값이 1 증가할 수 있다.
다음으로, 어플리케이션 서버 (410) 는 데이터베이스 서버 (440) 로부터 리비전값을 획득하고 (S450), 획득된 리비전값 및 어플리케이션 서버 (410) 와 접속된 사용자의 아이디 정보를 포함하는 설정값을 검증 서버 (430) 로 송신한다 (S460). 어플리케이션 서버 (410) 가 변경 명령으로 인해 변경된 리비젼값 및 변경 명령을 전송한 사용자의 아이디 정보를 검증 서버 (430) 로 전송함으로써 검증 서버 (430) 에 저장된 정보를 통해 데이터베이스 서버 (440) 의 저장 데이터의 변경 여부를 파악할 수 있다.
다음으로, 검증 서버 (430) 는 수신된 설정값을 메모리에 저장한다 (S470). 검증 서버 (430) 는 저장된 설정값을 어플리케이션 서버 (410) 또는 다른 어플리케이션 서버로 제공할 수 있다.
도 5a 내지 5d는 본 발명의 또 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법에 따라 구현된 예시적인 실시예를 도시한다.
도 5a를 참조하면, 제1 사용자 단말 (51) 은 제1 어플리케이션 서버 (511) 로 명령을 전송한다. 제1 어플리케이션 서버 (511) 는 수신된 명령이 읽기 명령인지 여부를 판별하고, 읽기 명령인 경우, 캐시 서버 (530) 로부터 제1 설정값을 획득한다. 제1 어플리케이션 서버 (511) 는 제1 설정값을 획득한 후 데이터베이스 서버 (540) 에 접근하여 읽기 명령을 실행한다.
도 5b를 참조하면, 제2 사용자 단말 (52) 은, 제1 어플리케이선 서버 (511) 가 데이터베이스 서버 (540) 에 대해 읽기 명령을 실행하는 동안, 제2 어플리케이션 서버 (512) 로 명령을 전송한다. 제2 어플리케이션 서버 (512) 는 수신된 명령이 변경 명령인지 여부를 판별하고, 변경 명령인 경우, 분산 코디네이터 (520) 로부터 락을 획득한다. 제2 어플리케이션 서버 (512) 는 락을 획득한 후 데이터베이스 서버 (540) 에 접근하여 변경 명령을 실행하고, 데이터베이스 서버 (540) 로부터 변경 명령으로 인해 변경된 리비전값을 획득한다. 제2 어플리케이션 서버 (512) 는 획득된 리비전값 및 제2 사용자 단말 (52) 의 사용자 아이디 정보를 포함하는 설정값를 캐시 서버 (530) 로 전송한다. 캐시 서버 (530) 는 제1 설정값을 삭제하고, 제2 어플리케이션 서버 (512) 로부터 수신된 설정값을 저장한다.
도 5c를 참조하면, 제1 어플리케이션 서버 (511) 는 데이터베이스 서버 (540) 에 대해 읽기 명령을 실행한 후, 캐시 서버 (530) 로부터 제2 설정값을 획득한다. 제1 어플리케이션 서버 (511) 는 제1 설정값과 제2 설정값을 비교한다. 제2 설정값은 제1 어플리케이션 서버 (511) 가 읽기 명령을 실행하는 동안 제2 어플리케이션 서버 (512) 에 의해 변경된 설정값이므로, 제1 어플리케이션 서버 (511) 는 제1 설정값과 제2 설정값이 상이한 것으로 검증할 수 있다.
도 5d를 참조하면, 제1 설정값과 제2 설정값이 상이하므로, 제1 어플리케이션 서버 (511) 는 데이터베이스 서버 (540) 에 대해 읽기 명령을 재실행한다. 제1 어플리케이션 서버 (511) 는 읽기 명령을 재실행한 후 캐시 서버 (530) 로부터 제3 설정값을 획득한다. 제1 어플리케이션 서버 (511) 는 제2 설정값과 제3 설정값을 비교한다. 제1 어플리케이션 서버가 읽기 명령을 재실행하는 동안 설정값의 변경이 없었으므로, 제1 어플리케이션 서버 (511) 는 제2 설정값과 제3 설정값이 동일한 것으로 검증할 수 있다. 제2 설정값과 제3 설정값이 동일한 것으로 검증된 경우, 제1 어플리케이션 서버 (511) 는 읽기 명령의 실행 결과를 제1 사용자 단말 (51) 로 전송할 수 있다.
상술한 바와 같이, 제1 어플리케이션 서버 (511) 가 읽기 명령을 실행하는 동안 제2 어플리케이션 서버 (512) 의 변경 명령 실행에 의해 설정값이 변경되는 경우 제1 어플리케이션 서버 (511) 가 읽기 명령을 재실행함으로써, 데이터베이스 서버 (540) 의 저장 데이터를 동기화할 수 있다.
본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
111 제1 어플리케이션 서버
112 제2 어플리케이션 서버
120 분산 코디네이터
140 데이터베이스 서버
211 제1 어플리케이션 서버
212 제2 어플리케이션 서버
220 분산 코디네이터
230 검증 서버
240 데이터베이스 서버
30 사용자 단말
310 어플리케이션 서버
330 검증 서버
340 데이터베이스 서버
40 사용자 단말
410 어플리케이션 서버
420 분산 코디네이터
430 검증 서버
440 데이터베이스 서버
51 제1 사용자 단말
52 제2 사용자 단말
511 제1 어플리케이션 서버
512 제2 어플리케이션 서버
520 분산 코디네이터
530 캐시 서버
540 데이터베이스 서버

Claims (17)

  1. 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하는 단계;
    검증 서버로부터 상기 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하는 단계;
    상기 제1 설정값이 획득된 후, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 실행하는 단계;
    상기 읽기 명령이 실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하는 단계; 및
    상기 제1 설정값과 상기 제2 설정값을 비교하여 상기 제1 설정값과 상기 제2 설정값이 동일한지 여부를 검증하는 단계를 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  2. 제 1 항에 있어서,
    상기 제1 설정값과 상기 제2 설정값이 상이한 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  3. 제 1 항에 있어서,
    상기 제2 설정값이 널 (null) 인 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 읽기 명령이 재실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하는 단계; 및
    상기 제2 설정값과 상기 제3 설정값을 비교하여 상기 제2 설정값과 상기 제3 설정값이 동일한지 여부를 검증하는 단계를 더 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  5. 제 1 항에 있어서,
    상기 읽기 명령을 수신하는 단계는
    상기 사용자 단말로부터 명령을 수신하는 단계 및
    상기 명령이 상기 읽기 명령인지 여부를 판별하는 단계를 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  6. 제 1 항에 있어서,
    상기 제1 시점은 상기 검증 서버로 상기 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고,
    상기 제2 시점은 상기 검증 서버로 상기 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  7. 제 1 항에 있어서,
    상기 검증 서버는 캐시 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  8. 제 1 항에 있어서,
    상기 검증 서버는 어플리케이션 서버가 상기 저장 데이터에 대한 변경 명령을 실행한 경우 상기 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
  9. 수신부;
    획득부;
    실행부; 및
    검증부를 포함하고,
    상기 수신부는, 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고,
    상기 획득부는, 검증 서버로부터 상기 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고,
    상기 실행부는, 상기 제1 설정값이 획득된 후, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 실행하고,
    상기 획득부는, 상기 읽기 명령이 실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고,
    상기 검증부는, 상기 제1 설정값과 상기 제2 설정값을 비교하여 상기 제1 설정값과 상기 제2 설정값이 동일한지 여부를 검증하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  10. 제 9 항에 있어서,
    상기 실행부는,
    상기 제1 설정값과 상기 제2 설정값이 상이한 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  11. 제 9 항에 있어서,
    상기 실행부는,
    상기 제2 설정값이 널 (null) 인 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 획득부는,
    상기 읽기 명령이 재실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하고,
    상기 검증부는,
    상기 제2 설정값과 상기 제3 설정값을 비교하여 상기 제2 설정값과 상기 제3 설정값이 동일한지 여부를 검증하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  13. 제 9 항에 있어서,
    상기 수신부는,
    상기 사용자 단말로부터 명령을 수신하고,
    상기 명령이 상기 읽기 명령인지 여부를 판별하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  14. 제 9 항에 있어서,
    상기 제1 시점은 상기 검증 서버로 상기 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고,
    상기 제2 시점은 상기 검증 서버로 상기 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  15. 제 9 항에 있어서,
    상기 검증 서버는 캐시 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  16. 제 9 항에 있어서,
    상기 검증 서버는 어플리케이션 서버가 상기 저장 데이터에 대한 변경 명령을 실행한 경우 상기 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
  17. 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고,
    검증 서버로부터 상기 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고,
    상기 제1 설정값이 획득된 후, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 실행하고,
    상기 읽기 명령이 실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고,
    상기 제1 설정값과 상기 제2 설정값을 비교하여 상기 제1 설정값과 상기 제2 설정값이 동일한지 여부를 검증하는 명령어들의 세트를 포함하는 것을 특징으로 하는, 컴퓨터 판독 가능 매체.
KR1020140159215A 2014-11-14 2014-11-14 분산 시스템에서의 데이터베이스 동기화 방법 KR101645163B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140159215A KR101645163B1 (ko) 2014-11-14 2014-11-14 분산 시스템에서의 데이터베이스 동기화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140159215A KR101645163B1 (ko) 2014-11-14 2014-11-14 분산 시스템에서의 데이터베이스 동기화 방법

Publications (2)

Publication Number Publication Date
KR20160057944A true KR20160057944A (ko) 2016-05-24
KR101645163B1 KR101645163B1 (ko) 2016-08-03

Family

ID=56114025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140159215A KR101645163B1 (ko) 2014-11-14 2014-11-14 분산 시스템에서의 데이터베이스 동기화 방법

Country Status (1)

Country Link
KR (1) KR101645163B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200144768A (ko) * 2019-06-19 2020-12-30 주식회사 코비젼 다중 웹서버 환경의 공용자원 동기화 시스템
US11436562B1 (en) 2021-03-19 2022-09-06 Coupang Corp. Method for processing data of distributed coordination system and electronic apparatus therefor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040007474A (ko) * 2001-03-26 2004-01-24 노키아 코포레이션 원격 통신 시스템의 어플리케이션 데이터 동기화
KR20050089551A (ko) * 2004-03-05 2005-09-08 삼성전자주식회사 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법
KR20110066940A (ko) * 2008-10-06 2011-06-17 인터내셔널 비지네스 머신즈 코포레이션 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템
KR101193001B1 (ko) * 2007-10-12 2012-10-19 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 동기화 방법, 시스템, 및 디바이스

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040007474A (ko) * 2001-03-26 2004-01-24 노키아 코포레이션 원격 통신 시스템의 어플리케이션 데이터 동기화
KR20050089551A (ko) * 2004-03-05 2005-09-08 삼성전자주식회사 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법
KR101193001B1 (ko) * 2007-10-12 2012-10-19 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 동기화 방법, 시스템, 및 디바이스
KR20110066940A (ko) * 2008-10-06 2011-06-17 인터내셔널 비지네스 머신즈 코포레이션 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200144768A (ko) * 2019-06-19 2020-12-30 주식회사 코비젼 다중 웹서버 환경의 공용자원 동기화 시스템
US11436562B1 (en) 2021-03-19 2022-09-06 Coupang Corp. Method for processing data of distributed coordination system and electronic apparatus therefor
KR20220131142A (ko) * 2021-03-19 2022-09-27 쿠팡 주식회사 분산 시스템의 데이터 처리 방법 및 이를 위한 전자 장치

Also Published As

Publication number Publication date
KR101645163B1 (ko) 2016-08-03

Similar Documents

Publication Publication Date Title
US20210160053A1 (en) Merkle tree construction methods and apparatuses and simplified payment verification methods and apparatuses
CN109831487B (zh) 分片文件验证方法及终端设备
US9778998B2 (en) Data restoration method and system
US8996828B2 (en) Systems and methods for migrating data
US10455003B2 (en) Method, server, and system for sharing resource data
CN108108127B (zh) 一种文件读取方法及系统
US20130268491A1 (en) Telemetry system for a cloud synchronization system
US11108547B2 (en) Methods and apparatuses for reading blockchain data
WO2018154713A1 (ja) 情報検証システム、情報検証装置、方法およびプログラム
US20210158340A1 (en) Methods and apparatuses for concealing transaction written to blockchain
US20170161313A1 (en) Detection and Resolution of Conflicts in Data Synchronization
US20170054803A1 (en) Information processing device, method, and system
CN110928891B (zh) 数据一致性检测方法、装置、计算设备以及介质
US20170177696A1 (en) Usage of modeled validations on mobile devices in online and offline scenarios
CN109324959B (zh) 一种自动转移数据的方法、服务器及计算机可读存储介质
CN111049928A (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
CN108228789B (zh) 从节点触发的同步异常恢复方法及装置
WO2016101759A1 (zh) 一种数据路由方法、数据管理装置和分布式存储系统
KR101645163B1 (ko) 분산 시스템에서의 데이터베이스 동기화 방법
US11341842B2 (en) Metering data management system and computer readable recording medium
US20150242599A1 (en) Cluster license server
CN113626416A (zh) 数据校验的方法、装置、计算设备和存储介质
CN108200157B (zh) 主节点触发回退的日志同步方法及装置
US20190306274A1 (en) Distributed database transaction processing method, device based on gps atomic clock server
US9547651B1 (en) Establishing file relationships based on file operations

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: 20190702

Year of fee payment: 4