KR101645163B1 - Method for synchronizing database in distributed system - Google Patents

Method for synchronizing database in distributed system Download PDF

Info

Publication number
KR101645163B1
KR101645163B1 KR1020140159215A KR20140159215A KR101645163B1 KR 101645163 B1 KR101645163 B1 KR 101645163B1 KR 1020140159215 A KR1020140159215 A KR 1020140159215A KR 20140159215 A KR20140159215 A KR 20140159215A KR 101645163 B1 KR101645163 B1 KR 101645163B1
Authority
KR
South Korea
Prior art keywords
set value
server
read command
database
stored data
Prior art date
Application number
KR1020140159215A
Other languages
Korean (ko)
Other versions
KR20160057944A (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 KR1020140159215A priority Critical patent/KR101645163B1/en
Publication of KR20160057944A publication Critical patent/KR20160057944A/en
Application granted granted Critical
Publication of KR101645163B1 publication Critical patent/KR101645163B1/en

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 설정값이 동일한지 여부를 검증하는 단계를 포함하고, 본 발명은 수신된 명령이 읽기 명령으로 판별된 경우 분산 코디네이터로부터 락을 획득하지 않고 검증 서버에 저장된 설정값을 통해 동기화 여부를 확인함으로써, 분산 코디네이터에 문제가 발생하더라도 읽기 명령은 정상적으로 실행할 수 있는 효과가 있다.The present invention relates to a database synchronization method in a distributed system, and a database synchronization method in a distributed system according to the present invention includes receiving a read command for stored data from a database server from a user terminal, The method comprising the steps of: obtaining a first set value indicating a one-view state; executing a read command to the database server after the first set value is obtained; And comparing the first set value with the second set value to verify whether the first set value and the second set value are the same, If it is determined by the read command, the set value stored in the verification server is not acquired from the distributed coordinator Therefore, even if a problem occurs in the distributed coordinator, the read command can be normally executed.

Description

분산 시스템에서의 데이터베이스 동기화 방법{METHOD FOR SYNCHRONIZING DATABASE IN DISTRIBUTED SYSTEM}[0001] METHOD FOR SYNCHRONIZING DATABASE IN DISTRIBUTED SYSTEM [0002]

본 발명은 분산 시스템에서의 데이터베이스 동기화 방법에 관한 것으로서, 보다 상세하게는 읽기 명령의 실행 전과 후에 데이터베이스의 상태를 나타내는 설정값을 획득하여 비교함으로써 분산 시스템에서 데이터베이스를 동기화 하는 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a database synchronization method in a distributed system, and more particularly, to a method of synchronizing a database in a distributed system by obtaining and comparing setting values indicating the state of a database before and after execution of a read command.

분산 시스템이란 하나의 고성능 디바이스에서 수행하던 복잡한 프로세스를 작은 단위로 나누어 네트워크를 통해 연결된 복수의 디바이스에서 나누어 처리하는 시스템을 말한다. 분산 시스템에서는 하나의 작업을 복수의 디바이스에서 병렬로 처리함으로써 시스템의 처리율이 향상되고, 데이터의 복사본을 복수의 디바이스에 저장함으로써 시스템의 신뢰도가 향상된다. 또한, 분산 시스템은 새로운 디바이스를 네트워크에 추가함으로써 용이하게 시스템을 확장할 수 있다는 장점을 갖는다. 복수의 어플리케이션 서버 (AS; application server) 를 갖는 분산 시스템의 경우, 복수의 어플리케이션 서버는 하나의 데이터베이스 서버 (DB server; database server) 를 공유할 수 있다. 하나의 데이터베이스 서버를 공유하는 경우, 공유된 데이터베이스의 동기화 문제를 해결하기 위해 어플리케이션 서버는 분산 코디네이터 또는 데이터베이스 서버로부터 락 (lock) 을 획득한 후에만 데이터베이스 서버에 접근할 수 있다.A distributed system is a system that divides a complex process performed by one high-performance device into a small unit and divides the process into a plurality of devices connected through a network. In a distributed system, the processing efficiency of the system is improved by processing one job in parallel in a plurality of devices, and the reliability of the system is improved by storing a copy of the data in a plurality of devices. Distributed systems also have the advantage of being able to easily extend the system by adding new devices to the network. In the case of a distributed system having a plurality of application servers (ASs), a plurality of application servers can share one database server (DB server). If a database server is shared, the application server can only access the database server after acquiring a lock from the distributed coordinator or database server to resolve the synchronization problem of the shared database.

도 1은 종래 기술에 따른 복수의 어플리케이션 서버를 포함하는 분산 시스템의 예시적인 구성을 도시한다. 도 1을 참조하면, 복수의 어플리케이션 서버 (111 및 112) 는 분산 코디네이터 (120) 또는 데이터베이스 서버 (140) 로부터 락을 획득한 후에 데이터베이스 서버 (140) 에 접근할 수 있다. 따라서, 복수의 어플리케이션 서버 (111 및 112) 는 동시에 데이터베이스 서버 (140) 에 접근할 수 없고, 하나의 어플리케이션 서버가 데이터베이스 서버 (140) 에 접근한 경우 다른 어플리케이션 서버는 락을 획득하기 위해 대기해야 한다. 그러나, 어플리케이션 서버 (111 및 112) 가 데이터베이스 서버 (140) 로부터 락 (lock) 을 획득하는 경우에는 데이터베이스 (140) 서버에 과도한 부하가 몰린다는 문제점과 복수의 쓰기 데이터베이스와 읽기 전용의 데이터베이스를 혼용 하는 경우 모든 데이터베이스에 동시에 락을 걸지 못하는 이슈 문제점이 있다. 또한, 어플리케이션 서버 (111 및 112) 가 분산 코디네이터 (120) 로부터 락을 획득하는 경우에는 분산 코디네이터 (120) 에 문제가 발생하게 되면 어플리케이션 서버 (111 및 112) 를 통해 제공되는 전체 서비스가 중단된다는 문제점이 있다. 1 shows an exemplary configuration of a distributed system including a plurality of application servers according to the prior art. Referring to FIG. 1, a plurality of application servers 111 and 112 can access a database server 140 after acquiring a lock from a distributed coordinator 120 or a database server 140. Accordingly, the plurality of application servers 111 and 112 can not access the database server 140 at the same time, and when one application server accesses the database server 140, another application server must wait for acquiring the lock . However, when the application servers 111 and 112 acquire a lock from the database server 140, there is a problem that an excessive load is applied to the server of the database 140 and a problem that a plurality of write databases and read- There is an issue that prevents all databases from being locked at the same time. When the application servers 111 and 112 acquire the lock from the distributed coordinator 120, if the distributed coordinator 120 has a problem, the entire service provided through the application servers 111 and 112 is interrupted .

따라서, 분산 시스템에서 데이터베이스의 동기화 문제를 해결하는 동시에 특정 서버에 과부하를 유발하지 않고 시스템의 일부에 문제가 발생하더라도 안정적인 서비스를 제공할 수 있는 방법의 개발이 요구되었다.Therefore, it is required to develop a method of solving the problem of synchronizing a database in a distributed system and providing a stable service even if a problem occurs in a part of the system without causing an overload to a specific server.

본 발명이 해결하고자 하는 과제는 검증 서버로부터 읽기 명령의 실행 전과 후의 데이터베이스의 상태를 나타내는 설정값을 획득하여 비교함으로써, 데이터베이스의 동기화를 수행할 수 있는 분산 시스템에서의 데이터베이스 동기화 방법을 제공하는 것이다.A problem to be solved by the present invention is to provide a database synchronization method in a distributed system capable of performing database synchronization by acquiring and comparing setting values indicating the state of a database before and after execution of a read command from a verification server.

본 발명이 해결하고자 하는 다른 과제는 읽기 명령을 수신한 경우 검증 서버에 저장된 설정값을 통해 동기화 여부를 확인함으로써, 분산 코디네이터에 문제가 발생하더라도 읽기 명령은 정상적으로 실행할 수 있는 분산 시스템에서의 데이터베이스 동기화 방법을 제공하는 것이다.Another object of the present invention is to provide a database synchronization method in a distributed system capable of normally executing a read command even if a problem occurs in a distributed coordinator by checking whether synchronization is established through a set value stored in a verification server when a read command is received .

본 발명이 해결하고자 하는 또 다른 과제는 데이터베이스의 상태를 나타내는 설정값을 캐시 서버에 저장함으로써, 설정값을 어플리케이션 서버에 신속하게 제공하여 읽기 명령을 빠르게 수행할 수 있는 분산 시스템에서의 데이터베이스 동기화 방법을 제공하는 것이다.Another object of the present invention is to provide a method of synchronizing a database in a distributed system capable of quickly executing a read command by quickly providing a set value to an application server by storing a set value indicating a state of the database in a cache server .

본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to the above-mentioned problems, and other problems not mentioned can be clearly understood by those skilled in the art from the following description.

전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하는 단계, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하는 단계, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하는 단계, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하는 단계 및 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 단계를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method for synchronizing a database in a distributed system, the method comprising: receiving a read command for stored data from a database server from a user terminal; Executing a read command to the database server after the first set value is obtained, determining a second view state of the stored data from the verification server after the read command is executed, And verifying whether the first set value and the second set value are the same by comparing the first set value and the second set value.

본 발명의 다른 특징에 따르면, 제1 설정값과 제2 설정값이 상이한 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is further provided a method for replaying a read command to a database server when the first set value and the second set value are different.

본 발명의 또 다른 특징에 따르면, 제2 설정값이 널 (null) 인 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 한다.According to still another aspect of the present invention, the method further includes re-executing a read command to the database server when the second set value is null.

본 발명의 또 다른 특징에 따르면, 읽기 명령이 재실행된 후, 검증 서버로부터 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하는 단계 및 제2 설정값과 제3 설정값을 비교하여 제2 설정값과 제3 설정값이 동일한지 여부를 검증하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for controlling a storage system, the method comprising: obtaining a third set value indicating a third view state of stored data from a verification server after a read command is executed again; And verifying whether the second set value and the third set value are identical to each other.

본 발명의 또 다른 특징에 따르면, 읽기 명령을 수신하는 단계는 사용자 단말로부터 명령을 수신하는 단계 및 명령이 읽기 명령인지 여부를 판별하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, the step of receiving the read command includes receiving an instruction from the user terminal and determining whether the instruction is a read command.

본 발명의 또 다른 특징에 따르면, 제1 시점은 검증 서버로 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고, 제2 시점은 검증 서버로 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 한다.According to another aspect of the present invention, a first time point is a time point when a request for obtaining a first set value is sent to a verification server, and a second time point is a time point when a request for obtaining a second setting value is transmitted to a verification server Time point.

본 발명의 또 다른 특징에 따르면, 검증 서버는 캐시 서버인 것을 특징으로 한다.According to another aspect of the present invention, the verification server is a cache server.

본 발명의 또 다른 특징에 따르면, 검증 서버는 어플리케이션 서버가 저장 데이터에 대한 변경 명령을 실행한 경우 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 한다.According to another aspect of the present invention, a verification server is a server that receives a setting value from an application server when the application server executes a change command for stored data.

전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버는 수신부, 획득부, 실행부 및 검증부를 포함하고, 수신부는, 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고, 획득부는, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고, 실행부는, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하고, 획득부는, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고, 검증부는, 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided an application server for database synchronization in a distributed system including a receiving unit, an acquiring unit, an executing unit, and a verifying unit, The acquisition unit acquires a first setting value indicating a first viewpoint state of the stored data from the verification server, and the execution unit receives a read command for the database server after the first setting value is acquired, And the obtaining unit obtains a second set value indicating the second view state of the stored data from the verify server after the read command is executed, and the verifying unit compares the first set value with the second set value, 1 < / RTI > set value is equal to the second set value.

본 발명의 다른 특징에 따르면, 실행부는, 제1 설정값과 제2 설정값이 상이한 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 것을 특징으로 한다.According to another aspect of the present invention, the execution unit is characterized in that, when the first set value and the second set value are different, the read command is re-executed to the database server.

본 발명의 또 다른 특징에 따르면, 실행부는, 제2 설정값이 널 (null) 인 경우, 데이터베이스 서버에 대해 읽기 명령을 재실행하는 것을 특징으로 한다.According to another aspect of the present invention, the execution unit is characterized in that, when the second set value is null, the execution unit re-executes the read command to the database server.

본 발명의 또 다른 특징에 따르면, 획득부는, 읽기 명령이 재실행된 후, 검증 서버로부터 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하고, 검증부는, 제2 설정값과 제3 설정값을 비교하여 제2 설정값과 제3 설정값이 동일한지 여부를 검증하는 것을 특징으로 한다.According to still another aspect of the present invention, the obtaining unit obtains a third set value indicating the third view state of the stored data from the verify server after the read command is re-executed, and the verify unit sets the second set value and the third set value And verifies whether the second set value is equal to the third set value.

본 발명의 또 다른 특징에 따르면, 수신부는, 사용자 단말로부터 명령을 수신하고, 명령이 읽기 명령인지 여부를 판별하는 것을 특징으로 한다.According to still another aspect of the present invention, the receiving unit receives an instruction from the user terminal and determines whether or not the instruction is a read instruction.

본 발명의 또 다른 특징에 따르면, 제1 시점은 검증 서버로 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고, 제2 시점은 검증 서버로 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 한다.According to another aspect of the present invention, a first time point is a time point when a request for obtaining a first set value is sent to a verification server, and a second time point is a time point when a request for obtaining a second setting value is transmitted to a verification server Time point.

본 발명의 또 다른 특징에 따르면, 검증 서버는 캐시 서버인 것을 특징으로 한다.According to another aspect of the present invention, the verification server is a cache server.

본 발명의 또 다른 특징에 따르면, 검증 서버는 어플리케이션 서버가 저장 데이터에 대한 변경 명령을 실행한 경우 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 한다.According to another aspect of the present invention, a verification server is a server that receives a setting value from an application server when the application server executes a change command for stored data.

전술한 바와 같은 과제를 해결하기 위하여 본 발명의 또 다른 실시예에 따른 컴퓨터 판독 가능 매체는 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고, 검증 서버로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고, 제1 설정값이 획득된 후, 데이터베이스 서버에 대해 읽기 명령을 실행하고, 읽기 명령이 실행된 후, 검증 서버로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고, 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증하는 명령어들의 세트를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a computer readable medium for receiving a read command for stored data from a database server from a user terminal, A second set value indicating a second view state of the stored data from the validation server after the read command is executed, and a second set value indicating the second view state of the stored data after the first set value is obtained, And comparing the first set value with the second set value to verify whether the first set value and the second set value are the same or not.

기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.

본 발명은 검증 서버로부터 읽기 명령의 실행 전과 후에 획득된 데이터베이스의 상태를 나타내는 설정값을 비교하는 간단한 과정을 통해 분산 시스템에서 공유된 데이터베이스의 동기화를 수행할 수 있는 효과가 있다.The present invention has an effect of enabling synchronization of a shared database in a distributed system through a simple process of comparing a setting value indicating a state of a database obtained before and after execution of a read command from a verification server.

본 발명은 수신된 명령이 읽기 명령으로 판별된 경우 분산 코디네이터로부터 락을 획득하지 않고 검증 서버에 저장된 설정값을 통해 동기화 여부를 확인함으로써, 분산 코디네이터에 문제가 발생하더라도 읽기 명령은 정상적으로 실행할 수 있는 효과가 있다.In the present invention, when a received command is determined as a read command, it is confirmed whether or not synchronization is established through the setting value stored in the verification server without acquiring the lock from the distributed coordinator, so that even if a problem occurs in the distributed coordinator, .

본 발명은 어플리케이션 서버에 설정값을 제공하는 서버로 캐시서버를 채용함으로써, 어플리케이션 서버가 신속하게 읽기 명령을 실행할 수 있는 효과가 있다.The present invention employs a cache server as a server for providing setting values to an application server, so that an application server can execute a read command quickly.

본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the specification.

도 1은 종래 기술에 따른 복수의 어플리케이션 서버를 포함하는 분산 시스템의 예시적인 구성을 도시한다.
도 2는 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화를 위한 시스템의 개략적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.
도 5a 내지 5d는 본 발명의 또 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법에 따라 구현된 예시적인 실시예를 도시한다.
1 shows an exemplary configuration of a distributed system including a plurality of application servers according to the prior art.
2 is a schematic block diagram of a system for database synchronization in a distributed system according to an embodiment of the present invention.
3 is a flowchart illustrating a database synchronization method in a distributed system according to an embodiment of the present invention.
4 is a flowchart illustrating a database synchronization method in a distributed system according to another embodiment of the present invention.
5A to 5D illustrate an exemplary embodiment implemented in accordance with a database synchronization method in a distributed system according to another embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various components, it goes without saying that these components are not limited by these terms. These terms are used only to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may be the second component within the technical scope of the present invention.

명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Like reference numerals refer to like elements throughout the specification.

본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.It is to be understood that each of the features of the various embodiments of the present invention may be combined or combined with each other partially or entirely and technically various interlocking and driving is possible as will be appreciated by those skilled in the art, It may be possible to cooperate with each other in association.

이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.Various embodiments of the present invention will now be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화를 위한 시스템의 개략적인 구성도이다. 도 2를 참조하면, 분산 시스템에서의 데이터베이스 동기화를 위한 시스템 (200) 은 제1 어플리케이션 서버 (211), 제2 어플리케이션 서버 (212), 분산 코디네이터 (220), 검증 서버 (230) 및 데이터베이스 서버 (240) 를 포함한다.2 is a schematic block diagram of a system for database synchronization in a distributed system according to an embodiment of the present invention. Referring to FIG. 2, a system 200 for database synchronization in a distributed system includes a first application server 211, a second application server 212, a distributed coordinator 220, a verification server 230, 240).

