KR20180105675A - 데이터 동기화 방법, 장치, 및 시스템 - Google Patents

데이터 동기화 방법, 장치, 및 시스템 Download PDF

Info

Publication number
KR20180105675A
KR20180105675A KR1020187023616A KR20187023616A KR20180105675A KR 20180105675 A KR20180105675 A KR 20180105675A KR 1020187023616 A KR1020187023616 A KR 1020187023616A KR 20187023616 A KR20187023616 A KR 20187023616A KR 20180105675 A KR20180105675 A KR 20180105675A
Authority
KR
South Korea
Prior art keywords
data
real
time notification
modification
target
Prior art date
Application number
KR1020187023616A
Other languages
English (en)
Other versions
KR102153804B1 (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 KR20180105675A publication Critical patent/KR20180105675A/ko
Application granted granted Critical
Publication of KR102153804B1 publication Critical patent/KR102153804B1/ko

Links

Images

Classifications

    • 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
    • G06F16/273Asynchronous replication or reconciliation
    • G06F17/30581
    • 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
    • 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
    • G06F16/275Synchronous replication
    • 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/2358Change logging, detection, and notification
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 출원은 데이터 동기화 방법, 장치, 및 시스템을 개시한다. 데이터 동기화 방법은, 소스단(source end) 데이터베이스의 데이터가 수정되었다고 결정한 후, 데이터 동기화 소스단에 의해 이 데이터 수정에 대한 실시간 통지를 생성하고, 실시간 통지를 데이터 동기화 타겟단(target end)에 전송하는 단계; 및 실시간 통지를 수신한 후, 데이터 동기화 타겟단에 의해 실시간 통지를 파싱(parsing)함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한다. 이전 해결책에서는, 실시간 통지가 수신된 후, 실시간 통지에 포함된 정보에 기초하여 국부적 데이터베이스에서의 캐시가 직접 업데이트될 수 있다. 그럼에도 불구하고, 캐시 동기화 업데이트 지연을 감소시키기 위해 국부적 데이터의 동기화가 완료된 직후에 캐시 데이터를 업데이트하도록 국부적 데이터베이스의 모니터링이 개시될 수 있다.

Description

데이터 동기화 방법, 장치, 및 시스템
본 출원은 데이터베이스 기술 분야에 관한 것이며, 특히 데이터 동기화 방법, 장치, 및 시스템에 관한 것이다.
빅 데이터 시대에서, 데이터 소유자는 보통 재해 복구를 목적으로 두 개보다 많은 데이터 센터를 구축한다. 통상적인 콜드 예비(cold standby) 재해 복구 해결책에서는, 활성 데이터 센터가 주 서비스로서 사용되고, 다른 데이터 센터들은 활성 데이터 센터 내 데이터를 백업하는데 사용된다. 이 해결책의 문제점은 활성 데이터 센터와 예비 센터가 직접적으로 재사용될 수 없으며, 예비 데이터 센터는 재해시에서만 기능을 하여 자원 활용도가 낮다는 것이다. 또한, 예비 데이터 센터가 주 서비스로서 활성 데이터 센터를 인계받는데에는 시간이 많이 걸리고 복잡하며, 일반적으로 일반 서비스의 처리에 심각한 영향을 미친다.
콜드 예비 기술의 문제점을 해결하기 위해 분산형 멀티 활성 데이터 센터(약칭하여 멀티 활성이라고 함) 기술이 제안되었다. 구현 아이디어는 다음과 같다: 복수의 데이터 센터들에서는 활성 및 예비 서비스들이 없고, 데이터 센터들은 정상 모드에서 서로 협력하고, 서비스 액세스를 위한 서비스를 병행하여 제공한다. 이것은 예비 데이터 센터들이 유휴 상태가 되는 것을 방지하고 시스템의 서비스 능력을 두 배로 늘릴 수 있다. 하나의 데이터 센터가 고장나면, 다른 데이터 센터들은 모든 서비스들을 신속하게 인계받을 수 있다.
멀티 활성 해결책에서는, 데이터 센터들 각각이 비교적 동일한 지위를 갖기 때문에, 데이터 센터들 간의 데이터 동기화의 속도에 대한 요구사항이 비교적 높다. 특히 데이터 센터들이 상이한 위치들에 배치되는 응용 시나리오에서는, 상대적으로 긴 통신 거리에 있는 두 위치들 간의 데이터 동기화의 속도를 향상시키는 것은 현재의 멀티 활성 데이터 센터 구축에서의 문제점이다.
이전 기술적 문제점을 해결하기 위해, 본 출원은 데이터 동기화 방법, 장치, 및 시스템을 제공한다. 기술적 해결책은 다음과 같다:
본 출원의 제1 양태에 따르면, 데이터 동기화 방법이 제공된다. 본 방법은, 소스단(source end) 데이터베이스의 데이터가 수정되었다고 결정한 후, 데이터 동기화 소스단에 의해 이 데이터 수정에 대한 실시간 통지를 생성하고, 실시간 통지를 데이터 동기화 타겟단(target end)에 전송하는 단계 - 여기서, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함함 -; 및 실시간 통지를 수신한 후, 데이터 동기화 타겟단에 의해 실시간 통지를 파싱(parsing)함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한다.
본 출원의 제2 양태에 따르면, 데이터 동기화 방법이 제공된다. 본 방법은 데이터 동기화 소스단에 적용되며, 소스단 데이터베이스의 데이터가 수정되었다고 결정한 후 이 데이터 수정에 대한 실시간 통지를 생성하는 단계 - 여기서, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함함 -; 및 실시간 통지를 데이터 동기화 타겟단에 전송하는 단계를 포함한다. 따라서, 실시간 통지를 수신한 후, 데이터 동기화 타겟단은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트한다.
본 출원의 제3 양태에 따르면, 데이터 동기화 방법이 제공된다. 본 방법은 데이터 동기화 타겟단에 적용되며, 데이터 동기화 소스단에 의해 전송된 실시간 통지를 수신하는 단계; 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하는 단계; 및 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한다. 데이터 동기화 소스단이 소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 이 데이터 수정에 대한 실시간 통지가 생성되고 전송되며, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다.
본 출원의 제4 양태에 따르면, 데이터 동기화 소스단 장치가 제공된다. 본 장치는, 실시간 통지 생성 모듈 및 실시간 통지 전송 모듈을 포함하고, 실시간 통지 생성 모듈은 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 데이터 수정에 대한 실시간 통지를 생성하도록 구성되며, 여기서, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다. 또한, 실시간 통지 전송 모듈은 실시간 통지를 데이터 동기화 타겟단에 전송하도록 구성된다. 따라서, 실시간 통지를 수신한 후, 데이터 동기화 타겟단은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트한다.
본 출원의 제5 양태에 따르면, 데이터 동기화 타겟단 장치가 제공된다. 본 장치는 실시간 통지 수신 모듈 및 캐시 데이터 업데이트 모듈을 포함하며, 실시간 통지 수신 모듈은 데이터 동기화 소스단에 의해 전송된 실시간 통지를 수신하도록 구성된다. 캐시 데이터 업데이트 모듈은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된다. 데이터 동기화 소스단이 소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 이 데이터 수정에 대한 실시간 통지가 생성되고 전송되며, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다.
본 출원의 제6 양태에 따르면, 데이터 동기화 시스템이 제공된다. 본 시스템은 데이터 동기화 소스단 장치 및 데이터 동기화 타겟단 장치를 포함하며, 데이터 동기화 소스단 장치는 실시간 통지 생성 모듈 및 실시간 통지 전송 모듈을 포함한다. 실시간 통지 생성 모듈은 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 데이터 수정에 대한 실시간 통지를 생성하도록 구성되며, 여기서, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다. 실시간 통지 전송 모듈은 실시간 통지를 데이터 동기화 타겟단에 전송하도록 구성된다. 데이터 동기화 타겟단 장치는 실시간 통지 수신 모듈 및 캐시 데이터 업데이트 모듈을 포함하며, 실시간 통지 수신 모듈은 실시간 통지를 수신하도록 구성된다. 캐시 데이터 업데이트 모듈은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된다.
본 출원에서 제공된 기술적 해결책에 기초하여, 데이터를 수정한 후, 데이터 동기화 소스단은 데이터 동기화 타겟단에 실시간 통지를 전송한다. 타겟단이 실시간 통지에 포함된 정보에 기초하여 국부적 데이터베이스에서의 캐시를 직접 업데이트할 수 있는 경우, 기저부 데이터베이스의 동기화의 완료를 기다리지 않고서 캐시 동기화 업데이트 지연을 감소시키기 위해 캐시가 업데이트될 수 있다. 타겟단이 실시간 통지에 포함된 정보에 기초하여 국부적 데이터베이스에서의 캐시를 직접 업데이트할 수 없는 경우, 캐시 동기화 업데이트 지연을 감소시키기 위해 국부적 데이터베이스가 동기화되고 업데이트될 것이라는 것이 또한 학습될 수 있어서, 국부적 데이터의 동기화가 완료된 직후에 캐시 데이터를 업데이트하기 위해 국부적 데이터베이스의 모니터링이 추가로 개시될 수 있다.
이전의 일반적인 설명 및 이후의 상세한 설명은 단지 예시와 설명에 불과하고 본 출원을 제한시킬 수 없다는 것을 이해해야 한다.
본 출원의 구현예들에서 또는 종래 기술에서의 기술적 해결책을 보다 명확하게 설명하기 위해, 아래에서는 본 구현예들 또는 종래 기술을 설명하기 위한 첨부 도면들을 간략하게 설명한다. 명백하게, 이하의 설명에서의 첨부 도면들은 본 출원의 몇가지 구현예들을 보여줄 뿐이며, 당업자는 이들 첨부 도면들로부터 다른 도면들을 계속해서 유도할 수 있다.
도 1은 종래 기술에서의 활성-활성 시스템을 도시하는 제1 개략적 구조도이다.
도 2는 종래 기술에서의 활성-활성 시스템을 도시하는 제2 개략적 구조도이다.
도 3은 본 출원에 따른 활성-활성 시스템을 도시하는 제1 개략적 구조도이다.
도 4는 본 출원에 따른 활성-활성 시스템을 도시하는 제2 개략적 구조도이다.
도 5는 본 출원에 따른 데이터 동기화 방법을 도시하는 제1 개략적 흐름도이다.
도 6는 본 출원에 따른 데이터 동기화 방법을 도시하는 제2 개략적 흐름도이다.
도 7은 본 출원에 따른 데이터 동기화 소스단 장치를 도시하는 개략적 구조도이다.
도 8은 본 출원에 따른 데이터 동기화 타겟단 장치를 도시하는 개략적 구조도이다.
도 9는 본 출원에 따른 데이터 동기화 시스템을 도시하는 개략적 구조도이다.
도 10은 본 출원에 따른 장치를 구성하기 위한 디바이스를 도시하는 개략적 구조도이다.
당업자가 본 출원의 기술적 해결책을 더 잘 이해할 수 있도록 하기 위해, 아래에서는 본 출원의 구현예들에서의 첨부된 도면을 참조하여 본 출원의 구현예들에서의 기술적 해결책을 상세하게 설명한다. 명백한 바와 같이, 설명된 구현예들은 본 출원의 모든 구현예들이라기 보다는 그 중 일부일 뿐이다. 본 출원의 구현예들에 기초하여 당업자에 의해 획득되는 다른 구현예들은 본 출원의 보호 범위 내에 속한다.
먼저, 멀티 활성 데이터 센터 해결책의 시스템 아키텍처 및 동작 원리를 간략하게 설명한다. 도 1은 활성-활성 시스템을 도시하는 개략적인 아키텍처도이다. 장비실 A와 장비실 B에는 각각 두 개의 데이터 센터들이 설치된다. 장비실 A와 장비실 B에는 각각 데이터베이스 A와 데이터베이스 B가 위치한다. 각 장비실에는, 응용 서버가 데이터베이스와 직접 상호작용한다. 응용 서버는 사용자 또는 다른 시스템들에 의해 전송된 명령어들에 기초하여 국부적 데이터베이스에 대해 판독/기록 작업을 수행한다. 멀티 활성 시스템의 요구사항에 기초하여, 장비실의 데이터베이스가 수정된 경우, 이러한 수정은 가능한 빨리 다른 장비실과 동기화될 필요가 있다. 동기화 프로세스에서, 제일 먼저 수정된 데이터베이스를 소스단 데이터베이스라고 칭하고, 이후에 동기화되는 데이터베이스를 타겟단 데이터베이스라고 칭한다.
도 1에서 도시된 활성-활성 시스템이 예시로서 사용된다. 기저부 데이터베이스의 원시 데이터 동기화 해결책에 기초하여, 응용 서버 A가 데이터베이스 A에 대해 기록 작업을 수행하면, 데이터베이스 A에서 발생하는 기록 이벤트들이 순차적으로 패킹(pack)된다. 그런 후, 패킹된 이벤트들이 데이터베이스 B에 일괄적으로 입력되어 데이터 수정을 수행한다. 수정이 완료된 후, 응용 서버 B는 데이터베이스 A의 데이터와 일치하는 데이터를 데이터베이스 B로부터 판독할 수 있다.
캐싱은 데이터베이스 작업에서 일반적으로 사용되는 기술이다. 기본적인 기저부 데이터베이스 저장 영역과 비교할 때, 캐시는 더 나은 데이터 판독/기록 성능을 가지며 응용측과 기저부 데이터베이스 간의 직접적인 상호작용을 피할 수 있다. 예를 들어, 상태 유형 데이터의 상대적으로 분명한 특징은 데이터가 자주 판독되고 드물게 기록된다는 것이다. 사용자 정보 데이터가 예시로서 사용된다. 등록 단계에서 개인 정보를 채운 후에는, 사용자가 개인 정보를 자주 수정할 가능성은 낮을 것이다. 이러한 특징에 기초하여, 대부분의 시스템은 데이터베이스의 상위층에서의 캐시들의 층을 사용하여 많은 수의 데이터 질의 요청을 버퍼링할 수 있으므로, 실제로 데이터베이스에 전송되는 질의 요청들을 감소시키고 시스템의 전반적인 질의 성능을 향상시킨다.
캐싱 기술은 또한 멀티 활성 시스템에 적용될 수 있다. 도 2에서 도시된 바와 같이, 데이터베이스의 상위층에 캐시들의 층이 배치되고, 상용 데이터는 캐시에 미리 넣어진다. 응용 서버가 데이터를 사용할 필요가 있을 때, 응용 서버는 캐시로부터 우선적으로 데이터를 판독할 필요가 있으므로, 데이터 판독 효율성이 향상되고, 응용 서버와 기저부 데이터베이스 간의 직접적인 상호작용이 방지되며, 기저부 데이터베이스의 판독/기록 부담이 감소된다.
캐싱 메커니즘이 추가된 후, 캐시는 응용 서버에 의해 판독되는 데이터의 주요 소스가 된다. 따라서, 데이터 센터들 간에 데이터 동기화가 수행될 때, 타겟단에서의 데이터 질의의 정확성을 보장하기 위해 타겟단 장비실 내의 캐시의 동기화 업데이트 문제가 고려될 필요가 있다. 도 2에서 도시된 활성-활성 시스템이 예시로서 사용된다. 종래의 동기화 해결책에 기초하여, 응용 서버 A가 데이터베이스 A에 대해 기록 작업을 수행하면, 캐시 A와 캐시 B 둘 다는 업데이트될 필요가 있다. 캐시 A가 국부적으로 업데이트되며, 종래의 기술적 해결책이 직접 사용될 수 있다. 더 이상의 설명은 제공되지 않는다. 캐시 B의 업데이트 동안, 데이터베이스 A와 데이터베이스 B 간의 데이터 동기화 작업이 먼저 완료된다. 그런 후, 응용 서버 B는 동기화된 데이터베이스 B에 기초하여 국부적 캐시 B를 업데이트한다. 또한, 활성-활성 시스템에서, 두 개의 데이터베이스들이 장비실 A에 배치될 수 있다. 하나의 데이터베이스는 기록 데이터베이스로서 사용되고, 다른 데이터베이스는 판독 데이터베이스로서 사용된다. 판독 데이터베이스는 장비실 B와 같은 다른 장비실에 배치된다. 이와 같이, 장비실 A 내의 기록 데이터베이스를 사용하여 데이터 기록 작업들이 수행된다. 데이터가 기록 데이터베이스에 기록된 후, 새롭게 작성된 데이터는 국부적 장비실에 있는 판독 데이터베이스 및 다른 장비실에 있는 판독 데이터베이스에 동기화될 수 있다. 이와 같이, 캐싱 작업 동안, 기록 데이터베이스에 기록된 데이터는 대응하는 캐시가 업데이트되기 전에 장비실의 판독 데이터베이스를 거칠 필요가 있다.
실제 응용에서, 이러한 캐시 데이터 동기화 방법은 적어도 두가지 문제점을 갖는다:
첫번째로, 캐싱 메커니즘에서, 타겟단에 있는 응용 서버는 우선적으로 캐시로부터 데이터를 판독하여 최종적으로 타겟단에서 캐시 데이터에 대한 동기화 업데이트를 수행한다. 기저부 데이터베이스들 간의 직렬 데이터 동기화의 효율성은 상대적으로 낮은데, 이는 데이터 센터들이 상이한 위치들에 배치된 경우에 특히 그러하다. 이와 같이, 지연은 상대적으로 높고, 캐시 업데이트 단계들이 추가된 후에, 지연은 더 증가된다.
두번째로, 타겟단에서의 응용 서버는 국부적 기저 데이터의 업데이트를 실제로 감지할 수 없으며 캐시 데이터를 즉시 업데이트할 수 없다. 결과적으로, 지연이 더 길어진다.
상이한 위치들에 있는 데이터 센터들이 예시로서 사용된다. 두 개의 데이터 센터들은 각각 서로 1000km의 거리로 떨어져 있는 두 도시들에 배치된다. 테스트 결과에 따르면, 기록 데이터베이스와 원격 판독 데이터베이스 사이의 데이터 동기화 지연은 약 3 초이다. 따라서, 두 도시에서의 데이터를 데이터베이스의 원시 데이터 동기화 복제 해결책을 사용하여 동기화하면, 수 초 내에 데이터를 동기화할 수 있다. 사용자가 한 도시의 데이터 센터에서 데이터를 기록하는 경우, 다른 도시에 있는 데이터 센터에서 상기 기록된 데이터를 즉시 판독할 수 없을 수 있고, 사용자는 몇 초 후에 재시도할 필요가 있다. 결과적으로, 사용자 경험이 영향을 받는다.
전술한 문제점을 해결하기 위해, 본 출원은 데이터 센터들의 데이터베이스 캐시들 간의 동기화 업데이트 지연을 감소시키기 위한 데이터 동기화 방법을 제공한다. 본 방법은 다음 단계들을 포함한다:
소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 데이터 동기화 소스단은 이 데이터 수정에 대한 실시간 통지를 생성하고 실시간 통지를 데이터 동기화 타겟단에 전송하며, 여기서 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다. 따라서, 실시간 통지를 수신한 후, 데이터 동기화 타겟단은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트한다.
본 방법은 데이터 동기화 소스단 및 데이터 동기화 타겟단에 개별적으로 위치하는 동기화 장치들에 의해 수행될 수 있다. 도 3에서 도시된 바와 같이, 데이터 동기화 소스단에 위치한 동기화 장치 A는 응용 서버 A에 통신가능하게 연결된다. 응용 서버 A가 데이터베이스 A에 대한 기록 작업을 수행하였다고 결정된 후, 동기화 장치 A는 실시간 통지를 생성하고, 실시간 통지를 데이터 동기화 타겟단에 위치한 동기화 장치 B에 전송하며; 동기화 장치 B는 실시간 통지에 기초하여 캐시 B를 직접 업데이트한다.
실제 응용 설계에서, 동기화 장치의 모든 관련 기능 모듈은 도 3에서 도시된 바와 같이, 응용 서버와는 비교적 독립적인 물리적 엔티티(예를 들어, 전용 서버)에 위치할 수 있음을 이해할 수 있다. 대안적으로, 기능 모듈들의 일부 또는 전부는 응용 서버에 위치할 수 있다. 각 동기화 장치의 모든 기능 모듈들이 응용 서버에 위치하는 경우, 본질적으로, 데이터 동기화 소스단과 데이터 동기화 타겟단 각 측의 동기화 장치의 기능들은 대응 측 상의 응용 서버에 통합되며, 대응 시스템 아키텍처는 도 4에서 도시된 바와 같이 단순화될 수 있다. 동기화 장치와 응용 서버 간의 상호작용은 응용 서버 내의 내부 상호작용으로서 단순화된다.
본 출원에 제공된 기술적 해결책에서는, 기저부 데이터베이스의 원시 데이터 동기화 해결책에 대한 너무 많은 조정없이 데이터 동기화 타겟단 데이터베이스에서의 캐시의 업데이트 지연을 감소시키기 위해 실시간 통지가 도입된다. 또한, 데이터 동기화 소스단에서의 국부적 캐시의 업데이트 작업은 종래의 기술적 해결책을 사용하여 직접 구현될 수 있으며, 이것은 기본적으로 데이터 동기화 타겟단 데이터베이스에서의 캐시의 업데이트 지연과 무관하다. 따라서, 본 출원에서는 더 이상의 설명이 제공되지 않는다.
도 3 및 도 4에서 도시된 시스템에 기초하여, 전형적인 구성 해결책은 데이터베이스 A가 기록 데이터베이스이고 데이터베이스 B가 판독 데이터베이스라는 것을 유의해야 한다. 물론, 본 출원의 해결책과 데이터베이스의 판독/기록 분리 메커니즘 간에는 필요한 연결이 없다. 예를 들어, 데이터베이스 A와 데이터베이스 B는 둘 다 기록 데이터베이스들이거나, 또는 기록 데이터베이스와 판독 데이터베이스가 하나의 장비실에 배치되고, 판독 데이터베이스가 다른 장비실에 배치된다. 이것은 본 출원에서의 해결책의 구현에 영향을 미치지 않는다.
아래에서는 특정 구현예를 참조하여 본 출원에서 제공되는 데이터 동기화 방법을 상세히 더 설명한다.
도 5는 본 출원의 해결책을 활성-활성 시스템에 적용하는 데이터 동기화 프로시저를 도시한다. 설명의 용이화를 위해, 아래의 구현예는 도 4에서 도시된 단순화된 시스템 아키텍처를 참조하여 전체 프로시저를 설명한다.
S101. 데이터 동기화 소스단은 소스단 데이터베이스의 데이터가 수정되었다고 결정한다.
데이터 수정은 응용 서버 A가 데이터베이스 A에 데이터 기록 요청을 전송한 후에 또는 데이터가 데이터베이스 A에 성공적으로 기록되었다고 결정된 후에 결정될 수 있다. 전자의 방법은 이론적으로 전체 프로시저의 지연을 더 감소시킬 수 있으며, 후자의 방법은 데이터 동기화 소스단 데이터베이스에 데이터가 기록 실패되는 상황을 피할 수 있다. 결과적으로, 데이터 동기화 타겟단에서의 캐시의 업데이트는 데이터베이스에서와 불일치한다. 이것은 시스템 안정성 및 응용 시나리오와 같은 인자에 기초하여 당업자에 의해 유연하게 설정될 수 있다.
S102. 데이터 동기화 소스단은 이 데이터 수정에 대한 실시간 통지를 생성하고, 실시간 통지를 데이터 동기화 타겟단에 전송한다.
이 구현예에서, 응용 서버 A는 데이터베이스 A에 대해 수행된 각각의 데이터 기록 작업에 대응하는 데이터 수정 세부사항을 실시간 통지에 기록한다. 본질적으로, 수정 세부사항은 실시간 통지에 대응하는 메시지 본문에 기록된다. 여기서 수정 세부사항은 적어도 수정된 값 정보, 예컨대, {장 산, 남성, 20세}를 포함하여야 한다. 데이터베이스의 실제 데이터 저장 포맷 및 양측 상에서의 데이터의 데이터 전송 방법에 기초하여 동의한 바와 같이, 세부사항은 수정과 관련된 데이터 테이블 식별자, 행 식별자, 및 열 식별자, 예컨대, {이름="장 산", 나이="20세"}와 같은 정보를 더 포함할 수 있다. 본 출원은 "수정 세부사항"의 특정 내용을 제한하지 않는다. 실시간 통지는, 생성된 후, 즉시 데이터 동기화 타겟단에 전송된다.
실시간 통지를 생성하고 전송하는 프로세스에서, 전송 효율성, 암호화된 전송 등을 향상시키기 위해 압축, 암호화, 또는 다른 코딩 방식이 더 사용될 수 있다는 것을 이해할 수 있다. 본 출원의 이러한 구현은 실시간 통지의 특정 생성 및 전송 방법을 제한하지 않는다.
또한, 대조적으로, 응용 서버 A가 데이터베이스 A에 데이터를 성공적으로 기록한 후, 데이터베이스 A는 이 수정을 위해 데이터베이스에 대해 동기화 작업을 개시하기 시작한다(S103). 데이터 동기화 소스단에 있어서, 단계 S102와 단계 S103은 비교적 독립적인 두 개의 작업들임을 유의해야 한다. 따라서, 두 단계들을 수행하는 순서는 제한되지 않는다. 데이터 동기화 타겟단에 있어서, 실시간 통지가 수신된 후 단계 S104가 수행된다.
S104. 데이터 동기화 타겟단은 실시간 통지를 파싱함으로써 데이터 수정 세부사항을 획득하고, 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 직접 업데이트한다.
데이터 동기화 타겟단에서는, 응용 서버 B가 실시간 통지 수신 포트에 대해 실시간 검출을 수행한다. 실시간 통지가 수신된 후, 응용 서버 B는 즉시 이 실시간 통지를 파싱한다. 응용 서버 A에 의해 수행된 실시간 통지의 처리에 기초하여, 응용 서버 B는 파싱하는 동안 압축해제 및 암호해제와 같은 대응하는 작업들을 수행할 필요가 있을 수 있다. 세부사항은 여기서 설명하지 않는다.
이 구현예에서, 실시간 통지를 파싱함으로써 데이터베이스 A의 데이터 수정 세부사항을 획득한 후, 응용 서버 B는 파싱 결과에 기초하여 국부적 데이터베이스에서의 캐시 B를 직접 업데이트한다. 기저부 데이터베이스의 데이터의 동기화 동안 데이터는 원격 위치로 실시간으로 전송되지 않지만, 수정된 데이터 블록들의 수가 일정값에 도달한 후에 일괄적으로 패킹되고 전송되기 때문에, 실시간 통지의 평균 전송 속도는 기저부 데이터베이스의 동기화 속도보다 높다. 일반적으로, 도 4에서의 S105에서 도시된 바와 같이, 데이터 동기화 타겟단은 기저부 데이터베이스의 동기화가 완료되기 전에 실시간 통지에 기초하여 국부적 캐시를 직접 업데이트할 수 있다. 테스트는, 약 1000km의 거리로 떨어져 있는 원격 활성-활성 시스템에서 기저부 데이터베이스의 동기화 평균 지연은 약 3초인 것을 보여준다. 실시간 통지를 통해 캐시 데이터의 동기화 업데이트 지연은 약 30ms로 또는 심지어 그 아래로 감소될 수 있으며, 데이터베이스 캐시 동기화의 속도는 상당히 향상될 수 있다.
응용 서버 B는, 업데이트 작업을 수행하기 위해 실시간 통지가 수신된 직후 캐시 서버에 업데이트 메시지를 전송한다는 것을 유의해야 한다. 그러나, 업데이트 메시지를 수신한 후, 캐시 서버는 실제 상황에 기초하여 캐시 데이터가 업데이트될 필요가 있는지 여부를 더 결정할 수 있다. 예를 들어, 이러한 결정은 데이터를 기록하기 위한 타임스탬프에 기초하여 수행될 수 있거나, 또는 일부 다른 정보에 기초하여 캐시를 업데이트할지 여부를 결정하기 위해 통지 메시지에 이러한 정보가 포함될 수 있다. 예를 들어, 캐시가 업데이트될 필요가 있는지 여부를 결정하기 위해 버전 번호를 볼 수 있도록 버전 번호 정보가 포함될 수 있다. 본질적으로, 어떤 상황에서는, 응용 서버 B가 업데이트 작업을 수행하지만, 캐시 데이터가 종국에는 성공적으로 업데이트되었는지 여부는 캐시 서버에 의해 결정될 필요가 있다. 이러한 업데이트 방법은 본 출원에서의 해결책의 구현에 영향을 미치지 않는다.
이전 구현예에서, 데이터 동기화 소스단은 국부적 데이터베이스의 수정 세부사항을 실시간 통지에 추가하고 실시간 통지의 낮은 지연 특성을 사용하므로, 데이터 동기화 타겟단은 기저부 데이터베이스의 동기화가 완료되기 전에 국부적 데이터베이스에서의 캐시의 동기화 업데이트를 완료할 수 있다. 그러나, 실제 응용에서는, 실시간 통지에서 전송될 수 있는 정보의 양은 통지 메시지 센터의 전송 대역폭 및 저장 용량과 같은 복수의 객관적인 인자들에 의해 제한될 수 있다. 한 번에 데이터 동기화 소스단에 의해 수정되는 데이터의 양이 너무 많으면, 실시간 통지를 통해 이러한 수정 세부사항을 데이터 동기화 타겟단에 전송하기가 어렵다. 본 출원은 이러한 상황에 대응하는 해결책을 제공한다. 이전의 실시간 통지는 메시지 시스템을 사용하여 전송될 수 있다. 예를 들어, 종래의 메시지 시스템이 사용될 수 있거나 또는 전용 메시지 시스템이 구축될 수 있다. 메시지 시스템의 구조 및 형태는 제한되지 않는다.
도 6은 본 출원의 해결책을 활성-활성 시스템에 적용하는 다른 데이터 동기화 프로시저를 도시한다. 설명의 용이화를 위해, 아래의 구현예는 도 3에서 도시된 시스템 아키텍처를 참조하여 전체 프로시저를 설명한다.
S201. 데이터 동기화 소스단은 소스단 데이터베이스의 데이터가 수정되었다고 결정한다.
본 단계는 S101과 유사하다. 세부사항은 이 구현예에서 다시 설명하지 않는다.
S202. 데이터 동기화 소스단은 이 데이터 수정에 대한 실시간 통지를 생성하고, 실시간 통지를 데이터 동기화 타겟단에 전송한다.
응용 서버 A가 데이터베이스 A에 대해 데이터 기록 작업을 수행할 때, 각각의 기록 작업에 대한 식별자 정보가 생성된다. 예를 들어, 식별자 정보는 특정 알고리즘을 이용하여 생성된 시퀀스 번호 또는 식별자 문자열일 수 있다. 데이터베이스 A에 대해 기록 요청이 개시된 경우, 응용 서버 A는 식별자 정보와 함께 수정될 필요가 있는 데이터의 세부사항(예컨대, 값, 데이터 테이블 식별자, 행 식별자 및 열 식별자)을 데이터베이스 A에 제출한다. 이 구현예에서, 실시간 통지 메시지 본문의 제한된 베어러 용량으로 인해, 응용 서버 A는 식별자 정보를 실시간 통지에 기록한다. 실시간 통지는, 생성된 후, 즉시 데이터 동기화 타겟단에 전송된다.
S203. 응용 서버 A가 데이터베이스 A에 데이터를 성공적으로 기록한 후, 데이터베이스 A는 이 수정을 위해 데이터베이스에 대해 동기화 작업을 개시하기 시작한다(S203). 동기화 프로세스에서, 이전 수정의 식별자 정보가 또한 특정 데이터 수정 내용과 함께 데이터베이스 B에 전송된다.
이전 구현예와 마찬가지로, 데이터 동기화 소스단에 있어서, 단계 S202와 단계 S203은 비교적 독립적인 두 개의 작업들이다. 따라서, 두 단계들을 수행하는 순서는 제한되지 않는다. 데이터 동기화 타겟단에 있어서, 실시간 통지가 수신된 후 단계 S204가 수행된다.
S204. 데이터 동기화 타겟단은 실시간 통지를 파싱함으로써 데이터 수정 작업 식별자를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스를 모니터링한다.
데이터 동기화 타겟단에서는, 응용 서버 B가 실시간 통지 수신 포트에 대해 실시간 검출을 수행한다. 실시간 통지가 수신된 후, 응용 서버 B는 즉시 이 실시간 통지를 파싱한다. 이 구현예에서, 실시간 통지를 파싱함으로써, 데이터베이스 A에 대해 소스단에 의해 수행된 수정의 작업 식별자를 획득한 후, 응용 서버 B는 데이터베이스 B를 모니터링하여 이 식별자를 찾기 시작한다.
S205. 데이터 동기화 소스단으로부터 데이터 동기화 타겟단의 기저부 데이터베이스로의 동기화가 완료된다.
S206. 데이터 동기화 소스단은 타겟단 데이터베이스의 동기화된 내용에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트한다.
모니터링을 통해, 식별자에 대응하는 수정 작업이 데이터베이스 A로부터 데이터베이스 B로 동기화된 것을 검출한 후, 응용 서버는 데이터베이스 B로부터 대응하는 데이터를 판독하고 판독 결과에 기초하여 국부적 데이터베이스에서의 캐시 B를 업데이트한다.
실시간 통지 전송 속도가 기저부 데이터베이스의 동기화 속도보다 높기 때문에, 실시간 통지를 수신한 후, 응용 서버 B는 보통 일정 시구간 후에 캐시 B를 업데이트할 수 있다. 이전 구현예와는 대조적으로, 이 구현예에서는, 데이터 동기화 타겟단이 기저부 데이터베이스의 동기화가 완료된 후에만 국부적 캐시를 업데이트할 수 있다. 그러나, 실시간 통지는, 기저부 데이터베이스가 수정될 것임을 데이터 동기화 타겟단이 미리 학습할 수 있도록 사용된다. 모니터링을 통해, 동기화가 완료된 직후 데이터를 획득함으로써 캐시가 업데이트될 수 있다. 따라서, 캐시 동기화 업데이트 지연은 여전히, 종래의 기술적 해결책과 비교하여, 어느 정도 감소될 수 있다.
이전 구현예들에서 설명된 두 개의 데이터 동기화 방법들은 상이한 레벨들에서 데이터 동기화 타겟단에서의 캐시의 동기화 업데이트 지연을 감소시킬 수 있다. 실시간 통지의 용량이 제한되지 않는 경우, 비교적 낮은 지연을 전달하도록 첫번째 해결책이 선택될 수 있다. 실제 응용에서는, 응용 서버에 의해 수정될 데이터베이스의 데이터 양은 일반적으로 불확실하다. 고객 정보 파일(customer information file; CIF) 시스템이 예시로서 사용된다. 개인 사용자 정보를 수정하는 데이터 양은 상대적으로 작다. 많은 수의 하위 계정과 연관된 대형 계정의 경우, 수정 작업에는 많은 수의 하위 계정들에서의 데이터의 변경이 수반될 수 있다. 본 출원은 이러한 상황을 위한 적응적 데이터 동기화 해결책을 더 제공한다.
소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 데이터 동기화 소스단은 먼저 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정한다. 임계치는 실시간 통지의 베어러 용량에 기초하여 결정되며, 실시간 통지의 베어러 용량은 통지 메시지 센터의 전송 대역폭 및 저장 용량과 같은 인자들에 의존한다. 물론, 임계치는 실시간 통지의 생성 동안에 수행되는 압축 및 인코딩과 같은 인자들에 기초하여 추가로 결정될 수 있다. 결론적으로, 실시간 통지가 이 수정 작업과 관련된 수정 세부사항을 포함할 수 있다고 결정되는 경우, 이 수정과 관련된 특정 값 정보를 적어도 포함하는 수정 세부사항이 실시간 통지에 기록된다. 실시간 통지가 이 수정 작업과 관련된 수정 세부사항을 포함할 수 없다고 결정되는 경우, 이 수정의 작업 식별자만이 실시간 통지에 기록된다.
실시간 통지를 수신한 후, 데이터 동기화 타겟단은 먼저 실시간 통지를 파싱한다. 파싱 결과가 수정과 관련된 특정 값 정보를 포함하면, 타겟단 데이터베이스에서의 캐시는 파싱 결과에 기초하여 직접 업데이트되고, 그렇지 않은 경우에는, 파싱에 의해 획득된 수정 작업 식별자에 기초하여 타겟단 데이터베이스가 모니터링된다. 식별자에 대응하는 수정 작업이 소스단 데이터베이스로부터 타겟단 데이터베이스로 동기화된 것이 검출되면, 타겟단 데이터베이스로부터 대응하는 데이터를 획득함으로써 타겟단 데이터베이스에서의 캐시가 업데이트된다.
이전 해결책에서는, 데이터 동기화 소스단이 수정과 관련된 데이터 양에 기초하여 상이한 내용들을 포함하는 실시간 통지를 적응적으로 생성한다. 따라서, 소규모 데이터 수정의 경우, 데이터 동기화 타겟단은 기저부 데이터베이스의 동기화의 완료를 기다리지 않고서 국부적 캐시에서 데이터를 업데이트할 수 있다. 대규모 데이터 수정의 경우, 동기화가 완료된 직후 국부적 캐시에서 데이터가 업데이트될 수 있다.
단하나의 데이터 수정에 대한 캐시의 동기화 업데이트 프로세스가 이전의 구현예들에서 도시되어 있음을 이해할 수 있다. 지속적인 데이터 수정을 위해서는, 이전 프로시저만이 반복될 필요가 있다. 또한, 활성-활성 시스템만이 이전 구현예들에서 설명을 위한 예시로서 사용된다. 적어도 세 개의 데이터 센터들을 포함하는 멀티 활성 시스템의 경우, 데이터 동기화 소스단과 데이터 동기화 타겟단의 캐시 업데이트 프로시저는 유사하다. 본 출원의 구현 세부사항은 여기서 반복하지 않는다.
본 출원은 데이터 동기화 소스단 장치를 더 제공한다. 도 7에서 도시된 바와 같이, 본 장치는 실시간 통지 생성 모듈(110) 및 실시간 통지 전송 모듈(120)을 포함할 수 있다.
실시간 통지 생성 모듈(110)은 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 데이터 수정에 대한 실시간 통지를 생성하도록 구성되며, 여기서, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다.
실시간 통지 전송 모듈(120)은 실시간 통지를 데이터 동기화 타겟단에 전송하도록 구성된다. 따라서, 실시간 통지를 수신한 후, 데이터 동기화 타겟단은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트한다.
본 출원의 특정 구현예에서, 실시간 통지 생성 모듈(110)은 구체적으로, 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정과 관련된 특정 값 정보를 실시간 통지에 기록하도록 구성될 수 있다.
본 출원의 특정 구현예에서, 실시간 통지 생성 모듈(110)은 구체적으로, 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정의 작업 식별자를 실시간 통지에 기록하도록 구성될 수 있다.
본 출원의 특정 구현예에서, 실시간 통지 생성 모듈(110)은 구체적으로, 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정하도록 구성될 수 있으며; 그러하지 않은 경우, 이 수정과 관련된 특정 값 정보를 실시간 통지에 기록하거나, 또는 그러한 경우, 이 수정의 작업 식별자를 실시간 통지에 기록한다.
본 출원의 특정 구현예에서, 데이터 동기화 소스단 장치는 데이터 동기화 소스단 응용 서버에 배치될 수 있다.
본 출원은 데이터 동기화 타겟단 장치를 더 제공한다. 도 8에서 도시된 바와 같이, 본 장치는 실시간 통지 수신 모듈(210) 및 캐시 데이터 업데이트 모듈(220)을 포함할 수 있다.
실시간 통지 수신 모듈(210)은 데이터 동기화 소스단에 의해 전송된 실시간 통지를 수신하도록 구성된다.
캐시 데이터 업데이트 모듈(220)은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된다.
데이터 동기화 소스단이 소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 이 데이터 수정에 대한 실시간 통지가 생성되고 전송되며, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다.
본 출원의 특정 구현예에서, 실시간 통지는 이 수정과 관련된 특정 값 정보를 포함할 수 있다.
이에 따라, 캐시 데이터 업데이트 모듈(220)은 구체적으로, 파싱에 의해 획득된 수정 관련 특정 값 정보에 기초하여 타겟단 데이터베이스에서의 캐시를 직접 업데이트하도록 구성될 수 있다.
본 출원의 특정 구현예에서, 실시간 통지는 이러한 수정의 작업 식별자를 포함할 수 있다.
이에 따라, 캐시 데이터 업데이트 모듈(220)은 구체적으로, 파싱에 의해 획득된 수정 작업 식별자에 기초하여 타겟단 데이터베이스를 모니터링하도록 구성될 수 있으며, 식별자에 대응하는 수정 작업이 소스단 데이터베이스로부터 타겟단 데이터베이스로 동기화된 것이 검출되면, 타겟단 데이터베이스의 동기화된 내용에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트한다.
본 출원의 특정 구현예에서, 실시간 통지는 이 수정의 작업 식별자 또는 이 수정과 관련된 특정 값 정보를 포함할 수 있다.
이에 따라, 캐시 데이터 업데이트 모듈(220)은 구체적으로, 파싱 결과가 수정 관련 특정 값 정보인 경우 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 직접 업데이트하거나, 또는 파싱 결과가 수정 작업 식별자인 경우, 식별자에 기초하여 타겟단 데이터베이스를 모니터링하고, 식별자에 대응하는 수정 작업이 소스단 데이터베이스로부터 타겟단 데이터베이스로 동기화된 것이 검출되면, 타겟단 데이터베이스의 동기화된 내용에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성될 수 있다.
본 출원의 특정 구현예에서, 데이터 동기화 타겟단 장치는 데이터 동기화 타겟단 응용 서버에 배치될 수 있다.
본 출원은 데이터 동기화 시스템을 더 제공한다. 도 9에서 도시된 바와 같이, 본 시스템은 데이터 동기화 소스단 장치(100) 및 데이터 동기화 타겟단 장치(200)를 포함할 수 있다.
데이터 동기화 소스단 장치(100)는 실시간 통지 생성 모듈(110) 및 실시간 통지 전송 모듈(120)을 포함할 수 있다.
실시간 통지 생성 모듈(110)은 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 데이터 수정에 대한 실시간 통지를 생성하도록 구성되며, 여기서, 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한다.
실시간 통지 전송 모듈(120)은 실시간 통지를 데이터 동기화 타겟단에 전송하도록 구성된다.
데이터 동기화 타겟단 장치(200)는 실시간 통지 수신 모듈(210) 및 캐시 데이터 업데이트 모듈(220)을 포함할 수 있다.
실시간 통지 수신 모듈(210)은 실시간 통지를 수신하도록 구성된다.
캐시 데이터 업데이트 모듈(220)은 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된다.
본 출원의 특정 구현예에서, 실시간 통지 생성 모듈(120)은 구체적으로, 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정과 관련된 특정 값 정보를 실시간 통지에 기록하도록 구성될 수 있다.
이에 따라, 캐시 데이터 업데이트 모듈(220)은 구체적으로, 파싱에 의해 획득된 수정 관련 특정 값 정보에 기초하여 타겟단 데이터베이스에서의 캐시를 직접 업데이트하도록 구성될 수 있다.
본 출원의 다른 특정 구현예에서, 실시간 통지 생성 모듈(120)은 구체적으로, 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정의 작업 식별자를 실시간 통지에 기록하도록 구성될 수 있다.
이에 따라, 캐시 데이터 업데이트 모듈(220)은 구체적으로, 파싱에 의해 획득된 수정 작업 식별자에 기초하여 타겟단 데이터베이스를 모니터링하도록 구성될 수 있으며, 식별자에 대응하는 수정 작업이 소스단 데이터베이스로부터 타겟단 데이터베이스로 동기화된 것이 검출되면, 타겟단 데이터베이스의 동기화된 내용에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성될 수 있다.
본 출원의 다른 특정 구현예에서, 실시간 통지 생성 모듈(120)은 구체적으로, 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정하고; 이 수정의 데이터 양이 미리 결정된 임계치를 초과하지 않는 경우, 이 수정과 관련된 특정 값 정보를 실시간 통지에 기록하거나, 또는 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는 경우, 이 수정의 작업 식별자를 실시간 통지에 기록하도록 구성될 수 있다.
이에 따라, 캐시 데이터 업데이트 모듈(220)은 구체적으로, 파싱 결과가 수정 관련 특정 값 정보인 경우 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 직접 업데이트하거나, 또는 파싱 결과가 수정 작업 식별자인 경우, 식별자에 기초하여 타겟단 데이터베이스를 모니터링하고, 식별자에 대응하는 수정 작업이 소스단 데이터베이스로부터 타겟단 데이터베이스로 동기화된 것이 검출되면, 타겟단 데이터베이스의 동기화된 내용에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성될 수 있다.
장치 내의 각각의 모듈의 기능 및 역할의 구현 프로세스에 대해서는, 이전 방법에서의 대응하는 단계의 구현 프로세스를 참조한다. 상세사항은 여기서 다시 설명하지 않는다.
실제 응용 설계에서, 데이터 동기화 소스단 장치 및 데이터 동기화 타겟단 장치의 모든 관련된 기능 모듈들은 도 3에서 도시된 바와 같이, 응용 서버들과는 비교적 독립적인 물리적 엔티티들(예를 들어, 전용 서버들)에 개별적으로 위치될 수 있다. 대안적으로, 기능 모듈들의 일부 또는 전부는 응용 서버들에 위치할 수 있다. 동기화 장치들의 모든 기능 모듈들이 응용 서버에 위치하는 경우, 본질적으로, 데이터 동기화 소스단과 데이터 동기화 타겟단 양 측의 동기화 장치들의 기능들은 양 측 상의 응용 서버들에 통합되며, 대응 시스템 아키텍처는 도 4에서 도시된 바와 같이 단순화될 수 있으며, 동기화 장치들과 응용 서버들 간의 상호작용은 응용 서버들 내의 내부 상호작용으로서 단순화된다.
본 출원에서 제공되는 데이터 동기화 소스단 장치 및 데이터 동기화 타겟단 장치는 서버와 같은 하드웨어 디바이스 상에 개별적으로 배치될 수 있다. 도 10은 본 출원에 따른 이전 장치를 구성하기 위한 디바이스의 하드웨이 구조를 도시하는 개략도이다. 디바이스는 프로세서(1010), 메모리(1020), 입력/출력 인터페이스(1030), 통신 인터페이스(1040), 및 버스(1050)를 포함할 수 있다. 프로세서(1010), 메모리(1020), 입력/출력 인터페이스(1030), 및 통신 인터페이스(1040)는 버스(1050)를 사용하여 디바이스에서 상호 통신 연결을 구현한다.
프로세서(1010)는 본 출원에서 제공된 기술적 해결책을 구현하기 위해 관련 프로그램을 실행하도록 구성된, 범용 중앙 처리 장치(CPU), 마이크로프로세서, 주문형 집적 회로(ASIC), 또는 하나 이상의 집적 회로일 수 있다.
메모리(1020)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 정적 저장 장치, 동적 저장 장치 등의 형태로 구현될 수 있다. 메모리(1020)는 운영체제 및 다른 응용 프로그램을 저장할 수 있다. 본 출원에서 제공된 기술적 해결책이 소프트웨어 또는 펌웨어를 사용하여 구현될 때, 관련된 프로그램 코드는 메모리(1020)에 저장되고 프로세서(1010)에 의해 호출되어 실행된다.
입력/출력 인터페이스(1030)는 정보 입출력을 구현하기 위해 입력/출력 모듈에 연결되도록 구성된다. 입력/출력 모듈은 디바이스 내의 컴포넌트(도면에서는 도시되지 않음)로서 구성될 수 있거나, 또는 대응하는 기능을 제공하기 위해 디바이스에 연결될 수 있다. 입력 디바이스는 키보드, 마우스, 터치스크린, 마이크로폰, 센서 등을 포함할 수 있다. 출력 디바이스는 디스플레이, 확성기, 진동기, 표시기 등을 포함할 수 있다.
통신 인터페이스(1040)는 본 디바이스와 다른 디바이스 간의 통신 및 상호작용을 구현하도록 통신 모듈(도면에서는 도시되지 않음)에 연결하도록 구성된다. 통신 모듈은 (USB 또는 네트워크 케이블과 같은) 유선 방식으로 통신을 구현하거나, 또는 (모바일 네트워크, Wi-Fi, 또는 블루투스와 같은) 무선 방식으로 통신을 구현할 수 있다.
버스(1050)는 디바이스의 (프로세서(1010), 메모리(1020), 입력/출력 인터페이스(1030), 및 통신 인터페이스(1040)와 같은) 컴포넌트들 간에 정보를 전송하기 위한 채널을 포함한다.
이전 디바이스의 프로세서(1010), 메모리(1020), 입력/출력 인터페이스(1030), 통신 인터페이스(1040), 및 버스(1050)만이 도시되어 있지만, 특정 구현 프로세스에서, 디바이스는 정상 구동에 필수적인 다른 컴포넌트를 더 포함할 수 있다는 것을 유의해야 한다. 또한, 당업자는 디바이스가 본 출원의 해결책을 구현하는데 필요한 컴포넌트만을 포함할 수 있으며, 도면에서 도시된 모든 컴포넌트들을 반드시 포함하는 것은 아님을 이해할 수 있다.
본 구현예들의 설명으로부터, 본 출원은 필요한 범용 하드웨어 플랫폼에 더하여 소프트웨어를 사용하여 구현될 수 있음을 당업자는 명확히 이해할 수 있다는 것이 학습될 수 있다. 이러한 이해에 기초하여, 본 출원의 기술적 해결책은 본질적으로 또는 종래의 기술에 기여하는 부분은 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 ROM/RAM, 자기 디스크, 또는 광학 디스크와 같은 저장 매체에 저장될 수 있으며, 본 출원의 구현예들 또는 구현예들의 일부에서 설명된 방법들을 수행하도록 컴퓨터 디바이스(개인용 컴퓨터, 서버, 또는 네트워크 디바이스)에 명령하기 위한 여러 개의 명령어들을 포함한다.
본 명세서에서의 구현예들은 점진적으로 설명된다. 구현예들에서 동일하거나 유사한 부분들에 대해서는, 서로를 참조한다. 각 구현예는 다른 구현예들과의 차이점에 중점을 둔다. 특히, 장치 또는 시스템 구현예는 방법 구현예와 유사하며, 따라서 간략하게 설명된다. 관련 부분들에 대해서는, 방법 구현예에서의 관련 설명을 참조한다. 설명된 장치 또는 시스템 구현예들은 단지 예시일 뿐이다. 별개의 부분들로서 설명된 모듈들은 물리적으로 분리되어 있거나 분리되지 않을 수 있다. 본 출원의 해결책이 구현될 때, 각 모듈의 기능은 하나 이상의 소프트웨어 및/또는 하드웨어 조각들로 구현될 수 있다. 모듈들의 일부 또는 전부는 본 구현예들의 해결책의 목적을 달성하기 위해 실제 요구에 기초하여 선택될 수 있다. 당업자는 독창적인 노력없이 본 출원의 구현예들을 이해하고 구현할 수 있다.
이전 설명들은 단지 본 출원의 특정 구현예에 불과하다. 당업자는 본 출원의 원리로부터 벗어나지 않고서 몇가지 개선 또는 수정을 할 수 있고, 이러한 개선 또는 수정은 본 출원의 보호 범위 내에 속해야 함을 유의해야 한다.

Claims (23)

  1. 데이터 동기화 방법에 있어서,
    소스단(source end) 데이터베이스의 데이터가 수정되었다고 결정한 후, 데이터 동기화 소스단에 의해, 이 데이터 수정에 대한 실시간 통지를 생성하고, 상기 실시간 통지를 데이터 동기화 타겟단(target end)에 전송하는 단계 - 상기 실시간 통지는 이 데이터 수정과 관련된 정보를 포함함 -; 및
    상기 실시간 통지를 수신한 후, 상기 데이터 동기화 타겟단에 의해, 상기 실시간 통지를 파싱(parsing)함으로써 데이터 수정 관련 정보를 획득하고, 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계
    를 포함하는 데이터 동기화 방법.
  2. 제1항에 있어서,
    데이터 동기화 소스단에 의해, 이 데이터 수정에 대한 실시간 통지를 생성하는 단계는, 이 수정에 관련된 특정 값 정보를 상기 실시간 통지에 기록하는 단계를 포함하며,
    상기 데이터 동기화 타겟단에 의해, 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계는, 파싱에 의해 획득된 상기 수정 관련 특정 값 정보에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 직접 업데이트하는 단계를 포함한 것인 데이터 동기화 방법.
  3. 제1항에 있어서,
    데이터 동기화 소스단에 의해, 이 데이터 수정에 대한 실시간 통지를 생성하는 단계는, 이 수정의 작업 식별자를 상기 실시간 통지에 기록하는 단계를 포함하며,
    상기 데이터 동기화 타겟단에 의해, 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계는, 파싱에 의해 획득된 상기 수정 작업 식별자에 기초하여 상기 타겟단 데이터베이스를 모니터링하는 단계, 및 상기 식별자에 대응하는 수정 작업이 상기 소스단 데이터베이스로부터 상기 타겟단 데이터베이스로 동기화된 것이 검출되면, 상기 타겟단 데이터베이스의 동기화된 내용에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한 것인 데이터 동기화 방법.
  4. 제1항에 있어서,
    데이터 동기화 소스단에 의해, 이 데이터 수정에 대한 실시간 통지를 생성하는 단계는,
    이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정하는 단계; 및 이 수정의 데이터 양이 미리 결정된 임계치를 초과하지 않은 경우, 이 수정과 관련된 특정 값 정보를 상기 실시간 통지에 기록하거나, 또는 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는 경우, 이 수정의 작업 식별자를 상기 실시간 통지에 기록하는 단계를 포함하며,
    상기 데이터 동기화 타겟단에 의해, 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계는,
    상기 파싱 결과가 수정 관련 특정 값 정보인 경우, 상기 파싱 결과에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 직접 업데이트하는 단계; 또는
    상기 파싱 결과가 수정 작업 식별자인 경우, 상기 식별자에 기초하여 상기 타겟단 데이터베이스를 모니터링하는 단계, 및 상기 식별자에 대응하는 수정 작업이 상기 소스단 데이터베이스로부터 상기 타겟단 데이터베이스로 동기화된 것이 검출될 때, 상기 타겟단 데이터베이스의 동기화된 내용에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한 것인 데이터 동기화 방법.
  5. 데이터 동기화 방법에 있어서, 상기 데이터 동기화 방법은 데이터 동기화 소스단에 적용되며,
    소스단 데이터베이스의 데이터가 수정되었다고 결정한 후 이 데이터 수정에 대한 실시간 통지를 생성하는 단계 - 상기 실시간 통지는 이 데이터 수정과 관련된 정보를 포함함 -; 및
    상기 실시간 통지를 데이터 동기화 타겟단에 전송하고, 이에 따라, 상기 데이터 동기화 타겟단이, 상기 실시간 통지를 수신한 후, 상기 실시간 통지를 파싱함으로써 상기 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 하는 단계
    를 포함하는 데이터 동기화 방법.
  6. 제5항에 있어서,
    이 데이터 수정에 대한 실시간 통지를 생성하는 단계는,
    이 수정과 관련된 특정 값 정보를 상기 실시간 통지에 기록하는 단계를 포함한 것인 데이터 동기화 방법.
  7. 제5항에 있어서,
    이 데이터 수정에 대한 실시간 통지를 생성하는 단계는,
    이 수정의 작업 식별자를 상기 실시간 통지에 기록하는 단계를 포함한 것인 데이터 동기화 방법.
  8. 제5항에 있어서,
    이 데이터 수정에 대한 실시간 통지를 생성하는 단계는,
    이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정하는 단계; 및 이 수정의 데이터 양이 미리 결정된 임계치를 초과하지 않은 경우, 이 수정과 관련된 특정 값 정보를 상기 실시간 통지에 기록하거나, 또는 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는 경우, 이 수정의 작업 식별자를 상기 실시간 통지에 기록하는 단계를 포함한 것인 데이터 동기화 방법.
  9. 데이터 동기화 방법에 있어서, 상기 데이터 동기화 방법은 데이터 동기화 타겟단에 적용되며,
    데이터 동기화 소스단에 의해, 전송된 실시간 통지를 수신하는 단계; 및
    상기 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계
    를 포함하고,
    상기 데이터 동기화 소스단이 소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 이 데이터 수정에 대한 실시간 통지가 생성되고 전송되며, 상기 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한 것인 데이터 동기화 방법.
  10. 제9항에 있어서,
    상기 실시간 통지는 이 수정과 관련된 특정 값 정보를 포함하며,
    파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계는, 파싱에 의해 획득된 상기 수정 관련 특정 값 정보에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 직접 업데이트하는 단계를 포함한 것인 데이터 동기화 방법.
  11. 제9항에 있어서,
    상기 실시간 통지는 이 수정의 작업 식별자를 포함하고,
    파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계는, 파싱에 의해 획득된 상기 수정 작업 식별자에 기초하여 상기 타겟단 데이터베이스를 모니터링하는 단계, 및 상기 식별자에 대응하는 수정 작업이 상기 소스단 데이터베이스로부터 상기 타겟단 데이터베이스로 동기화된 것이 검출될 때, 상기 타겟단 데이터베이스의 동기화된 내용에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한 것인 데이터 동기화 방법.
  12. 제9항에 있어서,
    상기 실시간 통지는 이 수정과 관련된 특정 값 정보 또는 이 수정의 작업 식별자를 포함하며,
    이 데이터 수정에 대한 실시간 통지를 생성하는 단계는,
    이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정하는 단계; 및 이 수정의 데이터 양이 미리 결정된 임계치를 초과하지 않은 경우, 이 수정과 관련된 특정 값 정보를 상기 실시간 통지에 기록하거나, 또는 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는 경우, 이 수정의 작업 식별자를 상기 실시간 통지에 기록하는 단계를 포함하며,
    상기 데이터 동기화 타겟단에 의해, 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계는,
    상기 파싱 결과가 수정 관련 특정 값 정보인 경우, 상기 파싱 결과에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 직접 업데이트하는 단계; 또는
    상기 파싱 결과가 수정 작업 식별자인 경우, 상기 식별자에 기초하여 상기 타겟단 데이터베이스를 모니터링하는 단계, 및 상기 식별자에 대응하는 수정 작업이 상기 소스단 데이터베이스로부터 상기 타겟단 데이터베이스로 동기화된 것이 검출될 때, 상기 타겟단 데이터베이스의 동기화된 내용에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 업데이트하는 단계를 포함한 것인 데이터 동기화 방법.
  13. 데이터 동기화 소스단 장치에 있어서, 상기 장치는 실시간 통지 생성 모듈 및 실시간 통지 전송 모듈을 포함하고,
    상기 실시간 통지 생성 모듈은 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 데이터 수정에 대한 실시간 통지를 생성하도록 구성되며, 상기 실시간 통지는 이 데이터 수정과 관련된 정보를 포함하고,
    상기 실시간 통지 전송 모듈은, 상기 실시간 통지를 데이터 동기화 타겟단에 전송하고, 이에 따라, 상기 데이터 동기화 타겟단이, 상기 실시간 통지를 수신한 후, 상기 실시간 통지를 파싱함으로써 상기 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하게 하도록 구성된 것인 데이터 동기화 소스단 장치.
  14. 제13항에 있어서,
    상기 실시간 통지 생성 모듈은 구체적으로, 상기 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정과 관련된 특정 값 정보를 상기 실시간 통지에 기록하도록 구성된 것인 데이터 동기화 소스단 장치.
  15. 제13항에 있어서,
    상기 실시간 통지 생성 모듈은 구체적으로, 상기 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정의 작업 식별자를 상기 실시간 통지에 기록하도록 구성된 것인 데이터 동기화 소스단 장치.
  16. 제13항에 있어서,
    상기 실시간 통지 생성 모듈은 구체적으로, 상기 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는지 여부를 결정하고, 이 수정의 데이터 양이 미리 결정된 임계치를 초과하지 않은 경우, 이 수정과 관련된 특정 값 정보를 실시간 통지에 기록하거나, 또는 이 수정의 데이터 양이 미리 결정된 임계치를 초과하는 경우, 이 수정의 작업 식별자를 실시간 통지에 기록하도록 구성된 것인 데이터 동기화 소스단 장치.
  17. 제13항에 있어서,
    상기 데이터 동기화 소스단 장치는 데이터 동기화 소스단 응용 서버에 배치된 것인 데이터 동기화 소스단 장치.
  18. 데이터 동기화 타겟단 장치에 있어서, 상기 장치는 실시간 통지 수신 모듈 및 캐시 데이터 업데이트 모듈을 포함하고,
    상기 실시간 통지 수신 모듈은 데이터 동기화 소스단에 의해 전송된 실시간 통지를 수신하도록 구성되고,
    상기 캐시 데이터 업데이트 모듈은 상기 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하며,
    상기 데이터 동기화 소스단이 소스단 데이터베이스의 데이터가 수정되었다고 결정한 후, 이 데이터 수정에 대한 실시간 통지가 생성되고 전송되며, 상기 실시간 통지는 이 데이터 수정과 관련된 정보를 포함한 것인 데이터 동기화 타겟단 장치.
  19. 제18항에 있어서,
    상기 실시간 통지는 이 수정과 관련된 특정 값 정보를 포함하며,
    상기 캐시 데이터 업데이트 모듈은 구체적으로, 파싱에 의해 획득된 수정 관련 특정 값 정보에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 직접 업데이트하도록 구성된 것인 데이터 동기화 타겟단 장치.
  20. 제18항에 있어서,
    상기 실시간 통지는 이 수정의 작업 식별자를 포함하고,
    상기 캐시 데이터 업데이트 모듈은 구체적으로, 파싱에 의해 획득된 수정 작업 식별자에 기초하여 상기 타겟단 데이터베이스를 모니터링하며, 상기 식별자에 대응하는 수정 작업이 상기 소스단 데이터베이스로부터 상기 타겟단 데이터베이스로 동기화된 것이 검출되면, 상기 타겟단 데이터베이스의 동기화된 내용에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된 것인 데이터 동기화 타겟단 장치.
  21. 제18항에 있어서,
    상기 실시간 통지는 이 수정과 관련된 특정 값 정보 또는 이 수정의 작업 식별자를 포함하며,
    상기 캐시 데이터 업데이트 모듈은 구체적으로, 상기 파싱 결과가 수정 관련 특정 값 정보인 경우 상기 파싱 결과에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 직접 업데이트하거나, 또는 상기 파싱 결과가 수정 작업 식별자인 경우, 상기 식별자에 기초하여 상기 타겟단 데이터베이스를 모니터링하고, 상기 식별자에 대응하는 수정 작업이 상기 소스단 데이터베이스로부터 상기 타겟단 데이터베이스로 동기화된 것이 검출되면, 상기 타겟단 데이터베이스의 동기화된 내용에 기초하여 상기 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된 것인 데이터 동기화 타겟단 장치.
  22. 제18항에 있어서,
    상기 데이터 동기화 타겟단 장치는 데이터 동기화 타겟단 응용 서버에 배치된 것인 데이터 동기화 타겟단 장치.
  23. 데이터 동기화 시스템에 있어서, 상기 시스템은 데이터 동기화 소스단 장치 및 데이터 동기화 타겟단 장치를 포함하고,
    상기 데이터 동기화 소스단 장치는 실시간 통지 생성 모듈 및 실시간 통지 전송 모듈을 포함하고,
    상기 실시간 통지 생성 모듈은 소스단 데이터베이스의 데이터가 수정되었다고 결정된 후 이 데이터 수정에 대한 실시간 통지를 생성하도록 구성되며, 상기 실시간 통지는 이 데이터 수정과 관련된 정보를 포함하고,
    상기 실시간 통지 전송 모듈은 상기 실시간 통지를 데이터 동기화 타겟단에 전송하도록 구성되고;
    상기 데이터 동기화 타겟단 장치는 실시간 통지 수신 모듈 및 캐시 데이터 업데이트 모듈을 포함하고,
    상기 실시간 통지 수신 모듈은 상기 실시간 통지를 수신하도록 구성되며,
    상기 캐시 데이터 업데이트 모듈은 상기 실시간 통지를 파싱함으로써 데이터 수정 관련 정보를 획득하고 파싱 결과에 기초하여 타겟단 데이터베이스에서의 캐시를 업데이트하도록 구성된 것인 데이터 동기화 시스템.
KR1020187023616A 2016-01-18 2017-01-09 데이터 동기화 방법, 장치, 및 시스템 KR102153804B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610031809.X 2016-01-18
CN201610031809.XA CN106980625B (zh) 2016-01-18 2016-01-18 一种数据同步方法、装置及***
PCT/CN2017/070648 WO2017124938A1 (zh) 2016-01-18 2017-01-09 一种数据同步方法、装置及***

Publications (2)

Publication Number Publication Date
KR20180105675A true KR20180105675A (ko) 2018-09-28
KR102153804B1 KR102153804B1 (ko) 2020-09-09

Family

ID=59340589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187023616A KR102153804B1 (ko) 2016-01-18 2017-01-09 데이터 동기화 방법, 장치, 및 시스템

Country Status (10)

Country Link
US (3) US11010404B2 (ko)
EP (1) EP3407527B1 (ko)
JP (1) JP6745884B2 (ko)
KR (1) KR102153804B1 (ko)
CN (1) CN106980625B (ko)
MY (1) MY185258A (ko)
PH (1) PH12018501520A1 (ko)
SG (1) SG11201806007RA (ko)
TW (1) TW201730784A (ko)
WO (1) WO2017124938A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200144768A (ko) * 2019-06-19 2020-12-30 주식회사 코비젼 다중 웹서버 환경의 공용자원 동기화 시스템

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980625B (zh) 2016-01-18 2020-08-04 阿里巴巴集团控股有限公司 一种数据同步方法、装置及***
US11669320B2 (en) 2016-02-12 2023-06-06 Nutanix, Inc. Self-healing virtualized file server
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
CN106412071A (zh) * 2016-10-08 2017-02-15 中国工商银行股份有限公司 一种数据同步方法及装置
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
CN107465767B (zh) * 2017-09-29 2020-06-23 网宿科技股份有限公司 一种数据同步的方法和***
US10521139B2 (en) * 2017-12-14 2019-12-31 International Business Machines Corporation Copy source to target management in a data storage system
CN108337303A (zh) * 2018-01-24 2018-07-27 ***股份有限公司 一种数据同步方法和分布式***
CN110309157A (zh) * 2018-03-06 2019-10-08 北京京东尚科信息技术有限公司 一种数据同步更新方法和装置
CN108200219B (zh) * 2018-03-13 2020-04-14 Oppo广东移动通信有限公司 数据同步方法、装置、服务器及存储介质
CN108551484B (zh) * 2018-04-23 2021-04-20 平安科技(深圳)有限公司 用户信息同步方法、装置、计算机装置及存储介质
CN109254997B (zh) * 2018-08-27 2020-12-11 广州城市信息研究所有限公司 数据同步方法、***、计算机设备和可读存储介质
CN109284300A (zh) * 2018-08-31 2019-01-29 江苏龙虎网信息科技股份有限公司 一种客户端海量数据实时更新方法
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
CN109714394B (zh) * 2018-12-05 2021-11-09 深圳店匠科技有限公司 跨境多服务端的信息同步方法、***和存储介质
CN109814791B (zh) * 2018-12-20 2020-11-13 东软集团股份有限公司 处理流程节点的方法、装置、存储介质及电子设备
CN109753511B (zh) * 2018-12-28 2020-12-04 北京东方国信科技股份有限公司 一种大数据平台的跨地域实时同步方法及***
CN109783580A (zh) * 2019-01-24 2019-05-21 北京致远互联软件股份有限公司 数据同步方法及装置
CN110046167B (zh) * 2019-02-18 2024-03-26 创新先进技术有限公司 数据更新方法和***
CN109936481B (zh) * 2019-03-22 2021-06-18 北京达佳互联信息技术有限公司 主从服务器切换方法、装置、电子设备及存储介质
CN110222065A (zh) * 2019-05-29 2019-09-10 深圳市思迪信息技术股份有限公司 基于移动平台的机房站点更新方法及***
CN110633324B (zh) * 2019-09-18 2022-07-26 中化信息技术有限公司 用于同步数据的方法、装置、电子设备和计算机可读介质
CN110990200B (zh) * 2019-11-26 2022-07-05 苏宁云计算有限公司 一种基于多活数据中心的流量切换方法及装置
CN111125247A (zh) * 2019-12-06 2020-05-08 北京浪潮数据技术有限公司 一种redis客户端缓存方法、装置、设备及存储介质
CN111061768A (zh) * 2019-12-23 2020-04-24 珠海格力电器股份有限公司 数据处理方法及***
CN111162995A (zh) * 2019-12-26 2020-05-15 苏州浪潮智能科技有限公司 一种数据变更通知方法、装置、设备及可读存储介质
US11500850B1 (en) 2020-02-26 2022-11-15 Snap Inc. Synchronizing content with third-party application
CN111464332B (zh) * 2020-03-06 2023-02-24 中国人民财产保险股份有限公司 容灾方法、装置及设备
CN113556371B (zh) * 2020-04-26 2022-09-30 深信服科技股份有限公司 一种数据同步方法、***、设备及计算机可读存储介质
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN112069256A (zh) * 2020-08-27 2020-12-11 苏州浪潮智能科技有限公司 一种服务器集群上数据同步装置及其同步方法
CN112559025A (zh) * 2020-12-16 2021-03-26 中国人寿保险股份有限公司 配置信息更新同步方法及设备
CN112905694A (zh) * 2021-02-05 2021-06-04 广州虎牙科技有限公司 数据同步方法、装置、服务器及存储介质
CN115150411A (zh) * 2021-03-31 2022-10-04 华为技术有限公司 数据同步的方法和装置
CN113656366B (zh) * 2021-08-03 2024-05-03 北京数码大方科技股份有限公司 电子仓库的数据处理方法和装置
CN113992680B (zh) * 2021-11-10 2024-02-02 中国工商银行股份有限公司 应用于分布式多活***的调度方法、装置、设备及介质
CN113986909B (zh) * 2021-12-24 2022-04-22 畅捷通信息技术股份有限公司 一种反向记录同步状态的实时数据同步方法、***及介质
CN114415984B (zh) * 2022-03-31 2022-08-16 阿里云计算有限公司 数据处理方法及装置
CN114722046A (zh) * 2022-04-18 2022-07-08 聚好看科技股份有限公司 一种服务器及首页缓存数据分版本生成方法
CN116561089B (zh) * 2023-07-10 2023-09-19 成都泛联智存科技有限公司 数据同步方法、装置、客户端和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162472B2 (en) * 2003-06-24 2007-01-09 Microsoft Corporation System and method for database change notification
CN101188566A (zh) * 2007-12-13 2008-05-28 沈阳东软软件股份有限公司 一种集群环境下数据缓存同步的方法及***
US20110161339A1 (en) * 2009-12-30 2011-06-30 Sybase, Inc. Pending state management for mobile business objects
JP2015162091A (ja) * 2014-02-27 2015-09-07 富士通株式会社 記憶制御装置、ストレージシステム、記憶制御方法、および記憶制御プログラム
US20150278245A1 (en) * 2014-03-31 2015-10-01 Oracle International Corporation Infrastructure for synchronization of mobile device with mobile cloud service

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792436B1 (en) * 2000-02-11 2004-09-14 Persistence Software, Inc. Method for synchronizing multiple software caches in a memory
US7644125B2 (en) * 2000-09-11 2010-01-05 Ianywhere Solutions, Inc. Method, system, and computer program product for synchronization of similar data objects with event information
JP3983516B2 (ja) * 2001-10-25 2007-09-26 株式会社日立製作所 記憶装置システム
US7752166B2 (en) * 2001-11-15 2010-07-06 Visto Corporation System and methods for asynchronous synchronization
WO2006128062A2 (en) * 2005-05-25 2006-11-30 Terracotta, Inc. Database caching of queries and stored procedures using database provided facilities for dependency analysis and detected database updates for invalidation
CN101291342A (zh) * 2008-06-18 2008-10-22 中兴通讯股份有限公司 一种分布式体系中的数据同步方法及***
JP4806037B2 (ja) * 2009-01-26 2011-11-02 株式会社東芝 データ記憶システム及び非同期レプリケーション方法
US8037136B2 (en) * 2009-03-11 2011-10-11 Business Objects Software Ltd Tracking a state of a document accessible over a computer network
US8756195B2 (en) * 2009-08-27 2014-06-17 The Boeing Company Universal delta set management
US20120028660A1 (en) * 2010-07-28 2012-02-02 Matthew Stafford Method and apparatus for notifying devices of new messages
CN102346740B (zh) * 2010-08-02 2016-08-10 联想(北京)有限公司 一种文件同步方法、电子设备和同步***
CN102741843B (zh) * 2011-03-22 2014-03-26 青岛海信传媒网络技术有限公司 从数据库中读取数据的方法及装置
CN102279880B (zh) * 2011-07-28 2014-07-16 赵香芳 一种实时更新缓存的方法和***
CN103138912B (zh) * 2011-12-05 2016-08-03 阿里巴巴集团控股有限公司 数据同步方法及***
CN103581262B (zh) * 2012-08-06 2017-12-29 腾讯科技(深圳)有限公司 一种主备数据同步方法、装置和***
US20140229435A1 (en) * 2013-01-27 2014-08-14 Travel Holdings, Inc. In-memory real-time synchronized database system and method
US9020893B2 (en) * 2013-03-01 2015-04-28 Datadirect Networks, Inc. Asynchronous namespace maintenance
US10747746B2 (en) * 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
CN106980625B (zh) 2016-01-18 2020-08-04 阿里巴巴集团控股有限公司 一种数据同步方法、装置及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162472B2 (en) * 2003-06-24 2007-01-09 Microsoft Corporation System and method for database change notification
CN101188566A (zh) * 2007-12-13 2008-05-28 沈阳东软软件股份有限公司 一种集群环境下数据缓存同步的方法及***
US20110161339A1 (en) * 2009-12-30 2011-06-30 Sybase, Inc. Pending state management for mobile business objects
JP2015162091A (ja) * 2014-02-27 2015-09-07 富士通株式会社 記憶制御装置、ストレージシステム、記憶制御方法、および記憶制御プログラム
US20150278245A1 (en) * 2014-03-31 2015-10-01 Oracle International Corporation Infrastructure for synchronization of mobile device with mobile cloud service

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200144768A (ko) * 2019-06-19 2020-12-30 주식회사 코비젼 다중 웹서버 환경의 공용자원 동기화 시스템

Also Published As

Publication number Publication date
WO2017124938A1 (zh) 2017-07-27
SG11201806007RA (en) 2018-08-30
US20180341693A1 (en) 2018-11-29
CN106980625B (zh) 2020-08-04
KR102153804B1 (ko) 2020-09-09
EP3407527B1 (en) 2021-07-07
PH12018501520A1 (en) 2019-03-18
MY185258A (en) 2021-04-30
EP3407527A1 (en) 2018-11-28
JP2019508796A (ja) 2019-03-28
US20200125580A1 (en) 2020-04-23
JP6745884B2 (ja) 2020-08-26
US11010404B2 (en) 2021-05-18
EP3407527A4 (en) 2019-07-03
TW201730784A (zh) 2017-09-01
US20210271689A1 (en) 2021-09-02
CN106980625A (zh) 2017-07-25
US10754873B2 (en) 2020-08-25

Similar Documents

Publication Publication Date Title
KR102153804B1 (ko) 데이터 동기화 방법, 장치, 및 시스템
US10719260B2 (en) Techniques for storing and retrieving data from a computing device
CA2866449C (en) Telemetry system for a cloud synchronization system
US8825968B2 (en) Information processing apparatus and storage control method
WO2021082858A1 (zh) 一种数据采集方法及装置
WO2016029744A1 (zh) 一种元数据恢复方法及相关装置
CN103138912A (zh) 数据同步方法及***
US20190317872A1 (en) Database cluster architecture based on dual port solid state disk
US20230098190A1 (en) Data processing method, apparatus, device and medium based on distributed storage
WO2015184925A1 (zh) 分布式文件***的数据处理方法及分布式文件***
CN113094430B (zh) 一种数据处理方法、装置、设备以及存储介质
JP6229067B2 (ja) データアクセス方法及び装置
US7849355B2 (en) Distributed object sharing system and method thereof
CN109165112B (zh) 一种元数据集群的故障恢复方法、***及相关组件
WO2023226380A1 (zh) 一种磁盘处理方法、***及电子设备
CN111338834B (zh) 数据存储方法和装置
JP2011175382A (ja) クラスタシステム、および、クラスタシステムにおける系切替え方法
CN112084163B (zh) 一种数据写入方法、装置及计算机设备
CN104639585A (zh) 一种实时数据传输***及其数据同步方法
CN112015807B (zh) 数据同步的处理方法、装置、电子设备及计算机存储介质
US10853202B2 (en) Method, device and computer readable medium for data synchronization
CN106375354B (zh) 数据处理方法及装置
CN108076116B (zh) 一种基于云存储数据的智能读取方法及***
CN115037745B (zh) 一种在分布式***中选举的方法及装置
JP6900732B2 (ja) ディザスタリカバリシステム、ディザスタリカバリ方法及びプログラム

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