KR20190095443A - 기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치 - Google Patents

기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치 Download PDF

Info

Publication number
KR20190095443A
KR20190095443A KR1020197021325A KR20197021325A KR20190095443A KR 20190095443 A KR20190095443 A KR 20190095443A KR 1020197021325 A KR1020197021325 A KR 1020197021325A KR 20197021325 A KR20197021325 A KR 20197021325A KR 20190095443 A KR20190095443 A KR 20190095443A
Authority
KR
South Korea
Prior art keywords
database
lock
primary database
primary
request
Prior art date
Application number
KR1020197021325A
Other languages
English (en)
Other versions
KR102142233B1 (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 알리바바 그룹 홀딩 리미티드
Publication of KR20190095443A publication Critical patent/KR20190095443A/ko
Application granted granted Critical
Publication of KR102142233B1 publication Critical patent/KR102142233B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking

Landscapes

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

Abstract

본 출원은 기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치를 제공한다. 방법은 다음을 포함한다: 기본 데이터베이스에 의해 유지되는 락 - 기본 데이터베이스 및 보조 데이터베이스는 락을 공유함 - 이 만료되는지의 여부를 결정하는 것; 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정하는 것; 및 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하는 것. 방법에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청을 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것이 결정되고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.

Description

기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치
본 출원은 정보 보안 기술의 분야에 관한 것으로, 특히, 기본(primary) 및 보조(secondary) 데이터베이스를 관리하기 위한 방법, 시스템 및 장치에 관한 것이다.
데이터베이스는, 금융, 상거래, 운송, 및 심지어 사회 전체와 같은 분야에서 핵심 인프라이다. 데이터베이스의 연속적인 이용 가능성은 금융 및 상업적 분야와 같은 분야에서 서비스가 유저에게 연속적으로 제공될 수 있는 것을 보장할 수 있다. 단일의 데이터베이스에 결함이 생기는 것을 방지하고 데이터베이스 이용 가능성을 향상시키기 위해, 일반적으로 기본 데이터베이스 및 보조 데이터베이스가 구성된다. 기본 데이터베이스에 결함이 있는 경우, 기본 데이터베이스는 보조 데이터베이스로 스위칭되어 계속하여 유저를 서빙한다.
관련 기술에서, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭은 자동적일 수 있다. 즉, 모니터링 시스템이 기본 데이터베이스에 대해 배치되고, 일단 기본 데이터베이스가 비정상임을 발견하면, 모니터링 시스템은 기본 데이터베이스와 보조 데이터베이스 사이를 스위칭하기 위한 경보(alarm) 및 커맨드를 전송한다.
그러나, 기본 데이터베이스와 보조 데이터베이스 사이를 스위칭하기 위한 앞선 방법에서는, 부정확한 판단에 기인하여 다음의 사례가 발생할 수도 있다: 기본 데이터베이스에 결함이 있지 않은 경우에 기본 데이터베이스가 스위칭되거나, 또는 기본 데이터베이스에 결함이 있지만 스위칭되지 않음. 결과적으로, 유저에게 제공되는 일반적인 서비스가 영향을 받는다.
본 출원은 이전의 기술적 문제 중 하나를 적어도 어느 정도 완화하는 것을 의도한다.
따라서, 본 출원의 제1 목적은 기본 및 보조 데이터베이스를 관리하기 위한 방법을 제공하는 것이다. 방법에 따르면, 기본 데이터베이스에 의해 유지(hold)되는 락(lock)이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청(lock renewal request)을 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것이 결정되고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.
본 출원의 제2 목적은 락 중재 서버(lock arbitration server)를 제공하는 것이다.
본 출원의 제3 목적은 기본 데이터베이스 서버를 제공하는 것이다.
본 출원의 제4 목적은 보조 데이터베이스 서버를 제공하는 것이다.
본 출원의 제5 목적은 기본 및 보조 데이터베이스를 관리하기 위한 시스템을 제공하는 것이다.
앞선 목적을 달성하기 위해, 본 출원의 제1 양태의 구현예에서 기본 및 보조 데이터베이스를 관리하기 위한 방법은 다음을 포함한다: 기본 데이터베이스에 의해 유지(hold)되는 락 - 기본 데이터베이스 및 보조 데이터베이스는 락을 공유함 - 이 만료되는지의 여부를 결정하는 것; 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정하는 것; 및 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하는 것.
본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부가 결정된다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것이 결정되는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부가 결정된다. 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로서 선택되고, 기본 데이터베이스는 보조 데이터베이스로 스위칭되도록 제어된다. 방법에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청을 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것이 결정되고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.
게다가, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법은 다음과 같은 추가적인 기술 특징을 더 갖는다:
본 출원의 구현예에서, 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정한 이후, 방법은 다음을 더 포함한다: 보조 데이터베이스에 락 만료 통지(lock expiration notification)를 전송하는 것; 및 락 만료 통지에 기초하여 보조 데이터베이스에 의해 전송되는 락 요청을 수신하고, 락 요청의 수신 시간을 기록하는 것.
본 출원의 구현예에서, 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하는 것은, 다음을 더 포함한다: 기본 데이터베이스로서, 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 선택하는 것.
본 출원의 구현예에서, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높다.
본 출원의 구현예에서, 락의 업데이트 사이클은 T1이고, 기본 데이터베이스는, 사이클 T2에서, 락의 상태를 조회(query)하기 위한 락 요청을 전송하고, 보조 데이터베이스는, 사이클 T3에서, 락의 상태를 조회하기 위한 락 요청을 전송하는데, 여기서 T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일하다.
본 출원의 구현예에서, 보조 데이터베이스는 상시 대기 데이터베이스(hot standby database) 및 재해 복구 데이터베이스(disaster recovery database)를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터에 위치한다.
본 출원의 구현예에서, 원래의 기본 데이터베이스(original primary database)가 복원된 이후, 방법은 다음을 더 포함한다: 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하는 것, 및 락이 만료된 이후 락을 원래의 기본 데이터베이스에 의해 유지되도록 제어하는 것, 이에 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 현재의 기본 데이터베이스가 보조 데이터베이스로 복원된다.
본 출원의 구현예에서, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택한 이후, 방법은 다음을 더 포함한다: 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 계속하여 결정하는 것; 현재의 기본 데이터베이스에 의해 유지되는 락이 만료된 경우, 원래의 기본 데이터베이스, 현재의 기본 데이터베이스, 및 다른 보조 데이터베이스의 락 요청이 수신되는지의 여부를 결정하는 것; 원래의 기본 데이터베이스의 락 요청이 수신되는 경우, 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하는 것; 또는 원래의 기본 데이터베이스의 락 요청이 수신되지 않고 현재의 기본 데이터베이스 및 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지하는 것; 또는 원래의 기본 데이터베이스 및 현재의 기본 데이터베이스의 락 요청이 수신되지 않고 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하는 것.
앞선 목적을 달성하기 위해, 본 출원의 제2 양태의 구현예에서의 락 중재 서버는 다음을 포함한다: 기본 데이터베이스에 의해 유지되는 락 - 기본 데이터베이스 및 보조 데이터베이스는 락을 공유함 - 이 만료되는지의 여부를 결정하도록 구성되는 제1 결정 모듈; 기본 데이터베이스에 의해 유지되는 락이 만료된 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정하도록 구성되는 제2 결정 모듈; 및 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되게 제어하도록 구성되는 제1 프로세싱 모듈.
본 출원의 이러한 구현예에서의 락 중재 서버는 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 결정한다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 서버는 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정한다. 락 새로고침 요청이 수신되지 않는 경우, 서버는 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어한다. 기본 데이터베이스에 의해 유지되는 락이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청을 전송하지 않는 경우, 서버는 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것을 결정하고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.
게다가, 본 출원의 이러한 구현예에서의 락 중재 서버는 다음과 같은 추가적인 기술 특징을 갖는다:
본 출원의 구현예에서, 제1 프로세싱 모듈은, 기본 데이터베이스로서, 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 선택하도록 구성된다.
본 출원의 구현예에서, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높다.
본 출원의 구현예에서, 락의 업데이트 사이클은 T1이고, 기본 데이터베이스는, 사이클 T2에서, 락의 상태를 조회하기 위한 락 요청을 전송하고, 보조 데이터베이스는, 사이클 T3에서, 락의 상태를 조회하기 위한 락 요청을 전송하는데, 여기서 T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일하다.
본 출원의 구현예에서, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터에 위치한다.
본 출원의 구현예에서, 락 중재 서버는, 원래의 기본 데이터베이스가 복원된 이후, 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하도록 구성되는 제1 수신 모듈을 더 포함하는데, 제1 프로세싱 모듈은 또한, 락이 만료된 이후 락을 원래의 기본 데이터베이스에 의해 유지되게 제어하도록 구성되며, 이에 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 현재의 기본 데이터베이스가 보조 데이터베이스로 복원된다.
본 출원의 구현예에서, 제1 결정 모듈은 또한, 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 계속하여 결정하도록 구성되고; 제2 결정 모듈은 또한, 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 원래의 기본 데이터베이스, 현재의 기본 데이터베이스, 및 다른 보조 데이터베이스의 락 요청이 수신되는지의 여부를 결정하도록 구성되고; 제2 프로세싱 모듈은, 원래의 기본 데이터베이스의 락 요청이 수신되는 경우, 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하도록, 그리고 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하도록 구성되고; 제3 프로세싱 모듈은, 원래의 기본 데이터베이스의 락 요청이 수신되지 않고 현재의 기본 데이터베이스 및 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지하도록 구성되고; 그리고 제4 프로세싱 모듈은, 원래의 기본 데이터베이스 및 현재의 기본 데이터베이스의 락 요청이 수신되지 않고 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 다른 보조 데이터베이스를 기본 데이터베이스로서 선택하고, 현재의 기본 데이터베이스를 보조 데이터베이스로서 복원하도록 구성된다.
앞선 목적을 달성하기 위해, 본 출원의 제3 양태의 구현예에서의 기본 데이터베이스 서버는 다음을 포함한다: 락 중재 서버가 락 새로고침 요청을 수신하지 않은 경우 락 중재 서버가 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하도록, 기본 데이터베이스에 의해 유지되는 락이 만료되는 경우 락 새로고침 요청을 락 중재 서버로 전송하도록 구성되는 제2 전송 모듈; 및 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하도록 구성되는 스위칭 모듈.
기본 데이터베이스에 의해 유지되는 락이 만료되는 경우, 본 출원의 이러한 구현예에서의 기본 데이터베이스 서버는, 락 중재 서버가 락 새로고침 요청을 수신하지 않은 경우 락 중재 서버가 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하도록, 락 새로고침 요청을 락 중재 서버로 전송하고; 기본 데이터베이스를 보조 데이터베이스로 스위칭한다. 기본 데이터베이스에 의해 유지되는 락의 유효 기간이 연장될 수 없는 경우, 기본 데이터베이스 서버는 기본 데이터베이스를 보조 데이터베이스로 스위칭하고, 보조 데이터베이스는 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시키고, 데이터베이스가 정상적으로 유저에게 서비스를 제공하는 것을 보장하고, 유저 경험을 향상시킨다.
게다가, 본 출원의 이러한 구현예에서의 기본 데이터베이스 서버는 다음과 같은 추가적인 기술 특징을 갖는다:
본 출원의 구현예에서, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높다.
본 출원의 구현예에서, 락의 업데이트 사이클은 T1이고, 기본 데이터베이스 서버는, 사이클 T2에서, 락의 상태를 조회(query)하기 위한 락 요청을 전송하고, 보조 데이터베이스는, 사이클 T3에서, 락의 상태를 조회하기 위한 락 요청을 전송하는데, 여기서 T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일하다.
본 출원의 구현예에서, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터에 위치한다.
본 출원의 구현예에서, 기본 데이터베이스 서버는 다음을 더 포함한다: 원래의 기본 데이터베이스가 복원된 이후, 락 요청을 락 중재 서버로 전송하여, 락 중재 서버가 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하고, 락이 만료된 이후 락을 원래의 기본 데이터베이스에 의해 유지되도록 제어함으로써, 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 현재의 기본 데이터베이스가 보조 데이터베이스로 복원되게 하도록, 구성되는 제3 전송 모듈.
앞선 목적을 달성하기 위해, 본 출원의 제4 양태의 구현예에서의 보조 데이터베이스 서버는 다음을 포함한다: 락 요청을 락 중재 서버로 전송하도록 구성되는 제4 전송 모듈; 락 중재 서버에 의해 전송되는 락 확인 응답 메시지(lock acknowledgement message)를 수신하도록 구성되는 제2 수신 모듈; 및 락 확인 응답 메시지에 기초하여 보조 데이터베이스를 새로운 기본 데이터베이스로 스위칭하도록 구성되는 제5 프로세싱 모듈.
이러한 구현예에서의 보조 데이터베이스 서버는 락 요청을 락 중재 서버로 전송하고, 락 중재 서버에 의해 전송되는 락 확인 응답 메시지를 수신하고, 락 확인 응답 메시지에 기초하여 보조 데이터베이스를 새로운 기본 데이터베이스로 스위칭한다. 기본 데이터베이스가 기본 데이터베이스에 의해 유지되는 락의 유효 기간을 연장할 수 없는 경우, 보조 데이터베이스 서버는 보조 데이터베이스를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스는 보조 데이터베이스로 스위칭되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시키고, 데이터베이스가 정상적으로 유저에게 서비스를 제공하는 것을 보장하고, 유저 경험을 향상시킨다.
본 출원의 이러한 구현예에서의 보조 데이터베이스 서버는 다음과 같은 추가적인 기술 특징을 갖는다:
본 출원의 구현예에서, 보조 데이터베이스 서버는, 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 락 중재 서버가 결정한 이후, 락 중재 서버에 의해 전송되는 락 만료 통지를 수신하도록 구성되는 제3 수신 모듈을 포함하며, 이 경우 제4 전송 모듈은 락 만료 통지에 기초하여 락 요청을 락 중재 서버로 전송한다.
본 출원의 구현예에서, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높다.
본 출원의 구현예에서, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터에 위치한다.
본 출원의 구현예에서, 보조 데이터베이스 서버는 다음을 더 포함한다: 락 중재 서버가 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하고, 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되도록, 락이 만료된 이후 락을 원래의 기본 데이터베이스에 의해 유지되게 제어한 이후, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원되도록 제어하도록 구성되는 제6 프로세싱 모듈.
앞선 목적을 달성하기 위해, 본 출원의 제5 양태의 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 시스템은, 본 출원의 제2 양태의 구현예에서의 락 중재 서버, 본 출원의 제3 양태의 구현예에서의 기본 데이터베이스 서버, 및 본 출원의 제4 양태의 구현예에서의 보조 데이터베이스 서버를 포함한다.
본 출원의 몇몇 추가적인 양태 및 이점은, 하기의 설명에서 제공되며, 하기의 설명에서 명백하거나 또는 본 출원의 실시를 통해 이해 가능하다.
본 출원의 이전의 및/또는 추가적인 양태 및 이점은, 첨부의 도면을 참조한 구현예의 다음의 설명에서 명백하고 이해될 수 있다.
도 1은, 본 출원의 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 방법을 예시하는 플로우차트이다;
도 2a 내지 도 2c는, 본 출원의 특정한 구현예에 따른, 기본 및 보조 데이터베이스 배치를 예시하는 도면이다;
도 3은, 본 출원의 다른 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 방법을 예시하는 플로우차트이다;
도 4는, 본 출원의 여전히 다른 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 방법을 예시하는 플로우차트이다;
도 5는, 본 출원의 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다;
도 6은, 본 출원의 특정한 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다;
도 7은, 본 출원의 다른 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다;
도 8은, 본 출원의 여전히 다른 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다;
도 9는, 본 출원의 구현예에 따른, 기본 데이터베이스 서버를 예시하는 개략적인 구조도이다;
도 10은, 본 출원의 특정한 구현예에 따른, 기본 데이터베이스 서버를 예시하는 개략적인 구조도이다;
도 11은, 본 출원의 구현예에 따른, 보조 데이터베이스 서버를 예시하는 개략적인 구조도이다;
도 12는, 본 출원의 특정한 구현예에 따른, 보조 데이터베이스 서버를 예시하는 개략적인 구조도이다;
도 13은, 본 출원의 다른 구현예에 따른, 보조 데이터베이스 서버를 예시하는 개략적인 구조도이다; 그리고
도 14는, 본 출원의 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 시스템을 예시하는 플로우차트이다.
본 출원의 구현예는 이하에서 상세히 설명되며, 구현예의 예는 첨부의 도면에서 도시된다. 동일한 또는 유사한 참조 번호는, 동일한 또는 유사한 엘리먼트 또는 동일한 또는 유사한 기능을 갖는 엘리먼트를 나타낸다. 첨부의 도면을 참조하여 하기에서 설명되는 구현예는 예이고, 본 출원을 설명하도록 의도되며, 본 출원에 대한 제한으로서 해석되지 않아야 한다.
첨부의 도면을 참조하여, 이하에서는, 본 출원의 구현예에 따른 기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치를 설명한다.
도 1은, 본 출원의 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 방법을 예시하는 플로우차트이다. 도 1에서 도시되는 바와 같이, 기본 및 보조 데이터베이스를 관리하기 위한 방법은 이하의 단계를 포함한다.
S110. 기본 데이터베이스에 의해 유지되는 락 - 기본 데이터베이스 및 보조 데이터베이스는 락을 공유함 - 이 만료되는지의 여부를 결정함.
S120. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정함.
모니터링 시스템이 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭을 모니터링하고 제어할 때, 기본 데이터베이스와 보조 데이터베이스 사이의 부정확한 스위칭이 발생할 수도 있는데, 예를 들면, 결함이 없는 기본 데이터베이스가 스위칭되거나 또는 기본 데이터베이스에 결함이 있지만 스위칭되지 않는다는 것이 이해될 수 있다. 그 문제를 완화하기 위해, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법에서는, 외부 중재 메커니즘이 도입되고, 기본 데이터베이스에 결함이 있는지의 여부를 정확하게 결정하기 위해 사용되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭을 정확하게 제어한다.
상이하고 특정한 애플리케이션 시나리오에 기초하여 복수의 외부 중재 메커니즘이 존재할 수 있다. 본 출원의 이러한 구현예에서, 중재 메커니즘이 락 서비스(lock service)인 예가 상세한 설명을 위해 사용된다.
구체적으로, 기본 데이터베이스와 보조 데이터베이스는 락을 공유한다. 기본 데이터베이스와 보조 데이터베이스 둘 모두는 락의 소유권에 대해 경쟁하며, 락을 획득하는 데이터베이스가 기본 데이터베이스이다. 게다가, 락이 상호 배제 피쳐(mutual exclusion feature)를 가지기 때문에, 동일한 시간에 단지 하나의 데이터베이스만이 기본 데이터베이스일 수 있다.
기본 데이터베이스는, 유효 기간이 만료되기 이전에, 락의 유효 기간(일반적으로 수십 초)을 연장하기 위해 락을 연속적으로 업데이트할 필요가 있다. 기본 데이터베이스에 결함이 있거나 또는 유효 기간 내에 업그레이드 또는 유지보수(maintenance) 동작을 수행하는 경우, 기본 데이터베이스는 락의 유효 기간을 연장하기 위해 락 새로고침을 완료할 수 없다. 따라서, 다른 보조 데이터베이스가 락을 포착하고 기본 데이터베이스로 업그레이드되며, 기본 데이터베이스는 보조 데이터베이스로 다운그레이드된다.
구체적으로, 실제 애플리케이션에서, 기본 데이터베이스를 변경되지 않은 상태로 유지하기 위해, 즉, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우, 기본 데이터베이스가 보조 데이터베이스로 스위칭되는 것을 방지하기 위해, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높고, 그에 의해, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우 락을 유지하는 데이터베이스가 기본 데이터베이스임을 보장하게 된다.
기본 및 보조 데이터베이스를 배치하기 위한 복수의 방법, 예를 들면, 하나의 기본 데이터베이스 및 하나의 보조 데이터베이스를 배치하기 위한 방법, 또는 하나의 기본 데이터베이스 및 복수의 보조 데이터베이스를 배치하기 위한 방법이 존재한다는 것을 주목할 가치가 있다.
설명의 용이성을 위해, 본 출원의 이러한 구현예는, 기본 및 보조 데이터베이스를 배치하기 위한 방법이 2 위치 3 데이터 센터 방법(three-data-centers-in-two-locations method)인 예를 사용하는 것에 의해 설명된다. 즉, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치한다.
게다가, 락을 유지하는 기본 데이터베이스에 결함이 있는지의 여부를 결정하기 위해, 기본 데이터베이스가 유효 기간 내에 락의 유효 기간을 연장하는지의 여부가 결정된다.
구체적으로, 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부가 결정된다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것이 결정되는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부가 결정된다.
S130. 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어함.
구체적으로, 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 그것은, 기본 데이터베이스가 네트워크 장애 또는 전력 장애를 가지며, 락의 업데이트를 완료할 수 없다는 것을 나타낸다. 따라서, 정상적으로 유저를 서빙하기 위해, 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로서 선택되고, 기본 데이터베이스는 보조 데이터베이스로 스위칭되도록 제어된다.
보조 데이터베이스 중 하나는, 상이하고 특정한 애플리케이션 시나리오에 기초하여 상이한 방법을 사용하는 것에 의해 기본 데이터베이스로서 선택될 수 있다는 것을 주목할 가치가 있다. 예를 들면, 보조 데이터베이스는, 기본 데이터베이스의 락이 만료되는 경우 기본 데이터베이스가 락 새로고침 요청을 전송하는지의 여부를, 특정한 사이클에서, 능동적으로(actively) 조회하여, 락의 유효 기간을 연장할 수 있다. 그렇지 않은 경우, 보조 데이터베이스는 락 요청을 전송하여, 락을 신속하게 획득하고 기본 데이터베이스로 스위칭한다.
도 2a 내지 도 2b를 참조하여, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법을 더욱 명확하게 설명하기 위해, 이하에서는 데이터베이스 배치 방법이 2 위치 3 데이터 센터 방법인 예를 설명에 사용한다. 즉, 도 2a에서 도시되는 바와 같이, 로컬 기본 기기실(local primary equipment room)과 및 로컬 상시 대기 기기실(local hot standby equipment room)에 두 개의 데이터베이스(기본 데이터베이스 및 상시 대기 데이터베이스)가 배치되고, 하나의 독립 데이터베이스(재해 복구 데이터베이스)가 원격 재해 복구 기기실(remote disaster recovery equipment room)에 배치된다.
이 예에서, 외부 중재 메커니즘 서비스 GOS는 영역에 걸쳐 배치될 수 있고, 기기실 및 레이아웃 영역의 완전한 장애 또는 네트워크 장애를 용인할 수 있고, 중단없는 락 서비스를 항상 제공할 수 있다.
도 2b는, 본 출원의 구현예에 따른, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭을 예시하는 개략도이다.
도 2b에서 도시되는 바와 같이, 기본 기기실에 완전히 결함이 있는 경우, 예를 들면, 기본 기기실이 손상되거나 또는 네트워크에 결함이 있는 경우, 기본 데이터베이스는 락 새로고침 요청을 전송할 수 없고, 따라서, 기본 데이터베이스에 의해 유지되는 락의 유효 기간을 연장할 수 없다. 결과적으로, 기본 데이터베이스에 의해 유지되는 락은 무효하다. 이 프로세스는 일반적으로 수십 초 동안 지속된다. 이 기간 내에, 기본 데이터베이스는 정상적으로 유저를 서빙할 수 없다.
락의 유효 기간이 만료된 이후, 상시 대기 데이터베이스가 새로운 기본 데이터베이스가 되도록, 상시 대기 기기실은 일반적으로 새로운 락을 획득한다. 원래의 기본 데이터베이스는 자동적으로 보조 데이터베이스로 다운그레이드되고, 상시 대기 데이터베이스는 새로운 기본 데이터베이스로서 유저를 서빙한다. 재해 복구 기기실은 새로운 기본 데이터베이스로부터 최신 데이터를 획득하고 데이터를 로컬하게 동기화시킨다.
결론적으로, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부가 결정된다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것이 결정되는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부가 결정된다. 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로서 선택되고, 기본 데이터베이스는 보조 데이터베이스로 스위칭되도록 제어된다. 방법에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청을 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것이 결정되고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.
앞선 구현예에 기초하여, 기본 및 보조 데이터베이스를 관리하기 위한 방법에서, 기본 데이터베이스와 보조 데이터베이스 사이를 스위칭하기 위한 방법은 두 개의 타입: 액티브 스위칭과 패시브 스위칭으로 분류될 수 있고, 상세한 설명은 다음과 같다:
예를 들면, 기본 데이터베이스가, 적시적인 방식으로, 락을 업데이트하는 것을 가능하게 하기 위해 그리고 기본 데이터베이스에 결함이 있는 경우 다른 보조 데이터베이스가 신속하게 락을 획득하는 것을 가능하게 하기 위해, 기본 데이터베이스는, 락의 업데이트 사이클 내의 상대적으로 짧은 사이클에서, 락의 상태를 조회하기 위한 요청을 전송하여, 락이 만료에 가까운 경우 직시에 락을 업데이트하고 기본 데이터베이스를 변경되지 않은 상태로 유지할 수 있다.
게다가, 보조 데이터베이스는, 상대적으로 긴 사이클에서, 락의 상태를 조회하기 위한 락 요청을 능동적으로 전송한다. 따라서, 기본 데이터베이스의 락이 무효한 경우, 유저에게 제공되는 서비스가 영향을 받지 않도록, 보조 데이터베이스는 락을 신속하게 획득하여 새로운 기본 데이터베이스로 능동적으로 스위칭할 수 있다.
예를 들면, 락의 업데이트 사이클은 T1이고, 기본 데이터베이스는, 사이클 T2에서, 락의 상태를 조회하기 위한 락 요청을 전송하고, 보조 데이터베이스는, 사이클 T3에서, 락의 상태를 조회하기 위한 락 요청을 전송하는데, 여기서 T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일하다.
다른 예로서, 보조 데이터베이스가, 특정한 사이클에서, 락의 상태를 조회하기 위한 락 요청을 항상 능동적으로 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효이면, 보조 데이터베이스가 락 만료 통지에 기초하여 락 요청을 전송하고, 락을 획득하고, 새로운 기본 데이터베이스가 되도록, 락 만료 통지가 다른 보조 데이터베이스 각각에 능동적으로 전송된다.
구체적으로, 도 3은, 본 출원의 다른 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 방법을 예시하는 플로우차트이다. 도 3에서 도시되는 바와 같이, 방법은 이하의 단계를 포함한다.
S310. 기본 데이터베이스에 의해 유지되는 락 - 기본 데이터베이스 및 보조 데이터베이스는 락을 공유함 - 이 만료되는지의 여부를 결정함.
S320. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 락 만료 통지를 보조 데이터베이스로 전송함.
S330. 락 만료 통지에 기초하여 보조 데이터베이스에 의해 전송되는 락 요청을 수신하고, 락 요청의 수신 시간을 기록함.
S340. 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정함.
S350. 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 기본 데이터베이스로서 선택함.
기본 데이터베이스와 보조 데이터베이스 사이에서 데이터가 실시간으로 동기화되는 것이 이해될 수 있다. 동기화 속도는 데이터베이스의 백업 속도에 의존한다. 일반적으로, 도시 내 기기실의 지연은 수 밀리초이고, 원격 기기실의 지연은 수백 밀리초이다.
게다가, 기본 데이터베이스가 능동적으로 스위칭을 개시하는 경우, 예를 들면, 버전 업그레이드 또는 오프라인 유지보수를 수행하는 경우, 기본 데이터베이스가 기본 데이터베이스의 정체성(identity)을 포기하기 이전에, 데이터 기록이 중지될 수 있다. 상시 대기 기기실이 락을 획득하고, 상시 대기 데이터베이스가 모든 데이터를 동기화하고 업데이트를 완료할 수 있다. 따라서, 일반적으로, 상시 대기 데이터베이스의 데이터는 상대적으로 완전하고, 그 결과, 상시 대기 데이터베이스가 다음 기본 데이터베이스로서 사용되는 것이 바람직하다.
구체적으로, 기본 데이터베이스에 더 가까운 보조 데이터베이스가, 락 요청의 수신 시간에 기초하여 결정된다. 즉, 기본 데이터베이스와 상이한 보조 데이터베이스 사이의 거리가 상이할 수 있다. 예를 들면, 상시 대기 데이터베이스는 일반적으로 기본 데이터베이스에 더 가깝고, 재해 복구 데이터베이스는 일반적으로 기본 데이터베이스로부터 더 멀리 떨어져 있다. 따라서, 두 데이터베이스의 락 요청의 수신 시간이 상이하고, 상시 대기 데이터베이스 요청의 수신 시간은 더 빠르다.
게다가, 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 그것은, 현재의 데이터베이스에 결함이 있다는 것 또는 업그레이드 또는 유지보수 동작을 수행하고 있다는 것을 나타낸다. 따라서, 가능한 빨리 정상적으로 유저를 서빙하기 위해, 가장 빠른 수신 시간을 가진 보조 데이터베이스가 기본 데이터베이스로서 선택된다.
게다가, 지진과 같은 재해에 기인하여 동일한 데이터 센터에 위치하는 기본 데이터베이스 및 상시 대기 데이터베이스에 결함이 있는 경우, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법은 여전히 구현될 수 있다는 것이 이해되어야 한다.
도 2c에서 도시되는 바와 같이, 기본 데이터베이스 및 상시 대기 데이터베이스의 기기실 둘 모두에 결함이 있는 경우, 기본 데이터베이스의 락은 무효가 되고, 상시 대기 데이터베이스는 락을 획득할 수 없다. 따라서 재해 복구 데이터베이스는 락을 획득하고 새로운 기본 데이터베이스가 되며, 계속하여 유저를 서빙한다. 전체 프로세스에는 수동 참여를 필요로 하지 않는다.
결론적으로, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법에 따르면, 기본 데이터베이스의 락이 만료되고 무효한 경우, 보조 데이터베이스는 신속하게 락을 획득하여 새로운 기본 데이터베이스가 되고, 그에 의해, 상대적으로 짧은 시간 내에 정상적인 서비스가 여전히 유저에게 제공되는 것을 보장하고, 유저 경험을 향상시킨다.
실제 애플리케이션에서, 유지보수 및 업그레이드와 같은 관련 동작이 결함이 있는 원래의 기본 데이터베이스에 대해 수행된 이후, 원래의 기본 데이터베이스는 계속하여 유저를 서빙할 수 있다. 따라서, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법은 다음을 더 포함한다: 원래의 기본 데이터베이스가 복원된 이후 원래의 기본 데이터베이스로부터 락 요청을 수신하여, 원래의 기본 데이터베이스를 기본 데이터베이스로 스위칭하는 것.
구체적으로, 이 예에서, 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로서 선택된 이후, 현재의 기본 데이터베이스의 락의 유효성 및 원래의 기본 데이터베이스의 락 요청이 항상 검출된다. 현재의 기본 데이터베이스의 락이 무효한 경우, 다른 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로 다시 선택된다. 대안적으로, 원래의 기본 데이터베이스의 락 요청이 수신된 이후, 원래의 기본 데이터베이스의 우선 순위가 더 높기 때문에, 원래의 기본 데이터베이스는 기본 데이터베이스로 스위칭되고, 현재의 기본 데이터베이스는 보조 데이터베이스로 다운그레이드된다.
도 4는, 본 출원의 여전히 다른 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 방법을 예시하는 플로우차트이다. 도 4에서 도시되는 바와 같이, 기본 및 보조 데이터베이스를 관리하기 위한 방법은 이하의 단계를 포함한다.
S410. 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 계속하여 결정함.
S420. 현재의 기본 데이터베이스에 의해 유지되는 락이 만료된 경우, 원래의 기본 데이터베이스, 현재의 기본 데이터베이스, 및 다른 보조 데이터베이스의 락 요청이 수신되는지의 여부를 결정함.
S430. 원래의 기본 데이터베이스의 락 요청이 수신되는 경우, 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원함.
구체적으로, 원래의 기본 데이터베이스가 복원된 이후, 원래의 기본 데이터베이스는 락 요청을 전송한다. 원래의 기본 데이터베이스의 우선 순위가 더 높기 때문에, 락 요청이 수신된 이후, 원래의 기본 데이터베이스는 기본 데이터베이스로 복원되고, 현재의 기본 데이터베이스가 보조 데이터베이스로 복원된다.
S440. 원래의 기본 데이터베이스의 락 요청이 수신되지 않고 현재의 기본 데이터베이스 및 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지함.
구체적으로, 원래의 기본 데이터베이스의 락 요청이 수신되지 않고 현재의 기본 데이터베이스가 정상적으로 락을 업데이트하는 경우, 현재의 기본 데이터베이스는 기본 데이터베이스로서 유지된다.
S450. 원래의 기본 데이터베이스 및 현재의 기본 데이터베이스의 락 요청이 수신되지 않고 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원함.
구체적으로, 원래의 기본 데이터베이스 및 현재의 기본 데이터베이스의 락 요청이 수신되지 않는 경우, 그것은, 원래의 기본 데이터베이스가 복원되지 않고, 현재의 기본 데이터베이스가 또한 결함이 있거나 또는 업그레이드 동작을 수행할 필요가 있다는 것을 나타낸다. 따라서, 정상적으로 유저를 서빙하기 위해, 락 요청을 전송하는 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택할 필요가 있고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다.
결론적으로, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법에 따르면, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택한 이후, 락 중재 서버는, 현재의 기본 데이터베이스가 원래의 기본 데이터베이스의 락 요청을 수신하는지의 여부 및 현재의 기본 데이터베이스가 락을 업데이트하는지의 여부를 계속하여 결정한다. 원래의 기본 데이터베이스의 락 요청이 수신되는 경우, 서버는 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다. 원래의 기본 데이터베이스의 락 요청이 수신되지 않는 경우, 서버는, 현재의 기본 데이터베이스가 유효 기간 내에 락을 업데이트하는지의 여부를 결정한다. 그렇지 않은 경우, 서버는 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다. 방법에 따르면, 원래의 기본 데이터베이스가 복원된 이후 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되어, 유저를 더 좋게 서빙하고, 그에 의해, 본 출원에서의 기본 및 보조 데이터베이스를 관리하기 위한 방법의 실용성을 향상시키는 것이 보장된다.
앞선 구현예를 구현하기 위해, 본 출원은 락 중재 서버를 또한 제공한다. 도 5는, 본 출원의 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다.
도 5에서 도시되는 바와 같이, 락 중재 서버는 다음을 포함한다: 기본 데이터베이스에 의해 유지되는 락 - 기본 데이터베이스 및 보조 데이터베이스는 락을 공유함 - 이 만료되는지의 여부를 결정하도록 구성되는 제1 결정 모듈(510); 기본 데이터베이스에 의해 유지되는 락이 만료된 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정하도록 구성되는 제2 결정 모듈(520); 및 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되게 제어하도록 구성되는 제1 프로세싱 모듈(530).
구체적으로, 실제 애플리케이션에서, 기본 데이터베이스를 변경되지 않은 상태로 유지하기 위해, 즉, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우, 기본 데이터베이스가 보조 데이터베이스로 스위칭되는 것을 방지하기 위해, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높고, 그에 의해, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우 락을 유지하는 데이터베이스가 기본 데이터베이스임을 보장하게 된다.
기본 및 보조 데이터베이스를 배치하기 위한 복수의 방법, 예를 들면, 하나의 기본 데이터베이스 및 하나의 보조 데이터베이스를 배치하기 위한 방법, 또는 하나의 기본 데이터베이스 및 복수의 보조 데이터베이스를 배치하기 위한 방법이 존재한다는 것을 주목할 가치가 있다.
설명의 용이성을 위해, 본 출원의 이러한 구현예는, 기본 및 보조 데이터베이스를 배치하기 위한 방법이 2 위치 3 데이터 센터 방법인 예를 사용하여 설명된다. 즉, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치한다.
게다가, 락을 유지하는 기본 데이터베이스에 결함이 있는지의 여부를 결정하기 위해, 기본 데이터베이스가 유효 기간 내에 락의 유효 기간을 연장하는지의 여부가 결정된다.
구체적으로, 제1 결정 모듈(510)은 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 결정한다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것이 결정되는 경우, 제2 결정 모듈(520)은 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정한다.
게다가, 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 그것은, 기본 데이터베이스가 네트워크 장애 또는 전력 장애를 가지며, 락의 업데이트를 완료할 수 없다는 것을 나타낸다. 따라서, 정상적으로 유저를 서빙하기 위해, 제1 프로세싱 모듈(530)은 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어한다.
제1 프로세싱 모듈(530)은, 보조 데이터베이스 중 하나를, 상이하고 특정한 애플리케이션 시나리오에 기초하여 상이한 방법을 사용하는 것에 의해 기본 데이터베이스로서 선택할 수 있다는 것을 주목할 가치가 있다. 예를 들면, 보조 데이터베이스는, 기본 데이터베이스의 락이 만료되는 경우 기본 데이터베이스가 락 새로고침 요청을 전송하는지의 여부를, 특정한 사이클에서, 능동적으로 조회하여, 락의 유효 기간을 연장할 수 있다. 그렇지 않은 경우, 보조 데이터베이스는 락 요청을 전송하여, 락을 신속하게 획득하고 기본 데이터베이스로 스위칭한다.
결론적으로, 본 출원의 이러한 구현예에서의 락 중재 서버는 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 결정한다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 결정하는 경우, 서버는 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정한다. 락 새로고침 요청이 수신되지 않는 경우, 서버는 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어한다. 기본 데이터베이스에 의해 유지되는 락이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청을 전송하지 않는 경우, 락 중재 서버는 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것을 결정하고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.
앞선 구현예에 기초하여, 기본 및 보조 데이터베이스를 관리하기 위한 방법에서, 기본 데이터베이스와 보조 데이터베이스 사이를 스위칭하기 위한 방법은 두 개의 타입: 액티브 스위칭과 패시브 스위칭으로 분류될 수 있고, 상세한 설명은 다음과 같다:
예를 들면, 기본 데이터베이스가, 적시에 락을 업데이트하는 것을 가능하게 하기 위해 그리고 기본 데이터베이스에 결함이 있는 경우 다른 보조 데이터베이스가 신속하게 락을 획득하는 것을 가능하게 하기 위해, 기본 데이터베이스는, 락의 업데이트 사이클 내의 상대적으로 짧은 사이클에서, 락의 상태를 조회하기 위한 요청을 전송하여, 락이 만료에 가까운 경우 적시에 락을 업데이트하고 기본 데이터베이스를 변경되지 않은 상태로 유지할 수 있다.
게다가, 보조 데이터베이스는, 상대적으로 긴 사이클에서, 락의 상태를 조회하기 위한 락 요청을 능동적으로 전송한다. 따라서, 기본 데이터베이스의 락이 무효한 경우, 유저에게 제공되는 서비스가 영향을 받지 않도록, 보조 데이터베이스는 락을 신속하게 획득하여 새로운 기본 데이터베이스로 능동적으로 스위칭할 수 있다.
예를 들면, 락의 업데이트 사이클은 T1이고, 기본 데이터베이스는, 사이클 T2에서, 락의 상태를 조회하기 위한 락 요청을 전송하고, 보조 데이터베이스는, 사이클 T3에서, 락의 상태를 조회하기 위한 락 요청을 전송하는데, 여기서 T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일하다.
다른 예로서, 보조 데이터베이스가, 특정한 사이클에서, 락의 상태를 조회하기 위한 락 요청을 항상 능동적으로 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효이면, 보조 데이터베이스가 락 만료 통지에 기초하여 락 요청을 전송하고, 락을 획득하고, 새로운 기본 데이터베이스가 되도록, 락 만료 통지가 다른 보조 데이터베이스의 각각으로 능동적으로 전송된다.
구체적으로, 도 6은, 본 출원의 특정한 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다. 도 6에서 도시되는 바와 같이, 도 5에 기초하여, 락 중재 서버는 제1 전송 모듈(540) 및 기록 모듈(550)을 더 포함한다.
구체적으로, 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 제1 결정 모듈(510)이 결정한 이후, 제1 전송 모듈은 락 만료 통지를 보조 데이터베이스로 전송한다. 그 다음, 기록 모듈(550)은 락 만료 통지에 기초하여 보조 데이터베이스에 의해 전송되는 락 요청을 수신하고, 락 요청의 수신 시간을 기록한다.
게다가, 기본 데이터베이스의 락 새로고침 요청이 수신되지 않는 경우, 그것은, 현재의 데이터베이스에 결함이 있다는 것 또는 업그레이드 또는 유지보수 동작을 수행하고 있다는 것을 나타낸다. 따라서, 가능한 한 빨리 정상적으로 유저를 서빙하기 위해, 제1 프로세싱 모듈(530)은 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 기본 데이터베이스로서 선택한다.
결론적으로, 본 출원의 이러한 구현예에서의 락 중재 서버에 따르면, 기본 데이터베이스의 락이 만료되고 무효한 경우, 보조 데이터베이스는 신속하게 락을 획득하여 새로운 기본 데이터베이스가 되고, 그에 의해, 상대적으로 짧은 시간 내에 정상적인 서비스가 여전히 유저에게 제공되는 것을 보장하고, 유저 경험을 향상시킨다.
실제 애플리케이션에서, 유지보수 및 업그레이드와 같은 관련 동작이 결함이 있는 원래의 기본 데이터베이스에 대해 수행된 이후, 원래의 기본 데이터베이스는 계속하여 유저를 서빙할 수 있다. 따라서, 본 출원의 이러한 구현예에서의 락 중재 서버는 또한, 원래의 기본 데이터베이스가 복원된 이후 원래의 기본 데이터베이스로부터 락 요청을 수신하여, 원래의 기본 데이터베이스를 기본 데이터베이스로 스위칭하도록 구성된다.
도 7은, 본 출원의 다른 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다. 도 7에서 도시되는 바와 같이, 도 5에 기초하여, 락 중재 서버는 제1 수신 모듈(560)을 더 포함한다. 구체적으로, 이 예에서, 제1 프로세싱 모듈(530)이 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택한 이후, 제1 수신 모듈(560)은 원래의 기본 데이터베이스의 락 요청을 항상 수신한다. 제1 수신 모듈(560)이 원래의 기본 데이터베이스의 락 요청을 수신한 이후, 원래의 기본 데이터베이스의 우선 순위가 더 높기 때문에, 제1 프로세싱 모듈(530)은 원래의 기본 데이터베이스를 기본 데이터베이스로 스위칭하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 다운그레이드한다.
일 구현예에서, 도 8은, 본 출원의 또 다른 구현예에 따른, 락 중재 서버를 예시하는 개략적인 구조도이다. 도 8에서 도시되는 바와 같이, 도 5에 기초하여, 락 중재 서버는 제2 프로세싱 모듈(570), 제3 프로세싱 모듈(580), 및 제4 프로세싱 모듈(590)을 더 포함한다.
구체적으로, 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로서 선택된 이후, 제1 결정 모듈(510)은 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 계속하여 결정한다. 현재의 기본 데이터베이스에 의해 유지되는 락이 만료된 경우, 제2 결정 모듈(520)은, 원래의 기본 데이터베이스, 현재의 기본 데이터베이스, 및 다른 보조 데이터베이스의 락 요청이 수신되는지의 여부를 결정한다.
원래의 기본 데이터베이스의 락 요청이 수신되는 경우, 제2 프로세싱 모듈(570)은 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다.
구체적으로, 원래의 기본 데이터베이스가 복원된 이후, 원래의 기본 데이터베이스는 락 요청을 전송한다. 원래의 기본 데이터베이스의 우선 순위가 더 높기 때문에, 락 요청이 수신된 이후, 제2 프로세싱 모듈(570)은 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다.
원래의 기본 데이터베이스의 락 요청이 수신되지 않고 현재의 기본 데이터베이스 및 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 제3 프로세싱 모듈(580)은 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지한다.
구체적으로, 원래의 기본 데이터베이스의 락 요청이 수신되지 않고 현재의 기본 데이터베이스가 정상적으로 락을 업데이트하는 경우, 제3 프로세싱 모듈(580)은 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지한다.
원래의 기본 데이터베이스 및 현재의 기본 데이터베이스의 락 요청이 수신되지 않고 다른 보조 데이터베이스의 락 요청이 수신되는 경우, 제4 프로세싱 모듈(590)은 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다.
구체적으로, 원래의 기본 데이터베이스 및 현재의 기본 데이터베이스의 락 요청이 수신되지 않는 경우, 그것은, 원래의 기본 데이터베이스가 복원되지 않고, 현재의 기본 데이터베이스가 또한 결함이 있거나 또는 업그레이드 동작을 수행할 필요가 있다는 것을 나타낸다. 따라서, 정상적으로 유저를 서빙하기 위해, 제4 프로세싱 모듈(590)은 락 요청을 전송하는 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택할 필요가 있고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다.
본 출원의 락 중재 서버의 구현예에서 개시되지 않는 세부 사항에 대해서는, 도 1 내지 도 4를 참조하여 설명되는 기본 및 보조 데이터베이스를 관리하기 위한 방법의 앞선 구현예에 대해 참조가 이루어질 수 있다는 것을 주목할 가치가 있다. 세부 사항은 간략화를 위해 여기서는 생략된다.
결론적으로, 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택한 이후, 본 출원의 이러한 구현예에서의 락 중재 서버는, 현재의 기본 데이터베이스가 원래의 기본 데이터베이스의 락 요청을 수신하는지의 여부 및 현재의 기본 데이터베이스가 락을 업데이트하는지의 여부를 계속하여 결정한다. 원래의 기본 데이터베이스의 락 요청이 수신되는 경우, 서버는 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다. 원래의 기본 데이터베이스의 락 요청이 수신되지 않는 경우, 서버는, 현재의 기본 데이터베이스가 유효 기간 내에 락을 업데이트하는지의 여부를 결정한다. 그렇지 않은 경우, 서버는 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다. 락 중재 서버에 따르면, 원래의 기본 데이터베이스가 복원된 이후 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되어, 유저를 더 좋게 서빙하고, 그에 의해, 본 출원에 따른 기본 및 보조 데이터베이스를 관리하기 위한 방법의 실용성을 향상시키는 것이 보장된다.
앞선 구현예를 구현하기 위해, 본 출원은 기본 데이터베이스 서버를 또한 제공한다.
도 9는, 본 출원의 구현예에 따른, 기본 데이터베이스 서버를 예시하는 개략적인 구조도이다. 도 9에서 도시되는 바와 같이, 기본 데이터베이스 서버는 다음을 포함한다: 락 중재 서버가 락 새로고침 요청을 수신하지 않은 경우 락 중재 서버가 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하도록, 기본 데이터베이스에 의해 유지되는 락이 만료되는 경우 락 새로고침 요청을 락 중재 서버로 전송하도록 구성되는 제2 전송 모듈(910); 및 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하도록 구성되는 스위칭 모듈(920).
구체적으로, 실제 애플리케이션에서, 기본 데이터베이스를 변경되지 않은 상태로 유지하기 위해, 즉, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우, 기본 데이터베이스가 보조 데이터베이스로 스위칭되는 것을 방지하기 위해, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높고, 그에 의해, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우 락을 유지하는 데이터베이스가 기본 데이터베이스임을 보장하게 된다.
기본 및 보조 데이터베이스를 배치하기 위한 복수의 방법, 예를 들면, 하나의 기본 데이터베이스 및 하나의 보조 데이터베이스를 배치하기 위한 방법, 또는 하나의 기본 데이터베이스 및 복수의 보조 데이터베이스를 배치하기 위한 방법이 존재한다는 것을 주목할 가치가 있다.
설명의 용이성을 위해, 본 출원의 이러한 구현예는, 기본 및 보조 데이터베이스를 배치하기 위한 방법이 2 위치 3 데이터 센터 방법인 예를 사용하여 설명된다. 즉, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치한다.
구체적으로, 기본 데이터베이스에 의해 유지되는 락이 만료되는 경우, 제2 전송 모듈(910)은 락 새로고침 요청을 락 중재 서버로 전송한다. 락 중재 서버가 락 새로고침 요청을 수신하지 않은 경우, 그것은 기본 데이터베이스가 업그레이드 동작을 수행하고 있거나 또는 결함이 있고, 따라서, 정상적으로 유저를 서빙할 수 없다는 것을 나타낸다. 그와 같이, 락 중재 서버는 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하여 가능한 한 빨리 정상적으로 유저를 서빙한다. 게다가, 스위칭 모듈(920)은 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어한다.
기본 데이터베이스가, 적시적인 방식으로, 락을 업데이트하는 것을 가능하게 하기 위해 그리고 기본 데이터베이스에 결함이 있는 경우 다른 보조 데이터베이스가 신속하게 락을 획득하는 것을 가능하게 하기 위해, 기본 데이터베이스는, 락의 업데이트 사이클 내의 상대적으로 짧은 사이클에서, 락의 상태를 조회하기 위한 요청을 전송하여, 락이 만료에 가까운 경우 적시에 락을 업데이트하고 기본 데이터베이스를 변경되지 않은 상태로 유지할 수 있다는 것이 이해되어야 한다.
게다가, 보조 데이터베이스는, 상대적으로 긴 사이클에서, 락의 상태를 조회하기 위한 락 요청을 능동적으로 전송한다. 따라서, 기본 데이터베이스의 락이 무효한 경우, 유저에게 제공되는 서비스가 영향을 받지 않도록, 보조 데이터베이스는 락을 신속하게 획득하여 새로운 기본 데이터베이스로 능동적으로 스위칭할 수 있다.
예를 들면, 락의 업데이트 사이클은 T1이고, 기본 데이터베이스는, 사이클 T2에서, 락의 상태를 조회하기 위한 락 요청을 전송하고, 보조 데이터베이스는, 사이클 T3에서, 락의 상태를 조회하기 위한 락 요청을 전송하는데, 여기서 T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일하다.
결론적으로, 기본 데이터베이스에 의해 유지되는 락이 만료되는 경우, 본 출원의 이러한 구현예에서의 기본 데이터베이스 서버는, 락 중재 서버가 락 새로고침 요청을 수신하지 않은 경우 락 중재 서버가 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하도록, 락 새로고침 요청을 락 중재 서버로 전송하고; 기본 데이터베이스를 보조 데이터베이스로 스위칭한다. 기본 데이터베이스에 의해 유지되는 락의 유효 기간이 연장될 수 없는 경우, 기본 데이터베이스 서버는 기본 데이터베이스를 보조 데이터베이스로 스위칭하고, 보조 데이터베이스는 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시키고, 데이터베이스가 정상적으로 유저를 서빙하는 것을 보장하고, 유저 경험을 향상시킨다.
실제 애플리케이션에서, 유지보수 및 업그레이드와 같은 관련 동작이 결함이 있는 원래의 기본 데이터베이스에 대해 수행된 이후, 원래의 기본 데이터베이스는 계속하여 유저를 서빙할 수 있다. 따라서, 본 출원의 이러한 구현예에서의 기본 데이터베이스 서버는 또한, 원래의 기본 데이터베이스가 복원된 이후 원래의 기본 데이터베이스로부터 락 요청을 수신하여, 원래의 기본 데이터베이스를 기본 데이터베이스로 스위칭하도록 구성된다.
도 10은, 본 출원의 특정한 구현예에 따른, 기본 데이터베이스 서버를 예시하는 개략적인 구조도이다. 도 10에서 도시되는 바와 같이, 도 9에 기초하여, 기본 데이터베이스 서버는 제3 전송 모듈(930)을 더 포함한다.
구체적으로, 원래의 기본 데이터베이스가 복원된 이후, 제3 전송 모듈(930)은 락 요청을 전송한다. 원래의 기본 데이터베이스의 우선 순위가 더 높기 때문에, 락 요청이 전송된 이후, 락 중재 서버는 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하고, 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 현재의 기본 데이터베이스가 보조 데이터베이스로 복원되도록, 락이 만료된 이후 락을 원래의 기본 데이터베이스에 의해 유지되게 제어한다.
본 출원의 기본 데이터베이스 서버의 구현예에서 개시되지 않는 세부 사항에 대해서는, 도 1 내지 4를 참조하여 설명되는 기본 및 보조 데이터베이스를 관리하기 위한 방법에 대해 참조가 이루어질 수 있다는 것이 강조되어야 한다. 세부 사항은 간략화를 위해 여기서는 생략된다.
결론적으로, 본 출원의 이러한 구현예에서의 기본 데이터베이스 서버에 따르면, 원래의 기본 데이터베이스가 복원된 이후 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되어, 유저를 더 좋게 서빙하고, 그에 의해 유저 경험을 향상시키는 것이 보장된다.
앞선 구현예를 구현하기 위해, 본 출원은 보조 데이터베이스 서버를 또한 제공한다. 도 11은, 본 출원의 구현예에 따른, 보조 데이터베이스 서버를 예시하는 개략적인 구조도이다. 도 11에서 도시되는 바와 같이, 보조 데이터베이스 서버는 다음을 포함한다: 락 요청을 락 중재 서버로 전송하도록 구성되는 제4 전송 모듈(1010); 락 중재 서버에 의해 전송되는 락 확인 응답 메시지를 수신하도록 구성되는 제2 수신 모듈(1020); 및 락 확인 응답 메시지에 기초하여 보조 데이터베이스를 새로운 기본 데이터베이스로 스위칭하도록 구성되는 제5 프로세싱 모듈(1030).
실제 애플리케이션에서, 기본 데이터베이스를 변경되지 않은 상태로 유지하기 위해, 즉, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우, 기본 데이터베이스가 보조 데이터베이스로 스위칭되는 것을 방지하기 위해, 기본 데이터베이스의 우선 순위는 보조 데이터베이스의 우선 순위보다 더 높고, 그에 의해, 기본 데이터베이스에 결함이 없거나 또는 업그레이드 또는 유지보수 동작을 수행하지 않는 경우 락을 유지하는 데이터베이스가 기본 데이터베이스임을 보장하게 된다는 것이 이해될 수 있다. 그러나, 기본 데이터베이스가 락의 유효 기간을 효과적으로 연장할 수 없는 경우, 유저에게 서비스를 계속하여 제공하기 위해, 락 중재 서버는 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택할 필요가 있다.
구체적으로, 기본 데이터베이스가 효과적으로 락을 업데이트할 수 없는 경우, 보조 데이터베이스가 신속하게 락을 포착하도록, 제4 전송 모듈(1010)은 락 요청을 락 중재 서버로 전송한다. 제5 프로세싱 모듈(1030)이 락 확인 응답 메시지에 기초하여 보조 데이터베이스를 기본 데이터베이스로 스위칭하도록, 제2 수신 모듈(1020)은 락 중재 서버에 의해 전송되는 락 확인 응답 메시지를 수신한다.
기본 및 보조 데이터베이스를 배치하기 위한 복수의 방법, 예를 들면, 하나의 기본 데이터베이스 및 하나의 보조 데이터베이스를 배치하기 위한 방법, 또는 하나의 기본 데이터베이스 및 복수의 보조 데이터베이스를 배치하기 위한 방법이 존재한다는 것을 주목할 가치가 있다.
설명의 용이성을 위해, 본 출원의 이러한 구현예는, 기본 및 보조 데이터베이스를 배치하기 위한 방법이 2 위치 3 데이터 센터 방법인 예를 사용하여 설명된다. 즉, 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 기본 데이터베이스 및 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 기본 데이터베이스 및 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치한다.
결론적으로, 본 출원의 이러한 구현예에서의 보조 데이터베이스 서버는, 락 요청을 락 중재 서버로 전송하여, 기본 데이터베이스에 의해 유지되는 락이 무효하고 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것이 결정되는 경우 보조 데이터베이스를 새로운 기본 데이터베이스로 스위칭하고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시키고, 서비스가 유저에게 정상적으로 제공될 수 있다는 것을 보장하고, 유저 경험을 향상시킨다.
앞선 구현예에 기초하여, 보조 데이터베이스 서버가, 특정한 사이클에서, 락의 상태를 조회하기 위한 락 요청을 항상 능동적으로 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효이면, 보조 데이터베이스 서버가 락 만료 통지에 기초하여 락 요청을 전송하고, 락을 획득하고, 새로운 기본 데이터베이스가 되도록, 락 만료 통지가 다른 보조 데이터베이스의 각각으로 능동적으로 전송된다.
구체적으로, 도 12는, 본 출원의 특정한 구현예에 따른, 보조 데이터베이스 서버를 예시하는 개략적인 구조도이다. 도 12에서 도시되는 바와 같이, 도 11에 기초하여, 보조 데이터베이스 서버는 제3 전송 모듈(1040)을 더 포함한다.
구체적으로, 제3 수신 모듈(1040)은, 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 락 중재 서버가 결정한 이후, 락 중재 서버에 의해 전송되는 락 만료 통지를 수신하는데, 여기서 제4 전송 모듈은 락 만료 통지에 기초하여 락 요청을 락 중재 서버로 전송한다.
게다가, 락이 만료되는 경우, 락 중재 서버가 기본 데이터베이스의 락 새로고침 요청을 수신하지 않은 경우, 그것은, 현재의 데이터베이스에 결함이 있다는 것 또는 업그레이드 또는 유지보수 동작을 수행하고 있다는 것을 나타낸다. 따라서, 가능한 한 빨리 정상적으로 유저를 서빙하기 위해, 락 중재 서버는 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 기본 데이터베이스로서 선택한다.
결론적으로, 본 출원의 이러한 구현예에서의 보조 데이터베이스 서버에 기초하여, 기본 데이터베이스의 락이 만료되고 무효한 경우, 보조 데이터베이스는 신속하게 락을 획득하여 새로운 기본 데이터베이스가 되고, 그에 의해, 상대적으로 짧은 시간 내에 정상적인 서비스가 여전히 유저에게 제공되는 것을 보장하고, 유저 경험을 향상시킨다.
실제 애플리케이션에서, 유지보수 및 업그레이드와 같은 관련 동작이 결함이 있는 원래의 기본 데이터베이스에 대해 수행된 이후, 원래의 기본 데이터베이스는 계속하여 유저를 서빙할 수 있다. 따라서, 본 출원의 이러한 구현예에서의 보조 데이터베이스 서버는 또한, 원래의 기본 데이터베이스가 복원된 이후, 현재의 기본 데이터베이스를 보조 데이터베이스로 스위칭하도록 구성된다.
도 13은, 본 출원의 다른 특정한 구현예에 따른, 보조 데이터베이스 서버를 예시하는 개략적인 구조도이다. 도 13에서 도시되는 바와 같이, 도 11에 기초하여, 보조 데이터베이스 서버는 제6 프로세싱 모듈(1050)을 더 포함한다.
구체적으로, 원래의 기본 데이터베이스가 복원된 이후, 원래의 기본 데이터베이스는 락 요청을 전송한다. 원래의 기본 데이터베이스의 우선 순위가 더 높기 때문에, 락 요청을 수신한 이후, 락 중재 서버는 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 제6 프로세싱 모듈(1050)은 현재의 기본 데이터베이스를 보조 데이터베이스로 복원한다.
본 출원의 보조 데이터베이스 서버의 구현예에서 개시되지 않는 세부 사항에 대해서는, 도 1 내지 4를 참조하여 설명되는 기본 및 보조 데이터베이스를 관리하기 위한 방법에 대해 참조가 이루어질 수 있다는 것이 이해되어야 한다. 세부 사항은 간략화를 위해 여기서는 생략된다.
결론적으로, 원래의 기본 데이터베이스가 복원된 이후, 본 출원의 이러한 구현예에서의 보조 데이터베이스 서버는 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하고, 중재 서버는 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하여, 유저를 더 좋게 서빙하고, 그에 의해 유저 경험을 향상시킨다.
앞선 구현예를 구현하기 위해, 본 출원은 기본 및 보조 데이터베이스를 관리하기 위한 시스템을 또한 제공한다. 도 14는, 본 출원의 구현예에 따른, 기본 및 보조 데이터베이스를 관리하기 위한 시스템을 예시하는 개략적인 구조도이다. 도 14에서 도시되는 바와 같이, 기본 및 보조 데이터베이스를 관리하기 위한 시스템은, 락 중재 서버(1000), 기본 데이터베이스 서버(2000), 및 보조 데이터베이스 서버(3000)를 포함한다.
본 출원에서의 락 중재 서버(1000), 기본 데이터베이스 서버(2000), 및 보조 데이터베이스 서버(3000)의 설명을 위해, 락 중재 서버, 기본 데이터베이스 서버, 및 보조 데이터베이스 서버의 앞선 설명에 대해 참조가 이루어질 수 있다는 것을 주목할 가치가 있다. 세부 사항은 간략화를 위해 여기서는 생략된다.
결론적으로, 본 출원의 이러한 구현예에서의 기본 및 보조 데이터베이스를 관리하기 위한 시스템에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부가 결정된다. 기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것이 결정되는 경우, 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부가 결정된다. 락 새로고침 요청이 수신되지 않는 경우, 보조 데이터베이스 중 하나가 새로운 기본 데이터베이스로서 선택되고, 기본 데이터베이스는 보조 데이터베이스로 스위칭되도록 제어된다. 시스템에 따르면, 기본 데이터베이스에 의해 유지되는 락이 만료되기 이전에 기본 데이터베이스가 락 새로고침 요청을 전송하지 않는 경우, 기본 데이터베이스에 의해 유지되는 락이 무효하며 기본 데이터베이스가 정상적으로 유저를 서빙할 수 없다는 것이 결정되고, 그 결과, 보조 데이터베이스가 새로운 기본 데이터베이스로서 선택되고, 그에 의해, 기본 데이터베이스와 보조 데이터베이스 사이의 스위칭의 속도 및 정확도를 향상시킨다.
게다가, 용어 "제1" 및 "제2"는 단지 설명을 위해 사용되며, 나타내어진 기술적 피쳐의 번호의 암시적인 표시 또는 상대적인 중요도의 표시 또는 암시로서 이해되지 않아야 한다. 따라서 "제1"또는 "제2"에 의해 제한되는 피쳐는, 명시적으로 또는 암시적으로 적어도 하나의 그러한 피쳐를 포함할 수 있다. 본 출원의 설명에서, "복수의"는, 달리 명시적으로 제한되지 않는 한, "적어도 두 개", 예를 들면, 두 개 또는 세 개를 의미한다.
본 명세서의 설명에서, "구현예", "몇몇 구현예", "예", "특정한 예", 및 "몇몇 예"와 같은 참조 용어는, 구현예 또는 예를 참조로 설명되는 특정한 피쳐, 구조, 재료, 또는 특성이 본 출원의 적어도 하나의 구현예 또는 예에 포함된다는 것을 의미한다. 본 명세서에서, 용어의 앞선 예는, 반드시 동일한 구현예 또는 예에 관련이 있는 것은 아니다. 게다가, 설명된 특정한 피쳐, 구조, 재료, 또는 특성은, 구현예 또는 예 중 임의의 하나 이상에서 결합될 수 있다. 게다가, 기술 분야의 숙련된 자는, 본 명세서에서 설명되는 상이한 구현예 또는 예 및 상이한 구현예 또는 예의 특성을, 그들이 서로 충돌하지 않는다면, 통합 또는 결합할 수 있다.
비록 본 출원의 구현예가 상기에서 도시되고 설명되지만, 앞선 구현예는 예이며, 본 출원에 대한 제한으로서 해석되지 않아야 한다는 것이 이해될 수 있다. 본 출원의 범위 내에서, 기술 분야에서 통상의 기술을 가진 자는, 앞선 구현예에 대한 변경, 수정, 대체, 및 변동을 가할 수 있다.

Claims (27)

  1. 기본(primary) 및 보조(secondary) 데이터베이스를 관리하기 위한 방법으로서,
    기본 데이터베이스에 의해 유지되는 락(lock) - 상기 기본 데이터베이스 및 보조 데이터베이스는 상기 락을 공유함 - 이 만료되는지의 여부를 결정하는 단계;
    상기 기본 데이터베이스에 의해 유지되는 상기 락이 만료되었다는 것을 결정하는 것에 응답하여, 상기 기본 데이터베이스의 락 새로고침 요청(lock renewal request)이 수신되는지의 여부를 결정하는 단계; 및
    상기 기본 데이터베이스의 상기 락 새로고침 요청이 수신되지 않는다는 것을 결정하는 것에 응답하여, 상기 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 상기 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하는 단계를 포함하는, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  2. 제1항에 있어서,
    상기 기본 데이터베이스에 의해 유지되는 상기 락이 만료되었다는 것을 결정한 이후, 상기 방법은:
    락 만료 통지를 상기 보조 데이터베이스로 전송하는 단계; 및
    상기 락 만료 통지에 기초하여 상기 보조 데이터베이스에 의해 전송되는 락 요청을 수신하고, 상기 락 요청의 수신 시간을 기록하는 단계를 더 포함하는, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  3. 제2항에 있어서,
    상기 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하는 것은 구체적으로:
    상기 기본 데이터베이스로서, 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 선택하는 것을 포함하는, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  4. 제1항에 있어서,
    상기 기본 데이터베이스의 우선 순위는 상기 보조 데이터베이스의 우선 순위보다 더 높은, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  5. 제1항에 있어서,
    상기 락의 업데이트 사이클은 T1이고, 상기 기본 데이터베이스는, 사이클 T2에서, 상기 락의 상태를 조회하기 위한 락 요청을 전송하고, 상기 보조 데이터베이스는, 사이클 T3에서, 상기 락의 상기 상태를 조회하기 위한 락 요청을 전송하되, T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일한, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  6. 제1항에 있어서,
    상기 보조 데이터베이스는 상시 대기 데이터베이스(hot standby database) 및 재해 복구 데이터베이스(disaster recovery database)를 포함하고, 상기 기본 데이터베이스 및 상기 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 상기 기본 데이터베이스 및 상기 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치하는, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  7. 제4항 또는 제5항에 있어서,
    상기 원래의 기본 데이터베이스가 복원된 이후, 상기 방법은:
    상기 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하고, 상기 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 상기 현재의 기본 데이터베이스가 보조 데이터베이스로 복원되도록, 상기 락이 만료된 이후 상기 락을 상기 원래의 기본 데이터베이스에 의해 유지도록 제어하는 단계를 더 포함하는, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  8. 제1항에 있어서,
    상기 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하는 것 이후, 상기 방법은:
    상기 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 계속하여 결정하는 단계;
    상기 현재의 기본 데이터베이스에 의해 유지되는 상기 락이 만료되었다는 것을 결정하는 것에 응답하여, 상기 원래의 기본 데이터베이스, 상기 현재의 기본 데이터베이스, 및 상기 다른 보조 데이터베이스의 락 요청이 수신되는지의 여부를 결정하는 단계; 및
    상기 원래의 기본 데이터베이스의 상기 락 요청이 수신된다는 것을 결정하는 것에 응답하여, 상기 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하고, 상기 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하는 단계; 또는
    상기 원래의 기본 데이터베이스의 상기 락 요청이 수신되지 않고 상기 현재의 기본 데이터베이스 및 상기 다른 보조 데이터베이스의 상기 락 요청이 수신된다는 것을 결정하는 것에 응답하여, 상기 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지하는 단계; 또는
    상기 원래의 기본 데이터베이스 및 상기 현재의 기본 데이터베이스의 상기 락 요청이 수신되지 않고 상기 다른 보조 데이터베이스의 상기 락 요청이 수신된다는 것을 결정하는 것에 응답하여, 상기 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 상기 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하는 단계를 더 포함하는, 기본 및 보조 데이터베이스를 관리하기 위한 방법.
  9. 락 중재 서버로서,
    기본 데이터베이스에 의해 유지되는 락 - 상기 기본 데이터베이스 및 보조 데이터베이스는 상기 락을 공유함 - 이 만료되는지의 여부를 결정하도록 구성되는 제1 결정 모듈;
    상기 기본 데이터베이스에 의해 유지되는 상기 락이 만료되었다는 것을 결정하는 것에 응답하여, 상기 기본 데이터베이스의 락 새로고침 요청이 수신되는지의 여부를 결정하도록 구성되는 제2 결정 모듈; 및
    상기 기본 데이터베이스의 상기 락 새로고침 요청이 수신되지 않는다는 것을 결정하는 것에 응답하여, 상기 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하고, 상기 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하도록 구성되는 제1 프로세싱 모듈을 포함하는, 락 중재 서버.
  10. 제9항에 있어서,
    상기 기본 데이터베이스에 의해 유지되는 상기 락이 만료되었다는 것을 제1 결정 모듈이 결정한 이후, 락 만료 통지를 상기 보조 데이터베이스로 전송하도록 구성되는 제1 전송 모듈; 및
    상기 락 만료 통지에 기초하여 상기 보조 데이터베이스에 의해 전송되는 락 요청을 수신하고, 상기 락 요청의 수신 시간을 기록하도록 구성되는 기록 모듈을 더 포함하는, 락 중재 서버.
  11. 제10항에 있어서,
    상기 제1 프로세싱 모듈은 또한:
    상기 기본 데이터베이스로서, 가장 빠른 수신 시간을 갖는 보조 데이터베이스를 선택하도록 구성되는, 락 중재 서버.
  12. 제9항에 있어서,
    상기 기본 데이터베이스의 우선 순위는 상기 보조 데이터베이스의 우선 순위보다 더 높은, 락 중재 서버.
  13. 제9항에 있어서,
    상기 락의 업데이트 사이클은 T1이고, 상기 기본 데이터베이스는, 사이클 T2에서, 상기 락의 상태를 조회하기 위한 락 요청을 전송하고, 상기 보조 데이터베이스는, 사이클 T3에서, 상기 락의 상기 상태를 조회하기 위한 락 요청을 전송하되, T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일한, 락 중재 서버.
  14. 제9항에 있어서,
    상기 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 상기 기본 데이터베이스 및 상기 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 상기 기본 데이터베이스 및 상기 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치하는, 락 중재 서버.
  15. 제12항 또는 제13항에 있어서,
    상기 원래의 기본 데이터베이스가 복원된 이후, 상기 원래의 기본 데이터베이스에 의해 유지되는 락 요청을 수신하도록 구성되는 제1 수신 모듈을 더 포함하되,
    상기 제1 프로세싱 모듈은 또한, 상기 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 상기 현재의 기본 데이터베이스가 보조 데이터베이스로 복원되도록, 상기 락이 만료된 이후 상기 락을 상기 원래의 기본 데이터베이스에 의해 유지되도록 제어하도록 구성되는, 락 중재 서버.
  16. 제9항에 있어서,
    상기 제1 결정 모듈은 또한, 상기 현재의 기본 데이터베이스에 의해 유지되는 락이 만료되는지의 여부를 계속하여 결정하도록 구성되고;
    상기 제2 결정 모듈은 또한, 상기 현재의 기본 데이터베이스에 의해 유지되는 상기 락이 만료되었다는 것을 결정하는 것에 응답하여, 상기 원래의 기본 데이터베이스, 상기 현재의 기본 데이터베이스, 및 다른 보조 데이터베이스의 락 요청이 수신되는지의 여부를 결정하도록 구성되고;
    제2 프로세싱 모듈이, 상기 원래의 기본 데이터베이스의 상기 락 요청이 수신된다는 것을 결정하는 것에 응답하여, 상기 원래의 기본 데이터베이스를 기본 데이터베이스로 복원하도록, 그리고 상기 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하도록 구성되고;
    제3 프로세싱 모듈이, 상기 원래의 기본 데이터베이스의 상기 락 요청이 수신되지 않고 상기 현재의 기본 데이터베이스 및 상기 다른 보조 데이터베이스의 상기 락 요청이 수신된다는 것을 결정하는 것에 응답하여, 상기 현재의 기본 데이터베이스를 기본 데이터베이스로서 유지하도록 구성되고; 그리고
    제4 프로세싱 모듈이, 상기 원래의 기본 데이터베이스 및 상기 현재의 기본 데이터베이스의 상기 락 요청이 수신되지 않고 상기 다른 보조 데이터베이스의 상기 락 요청이 수신된다는 것을 결정하는 것에 응답하여, 상기 다른 보조 데이터베이스 중 하나를 기본 데이터베이스로서 선택하고, 상기 현재의 기본 데이터베이스를 보조 데이터베이스로 복원하도록 구성되는, 락 중재 서버.
  17. 기본 데이터베이스 서버로서,
    락 중재 서버가 락 새로고침 요청을 수신하지 않은 경우 상기 락 중재 서버가 보조 데이터베이스 중 하나를 새로운 기본 데이터베이스로서 선택하도록, 기본 데이터베이스에 의해 유지되는 락이 만료되는 경우 상기 락 새로고침 요청을 상기 락 중재 서버로 전송하도록 구성되는 제2 전송 모듈; 및
    상기 기본 데이터베이스를 보조 데이터베이스로 스위칭되도록 제어하도록 구성되는 스위칭 모듈을 포함하는, 기본 데이터베이스 서버.
  18. 제17항에 있어서,
    상기 기본 데이터베이스의 우선 순위는 상기 보조 데이터베이스의 우선 순위보다 더 높은, 기본 데이터베이스 서버.
  19. 제17항에 있어서,
    상기 락의 업데이트 사이클은 T1이고, 상기 기본 데이터베이스 서버는, 사이클 T2에서, 상기 락의 상태를 조회하기 위한 락 요청을 전송하고, 상기 보조 데이터베이스는, 사이클 T3에서, 상기 락의 상기 상태를 조회하기 위한 락 요청을 전송하되, T2는 T1보다 더 작고, T3은 T1보다 더 크거나 동일한, 기본 데이터베이스 서버.
  20. 제17항에 있어서,
    상기 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 상기 기본 데이터베이스 및 상기 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 상기 기본 데이터베이스 및 상기 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치하는, 기본 데이터베이스 서버.
  21. 제18항 또는 제19항에 있어서,
    상기 기본 데이터베이스 서버는 또한:
    상기 락 중재 서버가 상기 원래의 기본 데이터베이스에 의해 전송되는 상기 락 요청을 수신하고, 상기 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되고 상기 현재의 기본 데이터베이스가 보조 데이터베이스로 복원되도록, 상기 락이 만료된 이후 상기 락을 상기 원래의 기본 데이터베이스에 의해 유지되도록 제어하도록, 상기 원래의 기본 데이터베이스가 복원된 이후, 락 요청을 상기 락 중재 서버로 전송하도록 구성되는 제3 전송 모듈을 더 포함하는, 기본 데이터베이스 서버.
  22. 보조 데이터베이스 서버로서,
    락 요청을 락 중재 서버로 전송하도록 구성되는 제4 전송 모듈;
    상기 락 중재 서버에 의해 전송되는 락 확인 응답 메시지(lock acknowledgement message)를 수신하도록 구성되는 제2 수신 모듈; 및
    상기 락 확인 응답 메시지에 기초하여 보조 데이터베이스를 새로운 기본 데이터베이스로 스위칭하도록 구성되는 제5 프로세싱 모듈을 포함하는, 보조 데이터베이스 서버.
  23. 제22항에 있어서,
    기본 데이터베이스에 의해 유지되는 락이 만료되었다는 것을 상기 락 중재 서버가 결정한 이후, 상기 락 중재 서버에 의해 전송되는 락 만료 통지를 수신하도록 구성되는 제3 수신 모듈을 포함하되, 상기 제4 전송 모듈은 상기 락 만료 통지에 기초하여 상기 락 요청을 상기 락 중재 서버로 전송하는, 보조 데이터베이스 서버.
  24. 제22항에 있어서,
    상기 기본 데이터베이스의 우선 순위는 상기 보조 데이터베이스의 우선 순위보다 더 높은, 보조 데이터베이스 서버.
  25. 제22항에 있어서,
    상기 보조 데이터베이스는 상시 대기 데이터베이스 및 재해 복구 데이터베이스를 포함하고, 상기 기본 데이터베이스 및 상기 상시 대기 데이터베이스는 동일한 데이터 센터 내에 위치하고, 상기 기본 데이터베이스 및 상기 재해 복구 데이터베이스는 상이한 데이터 센터 내에 위치하는, 보조 데이터베이스 서버.
  26. 제24항에 있어서,
    상기 락 중재 서버가 상기 원래의 기본 데이터베이스에 의해 전송되는 락 요청을 수신하고, 상기 원래의 기본 데이터베이스가 기본 데이터베이스로 복원되도록, 상기 락이 만료된 이후 상기 락을 상기 원래의 기본 데이터베이스에 의해 유지되도록 제어한 이후, 상기 현재의 기본 데이터베이스를 보조 데이터베이스로 복원되도록 제어하도록 구성되는 제6 프로세싱 모듈을 더 포함하는, 보조 데이터베이스 서버.
  27. 기본 및 보조 데이터베이스를 관리하기 위한 시스템으로서,
    제9항 내지 제16항 중 어느 한 항에 따른 상기 락 중재 서버; 및
    제17항 내지 제21항 중 어느 한 항에 따른 상기 기본 데이터베이스 서버 및 제22항 내지 제26항 중 어느 한 항에 따른 상기 보조 데이터베이스 서버를 포함하는, 기본 및 보조 데이터베이스를 관리하기 위한 시스템.
KR1020197021325A 2016-12-20 2017-12-11 기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치 KR102142233B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201611183638.9A CN107066480B (zh) 2016-12-20 2016-12-20 主备数据库的管理方法、系统及其设备
CN201611183638.9 2016-12-20
PCT/CN2017/115392 WO2018113543A1 (zh) 2016-12-20 2017-12-11 主备数据库的管理方法、系统及其设备

Publications (2)

Publication Number Publication Date
KR20190095443A true KR20190095443A (ko) 2019-08-14
KR102142233B1 KR102142233B1 (ko) 2020-08-07

Family

ID=59619184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021325A KR102142233B1 (ko) 2016-12-20 2017-12-11 기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치

Country Status (9)

Country Link
US (1) US10592361B2 (ko)
EP (1) EP3561694B1 (ko)
JP (1) JP6905161B2 (ko)
KR (1) KR102142233B1 (ko)
CN (1) CN107066480B (ko)
PH (1) PH12019501392A1 (ko)
SG (2) SG10201913120SA (ko)
TW (1) TWI677797B (ko)
WO (1) WO2018113543A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066480B (zh) 2016-12-20 2020-08-11 创新先进技术有限公司 主备数据库的管理方法、系统及其设备
US10999392B2 (en) 2019-03-01 2021-05-04 Accenture Global Solutions Limited Message recovery system for computing nodes with replicated databases
CN110442650A (zh) * 2019-08-09 2019-11-12 中国工商银行股份有限公司 数据库切换方法、装置、系统、电子设备及存储介质
CN110765143B (zh) * 2019-10-10 2022-08-02 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器和存储介质
CN111159156B (zh) * 2019-12-31 2023-04-28 杭州迪普科技股份有限公司 SQLite数据库的备份方法和装置
US11379477B2 (en) * 2020-03-31 2022-07-05 Sap Se Efficient workload balancing in replicated databases based on result lag computation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496701B2 (en) * 2004-11-18 2009-02-24 International Business Machines Corporation Managing virtual server control of computer support systems with heartbeat message
US20110137879A1 (en) * 2009-12-07 2011-06-09 Saurabh Dubey Distributed lock administration
CN104778102A (zh) * 2015-03-27 2015-07-15 深圳市创梦天地科技有限公司 一种主备切换方法及系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003317A1 (en) * 2002-06-27 2004-01-01 Atul Kwatra Method and apparatus for implementing fault detection and correction in a computer system that requires high reliability and system manageability
US7254736B2 (en) * 2002-12-18 2007-08-07 Veritas Operating Corporation Systems and method providing input/output fencing in shared storage environments
US7284151B2 (en) * 2003-07-21 2007-10-16 Oracle International Corporation Conditional data access after database system failure
TWI306241B (en) * 2004-07-12 2009-02-11 Infortrend Technology Inc A controller capable of self-monitoring, a redundant storage system having the same, and its method
CN100362482C (zh) * 2005-07-21 2008-01-16 上海华为技术有限公司 一种双机备份实现方法及系统
CN100449548C (zh) * 2007-04-11 2009-01-07 华为技术有限公司 数据库同步方法及系统
US8984328B2 (en) * 2011-03-11 2015-03-17 Microsoft Technology Licensing, Llc Fault tolerance in a parallel database system
US9348883B2 (en) * 2011-06-01 2016-05-24 Clustrix, Inc. Systems and methods for replication replay in a relational database
CN102831038B (zh) * 2011-06-17 2019-03-01 中兴通讯股份有限公司 Enum-dns的容灾方法及enum-dns
US8719225B1 (en) * 2012-01-17 2014-05-06 Amazon Technologies, Inc. System and method for log conflict detection and resolution in a data store
US9116862B1 (en) * 2012-01-17 2015-08-25 Amazon Technologies, Inc. System and method for data replication using a single master failover protocol
CN102739451B (zh) * 2012-06-29 2014-12-03 华为技术有限公司 一种主备切换条件更新方法、装置、服务器及系统
CN102891849B (zh) * 2012-09-25 2015-07-22 北京星网锐捷网络技术有限公司 业务数据同步方法、恢复方法及装置和网络设备
US9009444B1 (en) * 2012-09-29 2015-04-14 Emc Corporation System and method for LUN control management
CN102945195B (zh) * 2012-11-26 2015-11-18 国电南瑞科技股份有限公司 一种基于SQLite数据库的主备冗余复制方法
US9667490B1 (en) * 2013-06-05 2017-05-30 Parallels IP Holdings GmbH Method for high availability of services in cloud computing systems
US9274902B1 (en) * 2013-08-07 2016-03-01 Amazon Technologies, Inc. Distributed computing fault management
CN103593266B (zh) * 2013-11-12 2016-06-22 浪潮(北京)电子信息产业有限公司 一种基于仲裁盘机制的双机热备方法
US20150339200A1 (en) * 2014-05-20 2015-11-26 Cohesity, Inc. Intelligent disaster recovery
TWI529624B (zh) * 2015-03-19 2016-04-11 Univ Nat Central Method and system of fault tolerance for multiple servers
CN106202075B (zh) * 2015-04-29 2021-02-19 中兴通讯股份有限公司 一种数据库主备切换的方法及装置
CN105933379B (zh) * 2016-04-01 2018-10-09 浪潮电子信息产业股份有限公司 一种业务处理方法、设备及系统
CN107066480B (zh) * 2016-12-20 2020-08-11 创新先进技术有限公司 主备数据库的管理方法、系统及其设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496701B2 (en) * 2004-11-18 2009-02-24 International Business Machines Corporation Managing virtual server control of computer support systems with heartbeat message
US20110137879A1 (en) * 2009-12-07 2011-06-09 Saurabh Dubey Distributed lock administration
CN104778102A (zh) * 2015-03-27 2015-07-15 深圳市创梦天地科技有限公司 一种主备切换方法及系统

Also Published As

Publication number Publication date
CN107066480B (zh) 2020-08-11
SG10202012899PA (en) 2021-01-28
EP3561694A4 (en) 2019-12-18
US10592361B2 (en) 2020-03-17
US20190251008A1 (en) 2019-08-15
WO2018113543A1 (zh) 2018-06-28
KR102142233B1 (ko) 2020-08-07
CN107066480A (zh) 2017-08-18
JP2020502686A (ja) 2020-01-23
TW201824030A (zh) 2018-07-01
EP3561694B1 (en) 2022-06-22
JP6905161B2 (ja) 2021-07-21
SG10201913120SA (en) 2020-03-30
TWI677797B (zh) 2019-11-21
EP3561694A1 (en) 2019-10-30
PH12019501392A1 (en) 2020-02-10

Similar Documents

Publication Publication Date Title
KR102142233B1 (ko) 기본 및 보조 데이터베이스를 관리하기 위한 방법, 시스템 및 장치
US10713135B2 (en) Data disaster recovery method, device and system
US8169856B2 (en) Time synchronization in cluster systems
US8412790B2 (en) Method, system and computer readable recording medium for determining major group under split-brain syndrome
CN109005045B (zh) 主备服务系统及主节点故障恢复方法
EP2790112B1 (en) Method and system for data synchronization and data access apparatus
WO2016070375A1 (zh) 一种分布式存储复制系统和方法
US8255369B2 (en) Automatic failover configuration with lightweight observer
US20130238676A1 (en) Method, system, token conreoller and memory database for implementing distribute-type main memory database system
EP2902922B1 (en) Distributed file system and data backup method for distributed file system
CN108183971B (zh) 一种分布式系统中的节点选举方法
JP5278540B2 (ja) オペレーションシステムのデータ管理方法及びサーバ
WO2011103763A1 (zh) 数据容灾的方法、装置及系统
CN109189854B (zh) 提供持续业务的方法及节点设备
EP3427157B1 (en) Cross-regional data transmission
CN108509296B (zh) 一种处理设备故障的方法和系统
US20200304586A1 (en) Method and system for managing network service
JP2009169449A (ja) 高信頼化データベースシステムおよびその同期方法、仲介方法、仲介装置、仲介プログラム
CN114125827B (zh) 一种终端管理方法、装置及集中化管理系统
JP6289214B2 (ja) 情報処理システム及びその方法
CN111064618A (zh) 一种服务器高可用的实现方法、装置、设备和存储介质
US20150347239A1 (en) Global backup lock manager
CN115633046A (zh) Kafka高可用方案优化方法、装置、设备及存储介质
CN116126838A (zh) 多数据中心数据库切换方法和装置
CN115421971A (zh) Etcd灾备故障恢复的方法及应用

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right