제1 어플리케이션 서버 (211) 및 제2 어플리케이션 서버 (212) 는 분산 시스템을 구성하는 서버로서, 사용자 단말과 분산 코디네이터 (220), 검증 서버 (230) 및 데이터베이스 서버 (240) 사이에 위치하여 양자를 연결한다. 제1 어플리케이션 서버 (211) 및 제2 어플리케이션 서버 (212) 는 웹 어플리케이션 서버 (web application server) 일 수도 있다. 제1 어플리케이션 서버 (211) 및 제2 어플리케이션 서버 (212) 는 각각 사용자 단말로부터 수신된 명령을 데이터베이스 서버 (240) 에 대해 실행할 수 있다. The first application server 211 and the second application server 212 constitute a distributed system and are located between the user terminal and the distributed coordinator 220, the verification server 230 and the database server 240, Connect. The first application server 211 and the second application server 212 may be a web application server. The first application server 211 and the second application server 212 may execute instructions received from the user terminal, respectively, for the database server 240.

어플리케이션 서버 (211 및 212) 는 수신부, 획득부 및 실행부를 포함할 수 있다. 수신부는 사용자 단말로부터 데이터베이스 서버 (240) 의 저장 데이터에 대한 명령을 수신할 수 있다. 획득부는 검증 서버 (230) 로부터 설정값을 획득할 수 있다. 실행부는 데이터베이스 서버 (240) 에 대해 수신된 명령을 실행할 수 있다. 상술한 바와 같이, 어플리케이션 서버 (211 및 212) 는 수신부, 획득부 및 실행부를 개별적인 구성으로 포함할 수도 있으나, 각각의 부는 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적 형태 또는 분리적 형태로 설계 구현될 수도 있다. The application servers 211 and 212 may include a receiving unit, an obtaining unit, and an executing unit. The receiving unit may receive a command for the stored data of the database server 240 from the user terminal. The acquiring unit may acquire a setting value from the verification server (230). The execution unit may execute the received command to the database server 240. [ As described above, the application servers 211 and 212 may include a receiving unit, an acquiring unit, and an executing unit in separate configurations, but each unit may be implemented in one integrated form or in a separate form according to an implementation method or an embodiment of the present invention. Design can also be implemented.

도 2에서는 설명의 편의를 위해 2개의 어플리케이션 서버 (211 및 212) 가 도시되었으나, 어플리케이션 서버는 임의의 개수의 디바이스로 이루어질 수도 있고, 가상화된 디바이스로 이루어질 수도 있다.Although two application servers 211 and 212 are shown in FIG. 2 for convenience of explanation, the application server may be composed of any number of devices or virtualized devices.

분산 코디네이터 (220) 는 데이터베이스 서버 (240) 의 저장 데이터에 대한 변경 명령을 실행하고자 하는 어플리케이션 서버 (211 및 212) 에 락 (lock) 을 부여한다. 분산 코디네이터 (200) 는 복수의 서버로 구성된 분산 시스템일 수도 있다. 분산 코디네이터 (200) 는 주키퍼 (Zookeeper) 등과 같은 분산 코디네이션을 위한 소프트웨어에 의해 동작할 수 있다.The distributed coordinator 220 provides a lock to the application servers 211 and 212 that are to execute the change command for the stored data of the database server 240. The distributed coordinator 200 may be a distributed system composed of a plurality of servers. The distributed coordinator 200 may be operated by software for distributed coordination such as a main keeper (Zookeeper) or the like.

검증 서버 (230) 는 데이터베이스 서버 (240) 의 저장 데이터에 대한 변경 명령을 실행한 어플리케이션 서버로부터 설정값을 수신하여 메모리에 저장한다. 검증 서버 (230) 는 저장 데이터에 대한 읽기 명령을 실행하고자 하는 어플리케이션 서버로 읽기 명령을 실행하기 전과 후에 메모리에 저장된 설정값을 제공한다. 검증 서버 (230) 는 캐시 서버일 수도 있다.The verification server 230 receives the setting value from the application server that has issued the change command for the stored data of the database server 240 and stores the setting value in the memory. The verification server 230 provides the set values stored in the memory before and after executing the read command to the application server that is to execute the read command for the stored data. The verification server 230 may be a cache server.

데이터베이스 서버 (240) 는 데이터베이스를 저장하는 서버로서 어플리케이션 서버 (211 및 212) 와 연결된다. 즉, 어플리케이션 서버 (211 및 212) 는 데이터베이스 서버 (240) 의 저장 데이터를 공유한다. 데이터베이스 서버 (240) 는 어플리케이션 서버 (211 및 212) 로부터 저장 데이터에 대한 변경 명령 또는 읽기 명령을 수신할 수 있고, 어플리케이션 서버 (211 및 212) 로 저장 데이터에 대한 리비전값 (revision value) 을 제공할 수 있다.The database server 240 is connected to the application servers 211 and 212 as a server for storing a database. That is, the application servers 211 and 212 share the stored data of the database server 240. The database server 240 may receive a change command or read command for the stored data from the application servers 211 and 212 and may provide a revision value for the stored data to the application servers 211 and 212 .

도 3은 본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.3 is a flowchart illustrating a database synchronization method in a distributed system according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 어플리케이션 서버 (310) 가 사용자 단말 (30) 로부터 데이터베이스 서버 (340) 의 저장 데이터에 대한 읽기 명령을 수신함으로써 개시된다 (S310). 어플리케이션 서버 (310) 는, 예를 들어, 저장 데이터에 대한 복사 명령 또는 저장 데이터 리스트의 출력 명령 등과 같이 저장 데이터를 변경하지 않는 명령인 읽기 명령을 수신할 수 있다. 어플리케이션 서버 (310) 는 사용자 단말 (30) 로부터 명령을 수신한 후, 수신된 명령이 읽기 명령인지 여부를 판별할 수도 있다. 어플리케이션 서버 (310) 는, 예를 들어, 수신된 명령의 “API” (application program interface) 를 분석하여 수신된 명령이 읽기 명령인지 여부를 판별할 수도 있다.A method for synchronizing a database in a distributed system according to an exemplary embodiment of the present invention is initiated by an application server 310 receiving a read command for stored data from a database server 340 from a user terminal 30 (S310). The application server 310 may receive a read command, which is an instruction that does not change stored data, such as, for example, a copy command for stored data or an output command for a stored data list. After receiving the command from the user terminal 30, the application server 310 may determine whether the received command is a read command. The application server 310 may analyze the " API " (application program interface) of the received command, for example, to determine whether the received command is a read command.

다음으로, 어플리케이션 서버 (310) 는 검증 서버 (330) 로부터 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득한다 (S320). 어플리케이션 서버 (310) 는 검증 서버 (330) 로 설정값을 요청하여 검증 서버 (330) 로부터 검증 서버의 메모리에 저장된 설정값을 획득할 수 있다. 제1 시점이란 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 제1 설정값을 획득하는 시점일 수 있다. 한편, 제1 설정값은 제1 시점에 검증 서버 (330) 에 저장된 설정값을 지칭한다. 설정값은 검증 서버 (330) 의 메모리에 저장된 데이터로서, 최근 시점에 데이터베이스 서버에 변경 명령을 실행한 사용자의 아이디 정보 및 그 변경 명령이 실행된 후 데이터베이스의 리비전 (revision) 값을 포함할 수도 있다. 리비전값은 특정 사용자에 의해 데이터베이스가 변경될 때마다 1씩 증가하는 정수값으로서, 리비전값은 사용자에 따라 별도로 카운팅된다. 어플리케이션 서버 (310) 는 데이터베이스가 변경되는 경우 함께 변경되는 리비전값의 비교를 통해 데이터베이스의 변경 여부를 파악할 수 있다. Next, the application server 310 obtains a first setting value indicating the first view state of the stored data from the verification server 330 (S320). The application server 310 can request a set value from the validation server 330 and obtain the set value stored in the validation server's memory from the validation server 330. [ The first time point may be a time point at which the application server 310 acquires the first set value from the verification server 330. Meanwhile, the first set value refers to the set value stored in the verification server 330 at the first time point. The set value may be data stored in the memory of the validation server 330 and may include the ID information of the user who has issued the change command to the database server at the latest time and the revision value of the database after the change command is executed . The revision value is an integer value incremented by 1 each time the database is changed by a particular user, and the revision value is counted separately for each user. When the database is changed, the application server 310 can determine whether the database is changed by comparing revision values that are changed together.

본 발명의 일 실시예에 따르면, 검증 서버 (330) 는 다른 어플리케이션 서버가 저장 데이터에 대한 변경 명령을 실행한 경우, 변경 명령을 실행한 어플리케이션 서버로부터 설정값을 수신하는 서버일 수도 있다. 검증 서버 (330) 는 변경 명령을 실행한 어플리케이션 서버로부터 그 어플리케이션 서버에 접속된 사용자의 아이디 정보 및 변경 명령 실행 후 데이터베이스의 리비전값을 포함하는 설정값을 수신할 수도 있다. 검증 서버 (330) 가 데이터베이스 서버 (340) 에 대한 변경 명령이 실행될 때마다 변경 명령을 실행한 어플리케이션 서버로부터 설정값을 수신함으로써, 데이터베이스가 변경되는 경우 검증 서버 (330) 에 저장된 설정값도 변경될 수 있다. According to an embodiment of the present invention, the verification server 330 may be a server that receives a setting value from an application server that has issued a change command when another application server executes a change command for the stored data. The verification server 330 may receive the ID information of the user connected to the application server from the application server that has issued the change command and the setting value including the revision value of the database after executing the change command. Each time the verification server 330 issues a change command to the database server 340, the setting value is received from the application server that issued the change command, so that the setting value stored in the verification server 330 is also changed when the database is changed .

본 발명의 일 실시예에 따르면, 검증 서버 (330) 는 캐시 서버 (cache server) 일 수도 있다. 캐시 서버는 설정값을 임시 저장 메모리에 저장하고 일정 시간이 지난 후 반환시키는 서버로서 응답 속도가 빠르다는 특성을 갖는다. 검증 서버 (330) 가 캐시 서버인 경우, 어플리케이션 서버 (310) 가 설정값을 보다 빨리 획득할 수 있으므로, 읽기 명령을 실행하기 위한 전체 시간이 단축될 수 있다.According to an embodiment of the present invention, the verification server 330 may be a cache server. The cache server stores the setting value in the temporary storage memory and returns the server after a predetermined time. The cache server has a characteristic that the response speed is fast. If the verification server 330 is a cache server, the application server 310 can acquire the set value sooner, so the total time for executing the read command can be shortened.

다음으로, 어플리케이션 서버 (310) 는 제1 설정값이 획득된 후, 데이터베이스 서버 (340) 에 대해 읽기 명령을 실행한다 (S330). 예를 들어, 어플리케이션 서버 (310) 는 획득된 제1 설정값을 저장한 후, 수신된 읽기 명령을 실행하여 데이터베이스 서버 (340) 의 저장 데이터를 복사하거나 저장 데이터의 리스트 정보를 수신할 수도 있다. 어플리케이션 서버 (310) 가 락의 획득 없이 제1 설정값을 획득한 후 읽기 명령을 실행하므로, 어플리케이션 서버 (310) 는 분산 코디네이터 (320) 로부터 락을 획득하기 위한 대기 시간을 소모하지 않고 읽기 명령을 신속하게 실행 할 수 있다.Next, after the first set value is obtained, the application server 310 executes a read command to the database server 340 (S330). For example, the application server 310 may store the acquired first set value and then execute the received read command to copy the stored data of the database server 340 or receive list information of the stored data. The application server 310 executes the read command after acquiring the first set value without acquiring the lock, so that the application server 310 does not consume the waiting time to acquire the lock from the distributed coordinator 320, It can be executed quickly.

본 발명의 몇몇 실시예에 따르면, 어플리케이션 서버 (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) 에 대해 정상적으로 읽기 명령을 수행할 수 있다.According to some embodiments of the present invention, when the application server 310 can not obtain the setting value from the verification server 330, the application server 310 acquires the lock from the distributed coordinator 320, 340). ≪ / RTI > Specifically, when a problem occurs in the verification server 330, the application server 310 can not acquire the setting value from the verification server 330 even if the verification server 330 requests the setting value. If the application server 310 fails to acquire the setting value from the verification server 330, the application server 310 may request the distribution coordinator 320 for the lock. The application server 310 may acquire an immediate lock from the distributed coordinator 320 when there is no other application server acquiring the lock from the distributed coordinator 320 and the other application server that obtained the lock from the distributed coordinator 330 If so, you can wait to acquire the lock. After the application server 310 acquires the lock from the distributed coordinator 320, the application server 310 may execute a read command to the database server 340. The application server 310 normally issues a read command to the database server 340 even if a problem occurs in the validation server 330 by executing the read command after the application server 310 acquires the lock from the distributed coordinator 320 Can be performed.

다음으로, 어플리케이션 서버 (310) 는 읽기 명령이 실행된 후, 검증 서버 (330) 로부터 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득한다 (S340). 제2 시점이란 어플리케이션 서버 (310) 가 검증 서버 (330) 로부터 제2 설정값을 획득하는 시점일 수 있다. 한편, 제2 설정값은 제2 시점에 검증 서버 (330) 에 저장된 설정값을 지칭한다. 어플리케이션 서버 (310) 가 제2 설정값을 획득하는 단계 (S340) 는 제1 설정값을 획득하는 단계 (S320) 와 동일하므로 중복 설명은 생략한다.Next, after the read command is executed, the application server 310 obtains a second set value indicating the second view state of the stored data from the verify server 330 (S340). The second time may be a time point at which the application server 310 acquires the second setting value from the verification server 330. Meanwhile, the second set value refers to the set value stored in the verification server 330 at the second time point. Since the step S340 of acquiring the second set value by the application server 310 is the same as the step S320 of acquiring the first set value, redundant description will be omitted.

다음으로, 어플리케이션 서버 (310) 는 제1 설정값과 제2 설정값을 비교하여 제1 설정값과 제2 설정값이 동일한지 여부를 검증한다 (S350). 어플리케이션 서버 (310) 는 제1 설정값에 포함된 사용자 아이디 정보 및 리비전값과 제2 설정값에 포함된 사용자 아이디 정보 및 리비전값을 비교하여 모두 일치하는지 여부를 검증할 수 있다. 제1 설정값과 제2 설정값이 동일하다면 어플리케이션 서버 (310) 가 읽기 명령을 실행하는 동안 데이터베이스 서버 (340) 의 저장 데이터가 다른 경로를 통해 변경되지 않은 것이므로, 어플리케이션 서버 (310) 가 동기화된 저장 데이터에 대해 읽기 명령을 실행한 것으로 간주된다. 어플리케이션 서버 (310) 는, 예를 들어, 복사 명령에 따른 복사된 저장 데이터 또는 리스트 명령에 따른 저장 데이터의 리스트 정보 등과 같은 읽기 명령의 실행 결과를 사용자 단말로 전송할 수도 있다.Next, the application server 310 compares the first set value with the second set value to verify whether the first set value and the second set value are identical (S350). The application server 310 may compare the user ID information and the revision value included in the first setting value with the user ID information and the revision value included in the second setting value and verify whether they are all identical or not. If the first set value and the second set value are the same, the stored data of the database server 340 is not changed through another path while the application server 310 executes the read command. Therefore, if the application server 310 is synchronized It is regarded that the read command is executed for the stored data. The application server 310 may transmit the result of execution of the read command to the user terminal, for example, the copied stored data according to the copy command or the list information of the stored data according to the list command.

제1 설정값과 제2 설정값이 상이한 경우, 어플리케이션 서버 (310) 는 데이터베이스 서버 (340) 에 대해 읽기 명령을 재실행할 수 있다 (S360). 제1 설정값과 제2 설정값이 상이하다면 어플리케이션 서버 (310) 가 읽기 명령을 실행하는 동안 데이터베이스 서버 (340) 의 저장 데이터가 다른 경로를 통해 변경된 것이므로, 어플리케이션 서버 (310) 가 동기화되지 않은 저장 데이터에 대해 읽기 명령을 실행한 것으로 간주되고, 어플리케이션 서버 (310) 는 읽기 명령을 재실행한다. 어플리케이션 서버 (310) 는 제2 설정값이 널 (null) 인 경우, 즉, 제2 설정값을 획득하지 못한 경우에도 제1 설정값과 제2 설정값이 상이한 것으로 판단하여, 데이터베이스 서버 (340) 에 대해 읽기 명령을 재실행할 수도 있다. 어플리케이션 서버 (310) 가 읽기 명령을 재실행하는 단계 (S360) 는 어플리케이션 서버 (310) 가 읽기 명령을 실행하는 단계 (S360) 와 동일하므로 중복 설명은 생략한다. If the first set value and the second set value are different, the application server 310 may re-execute the read command to the database server 340 (S360). If the first set value and the second set value are different, the stored data of the database server 340 is changed through another path while the application server 310 executes the read command, It is regarded that the read command is executed on the data, and the application server 310 re-executes the read command. The application server 310 determines that the first set value and the second set value are different even when the second set value is null, that is, when the second set value is not acquired, The read command may be re-executed. The step of re-executing the read command by the application server 310 (S360) is the same as the step of executing the read command (S360) by the application server 310, and thus redundant description will be omitted.

다음으로, 어플리케이션 서버 (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) 와 동일하므로 중복 설명은 생략한다.Next, the application server 310 obtains a third set value indicating the third view state of the stored data from the verify server 330 after the read command is re-executed (S370), and sets the second set value and the third set value And it is possible to verify whether the second set value and the third set value are the same (S380). The third time may be a time point at which the application server 310 obtains the third set value from the verification server 330. [ Meanwhile, the third set value refers to the set value stored in the verification server 330 at the third time. The application server 310 obtains the third set value (S370), and verifying whether the second set value is the same as the third set value (S380) And verifying whether the first set value and the second set value are identical to each other (S350), and thus redundant description will be omitted.

상술한 바와 같이, 어플리케이션 서버 (310) 에 읽기 명령이 수신된 경우 분산 코디네이터로부터 락을 획득하지 않고 검증 서버 (330) 에 저장된 설정값을 통해 데이터베이스 서버 (340) 의 저장 데이터의 변경 여부를 확인함으로써, 분산 코디네이터에 문제가 발생한 경우에도 읽기 명령은 정상적으로 실행할 수 있다.As described above, when a read command is received in the application server 310, whether or not the stored data of the database server 340 has been changed is confirmed based on the setting value stored in the verification server 330 without acquiring the lock from the distributed coordinator , The read command can be normally executed even when a problem occurs in the distributed coordinator.

도 4는 본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a database synchronization method in a distributed system according to another embodiment of the present invention.

본 발명의 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법은 어플리케이션 서버 (410) 가 사용자 단말 (40) 로부터 변경 명령을 수신함으로써 개시된다 (S410). 어플리케이션 서버 (410) 는, 예를 들어, 업로드 명령 또는 삭제 명령 등과 같은 데이터베이스 서버 (440) 의 저장 데이터를 변경하는 변경 명령을 수신할 수 있다. 어플리케이션 서버 (410) 및 사용자 단말 (40) 은 도 3의 어플리케이션 서버 (310) 및 사용자 단말 (30) 과 상이한 디바이스일 수 있다. 어플리케이션 서버 (410) 는 사용자 단말 (40) 로부터 명령을 수신한 후, 수신된 명령이 변경 명령인지 여부를 판별할 수도 있다. 어플리케이션 서버 (410) 는, 예를 들어, 수신된 명령의 “API”를 분석하여 수신된 명령이 변경 명령인지 여부를 판별할 수도 있다.The method of synchronizing the database in the distributed system according to another embodiment of the present invention is started by the application server 410 receiving the change command from the user terminal 40 (S410). The application server 410 may receive a change command that alters the stored data of the database server 440, such as, for example, an upload command or a delete command. The application server 410 and the user terminal 40 may be devices different from the application server 310 and the user terminal 30 of Fig. After receiving the command from the user terminal 40, the application server 410 may determine whether the received command is a change command. The application server 410 may, for example, analyze the " API " of the received command to determine whether the received command is a change command.

다음으로, 어플리케이션 서버 (410) 는 분산 코디네이터 (420) 로부터 락을 획득한다 (S420). 어플리케이션 서버 (410) 가 변경 명령을 실행하는 동안 다른 어플리케이션 서버가 동시에 변경 명령을 실행하는 것을 방지하기 위해, 어플리케이션 서버 (410) 는 변경 명령을 수신한 경우 우선적으로 분산 코디네이터 (420) 에 락을 요청하여 분산 코디네이터 (420) 로부터 락을 획득할 수 있다. 어플리케이션 서버 (310) 는 다른 어플리케이션 서버가 먼저 락을 획득하여 변경 명령을 실행하는 중인 경우 다른 어플리케이션 서버의 명령이 실행 완료될 때까지 대기한 후 분산 코디네이터 (420) 로부터 락을 획득할 수 있다. Next, the application server 410 acquires the lock from the distributed coordinator 420 (S420). In order to prevent another application server from executing a change command at the same time while the application server 410 executes the change command, the application server 410 preferentially requests the distributed coordinator 420 to lock So as to obtain a lock from the distributed coordinator 420. The application server 310 can wait for another application server to complete the command and acquire the lock from the distributed coordinator 420 when another application server is acquiring the lock and executing the change command first.

다음으로, 어플리케이션 서버 (410) 는 데이터베이스 서버 (440) 에 대해 변경 명령을 실행한다 (S430). 어플리케이션 서버 (410) 는 분산 코디네이터 (420) 로부터 락을 획득한 후 수신된 변경 명령을 실행하여, 예를 들어, 데이터베이스 서버 (440) 에 데이터를 업로드 하거나 데이터베이스 서버 (440) 의 저장 데이터를 변경하거나 삭제할 수 있다.Next, the application server 410 executes a change command to the database server 440 (S430). The application server 410 may obtain the lock from the distributed coordinator 420 and then execute the received change command to, for example, upload data to the database server 440 or change the stored data of the database server 440 Can be deleted.

다음으로, 데이터베이스 서버 (440) 는 저장 데이터에 변경 명령을 적용한다 (S440). 데이터베이스 서버 (440) 에 변경 명령이 적용된 경우, 변경 명령을 전송한 사용자에 대한 리비젼값이 1 증가할 수 있다.Next, the database server 440 applies a change command to the stored data (S440). When the change command is applied to the database server 440, the revision value for the user who transmitted the change command may be increased by one.

다음으로, 어플리케이션 서버 (410) 는 데이터베이스 서버 (440) 로부터 리비전값을 획득하고 (S450), 획득된 리비전값 및 어플리케이션 서버 (410) 와 접속된 사용자의 아이디 정보를 포함하는 설정값을 검증 서버 (430) 로 송신한다 (S460). 어플리케이션 서버 (410) 가 변경 명령으로 인해 변경된 리비젼값 및 변경 명령을 전송한 사용자의 아이디 정보를 검증 서버 (430) 로 전송함으로써 검증 서버 (430) 에 저장된 정보를 통해 데이터베이스 서버 (440) 의 저장 데이터의 변경 여부를 파악할 수 있다.Next, the application server 410 obtains the revision value from the database server 440 (S450), and transmits the revision value and the setting value including the ID information of the user connected to the application server 410 to the verification server 430 in step S460. The application server 410 transmits the changed revision value due to the change command and the user ID information of the user who transmitted the change command to the verification server 430 so that the stored data of the database server 440 It is possible to know whether or not the change of

다음으로, 검증 서버 (430) 는 수신된 설정값을 메모리에 저장한다 (S470). 검증 서버 (430) 는 저장된 설정값을 어플리케이션 서버 (410) 또는 다른 어플리케이션 서버로 제공할 수 있다.Next, the verification server 430 stores the received setting value in the memory (S470). The verification server 430 may provide the stored configuration values to the application server 410 or another application server.

도 5a 내지 5d는 본 발명의 또 다른 실시예에 따른 분산 시스템에서의 데이터베이스 동기화 방법에 따라 구현된 예시적인 실시예를 도시한다.5A to 5D illustrate an exemplary embodiment implemented in accordance with a database synchronization method in a distributed system according to another embodiment of the present invention.

도 5a를 참조하면, 제1 사용자 단말 (51) 은 제1 어플리케이션 서버 (511) 로 명령을 전송한다. 제1 어플리케이션 서버 (511) 는 수신된 명령이 읽기 명령인지 여부를 판별하고, 읽기 명령인 경우, 캐시 서버 (530) 로부터 제1 설정값을 획득한다. 제1 어플리케이션 서버 (511) 는 제1 설정값을 획득한 후 데이터베이스 서버 (540) 에 접근하여 읽기 명령을 실행한다.Referring to FIG. 5A, the first user terminal 51 transmits a command to the first application server 511. The first application server 511 determines whether the received command is a read command, and acquires a first set value from the cache server 530 if the command is a read command. The first application server 511 acquires the first set value and accesses the database server 540 to execute a read command.

도 5b를 참조하면, 제2 사용자 단말 (52) 은, 제1 어플리케이선 서버 (511) 가 데이터베이스 서버 (540) 에 대해 읽기 명령을 실행하는 동안, 제2 어플리케이션 서버 (512) 로 명령을 전송한다. 제2 어플리케이션 서버 (512) 는 수신된 명령이 변경 명령인지 여부를 판별하고, 변경 명령인 경우, 분산 코디네이터 (520) 로부터 락을 획득한다. 제2 어플리케이션 서버 (512) 는 락을 획득한 후 데이터베이스 서버 (540) 에 접근하여 변경 명령을 실행하고, 데이터베이스 서버 (540) 로부터 변경 명령으로 인해 변경된 리비전값을 획득한다. 제2 어플리케이션 서버 (512) 는 획득된 리비전값 및 제2 사용자 단말 (52) 의 사용자 아이디 정보를 포함하는 설정값를 캐시 서버 (530) 로 전송한다. 캐시 서버 (530) 는 제1 설정값을 삭제하고, 제2 어플리케이션 서버 (512) 로부터 수신된 설정값을 저장한다.5B, the second user terminal 52 transmits a command to the second application server 512 while the first application server 511 executes a read command to the database server 540 do. The second application server 512 determines whether the received command is a change command, and acquires a lock from the distributed coordinator 520 if the command is a change command. After acquiring the lock, the second application server 512 accesses the database server 540 to execute the change command, and acquires the revision value changed due to the change command from the database server 540. The second application server 512 transmits to the cache server 530 a setting value including the acquired revision value and the user ID information of the second user terminal 52. [ The cache server 530 deletes the first setting value and stores the setting value received from the second application server 512. [

도 5c를 참조하면, 제1 어플리케이션 서버 (511) 는 데이터베이스 서버 (540) 에 대해 읽기 명령을 실행한 후, 캐시 서버 (530) 로부터 제2 설정값을 획득한다. 제1 어플리케이션 서버 (511) 는 제1 설정값과 제2 설정값을 비교한다. 제2 설정값은 제1 어플리케이션 서버 (511) 가 읽기 명령을 실행하는 동안 제2 어플리케이션 서버 (512) 에 의해 변경된 설정값이므로, 제1 어플리케이션 서버 (511) 는 제1 설정값과 제2 설정값이 상이한 것으로 검증할 수 있다.Referring to FIG. 5C, the first application server 511 executes a read command to the database server 540, and then obtains a second set value from the cache server 530. The first application server 511 compares the first set value and the second set value. Since the second setting value is a setting value changed by the second application server 512 while the first application server 511 executes the read command, the first application server 511 sets the first setting value and the second setting value Can be verified as being different.

도 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) 로 전송할 수 있다.Referring to FIG. 5D, since the first set value differs from the second set value, the first application server 511 re-executes the read command to the database server 540. [ The first application server 511 obtains the third set value from the cache server 530 after re-executing the read command. The first application server 511 compares the second set value with the third set value. The first application server 511 can verify that the second set value is equal to the third set value because there is no change in the set value while the first application server re-executes the read command. If the second set value and the third set value are verified to be the same, the first application server 511 may transmit the execution result of the read command to the first user terminal 51. [

상술한 바와 같이, 제1 어플리케이션 서버 (511) 가 읽기 명령을 실행하는 동안 제2 어플리케이션 서버 (512) 의 변경 명령 실행에 의해 설정값이 변경되는 경우 제1 어플리케이션 서버 (511) 가 읽기 명령을 재실행함으로써, 데이터베이스 서버 (540) 의 저장 데이터를 동기화할 수 있다.As described above, when the setting value is changed by execution of the change command of the second application server 512 while the first application server 511 executes the read command, the first application server 511 re-executes the read command So that the stored data of the database server 540 can be synchronized.

본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In this specification, each block or each step may represent a part of a module, segment or code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.

본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable disk, a CD-ROM or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, which is capable of reading information from, and writing information to, the storage medium. Alternatively, the storage medium may be integral with the processor. The processor and the storage medium may reside within an application specific integrated circuit (ASIC). The ASIC may reside within the user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the embodiments of the present invention have been described in detail with reference to the accompanying drawings, it is to be understood that the present invention is not limited to those embodiments and various changes and modifications may be made without departing from the scope of the present invention. . Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. Therefore, it should be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.

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 데이터베이스 서버
111 first application server
112 second application server
120 Distributed Coordinator
140 database server
211 first application server
212 Second application server
220 Distributed Coordinator
230 Verification Server
240 database server
30 user terminal
310 application server
330 validation server
340 Database server
40 user terminal
410 application server
420 Distributed Coordinator
430 validation server
440 database server
51 first user terminal
52 second user terminal
511 First application server
512 second application server
520 Distributed Coordinator
530 cache server
540 database server

Claims (17)

사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하는 단계;
검증 서버로부터 상기 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하는 단계;
상기 제1 설정값이 획득된 후, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 실행하는 단계;
상기 읽기 명령이 실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하는 단계; 및
상기 제1 설정값과 상기 제2 설정값을 비교하여 상기 제1 설정값과 상기 제2 설정값이 동일한지 여부를 검증하는 단계를 포함하되,
상기 검증 서버는 캐시 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
Receiving a read command for stored data of a database server from a user terminal;
Obtaining a first set value indicating a first view state of the stored data from a verification server;
Executing the read command to the database server after the first set value is obtained;
Obtaining a second set value indicating a second view state of the stored data from the verification server after the read command is executed; And
Comparing the first set value with the second set value to verify whether the first set value and the second set value are the same,
Wherein the verification server is a cache server.
제 1 항에 있어서,
상기 제1 설정값과 상기 제2 설정값이 상이한 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
The method according to claim 1,
Further comprising re-executing the read command to the database server if the first set value and the second set value are different from each other.
제 1 항에 있어서,
상기 제2 설정값이 널 (null) 인 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 단계를 더 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
The method according to claim 1,
And re-executing the read command to the database server if the second set value is null. ≪ Desc / Clms Page number 22 >
제 2 항 또는 제 3 항에 있어서,
상기 읽기 명령이 재실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하는 단계; 및
상기 제2 설정값과 상기 제3 설정값을 비교하여 상기 제2 설정값과 상기 제3 설정값이 동일한지 여부를 검증하는 단계를 더 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
The method according to claim 2 or 3,
Obtaining a third set value indicating a third viewpoint state of the stored data from the verification server after the read command is replayed; And
And comparing the second set value with the third set value to verify whether the second set value is equal to the third set value.
제 1 항에 있어서,
상기 읽기 명령을 수신하는 단계는
상기 사용자 단말로부터 명령을 수신하는 단계 및
상기 명령이 상기 읽기 명령인지 여부를 판별하는 단계를 포함하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
The method according to claim 1,
The step of receiving the read command
Receiving an instruction from the user terminal;
And determining whether the command is the read command.
제 1 항에 있어서,
상기 제1 시점은 상기 검증 서버로 상기 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고,
상기 제2 시점은 상기 검증 서버로 상기 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
The method according to claim 1,
Wherein the first time point is a time point at which a request for obtaining the first set value is transmitted to the verification server,
And the second time point is a time point when the request for obtaining the second set value is transmitted to the verification server.
삭제delete 제 1 항에 있어서,
상기 검증 서버는 어플리케이션 서버가 상기 저장 데이터에 대한 변경 명령을 실행한 경우 상기 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화 방법.
The method according to claim 1,
Wherein the verification server is a server that receives a setting value from the application server when the application server executes the change command for the stored data.
수신부;
획득부;
실행부; 및
검증부를 포함하고,
상기 수신부는, 사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고,
상기 획득부는, 검증 서버로부터 상기 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고,
상기 실행부는, 상기 제1 설정값이 획득된 후, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 실행하고,
상기 획득부는, 상기 읽기 명령이 실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고,
상기 검증부는, 상기 제1 설정값과 상기 제2 설정값을 비교하여 상기 제1 설정값과 상기 제2 설정값이 동일한지 여부를 검증하되,
상기 검증 서버는 캐시 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
A receiving unit;
An acquisition unit;
An execution unit; And
And a verification unit,
The receiving unit receives a read command for stored data of the database server from the user terminal,
Wherein the obtaining unit obtains a first setting value indicating a first viewpoint state of the stored data from a verification server,
Wherein the execution unit executes the read command to the database server after the first set value is acquired,
Wherein the obtaining unit obtains a second set value indicating a second view state of the stored data from the verification server after the read command is executed,
Wherein the verifying unit verifies whether the first set value and the second set value are identical by comparing the first set value with the second set value,
Wherein the verification server is a cache server.
제 9 항에 있어서,
상기 실행부는,
상기 제1 설정값과 상기 제2 설정값이 상이한 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
10. The method of claim 9,
The execution unit may include:
And re-executing the read command to the database server when the first set value and the second set value are different.
제 9 항에 있어서,
상기 실행부는,
상기 제2 설정값이 널 (null) 인 경우, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 재실행하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
10. The method of claim 9,
The execution unit may include:
And if the second set value is null, re-executing the read command to the database server.
제 10 항 또는 제 11 항에 있어서,
상기 획득부는,
상기 읽기 명령이 재실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제3 시점 상태를 나타내는 제3 설정값을 획득하고,
상기 검증부는,
상기 제2 설정값과 상기 제3 설정값을 비교하여 상기 제2 설정값과 상기 제3 설정값이 동일한지 여부를 검증하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
The method according to claim 10 or 11,
Wherein the obtaining unit comprises:
Acquiring a third set value indicating a third view state of the stored data from the verification server after the read command is executed again,
Wherein the verifying unit comprises:
And verifies whether the second set value is equal to the third set value by comparing the second set value with the third set value.
제 9 항에 있어서,
상기 수신부는,
상기 사용자 단말로부터 명령을 수신하고,
상기 명령이 상기 읽기 명령인지 여부를 판별하는 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
10. The method of claim 9,
The receiver may further comprise:
Receiving an instruction from the user terminal,
And determines whether the command is the read command. The application server for database synchronization in a distributed system.
제 9 항에 있어서,
상기 제1 시점은 상기 검증 서버로 상기 제1 설정값을 획득하기 위한 요청을 송신하는 시점이고,
상기 제2 시점은 상기 검증 서버로 상기 제2 설정값을 획득하기 위한 요청을 송신하는 시점인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
10. The method of claim 9,
Wherein the first time point is a time point at which a request for obtaining the first set value is transmitted to the verification server,
And the second time point is a time point for transmitting a request for obtaining the second set value to the verification server.
삭제delete 제 9 항에 있어서,
상기 검증 서버는 어플리케이션 서버가 상기 저장 데이터에 대한 변경 명령을 실행한 경우 상기 어플리케이션 서버로부터 설정값을 수신하는 서버인 것을 특징으로 하는, 분산 시스템에서의 데이터베이스 동기화를 위한 어플리케이션 서버.
10. The method of claim 9,
Wherein the verification server is a server that receives a setting value from the application server when the application server executes the change command for the stored data.
사용자 단말로부터 데이터베이스 서버의 저장 데이터에 대한 읽기 명령을 수신하고,
검증 서버로부터 상기 저장 데이터의 제1 시점 상태를 나타내는 제1 설정값를 획득하고,
상기 제1 설정값이 획득된 후, 상기 데이터베이스 서버에 대해 상기 읽기 명령을 실행하고,
상기 읽기 명령이 실행된 후, 상기 검증 서버로부터 상기 저장 데이터의 제2 시점 상태를 나타내는 제2 설정값을 획득하고,
상기 제1 설정값과 상기 제2 설정값을 비교하여 상기 제1 설정값과 상기 제2 설정값이 동일한지 여부를 검증하는 명령어들의 세트를 포함하되,
상기 검증 서버는 캐시 서버인 것을 특징으로 하는, 컴퓨터 판독 가능 매체.
Receiving a read command for stored data of the database server from the user terminal,
Acquiring a first set value indicating a first view state of the stored data from a verification server,
Executing the read command to the database server after the first set value is obtained,
Acquiring a second set value indicating a second viewpoint state of the stored data from the verification server after the read command is executed,
And a set of instructions for comparing the first set value with the second set value to verify whether the first set value and the second set value are the same,
Wherein the verification server is a cache server.
KR1020140159215A 2014-11-14 2014-11-14 Method for synchronizing database in distributed system KR101645163B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140159215A KR101645163B1 (en) 2014-11-14 2014-11-14 Method for synchronizing database in distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140159215A KR101645163B1 (en) 2014-11-14 2014-11-14 Method for synchronizing database in distributed system

Publications (2)

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

Family

ID=56114025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140159215A KR101645163B1 (en) 2014-11-14 2014-11-14 Method for synchronizing database in distributed system

Country Status (1)

Country Link
KR (1) KR101645163B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102211403B1 (en) * 2019-06-19 2021-02-03 주식회사 코비젼 Synchronizing system for public resources in multi-WEB server environment
KR102331734B1 (en) 2021-03-19 2021-12-01 쿠팡 주식회사 Method for processing data of distributed coordination system and electronic apparatus therefor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101193001B1 (en) 2007-10-12 2012-10-19 후아웨이 테크놀러지 컴퍼니 리미티드 Method, system, and device for data synchronization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI113129B (en) * 2001-03-26 2004-02-27 Nokia Corp Synchronization of application data in a telecommunications system
KR100547896B1 (en) * 2004-03-05 2006-01-31 삼성전자주식회사 Data Synchronization System and Data Synchronization Method of Server and Client
JP5213077B2 (en) * 2008-10-06 2013-06-19 インターナショナル・ビジネス・マシーンズ・コーポレーション System for accessing shared data by multiple application servers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101193001B1 (en) 2007-10-12 2012-10-19 후아웨이 테크놀러지 컴퍼니 리미티드 Method, system, and device for data synchronization

Also Published As

Publication number Publication date
KR20160057944A (en) 2016-05-24

Similar Documents

Publication Publication Date Title
US20210160053A1 (en) Merkle tree construction methods and apparatuses and simplified payment verification methods and apparatuses
CN109831487B (en) Fragmented file verification method and terminal equipment
US9778998B2 (en) Data restoration method and system
US10455003B2 (en) Method, server, and system for sharing resource data
CN108108127B (en) File reading method and system
US20130268491A1 (en) Telemetry system for a cloud synchronization system
WO2018154713A1 (en) Information verification system, information verification device, method and program
US20130282996A1 (en) Systems and methods for migrating data
US11108547B2 (en) Methods and apparatuses for reading blockchain data
US20170052723A1 (en) Replicating data using remote direct memory access (rdma)
CN111049928B (en) Data synchronization method, system, electronic device and computer readable storage medium
US20130198134A1 (en) Online verification of a standby database in log shipping physical replication environments
US20170054803A1 (en) Information processing device, method, and system
US20170177696A1 (en) Usage of modeled validations on mobile devices in online and offline scenarios
CN109324959B (en) Method for automatically transferring data, server and computer readable storage medium
CN108228789B (en) Synchronous abnormity recovery method and device triggered by slave node
CN110633046A (en) Storage method and device of distributed system, storage equipment and storage medium
WO2016101759A1 (en) Data routing method, data management device and distributed storage system
KR101645163B1 (en) Method for synchronizing database in distributed system
US11341842B2 (en) Metering data management system and computer readable recording medium
US8762662B1 (en) Method and apparatus for application migration validation
US20150242599A1 (en) Cluster license server
CN108200157B (en) Log synchronization method and device for triggering rollback by master node
US9619506B2 (en) Method and system to avoid deadlocks during a log recovery
US9842018B2 (en) Method of verifying integrity of program using hash

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