KR101623663B1 - 클라이언트/서버 시스템에서 분산된 복제 콘텐츠들의 강한 일관성을 유지하는 방법 및 시스템 - Google Patents

클라이언트/서버 시스템에서 분산된 복제 콘텐츠들의 강한 일관성을 유지하는 방법 및 시스템 Download PDF

Info

Publication number
KR101623663B1
KR101623663B1 KR1020147005533A KR20147005533A KR101623663B1 KR 101623663 B1 KR101623663 B1 KR 101623663B1 KR 1020147005533 A KR1020147005533 A KR 1020147005533A KR 20147005533 A KR20147005533 A KR 20147005533A KR 101623663 B1 KR101623663 B1 KR 101623663B1
Authority
KR
South Korea
Prior art keywords
file
slave
new version
replica
version
Prior art date
Application number
KR1020147005533A
Other languages
English (en)
Other versions
KR20140068916A (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 KR20140068916A publication Critical patent/KR20140068916A/ko
Application granted granted Critical
Publication of KR101623663B1 publication Critical patent/KR101623663B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

다중 계층 클라이언트/서버 데이터 처리 시스템의 애플리케이션 계층의 부분인 다수의 독립된 처리 슬레이브 노드(210, 210', 210")에 걸쳐 분산된 복제 파일들의 일관성을 유지하는 방법 및 시스템에 관한 발명. 복제 파일들은 마스터 계층의 마스터 노드로부터 분산되어 있다. 마스터 데이터베이스를 업데이트 하기 위한 업데이트 요청(142)이 수신되면, 복제 파일의 새로운 버전이 생성되어 공유 파일 시스템(160)에 저장된다. 그 다음, 복제 파일의 새로운 버전의 가용성의 통지가 모든 슬레이브 노드에 전달되고, 이로부터, 모든 슬레이브 노드(210, 210', 210")로 방송된다. 각 슬레이브 노드는 공유 파일 시스템(160)으로부터의 새로운 버전의 복제 파일을 사전로딩하고 그 성공적 완료를 확인응답한다. 동기 슬레이브 노드에서 확인 메시지를 수신하면, 사전로딩의 완수의 통지가 마스터 서버(112)로 전달되어 마스터 데이터베이스를 업데이트하고 데이터 처리 시스템에 의한 새로운 버전의 사용을 커밋한다. 이 커밋은 동기 슬레이브 노드로 다시 전달되어 모든 슬레이브 노드(210, 210', 210")에 대한 모든 복제 파일 버전을 기록하기 위하여 슬레이브 데이터베이스에 복제 파일의 새로운 버전(150)의 사용을 커밋한다. 모든 슬레이브 노드(210, 210', 210")의 커밋의 확인응답을 수신하면, 마스터 서버(112)는 수신한 업데이트 요청(142)에 응답하여 업데이트의 완료를 확인한다.

Description

클라이언트/서버 시스템에서 분산된 복제 콘텐츠들의 강한 일관성을 유지하는 방법 및 시스템 {METHOD AND SYSTEM TO MAINTAIN STRONG CONSISTENCY OF DISTRIBUTED REPLICATED CONTENTS IN A CLIENT/SERVER SYSTEM}
본 발명은 대략적으로 데이터 처리 시스템에 관한 것으로서, 구체적으로는 분산 클라이언트/서버 소프트웨어 아키텍처에 관한 것이다. 보다 구체적으로, 본 발명은 준실시간 가용성을 보장하면서도, 다수의 처리 노드에 분산된 캐시 파일의 컨텐츠 간에 일관성을 유지하는 방법 및 시스템에 관한 것이다.
1980년대 후반에 등장한 클라이언트/서버 모델은, 그 당시의 기준이었던 중앙집중식의 메인프레임의 시간 공유 컴퓨팅에 비해 사용성, 유연성, 상호운용성, 및 확장성을 개선하기 위해 고안된 다목적 모듈형 소프트웨어 아키텍처이다. 이후 클라이언트/서버 아키텍처는, 모든 정보가 중앙 호스트 컴퓨터에 있고 사용자가 단순 단말기(dumb terminal)를 통해 호스트와 인터랙션하던 종전의 메인프레임 소프트웨어 아키텍처를 점진적으로 완전히 대체하였다. 그러나 아직도 메인프레임을 사용하고 있다고 하면, 이는, 단순 단말기를 지능적인 그래픽 사용자 인터페이스(GUI)(서버로부터 수신 및 서버로 전송하는 데이터를 스스로 처리할 능력이 있음)로 대체한, 다양한 클라이언트/서버 아키텍처에서의 강력한 서버이다.
현대의 데이터 처리 시스템에서, 널리 사용중에 있으며 원격지에 위치한 다수의 클라이언트를 지원할 수 있는 클라이언트/서버 아키텍처는 소위, 3층 구조(3-tier architecture)이다. 이러한 구조의 일례가 도 1에 도시되어 있다. 마스터 계층(100)은 전통적으로 데이터베이스 시스템(120)(특정 사업 조직, 회사, 또는 기업의 일상적인 운영에 필요한 모든 데이터가 저장되는 대형 또는 초대형 저장소임)의 주위에 구축되어 모든 종류의 상업적 행정적 운영을 수행한다. 데이터베이스는 대부분 관계형(relational type)이다. 즉, 관계형 데이터베이스 관리 시스템(RDBMS)에 의해 제어된다. 이는, 일반적으로 데이터 처리 시스템의 관리자가 GUI(140)에 의해서 하나 이상의 마스터 서버(112)를 통해 관리한다. 관리자는 일반적으로 데이터베이스 콘텐츠를 직접 업데이트할 수 있는 권한을 갖는 시스템 내 유일한 사용자이다.
도 1의 예시적인 3층 시스템의 중간 계층은 애플리케이션 계층(200)으로서, 여기서는 기관(데이터 처리 시스템의 소유자)의 모든 특정의 소프트웨어 애플리케이션(240)들이 실행된다. 이들 특정 애플리케이션(흔히 미들웨어 소프트웨어라고 부름)은 기관의 독점적 소프트웨어이다. 이는 마스터 서버(110)를 통해 데이터 저장소(120)로부터 기관의 모든 원격지 클라이언트로 서비스를 제공하는 데 사용된다. 3층 구조의 세 번째 계층(300)을 구성하는 것은 원격지 클라이언트들이다. 따라서 클라이언트 계층(300)에서 온 질의(쿼리)는, 중간 계층(200)의 특정 애플리케이션에 의해서 마스터 계층(100)에서 불러온(fetch) 데이터에 대해 처리되고 응답된다.
3층 구조에서, 많은 원격지 클라이언트들이 서비스를 받아야 할 때에 전반적인 성능을 유지하기 위한 시스템의 확장성(scailability)은, 독립적인 처리 노드(node)를 중간 계층에 추가하여서 데이터 처리 시스템의 전체적인 처리 능력을 증가시킴으로써 얻어진다. 따라서, 애플리케이션 계층(200)은 일반적으로 여러 독립된 처리 노드들로 구성된다. 이 처리 노드를 슬레이브 노드(210)라고 부르며, 추후에 설명한다. 다음에, 많아진 슬레이브 노드에서의 너무 많은 데이터 요청에 의해서 마스터 계층(100)이 압도당하는 것을 방지하기 위한 통상의 실무는, 마스터 데이터베이스에서 와서 필요한 기간동안 각 애플리케이션 노드에 저장되는 데이터에 대해서 적용 프로세스(applicative process)(240)를 동작시키는 것이다. 이는, 도 1의 예시적인 시스템에서 캐시 파일(250)의 형태로 구현되는데, 이 캐시(250)에 의해서 적용 프로세스(240)는, 필요할 때마다 마스터 데이터베이스로부터 마스터 서버를 통해서 데이터를 가져올 때의 긴 시간지연 없이 동작할 수 있다. 이러한 데이터 처리 시스템에서는, 따라서, 처리 능력 및 소프트웨어 애플리케이션을, 시스템의 모든 원격지 클라이언트(300)에 서비스하기에 필요한 처리 능력의 수준에 필요한 만큼의 노드(210)로 분산(distribute), 즉, 분할(partition)한다. 캐시 파일(250)도 또한 그렇게 분산된다.
그러나, 이러한 분산 컴퓨팅 환경에서는, 분산 데이터 시스템의 몇 가지 바람직한 속성들이 동시에 모두 보장받을 수는 없다는 것이 입증되었다. 도 2에 도시된 바와 같이, 분산 데이터 처리 시스템에서 기대되는 속성(40)은 일관성(consistency), 가용성(availability), 및 확장성(scalability)이다. CAP 정리(CAP theorem)이라고 부르는 정리에 따르면, 분산 시스템은 이들 속성 중 한 번에 두 가지를 만족할 수 있을 뿐, 세 가지 모두를 동시에 만족할 수는 없다고 한다. CAP(consistency, availability, partition tolerance(분할 허용성)의 약자임)은 미국 버클리의 캘리포니아 대학의 E.Brewer 교수에 의해 2000년에 처음으로 추정되었다. 이 정리는 나중에 2002년에 발표된 N.Lynch와 S.Gilbert의 논문에서 증명되었다(ACM SIGACT News, v.33 issue 2, pages 52-59). CAP의 분할 허용성은 확장성과 밀접하게 연계되어 있는데, 그 이유는, 전술한 바와 같이, 시스템의 전체적인 처리 능력은 실제로, 독립적 처리 노드들로 분산(즉, 분할)시켜서 얻어지기 때문이다.
일관성과 가용성(41)은 중간 계층 애플리케이션에서 사용되는 데이터가 항상 마스터 데이터베이스에서 온 경우에만 3층 구조에 있어서 충족될 수 있다. 이것은, 클라이언트 계층(300)으로부터의 질의에 단지 응답하기 위한 마스터 계층(100)으로부터 애플리케이션 계층(200)으로의 하향 트래픽을 매우 많게 만들며 또한 이들에 응답하기 위해 마스터 데이터베이스의 점유율을 매우 높게 하는 것을 대가로 하여 얻을 수 있다. 이는, 데이터베이스로의 쓰기(기록)의 비율이 전반적으로 비교적 낮아지기는 하지만, 관리자(140)에 의한 마스터 데이터베이스의 관리 및 업데이트와 충돌된다. 데이터베이스에의 액세스와, 데이터와 애플리케이션 계층 사이에서의 네트워크상 트래픽은 분명히, 클라이언트 계층의 사용자 수가 증가하는 경우에 그 성능을 제한하는 병목이 된다.
가용성 및 확장성(42)은, 상기한 데이터베이스의 점유율 문제와 데이터 및 애플리케이션 계층 간의 높은 트래픽의 문제를 극복하기 위해 도 1에 나타낸 예시에서와 같이 캐쉬 파일(250)을 분산시킴으로써 3층 구조에 있어서 성취할 수 있다. 그러나, 이 경우에는, 캐시 파일의 콘텐츠가 독립된 컴퓨팅 노드에 걸쳐 분산되어 있기 때문에, 콘텐츠가 슬레이브 노드 간에 일관되는지 그리고 마스터 데이터베이스의 콘텐츠와 일관되는지 보장할 수 없다.
따라서 본 발명의 목적은 상기 문제점에 대한 해결책을 주기 위한 것이다. 클라이언트 애플리케이션 및 복제된 파일들이 다수의 독립된 슬레이브 노드들에 걸쳐서 분산되어 있는 3층 클라이언트/서버 아키텍처에 있어서, 본 발명은 다소의 확장성(43)을 유지하면서도, 복제된 파일들 간의 강한 일관성 및 완전한 가용성을 유지하기 위한 방법 및 시스템을 개시한다.
본 발명의 또다른 목적, 특징, 및 장점들은 첨부도면을 참조하여 이하에서 기재한 발명의 상세한 설명에 의해서 당업자들에게 명확해질 것이다. 부가적인 장점은 어느 것이라도 본 출원에 포함되는 것으로 의도되었다.
본 발명의 한 측면에 따르면, 본 발명은 다중 계층 클라이언트/서버 데이터 처리 시스템의 애플리케이션 계층(application tier)의 부분인 다수의 독립된 처리 슬레이브 노드에 걸쳐 분산된 복제 파일(replicated file)들의 일관성(consistency)을 유지하는 방법에 관한 것으로서, 복제 파일들은 마스터 계층(master tier)의 마스터 노드로부터 분산되어 있다. 본 발명의 방법은 적어도 하나의 프로세서에서 수행되는 다음과 같은 단계들을 포함한다.
- 데이터 처리 시스템의 마스터 데이터베이스를 업데이트 하기 위해, 마스터 계층의 적어도 하나의 마스터 서버에서 업데이트 요청(update request)을 수신하는 단계;
- 상기 업데이트에 근거하여, 마스터 계층의 공유 파일 시스템에 저장된 복제 파일의 새로운 버전을 생성하고 저장하는 단계;
- 복제 파일의 새로운 버전의 가용성(availability)의 통지를 모든 슬레이브 노드에 제공하는 단계; 그리고
- 복제 파일의 새로운 버전을 공유 파일 시스템으로부터 각 슬레이브 노드로 사전로딩(preload)를 시작하고, 이 사전로딩이 완료되면 이 사전로딩의 성공적인 완료를 확인응답하는 단계.
이 단계에서,
ㆍ 상기 모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 경우에만 다음의 단계들이 수행된다.
- 마스터 서버에서 사전로딩의 완수의 통지를 수신하는 단계;
- 마스터 서버로부터, 복제 파일의 새로운 버전의 데이터로써 마스터 데이터베이스를 업데이트하여서, 마스터 계층에 의한 복제 파일의 새로운 버전의 사용을 커밋(commit)하는 단계;
- 모든 복제 파일 버전을 추적하도록 배치된 애플리케이션 계층의 슬레이브 데이터베이스에 복제 파일의 새로운 버전의 사용을 커밋하는 단계;
- 모든 슬레이브 노드의 커밋의 통지를 마스터 서버로 전달하는 단계;
- 수신한 업데이트 요청에 응답하여, 마스터 서버로부터 업데이트의 완수를 확인(acknowledge)하는 단계. 한편,
ㆍ 상기 모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 것이 아닌 경우에는, 마스터 데이터베이스를 업데이트하지 않고 마스터 노드에서 오류 통지를 수신하며 슬레이브 데이터베이스에 새로운 버전의 사용을 커밋한다.
따라서, 본 발명은 정보 질의(query for information)에 대한 응답을 위해 필요한 정보물을 갖는 매우 많은 수의 노드들에 걸쳐서 강한 일관성을 보장하면서도 정보 질의에 거의 실시간으로 응답하는 효과적인 해결책을 제공한다. 따라서, 본 발명은 강한 일관성(consistency), 매우 짧은 지연을 수반한 가용성(availability), 그리고 향상된 확장성(scalability)을 유지할 수 있도록 한다.
선택사항으로서, 본 발명은 다음과 같은 선택적 특징들 중 적어도 하나를 포함할 수 있다.
본 발명에서 복제 파일(replicated file)이라고 지칭한 것은, 마스터 데이터베이스로부터 복제되고 슬레이브 노드로 보내어져서, 적용 프로세스(applicative process)에 의해 해당 데이터의 처리를 용이하게 하기 위한 완전한 파일들이다. 이들은 그 자체가, 느린 백엔드(back end) 메모리로부터 캐시 메모리로 보내진 작은 데이터들이 아니다. 본 발명의 맥락에서, 복제 파일(또한, 사본(replica)이라고도 함)은 실제로, 슬레이브 노드에 있는 적용 프로세스가 전혀 데이터의 누락없이 이 파일에 대해서 동작을 완료할 수 있는 완전한 파일인 것이다.
특정 실시예에 따르면(단, 한정적인 실시예는 아님), 사본이라고도 부르는 이 복제 파일은 캐시 파일(cache file)이다.
복제 파일의 새로운 버전의 가용성의 통지를 모든 슬레이브 노드에 제공하는 단계는 다음의 단계들을 포함한다.
- 마스터 서버로부터, 복제 파일의 새로운 버전의 가용성의 통지를, 슬레이브 노드 중의 동기 슬레이브 노드(synchronizing slave node)로 전달하는 단계;
- 동기 슬레이브 노드로부터 상기 가용성의 통지를 다른 모든 슬레이브 노드로 방송하는 단계.
사전로딩의 성공적 완료를 확인응답하는 단계는, 동기 슬레이브 노드의 서버 프로세스로의 사전로딩의 성공적 완료를 슬레이브 노드가 확인응답하는 것을 포함한다.
일단 모든 슬레이브 노드가 동기 슬레이브 노드의 서버 프로세스로의 사전로딩의 성공적 완료를 확인응답한 다음, 마스터 서버에서 사전로딩의 완수의 통지를 수신하는 단계 이전에, 동기 슬레이브 노드는 상기 사전로딩의 완수 통지를 마스터 서버로 전달한다.
마스터 계층에 의한 복제 파일의 새로운 버전의 사용을 커밋하는 단계가 완료되면, 마스터 노드는 동기 슬레이브 노드로 커밋의 통지를 전달하고, 동기 슬레이브 노드는 슬레이브 데이터베이스에 복제 파일의 새로운 버전의 사용을 커밋하는 단계를 트리거(trigger)한다.
사용자로부터의 정보 질의에 의해 개시된 트랜잭션의 시작시에, 상기 트랜잭션에 관여된 적어도 각 슬레이브 노드에서 적용 프로세스가 슬레이브 데이터베이스를 조회(interrogate)하고, 복제 파일의 현재 버전으로부터 복제 파일의 사전로딩된 새로운 버전으로 전환(switch)할지를 지시받는다.
바람직하게는, 사용자로부터의 정보 질의에 의해 개시된 트랜잭션의 시작시에, 상기 트랜잭션에 관여된 각 슬레이브 노드에서 적용 프로세스가 복제 파일의 현재 버전의 태그(tag)를 읽는다. 이 태그는 복제 파일의 새로운 버전이 사용가능한지를 나타낸다. 이 태그가 복제 파일의 새로운 버전이 사용가능함을 나타내는 경우에는, 적용 프로세스가 슬레이브 데이터베이스를 조회하고, 복제 파일의 현재 버전으로부터 복제 파일의 새로운 버전으로 전환할지를 지시받는다.
태그는 복제 파일의 새로운 버전의 사전로딩이 성공적으로 완료된 때에 설정(set)되고 적용 프로세스에 의한 최초 독출(reading)시에 리셋(reset)된다.
수신된 업데이트 요청은 적어도 하나의 업데이트 사항(update)을 포함하고, 상기 공유 파일 시스템에 있는 복제 파일의 새로운 버전을 생성하고 저장하는 단계는 증분 프로세스(incremental process)이다. 이 증분 프로세스는 마스터 서버에서 이루어지는 다음의 단계들을 포함한다.
- 공유 파일 시스템으로부터 복제 파일의 현재 버전을 검색하고, 업데이트할 복제 파일의 현재 버전을 적절한 포맷으로 변환하는 단계;
현재 버전에 업데이트 사항을 적용하고, 복제 파일의 새로운 버전을 공유 파일 시스템으로 변환 및 저장하는 단계.
복제 파일은 공유 파일 시스템에 저장될 때에 압축된다.
공유 파일 시스템에 저장된 복제 파일은 증분 업데이트를 수행할 때에는 마스터 서버에 의해서, 그리고 사전로딩 시에는 슬레이브 노드에 의해서 압축해제되고 적절한 포맷으로 변환된다.
모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 것이 아닌 경우에는, 마스터 노드는 오류 통지를 상기 업데이트 요청을 보낸 관리자에게 전송한다.
마스터 데이터베이스는 마스터 계층의 하나의 기계 또는 다수의 기계에 저장될 수 있다. 슬레이브 데이터베이스는 애플리케이션 계층의 하나의 기계 또는 다수의 기계에 저장될 수 있다.
공유 파일 시스템은 네트워크 연결 저장소(NAS: network-attached storage)이다.
본 발명의 다른 측면에 따르면, 본 발명은 컴퓨터 판독 가능한 비일시적 기억 매체에 저장되고 앞의 특징들 중 어느 하나에 따른 방법을 수행하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명의 다른 측면에 따르면, 본 발명은 사업 규칙(business rule)을 포함하는 복제 파일들의 일관성을 유지하는 방법에 관한 것으로서, 이 복제 파일들은 다중 계층 클라이언트/서버 데이터 처리 시스템의 애플리케이션 계층의 일부를 이루는 다수의 독립된 처리 슬레이브 노드에 걸쳐 분산되는데, 이 복제 파일들은 마스터 계층의 마스터 노드로부터 분산되어 있다. 본 방법은 적어도 하나의 프로세서에서 수행되는 다음과 같은 단계들을 포함한다.
- 데이터 처리 시스템의 마스터 데이터베이스에 저장된 사업 규칙을 업데이트 하기 위해, 마스터 계층의 적어도 하나의 마스터 서버에서 업데이트 요청을 수신하는 단계;
- 상기 업데이트에 근거하여, 마스터 계층의 공유 파일 시스템에 저장된 복제 파일의 새로운 버전을 생성하고 저장하는 단계;
- 복제 파일의 새로운 버전의 가용성의 통지를 모든 슬레이브 노드에 제공하는 단계;
- 복제 파일의 새로운 버전을 공유 파일 시스템으로부터 각 슬레이브 노드로 사전로딩을 시작하고, 이 사전로딩이 완료되면 이 사전로딩의 성공적인 완료를 확인응답하는 단계.
이 단계에서,
ㆍ 상기 모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 경우에만 다음의 단계들이 수행된다.
- 마스터 서버에서 사전로딩의 완수의 통지를 수신하는 단계;
- 마스터 서버로부터, 복제 파일의 새로운 버전의 데이터로써 마스터 데이터베이스를 업데이트하여서, 마스터 계층에 의한 복제 파일의 새로운 버전의 사용을 커밋하는 단계;
ㆍ 상기 모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 것이 아닌 경우에는, 마스터 노드에서 오류 통지를 수신한다.
선택사항으로서, 이 발명은 다음과 같은 선택적 특징들 중 적어도 하나를 포함할 수 있다.
각 사업 규칙은 한 세트의 기준(criterion)과 콘텐츠를 포함하는 것이 유리하다. 바람직하게는, 각 기준은 가중치에 연계되어서, 검색 엔진으로 하여금, 검색 개시시에 가장 적절한 규칙을 찾도록 한다.
한 세트의 기준은, 판매 시점 관리(point of sale), 국가, 국가 군, 항공편의 출발국, 비행편의 목적지, 고객 프로파일 중 적어도 하나를 포함한다.
다중 계층 클라이언트/서버 데이터 처리 시스템은 여행 업체의 인벤토리(inventory)의 일부이다.
보다 일반적으로, 슬레이브 노드는, 항공사의 인벤토리, 항공사의 출발 통제 시스템, 항공사의 수익 관리 시스템, 항공사의 수익 회계 시스템, 항공사의 전자 티켓 서버 중 적어도 하나에 연결된다.
본 발명의 다른 측면은, 애플리케이션 계층 및 마스터 계층을 포함하는 분산형 다중 계층 클라이언트/서버 데이터 처리 시스템에 관한 것이다. 여기서 애플리케이션 계층은 다수의 독립된 처리 슬레이브 노드를 포함한다. 마스터 계층은 슬레이브 노드에 복제 파일을 분산시키도록 배치된 마스터 노드와 마스터 데이터베이스와 마스터 서버를 포함한다. 마스터 계층은 공유 파일 시스템을 포함한다. 마스터 서버는 업데이트 요청을 수신하도록 배치되어, 마스터 데이터베이스를 업데이트하고, 공유 파일 시스템에 저장된복제 파일의 새로운 버전을 생성하고, 이 새로운 버전을 공유 파일 시스템에 저장한다. 본 발명에 따른 시스템은 또한, 모든 슬레이브 노드에 연결되며 모든 복제 파일 버전을 추적하도록 배치되는 슬레이브 데이터베이스를 포함한다.
본 시스템은,
ㆍ 복제 파일의 새로운 버전의 가용성의 통지를 모든 슬레이브 노드에 제공하고;
ㆍ 복제 파일의 새로운 버전을 공유 파일 시스템으로부터 각 슬레이브 노드로 사전로딩을 시작하고, 이 사전로딩이 완료되면 이 사전로딩의 성공적인 완료를 확인응답하도록 구성된다.
ㆍ 상기 모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 경우에만, 마스터 서버에서 사전로딩의 완수의 통지를 수신하는 단계; 마스터 서버로부터, 복제 파일의 새로운 버전의 데이터로써 마스터 데이터베이스를 업데이트하여서, 마스터 계층에 의한 복제 파일의 새로운 버전의 사용을 커밋하는 단계; 모든 복제 파일 버전을 추적하도록 배치된 애플리케이션 계층의 슬레이브 데이터베이스에 복제 파일의 새로운 버전의 사용을 커밋하는 단계; 모든 슬레이브 노드의 커밋의 통지를 마스터 서버로 전달하는 단계; 수신한 업데이트 요청에 응답하여, 마스터 서버로부터 업데이트의 완수를 확인응답하는 단계를 수행한다.
ㆍ 상기 모든 슬레이브 노드가 사전로딩의 성공적인 완료를 확인응답한 것이 아닌 경우에는, 마스터 데이터베이스를 업데이트하지 않고 마스터 노드에서 오류 통지를 수신하며 슬레이브 데이터베이스에 새로운 버전의 사용을 커밋한다.
도 1은 표준적인 3층 구조의 분산 데이터 처리 시스템의 일례를 나타낸다.
도 2는 분산 데이터 처리 시스템의 일관성, 가용성, 확장성을 설명한다.
도 3은 마스터 데이터베이스의 콘텐츠가, 복제된 파일 형태로 슬레이브 노드들 간에 분산된, 본 발명에 따른 예시적인 데이터 처리 시스템을 도시하고 있다.
도 4a 및 도 4b로 구성된 도 4는 본 발명에 따른 데이터 처리 시스템의 분산된 복제 파일 간에 강한 일관성을 유지하는 방법의 절차단계를 설명한다.
도 5는 복제 파일의 새로운 버전(Vn+1)을 생성할 때 수행되는 증분 업데이트에 대해 설명하고 있다.
이하에 기재하는 발명의 상세한 설명은 첨부 도면을 참조한다. 이하의 설명에서는 예시적인 실시예들을 포함하고 있지만, 다른 실시예들도 가능하며, 본 발명의 사상 및 범위를 벗어나지 않는 한 설명된 실시예에 대한 변경을 행할 수 있다.
도 3은 애플리케이션 계층(200)과 마스터 계층(100)(데이터 계층(100)이라고도 함)을 포함하는 본 발명에 따른 예시적인 분산 데이터 처리 시스템을 도시하고 있다. 애플리케이션 계층(200)은 다수의 독립된 처리 슬레이브 노드(210, 210', 210")를 포함한다. 마스터 계층(100)은 마스터 노드(110), 마스터 데이터베이스(120), 및 마스터 서버(112)를 포함한다. 마스터 데이터베이스의 콘텐츠(120)는 복제된 파일의 형태(250, 150)로 슬레이브 노드(210, 210', 210")들에 분산되어서, 해당 데이터들을 이들 슬레이브 노드(210, 210', 210")에서 실행되는 클라이언트 애플리케이션(240, 240', 240")이 마스터 데이터베이스(120)를 조회하지 않고도 이용할 수 있도록 한다.
마스터 계층(100)은 하나 이상의 서버(112)로 구성된 마스터 노드(110)를 포함한다. 마스터 노드(100)는 시스템의 데이터 저장소, 즉, 마스터 데이터베이스(120)를 관리하는 역할을 하는데, 이 마스터 데이터베이스는 어떠한 유형이든 대규모 사업 활동(관리, 교육, 및 정부 활동 등도 포함되는 모든 종류를 포괄하는 상업 및 산업 분야를 포함함)을 수행하는 데 필요한 모든 데이터를 보관하는 대형 또는 초대형의 데이터베이스 시스템이다. 항공 및 여행 업계에서 이는, 예를 들어 전역 유통 시스템(GDS: global distribution system)이 될 수 있다. GDS는 항공 요금, 스케줄, 좌석 가능 여부 및 전반적인 모든 여행 상품에 대한 실시간 액세스를 위하여 여행 회사가 구축한 임의의 대형 데이터 처리 시스템이다. GDS는 전세계에서 예약 등록 및 여행 티켓 발행 등의 기능을 수많은 온라인 여행 사이트를 통해서, 여행 대행업자 및 개인들에게 제공한다.
이러한 데이터베이스(120)는 시스템의 사용자 인터페이스(140)(일반적으로, 그래픽 사용자 인터페이스(GUI))로부터 임의의 승인된 사용자에 의해서 마스터 서버(112)를 통해 관리된다. 데이터베이스의 관리자는 그 콘텐츠를 업데이트할 수 있는 권한을 받은 자이다. 예를 들어, GDS의 경우, 여행 티켓의 예약에 적용되는 영업 규칙의 추가 또는 변경, 또는 제공하는 여행 상품의 변경을 들 수 있다. 이는 주로, 이 경우에는, 여행 상품의 현재 제공에 대한 업데이트 사항으로 구성된다. 따라서 업데이트 사항은, 슬레이브 노드(210, 210', 210")에서 실행되는 클라이언트 애플리케이션(240, 240', 240")에 의해 사용되는 분산된 복제 파일에서 순서대로 복제되어야 한다.
마스터 계층(100)은 또한, 공유 파일 시스템(160), 예를 들어, 관리자의 요청에 따라 생성된 복제 파일의 새로운 버전(150)을 보관하는 것을 목적으로 하는 네트워크 연결 저장소(network-attached storage), 즉, NAS 시스템(160)을 포함한다. 본 시스템의 NAS(160) 및 다른 구성부에 대해서는, 슬레이브 노드(210, 210', 210")의 각종 분산된 복제 파일과 마스터 데이터베이스(120)의 콘텐츠를 일관되게 유지하는 방법을 설명한 도 4를 참조하여 추후에 설명한다.
클라이언트 애플리케이션 계층(200)에 관한 한, 다수의 슬레이브 노드(210, 210', 210")로 구성되는데, 각각은, 시스템의 세 번째 계층(도 3에 도시되지 않음)을 구성하는 다수의 원격지 최종 사용자에게 서비스를 제공한다. 위에 언급한 GDS의 예에서, 이들 원격지의 최종 사용자에는, 기존의 여행사의 여행 대행자와 온라인 여행 사이트의 개인 사용자들이 포함된다. 이들 사이트는 공용 네트워크(즉, 인터넷)를 통해 연결된다. 따라서 슬레이브 노드(210, 210', 210")의 적용 프로세스(240, 240', 240")를 작동시키는 많은 상이한 소프트웨어 클라이언트 애플리케이션들은, 각 슬레이브 노드(210, 210', 210")의 공유 메모리(230, 230', 230")로 보내진 복제 파일로부터 실행될 수 있다. 따라서, 이들 애플리케이션에 필요한 데이터는 임의의 적용 프로세스가 쉽게 액세스할 수 있으며, 각자에 대해서 복제할 필요가 없기 때문에, 메모리 사용량이 크게 낮춰진다. 슬레이브 노드(210, 210', 210")에서 실행되는 적용 소프트웨어 제품의 범위와 수는 매우 넓을 것이며, 실무상으로는, 노드의 컴퓨팅 리소스에 의해서 제한될 뿐이다. 이는 데이터 처리 시스템의 소유자에 의해 수행되는 사업의 유형에 크게 의존한다. 여행 업계에 있어서는, GDS용으로, 모든 여행자에게 현재 제공되는 전자 예약 및 발권 서비스와, 공항에 있는 승객들의 출발 통제 등과 같은 특정 애플리케이션이 포함된다. 모든 유형의 비즈니스에 대해서 일반화되어 있는 애플리케이션에는 상품 및 서비스의 가용성, 매출 관리, 및 수익 회계에 관한 것이 포함된다. 따라서, 애플리케이션 계층(200)의 사용자는 고객에만 한정되는 것이 아니라, 데이터 처리 시스템을 소유하고 있는 회사의 자산 관리를 담당하는 전문가도 포함된다.
클라이언트 애플리케이션 계층(200)은 또한, 각 슬레이브 노드(210, 210', 210") 내에 있는 특정의 서버 프로세스 과제(220, 220', 220")와 함께, 복제 파일(데이터 처리 시스템의 관리자의 요청에 따라 마스터 서버(112) 중 어느 하나에 의해 NAS 시스템(160)에 최초로 저장된 것임)의 새로운 버전(Vn+1)(150)의 배치를 제어하는 것을 담당하는 슬레이브 데이터베이스(260)를 추가로 포함한다. 슬레이브 데이터베이스는 슬레이브 노드(210, 210', 210")의 공유 메모리(230, 230', 230")에 저장된 복제 파일들의 버전을 추적하는 것을 기본적인 목적으로 갖는데, 이로써, 한편으로는 슬레이브 노드(210, 210', 210")에 분산되고 다른 한편으로는 마스터 데이터베이스(120)의 콘텐츠를 갖는 복제 파일들의 새로운 버전(150)과 현재 버전(250) 간의 강한 일관성을 적용할 수 있다. 슬레이브 데이터베이스(260)는 복제 파일들의 버전에 관련된 데이터만 저장하고 복제 파일의 콘텐츠는 저장하지 않는 것이 유리하다.
도 3에 나타낸 예시적인 데이터 처리 시스템에서 상기 결과를 내는 프로세스에 대해서는 이후 도 4를 통해서 설명한다.
본 발명에 따른 시스템에 관여하는 모든 소프트웨어 구성요소는 다양한 개별 컴퓨터 또는 전산 플랫폼(30, 30', 30")에서 구현되고 실행된다. 이들 컴퓨터 또는 플랫폼은 또한, 하나 이상의 상호 연결된 네트워크를 통해 통신할 수 있다. 이러한 네트워크는 일반적으로, 기업 네트워크를 구성하는 로컬 영역 네트워크(LAN)이다. LAN은 표준 통신 프로토콜에 따라 동작된다. 대부분의 경우에는 한 벌의 TCP/IP 프로토콜이 사용되는데, 이는 인터넷의 전송 제어 프로토콜(TCP)과 그 자체의 인터넷 프로토콜(IP)을 연계시킨 것이다. 실무에 있어서, 다양한 전산 플랫폼과 소프트웨어 구성요소 간의 통신은 메시지 교환에 의해 이루어진다. 예를 들어, 국제연합(UN) 조직 및 국제항공운송협회(IATA)에 의해 추진된 표준인 EDIFACT(행정, 상업, 운송에서의 전자 데이터의 교환) 메시지를 사용하여, 데이터 처리 시스템의 각종 구성요소 간에 통신 채널을 설정할 수 있다. 메시지는 전형적으로, 기업 서비스 버스(서비스 통합자(SI)라고도 함)(도시하지 않았음)를 통해 교환된다.
도 4a와 도 4b로 분리된 도 4는, 본 발명에 따른 데이터 처리 시스템의 분산된 복제 파일 간에 강한 일관성을 이루는 방법의 단계들을 설명한다. 이는 예시적인 것이며 이전의 도면에서 설명된 것이다.
도 4a는 시스템 내의 데이터를 업데이트하기 위한 2개 절차로 이루어진 커밋 프로세스(commit process) 중 첫 번째 절차를 나타낸다. 이 절차는, 마스터 노드(100)의 서버들 중 하나를 통해 업데이트 트랜잭션을 시작하는 권한있는 관리자에 의해 트리거(trigger)된다. 이는 표준적인 사용자 인터페이스(일반적으로, 그래픽 사용자 인터페이스(GUI))에 의해 수행되는데, 업데이트 요청(142)(도 5 참조)을 마스터 서버(112)로 전송(1)하는 형태로 수행된다. 이는 데이터 업데이트 프로세스의 첫 번째 단계(단계 1)이다.
단계 2에서는 업데이트 요청(142)을 받은 담당 마스터 서버(112)가, 해당되는 복제 파일의 새로운 버전(150)(Vn+1)을 생성하고 이를 NAS 시스템(160)에 저장한다. 새로운 복제 파일(150)의 생성을 용이하게 하기 위해, 이전 버전(250)의 증분 업데이트(incremental update)를 수행하는 것이 유리하다. 이에 대해서는 이후 도 5에서도 설명하고 있다. 어떤 방법을 사용하든, 이 단계의 최종 결과는, 전체 데이터 처리 시스템에 대해서 NAS(160)에서 복제 파일의 새로운 버전(Vn+1)(150)을 이용가능하게 된다는 점이다.
다음, 단계 3에서는 새로운 복제 파일(150)의 가용성을 통지해야 한다. 이는 슬레이브 노드(210, 210', 210") 중 하나(예를 들면 도 3에 도시된 슬레이브 노드 210)를 통해 이루어진다. 이를 위해, 담당 마스터 서버(112)는, 서버 프로세스(220, 220', 220"), 즉, 상기 슬레이브 노드에서(그리고 그 밖의 모든 슬레이브 노드(210', 210")에서도) 실행 중인 특정 소프트웨어 과제로 메시지를 전송한다. 이 때서부터, 선택된 슬레이브 노드(210)는 시스템의 모든 슬레이브 노드(210, 210', 210")에 대한 동기화 지점(synchronizing point)의 역할을 하게 된다. 따라서, 본 발명의 이하의 설명에서는 이를 "동기(synchronizing) 슬레이브 노드"(210)라 지칭한다. 마스터 계층의 관점에서 볼 때, 모든 슬레이브 노드들은 동일한 역할을 한다. 따라서 동기 슬레이브 노드는 일반적으로 작업 부하를 고려하여 선택된다.
다음 단계, 즉, 단계 4에서는, 동기 슬레이브 노드(210)의 서버 프로세스(220) 과제의 제어하에, 복제 파일의 새로운 버전(150)의 가용성을 알리는 통지를 그 밖의 모든 슬레이브 노드(210', 210")에 방송한다.
그 후, 단계 5에서, 새로운 복제 파일(150)의 이용가능성(가용성)의 통지를 받은 각 슬레이브 노드(210', 210")와 동기 슬레이브 노드(210)는 다음과 같은 두 가지 하위 단계를 수행한다.
- 업데이트를 수행하는 역할을 하는 마스터 서버(112)에 의해서 이전에 복제 파일이 저장되어 있던 NAS 시스템(160)으로부터, 새롭게 이용가능해진 복제 파일(150)을 복사, 즉, 사전로딩(preload)한다(단계 51).
- 사전로딩이 제대로 완료되었으면, 각 슬레이브 노드(210, 210', 210")의 서버 프로세스(220, 220', 220") 과제는 사전로딩이 성공적으로 완수되었다는 확인응답을 동기 슬레이브 노드(210)로 전송한다(단계 52).
동기 슬레이브 노드(210)의 서버 프로세스 과제(220)는 또한, 모든 사전로딩의 성공적 완수의 확인응답을 취합하는 역할을 한다. 이 절차가 수행되면 그리고 수행될 때, 모든 슬레이브 노드(210, 210', 210")에 전송된 사전로딩 성공의 통지는 담당 마스터 서버(112)로 전달된다. 이 단계는 전체 업데이트 프로세스 중의 6번째 단계이다. 이 단계에서, 새로운 복제 파일(150)은 각 슬레이브 노드(210, 210', 210")의 공유 메모리(230, 230, 230")에 사전로딩되었고, 따라서 이들 노드에서 실행되고 있는 클라이언트 애플리케이션에 의해서 잠정적으로 이용가능하게 된다. 그러나 이 새로운 복제 파일은 이하의 업데이트 프로세스가 수행될 때까지는 활성화되지 않는다.
시스템 내에서 데이터를 업데이트하는 프로세스의 두 번째 절차는 도 4b에 도시되어 있다. 두 번째 절차는 단계 6에서 마스터 서버가, 모든 슬레이브 노드(210, 210', 210")가 새로운 복제 파일(150)을 성공적으로 사전로딩했다는 통지를 받으면서 시작된다. 이 사전로딩 수행의 통지는 동기 슬레이브 노드(210)의 서버 프로세스 과제(220)가 보낸 것이다. 이에, 담당 마스터 서버(112)는 단계 7에서, 복제 파일(150)의 새로운 버전(Vn+1)의 데이터를 마스터 데이터베이스(120)에 저장하며, 따라서, 새로운 버전(150)의 사용을 전체 데이터 처리 시스템에 커밋(commit)한다.
커밋 단계는 단계 8에서 마스터 서버(112)가 커밋 메시지를 동기 슬레이브 노드(210)의 서버 프로세스(220) 과제로 전송하여 새롭게 사전로딩된 복제 파일(Vn+1)(150)의 사용 준비가 되었음을 알림으로써 추후 완성된다.
단계 9에서, 커밋 메시지를 받으면, 복제 파일의 새로운 버전(150)이 동기 슬레이브 노드(210)의 서버 프로세스 과제(220)에 의해 슬레이브 데이터베이스(260)로 실제로 커밋된다. 이 단계에서도 여전히 각 슬레이브 노드(210, 210', 210")에 이미 사전로딩된 새로운 버전(150)은, 이후의 전환(switching) 단계가 실행되기 전까지는 슬레이브 노드(210, 210', 210")의 클라이언트 애플리케이션에 의해 실제로 사용되지 못한다.
그럼에도 불구하고, 단계 10에서, 마스터 서버(112)는 동기 슬레이브 노드(210)의 서버 프로세스(220) 과제로부터, 슬레이브 데이터베이스(260)로의 커밋 완료의 통지에 대한 응답을 수신한다. 그 다음에 이 응답은 단계 11에서 데이터 처리 시스템의 관리자의 데이터 처리 장치(140)로 전파되어, 요청 업데이트(142)가 실제로 커밋되었으며 현재 사용가능함을 상기 관리자에게 알린다.
하지만, 복제 파일의 새로운 버전(150)의 실제 사용은, 적용 프로세스가 정보 질의에 응답하기 위하여 이를 필요로 할 때에만 시스템 내에서 사용가능해진다. 본 발명에 있어서, 정보 질의란, 이를 만족시키 위하여 시스템에 저장된 데이터를 검색해야 하는 질의이다. 반면에, 업데이트 요청시에는, 이를 만족시키기 위하여 저장된 데이터를 업데이트해야 한다. 따라서 업데이트 요청(142)은 최종 사용자에게 제공해야 할 상품, 서비스, 또는 정보에 관련된 데이터를 업데이트하는 담당 관리자가 보내는 반면에, 정보 질의는 시스템의 최종 사용자, 가령, 고객이나 여행 대행사 등이 보낸다. 적용 프로세스가 실행되면, 해당 클라이언트 애플리케이션은 항상, 슬레이브 데이터베이스(260)에서 필요한 복제 파일의 어느 버전을 사용해야 하는지를 확인한다(264). 새로운 버전(150)이 사용가능하면, 공유 메모리에 이미 사전로딩되어 있는 새로운 버전(150)으로 전환(switching)된다. 이 전환은, 데이터베이스 트랜잭션에 있어서 정의되어 있는 ACID 규칙(즉, atomicity(원자성), consistency(일관성), isolation(고립성), durability(지속성))에 이 시점에서 부합된다는 측면에서, 이른바 원자적 연산(atomic operation)이다. 원자성이란, 전환이 완전하게 수행되며 이 전환은 다른 어느 프로세스라도 방해할 수 없어서 클라이언트 애플리케이션에 의해서 지연이 일어나지 않음을 의미한다. 이와 동일한 메커니즘이 모든 클라이언트 애플리케이션 프로세스에 적용된다. 이러한 해결방식은 분산된 모든 사본에서 사용되는 데이터의 완전한 일관성을 보장한다. 전환이 원자적 연산이기 때문에, 복제 파일의 새로운 버전(150)을 검색하는 중에 적용 프로세스가 멈출 가능성이 없다. 복제 파일의 사전로딩이 업데이트 프로세스의 초기에 실행되었기 때문에, 클라이언트 애플리케이션이 복제 파일의 새로운 버전(150)에 액세스할 때에 추가적인 지연이 발생하지 않는다.
적용 프로세스 절차는 슬레이브 데이터베이스(260)에 대한 요청의 수를 최적화하도록 수정될 수 있는 것이 유리하다. 실제로, 이를, 새로운 캐시 버전의 사전로딩와 이 새 버전의 슬레이브 데이터베이스(260)로의 커밋 간의 전이(transition) 동안에서만은 동기화 지점이라고 부른다.
이러한 취지로, 사전로딩 연산 동안에 "사전로딩" 표시자(indicator)가 공유 메모리에 추가된다. 이 표시자가 없으면, 적용 프로세스는 슬레이브 데이터베이스(260)에 대한 요청을 수행하지 않고, 이용가능한 최신의 캐시 버전을 액세스할 것이다. 그렇지 않으면, 슬레이브 데이터베이스(260)에 대한 요청이 수행되고, 슬레이브 데이터베이스(260)로부터의 해당 버전이 사용한다.
사전로딩된 버전이 슬레이브 데이터베이스(260)에 커밋된 경우, 상기 설명한 전환 연산이 수행된다. 이 연산에서, "사전로딩" 표시자는 공유 메모리에서 제거된다.
이전 도면에서 복제 파일이 슬레이브 노드(210, 210', 210")에 준실시간으로(quasi-real time) 어떻게 이용가능해지는지를 설명한 메커니즘은, 시스템의 두 종류의 노드에 대한 두 종류의 동작을 명확하게 구별한다.
- 마스터 노드(110)는 여러 개의 마스터 서버(112)로 구성될 가능성이 큰 기록자 노드(writer node)이다. 이들 각각에는 데이터 처리 시스템의 권한있는 관리자에 의하여 사용자 인터페이스(140)을 통해 발신된 트랜잭션을 관리하는 능력이 부여된다. 관리 트랜잭션은 결국 마스터 데이터베이스(120)를 최종적으로 업데이트하기 위한 것이다. 이를 위해, 이미 논의했듯이, 관리 트랜잭션은 먼저 새로운 복제 파일 버전(Vn+1)(150)을 생성하여 이를 NAS 시스템(160)에 저장한다. 본 발명에서, 마스터 노드(110)는 슬레이브 노드(210, 210', 210")의 구조(토폴로지)를 알지 못하며 데이터를 슬레이브 노드(210, 210', 210") 내로 집어넣는 역할을 하지 않는 것으로 가정한다. 따라서 애플리케이션(200)의 확장성은 마스터 노드(110)와는 완전히 독립적이다.
- 대신에, 슬레이브 노드(210, 210', 210")는 스스로, 공유된 NAS 시스템(160)으로부터 이들을 직접 사전로딩하여서 복제 파일의 읽기전용 사본을 얻는다. 슬레이브 노드(210, 210', 210")로의 정보의 방송은 앞서 언급한 기업 서비스 버스 또는 서비스 통합자(SI)를 통해 이루어진다. 가능한 한 높은 성능을 유지하기 위해, 방송되는 데이터의 양은 최소로 유지하는 것이 유리하다. 이 목적을 달성하기 위해, 본 발명의 방법은 새로운 복제 파일의 가용성의 통지를 슬레이브 노드(210, 210', 210")로만 방송하게 된다. 그리하여 도 4에서 설명한 공통의 공유된 파일 구조, 즉, NAS(160)로부터 새로운 복제 파일(150)을 복사할 수 있게 된다.
준실시간 복제의 의미는, 모든 클라이언트 노드가 도 4에서 논의된 바와 같이 관리 트랜잭션이 종료되자마자, 즉, 단계 11에서, 복제 파일의 새로운 버전(150)으로 전환될 수 있다는 것이다. 이러한 형태의 복제는 또한, 이거 복제(eager replication)라고 알려져 있는데, 이는 다른 형태의 덜 엄격한 복제(흔히, 레이지 복제(lazy replication)라고 부름)와 달리 훨씬 더 제한적이다. 이러한 결과를 얻기 위해, 본 발명은 데이터의 흐름을 제어 흐름(control flow) 및 데이터 흐름(data flow)으로 분리한다. 따라서, 이미 앞에서 언급한 것과 같이, 사용할 복제 파일 버전의 통지는 서비스 통합자를 통해서 클라이언트 노드로 방송된다. 복제 파일의 데이터에 관하여, 이들은 공유 파일 시스템, 즉, NAS 시스템(160)으로부터 이용가능해진다. 버전을 나르는 제어 흐름만이 애플리케이션 계층(200)의 동기 슬레이브 노드(210)를 통해서 그 밖의 모든 슬레이브 노드(210', 210")로 전달 및 라우팅되는 반면에, 데이터는 각 슬레이브 노드(210, 210', 210")로 직접 병렬적으로 전달된다. 이러한 아키텍처에 의해서 마스터 노드(100)의 서버(112), 즉, 기록자(writer)와 슬레이브 노드(210, 210', 210")를 분리시키는 조건이 만족된다. 따라서, 기록자는 새로운 데이터를 저장할 뿐이다(공유 파일 시스템인 NAS에 먼저 저장하고 그 다음에 마스터 데이터베이스(120) 자체에 저장함). 기록자는 슬레이브 노드(210, 210', 210")의 구조를 알 필요가 없다. 마스터 서버, 즉, 기록자는 슬레이브 노드(210, 210', 210")에 버전 정보를 라우팅하기 위하여 서비스 통합자에 의존한다.
공유 파일 구조인 NAS에 기록하는 것에 대해서는 도 5에 도시되어 있다. 이는 복제 파일의 새로운 버전(Vn+1)(150)을 생성할 때 단계 2에서 수행되는 증분 업데이트에 대해 설명하고 있다.
복제 파일을 사용가능하게 하는 것, 즉, 복제 파일을 NAS 시스템(160)과 같은 공유 파일 구조에 공시함으로써 부가적인 이익을 얻는다. 업데이트 요청(142)을 처리하는 담당 마스터 서버(112)는 모든 슬레이브 노드(210, 210', 210")가 현재 사용하는 복제 파일의 최신 버전(250)을 얻기 위해 공유 파일 구조 NAS에 쉽게 액세스(152)할 수 있다. NAS(160)의 2진(binary) 구조는 복제 파일의 검색을 용이하게 하고 또한 저장 요건을 최소화하도록 고안되는 것이 유리하다. 따라서, 복제 파일은, 이들 모두를 저장하기에 필요한 전체적인 저장용량을 보다 더 제한할 수 있도록 압축되어 있을 가능성이 크다. 액세스 시간과 저장 요건 간에 절충(trade off)을 할 수도 있는데, 이로써, 필요한 전체 저장용량을 어느 정도 제한하면서 데이터 처리 시스템의 기대 성능에 부합되는 액세스 시간 내에 복제 파일의 검색이 가능해진다. 파일 전송을 위한 네트워크 대역폭 소비도 또한 고려해야 한다. 어떠한 절충방식을 채용하든지간에, 검색된 복제 파일은 마스터 서버(112)에 의해서 사업 객체 모델(BOM: business object model)(114)로 변환되어야 한다. 이 BOM에 대해서 서버 메모리로의 작업이 이루어질 수 있다. 다음에, 마스터 서버(112)는 요청받은 업데이트를 복제 파일의 현재 버전에 추가하여 증분 업데이트(116)를 수행할 수 있다. 이로써 업데이트 요청(142) 내의 관리자가 요청한 수정사항이 적용된다.
보다 정확하게 말하자면, 검색된 복제 파일은 마스터 서버에 의해서 C++ 사업 객체 모델(114)로 변환되어 서버 메모리로 보내야 한다. 다음에, 마스터 서버(112)는 업데이트 사항을 추가함으로써 C++ 구조(116)에 대해서 증분 업데이트를 수행할 수 있다. 이에, 새로운 복제 파일이 새로운 C++ 구조를 기반으로 하여 내장된다.
이러한 방법을 마스터 데이터베이스(120)로부터 해당 정보를 검색하는 것과 비교하면, 복제 파일의 새로운 버전을 생성하는 절차가 상당히 빨라진다. 평균적으로 10배가 개선된다. 업데이트된 복제 파일은 최종적으로 변환되어 공유 파일 구조 NAS(160)에 다시 저장된다.
이하에서는, 본 발명의 측면에서 강한 일관성이 무엇을 의미하는지, 그리고 앞에서 설명한 시스템과 방법을 써서 상이한 물리적 컴퓨터(30, 30', 30")에 각기 구현된 슬레이브 노드(210, 210', 210")의 모든 복제 파일에 대해서 상기 강한 일관성이 어떻게 얻어지는지에 대해서 자세히 설명한다.
본 발명의 데이터 처리 시스템에서, 마스터 데이터베이스(120)는 정기적으로 업데이트되는 것으로 가정한다. 이러한 특징은 본 발명의 적용에 따라 크게 달라질 수는 있지만, 고려하고자 하는 업데이터의 일반적인 주기는 분당 대략 2회 정도이다. 각 업데이트마다 복제 파일의 새로운 버전(Vn+1)(150)이 생성된다. 이에, 강한 일관성은, 소정 버전의 복제 파일(이름하여 버전 N)이 소정의 슬레이브 노드에서 읽혀진 때부터 다른 슬레이브 노드(210', 210")에서 후속적으로 읽힌 것이 실제로 동일한 복제 파일 버전 N을 출력할 경우에 달성된다. 여하튼 명백한 것은, 새로운 버전(150)이 이미 배포되었다면 더 높은 버전도 또한 읽혀질 수 있다는 것이다.
일관성은, 모든 슬레이브 노드(210, 210', 210")에, 모든 복제 파일의 활성(active) 버전을 추적하는 중앙 액세스 포인트를 제공함으로써 달성된다. 이 액세스 포인트는, ACID 속성에 충족하도록 하기 위해서 표준 관계형 데이터베이스 관리 시스템(RDBMS)에 의해 운용되는 데이터베이스의 테이블로 구현하는 것이 바람직하다. 도 3에서와 같이 본 발명의 시스템에서, 이러한 역할은 슬레이브 데이터베이스(260)에 의해 수행된다. 저장된 버전 테이블의 일부를 262로 표시하였다. 도시된 예에서, BA-NGI가 Vn+1과 대응되는데 이는 복제 파일의 버전 Vn+1, 즉, 여행업체인 영국 항공(BA)이 운용하는 NGI 애플리케이션의 데이터가 사용되어야 함을 의미한다. NGI는 New Generation Inventory의 약자로서 어느 특정 애플리케이션이 소유자인지, 즉, 소정의 규칙 데이터에 대해서 책임이 있는지를 구분한다. 슬레이브 데이터베이스에 저장된 중앙 버전 테이블은 도 4에서 설명한 2개 절차 커밋 프로세스에 의해 업데이트된다.
다음에, 슬레이브 노드에서 실행되는 클라이언트 애플리케이션에 의해 개시된 각 트랜잭션의 시작시에, 활성 복제 파일의 버전은 슬레이브 데이터베이스(260)의 버전 테이블(262)로부터 불려온다(fetch)(264). 찾아진 활성 복제 파일 버전이 현재 사용되는 것보다 크다면, 슬레이브 노드(210, 210', 210")는 즉시, 새로운 복제 파일(Vn+1)(150)로 전환한다. 도 4에서 설명한 것과 같이, 이것이 가능한 이유는 업데이트된 복제 파일(150)이, 슬레이브 노드(210, 210', 210")의 공유 메모리(230, 230', 230")에 이미 사전로딩 되어 있기 때문이다. 여기서, 클라이언트 애플리케이션에 의해 시작된 트랜잭션이 복제 파일에 대한 수 개의 액세스권을 필요로 한다면, 시스템은, 비록 새로운 버전(150)이 도중에 사용가능하게 된다 하더라도 이 트랜잭션의 수명시간 내내 동일한 버전을 사용하게 된다는 점에 주목해야 할 가치가 있다. 이는, 데이터베이스 트랜잭션에 적용되는 ACID 규칙 중의 고립성을 충족한다.
공유 메모리 내의 데이터의 액세스에 한층 높은 수준의 성능을 부여하기 위하여, 각 트랜잭션의 시작에서의 슬레이브 데이터베이스의 상기 조회(264)는 생략 할 수 있다(선택사항임). 이 경우, 공유 메모리에 저장된 복제 파일들은 새로운 버전(150)을 사용가능한지 여부를 나타내는 태그 또는 플래그를 포함해야 한다. 따라서, 각 트랜잭션의 시작시에 우선적으로 확인해야 할 것은 슬레이브 데이터베이스에 시스템 차원에서 조회하는 대신에 상기 태그를 확인해야 하는 것이다. 태그가 사용가능한 새로운 버전(150)이 없음을 나타내는 경우에는 현재의 복제 파일을 사용한다. 태그가 새로운 버전(150)을 실제로 사용할 수 있음을 나타내는 경우에는 버전 테이블(262)을 슬레이브 데이터베이스에서 읽어서 적용 프로세스(240, 240', 240")는 사전로딩된 새로운 복제 파일(Vn+1)로 전환할 수 있다. 새로운 버전(150)의 사전로딩이 완료될 때 설정(set)된 태그는, 클라이언트 애플리케이션이 자신의 현재 트랜잭션을 완료할 때 리셋(reset)된다. 다수의 프로세스들이 동일한 복제 파일(들)을 액세스하고 있는 환경에서는, 수 개의 프로세스만이, 이들 중 하나가 태그를 리셋하기 전에, 데이터베이스를 참조할 것이다.
생산(제조) 환경에서의 동작을 위해서, 상기 설명한 메커니즘은 또한 결함 허용성을 가져야 한다. 완전한 일관성은, 관리 트랜잭션이 마스터 데이터베이스에서 수행되기 전에 복제 파일이 실제로 모두 성공적으로 모든 슬레이브 노드들의 공유 메모리에 사전로딩(즉, 분산 및 매핑)되는 경우에 달성될 수 있을 뿐이다. 이는, 슬레이브 노드가 원자적으로 새로운 복제 파일로 실제로 전환될 수 있는지를 보장하기 위해서 필수적이다. 그렇지 않으면, 어떤 슬레이브는 새로운 버전으로의 전환을 수행하지만 다른 슬레이브는 그렇게 하지 못할 오류가 발생될 수 있어서 일관성의 결여 문제가 생긴다. 따라서 이런 상황이 일어나는 것을 방지하기 위해, 어떤 이유이든 어떤 슬레이브 노드든지 분산에 실패를 한 경우에는 전체 트랜잭션을 중단하고, 업데이트 요청에 대한 응답으로서 최종 사용자에게 오류를 알려준다. 이것이 가능한 이유는 도 4에서 설명한 2개 절차의 커밋 프로세스를 채용하였기 때문이다. 일관성과 가용성 중에서 본 발명은 일관성에 중점을 두고 있다. 그러나 슬레이브 노드로부터의 읽기 가용성은 여전히 완전하게 보장되며 정보 질의가 거의 실시간으로 완수될 수 있음을 강조하는 것이 중요하다. 가용성 중에서 손상될 유일한 부분은 아마 데이터의 업데이트/관리일 것이다. 본 발명의 맥락에서 이 문제는, 모든 슬레이브 노드에 분산된 복제 파일들의 읽기 가용성 및 강한 일관성보다는 훨씬 덜 중요하다. 따라서 각 슬레이브 노드에의 복제 파일의 성공적인 분산은 본 발명의 중요한 부분이다. 이전에 논의한 기업 서비스 버스 또는 서비스 통합자(SI)는, 클라이언트 애플리케이션 계층에 능동적으로 관여하는 슬레이브 노드 그룹의 이미지가 항상 사용가능하다는 것을 확인하는 데 사용된다. 슬레이브 노드가 이 그룹에 합류하거나 이 그룹에서 떠날 때에, 이 이미지는 이에 따라 업데이트되며, 이로써 본 발명의 방법은 적절하게 수행될 수 있다.
이상에서 본 발명의 바람직한 실시예를 도시하고 설명하였지만, 본 발명이 이들에만 한정되는 것은 아니며 이하의 청구범위의 범위 내에서 실무적으로 다양하게 구현할 수 있음을 확실하게 이해해야 한다.

Claims (25)

  1. 데이터 처리 시스템의 복수의 노드들에 걸쳐 분산된 복제 파일의 사본(copy)들 사이에서 일관성을 유지하는 방법에 있어서,
    마스터 데이터베이스에서 상기 복제 파일이 업데이트되도록 요청하는 업데이트 요청을 마스터 서버에서 수신하는 단계;
    상기 업데이트 요청에 기반하여, 공유 파일 시스템에 새로운 버전의 복제 파일을 생성하고 저장하는 단계;
    상기 새로운 버전의 복제 파일의 가용성의 통지를 복수의 슬레이브 노드들에 제공하는 단계;
    각 슬레이브 노드에서 상기 가용성의 통지를 수신하는 것에 응답하여, 상기 새로운 버전의 복제 파일의 사본을 상기 공유 파일 시스템으로부터 각 슬레이브 노드의 메모리로 사전로딩(preload)하고, 상기 사전로딩이 완료되면 상기 사전로딩의 성공적인 완료를 확인응답(ack)하는 단계; 및
    상기 복수의 슬레이브 노드들의 각각의 슬레이브 노드가 상기 마스터 서버에 대한 상기 사전로딩의 성공적인 완료를 확인응답한 경우에만, 상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋(commit)하는 단계
    를 포함하는, 복제 파일의 일관성을 유지하는 방법.
  2. 제1항에 있어서,
    상기 새로운 버전의 복제 파일의 가용성의 통지를 복수의 슬레이브 노드들에 제공하는 단계는,
    상기 마스터 서버로부터, 상기 새로운 버전의 복제 파일의 가용성의 통지를, 상기 복수의 슬레이브 노드들 중에서 선택된 동기 슬레이브 노드로 전달(forwarding)하는 단계; 및
    상기 가용성의 통지를 상기 동기 슬레이브 노드로부터 상기 복수의 슬레이브 노드들 중 다른 나머지 슬레이브 노드들로 방송(broadcast)하는 단계
    를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  3. 제2항에 있어서,
    각 슬레이브 노드는 상기 동기 슬레이브 노드의 서버 프로세스로 사전로딩의 성공적 완료를 확인응답하는 것인, 복제 파일의 일관성을 유지하는 방법.
  4. 제3항에 있어서,
    상기 복수의 슬레이브 노드들 중 모든 다른 나머지 슬레이브 노드들이 상기 동기 슬레이브 노드의 상기 서버 프로세스로 사전로딩의 성공적인 완료를 확인응답하는 것에 응답하여, 상기 동기 슬레이브 노드로부터 상기 마스터 서버로 사전로딩 달성의 통지를 전달하는 단계를 더 포함하는, 복제 파일의 일관성을 유지하는 방법.
  5. 제2항에 있어서,
    상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋하는 단계는,
    상기 마스터 서버로부터 상기 동기 슬레이브 노드로 커밋 통지를 전달하는 단계; 및
    상기 커밋 통지의 수신에 응답하여, 상기 동기 슬레이브 노드를 이용하여, 슬레이브 데이터베이스에서 상기 새로운 버전의 복제 파일의 사용을 트리거(trigger)하는 단계
    를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  6. 제5항에 있어서,
    상기 슬레이브 데이터베이스에서 상기 새로운 버전의 복제 파일의 사용을 트리거하는 단계는, 상기 새로운 버전의 복제 파일의 버전 번호를 이용하여 상기 슬레이브 데이터베이스 내에 버전 테이블을 업데이트하는 단계를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  7. 제1항에 있어서,
    사용자로부터의 정보에 대한 질의에 의해 개시된 트랜잭션(transaction)에 응답하여, 상기 트랜잭션에 관여된 각 슬레이브 노드에서, 슬레이브 데이터베이스를 조회(interrogate)하는 단계; 및
    상기 조회에 기초하여, 현재 버전의 복제 파일로부터 상기 사전로딩된 새로운 버전의 복제 파일로 전환할지의 여부를, 상기 트랜잭션에 관여된 각 슬레이브 노드에 지시하는 단계
    를 더 포함하는, 복제 파일의 일관성을 유지하는 방법.
  8. 제7항에 있어서,
    상기 슬레이브 데이터베이스는 복제 파일의 버전과 관련된 데이터만 저장하는 것인, 복제 파일의 일관성을 유지하는 방법.
  9. 제1항에 있어서,
    사용자로부터의 정보에 대한 질의에 의해 개시된 트랜잭션에 응답하여, 상기 트랜잭션에 관여된 각 슬레이브 노드에서 현재 버전의 복제 파일의 태그 ― 상기 태그는 새로운 버전의 복제 파일이 사용가능한지의 여부를 나타냄 ― 를 판독하는 단계;
    상기 태그가 상기 새로운 버전의 복제 파일이 사용가능함을 나타내는 것에 응답하여, 상기 트랜잭션에 관여된 각 슬레이브 노드의 슬레이브 데이터베이스를 조회하는 단계; 및
    상기 조회에 응답하여, 조회하는 상기 슬레이브 노드에, 상기 현재 버전의 복제 파일로부터 새로운 버전의 복제 파일로 전환할 지의 여부를 지시하는 단계
    를 더 포함하는, 복제 파일의 일관성을 유지하는 방법.
  10. 제9항에 있어서,
    상기 태그는 상기 새로운 버전의 복제 파일의 사전로딩의 성공적인 완료시에 설정되고, 상기 슬레이브 노드에 의한 최초 판독시에 리셋되는 것인, 복제 파일의 일관성을 유지하는 방법.
  11. 제1항에 있어서,
    상기 수신된 업데이트 요청은 상기 복제 파일에 대한 업데이트를 포함하고, 상기 공유 파일 시스템에 상기 새로운 버전의 복제 파일을 생성하고 저장하는 단계는 상기 마스터 서버 내의 증분 프로세스(incremental process)이며,
    상기 증분 프로세스는,
    상기 공유 파일 시스템으로부터 현재 버전의 복제 파일을 검색(retrieve)하는 단계;
    상기 현재 버전의 복제 파일을, 업데이트될 적절한 포맷으로 변환하는 단계;
    상기 새로운 버전의 복제 파일을 생성하도록, 상기 현재 버전의 복제 파일에 업데이트를 적용하는 단계;
    상기 공유 파일 시스템에 저장하기 위하여, 상기 새로운 버전의 복제 파일을 변환시키는 단계; 및
    상기 새로운 버전의 복제 파일을 상기 공유 파일 시스템에 저장하는 단계
    를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  12. 제11항에 있어서,
    상기 복제 파일은 상기 공유 파일 시스템에 저장될 때에 압축되고,
    상기 현재 버전의 복제 파일을, 적절한 포맷으로 변환하는 단계는,
    상기 마스터 서버에 의해서, 상기 공유 파일 시스템에 저장된 상기 현재 버전의 복제 파일을 압축 해제하는 단계; 및
    상기 새로운 버전의 복제 파일의 사본을 사전로딩하는 단계
    를 포함하고, 상기 사전로딩하는 단계는, 각각의 슬레이브 노드로 상기 새로운 버전의 복제 파일을 압축 해제하는 단계를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  13. 제1항에 있어서,
    상기 복수의 슬레이브 노드들의 슬레이브 노드들 중 적어도 하나가 상기 사전로딩의 성공적인 완료를 확인응답 실패한 것에 응답하여, 상기 마스터 서버로부터 상기 업데이트 요청의 전송자에게 오류 통지를 전송하는 단계를 더 포함하는, 복제 파일의 일관성을 유지하는 방법.
  14. 제1항에 있어서,
    상기 공유 파일 시스템은 네트워크 연결 저장소(network-attached storage; NAS)를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  15. 제1항에 있어서,
    상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋하는 단계는,
    상기 마스터 데이터베이스 내의 상기 복제 파일을 상기 새로운 버전의 복제 파일로 업데이트하는 단계;
    상기 복수의 슬레이브 노드들에 의해 사용되는 복제 파일 버전들을 기록(keep track of)하도록 구성된 슬레이브 데이터베이스에서, 상기 복수의 슬레이브 노드들에 의해 사용될 상기 복제 파일의 버전을 식별하는 데이터를 업데이트하는 단계; 및
    상기 슬레이브 데이터베이스에서 상기 복제 파일의 버전을 식별하는 데이터를 업데이트하는 것에 응답하여, 상기 새로운 버전의 복제 파일을 사용하도록 상기 복수의 슬레이브 노드들 중 각각의 슬레이브 노드의 커밋 통지를 상기 마스터 서버에서 수신하는 단계
    를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  16. 제15항에 있어서,
    상기 복수의 슬레이브 노드들 중 각각의 슬레이브 노드가 상기 사전로딩의 성공적인 완료를 확인응답하는 것에 응답하여, 상기 마스터 서버에서 사전로딩 달성의 통지를 수신하는 단계를 더 포함하고,
    상기 마스터 데이터베이스의 상기 복제 파일을 상기 새로운 버전의 복제 파일로 업데이트하는 단계는, 상기 사전로딩 달성의 통지를 수신하는 것에 응답하여 이루어지는 것인, 복제 파일의 일관성을 유지하는 방법.
  17. 컴퓨터 프로그램을 포함하는 비일시적 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 컴퓨터 프로그램은 프로그램 명령어들을 포함하며, 상기 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    마스터 서버에서, 마스터 데이터베이스에서 복제 파일 - 상기 복제 파일의 사본들은 데이터 처리 시스템의 복수의 노드들에 걸쳐 분산되어 있음 - 이 업데이트되도록 요청하는 업데이트 요청을 수신하고,
    상기 업데이트 요청에 기반하여, 공유 파일 시스템에 새로운 버전의 복제 파일을 생성 및 저장하고,
    상기 새로운 버전의 복제 파일의 가용성의 통지를 복수의 슬레이브 노드들에 제공하고,
    각 슬레이브 노드에서 상기 가용성의 통지를 수신하는 것에 응답하여, 상기 새로운 버전의 복제 파일의 사본을 상기 공유 파일 시스템으로부터 각 슬레이브 노드의 메모리로 사전로딩하고, 상기 사전로딩이 완료되면 상기 사전로딩의 성공적인 완료를 확인응답하고,
    상기 복수의 슬레이브 노드들의 모든 슬레이브 노드들이 상기 사전로딩의 성공적인 완료를 확인응답한 경우에만, 상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋하게
    하는 것인, 비일시적 컴퓨터 판독 가능한 기록 매체.
  18. 데이터 처리 시스템의 복수의 노드들에 걸쳐 분산되고, 사업 규칙들을 포함하는 복제 파일의 사본들 사이에서 일관성을 유지하는 방법에 있어서,
    마스터 데이터베이스에 저장된 사업 규칙들을 업데이트하도록, 마스터 서버에서 업데이트 요청을 수신하는 단계;
    상기 업데이트 요청에 기반하여, 공유 파일 시스템에 새로운 버전의 복제 파일을 생성하고 저장하는 단계;
    상기 새로운 버전의 복제 파일의 가용성의 통지를 복수의 슬레이브 노드들에 제공하는 단계;
    각 슬레이브 노드에서 상기 가용성의 통지를 수신하는 것에 응답하여, 상기 새로운 버전의 복제 파일의 사본을 상기 공유 파일 시스템으로부터 각 슬레이브 노드의 메모리로 사전로딩하고, 상기 사전로딩이 완료되면 상기 사전로딩의 성공적인 완료를 확인응답하는 단계; 및
    상기 복수의 슬레이브 노드들 중 모든 슬레이브 노드들이 상기 사전로딩의 성공적인 완료를 확인응답한 경우에만, 상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋하는 단계
    를 포함하는, 복제 파일의 일관성을 유지하는 방법.
  19. 제18항에 있어서,
    상기 사업 규칙들 각각은, 한 세트의 기준(criterion)들 및 콘텐츠를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  20. 제19항에 있어서,
    상기 한 세트의 기준들 중 각각의 기준은, 가중치(weight)와 연관되는 것인, 복제 파일의 일관성을 유지하는 방법.
  21. 제19항에 있어서,
    상기 한 세트의 기준들은 판매 시점 관리(point of sale), 국가, 국가 군, 항공편의 출발국, 항공편의 목적지, 또는 고객 프로파일을 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  22. 제18항에 있어서,
    여행 업체의 인벤토리(inventory)는 상기 데이터 처리 시스템을 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  23. 제18항에 있어서,
    상기 슬레이브 노드들 중 적어도 하나는, 항공사의 인벤토리, 항공사의 출국 관리 시스템, 항공사의 수익 관리 시스템, 항공사의 수익 회계 시스템, 또는 항공사의 전자 티켓 서버에 연결되는 것인, 복제 파일의 일관성을 유지하는 방법.
  24. 제18항에 있어서,
    상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋하는 단계는,
    모든 복제 파일 버전들을 기록하도록 구성된 슬레이브 데이터베이스에서 상기 새로운 버전의 복제 파일의 사용을 커밋하는 단계;
    모든 슬레이브 노드들의 커밋의 통지를 상기 마스터 서버로 전달하는 단계; 및
    상기 마스터 서버로부터, 수신한 업데이트 요청에 응답하여 상기 업데이트 요청의 달성을 확인응답하는 단계
    를 포함하는 것인, 복제 파일의 일관성을 유지하는 방법.
  25. 분산형 데이터 처리 시스템에 있어서,
    마스터 서버와 공유 파일 시스템을 포함하는 마스터 계층; 및
    복수의 슬레이브 노드들 ― 각각의 슬레이브 노드는 메모리를 구비하며 상기 마스터 계층과 통신하도록 연결되어 있고, 상기 마스터 서버는 상기 공유 파일 시스템의 새로운 버전의 복제 파일의 가용성의 통지를 상기 복수의 슬레이브 노드들에 제공하도록 구성됨 ― 을 포함하는 애플리케이션 계층
    을 포함하고,
    상기 복수의 슬레이브 노드들의 각각의 슬레이브 노드는, 상기 가용성의 통지를 수신하는 것에 응답하여 상기 공유 파일 시스템으로부터 상기 새로운 버전의 복제 파일의 사본을 사전로딩하고, 상기 사전로딩의 완료시 상기 사전로딩의 성공적인 완료를 확인응답하도록 구성되어 있고,
    상기 마스터 서버는 또한, 모든 슬레이브 노드들이 상기 사전로딩의 성공적인 완료를 확인응답하는 것에 응답하여, 단지 상기 새로운 버전의 복제 파일을 사용하도록 상기 데이터 처리 시스템을 커밋하도록 구성되는 것인, 분산형 데이터 처리 시스템.
KR1020147005533A 2011-08-03 2012-07-31 클라이언트/서버 시스템에서 분산된 복제 콘텐츠들의 강한 일관성을 유지하는 방법 및 시스템 KR101623663B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP11306011.5A EP2555129B1 (en) 2011-08-03 2011-08-03 Method and system to maintain strong consistency of distributed replicated contents in a client/server system
EP11306011.5 2011-08-03
US13/136,576 US8495017B2 (en) 2011-08-03 2011-08-04 Method and system to maintain strong consistency of distributed replicated contents in a client/server system
US13/136,576 2011-08-04
PCT/EP2012/064966 WO2013017599A1 (en) 2011-08-03 2012-07-31 Method and system to maintain strong consistency of distributed replicated contents in a client/server system

Publications (2)

Publication Number Publication Date
KR20140068916A KR20140068916A (ko) 2014-06-09
KR101623663B1 true KR101623663B1 (ko) 2016-05-23

Family

ID=44534206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147005533A KR101623663B1 (ko) 2011-08-03 2012-07-31 클라이언트/서버 시스템에서 분산된 복제 콘텐츠들의 강한 일관성을 유지하는 방법 및 시스템

Country Status (11)

Country Link
US (1) US8495017B2 (ko)
EP (1) EP2555129B1 (ko)
JP (1) JP6165729B2 (ko)
KR (1) KR101623663B1 (ko)
CN (1) CN103858122B (ko)
AU (1) AU2012292068B2 (ko)
BR (1) BR112014002501A2 (ko)
CA (1) CA2848910C (ko)
ES (1) ES2723781T3 (ko)
WO (1) WO2013017599A1 (ko)
ZA (1) ZA201400774B (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311027B2 (en) 2011-09-23 2019-06-04 Open Invention Network, Llc System for live-migration and automated recovery of applications in a distributed system
US10331801B2 (en) 2011-09-23 2019-06-25 Open Invention Network, Llc System for live-migration and automated recovery of applications in a distributed system
US9477739B2 (en) * 2011-09-23 2016-10-25 Hybrid Logic Ltd System for live-migration and automated recovery of applications in a distributed system
GB2495079A (en) 2011-09-23 2013-04-03 Hybrid Logic Ltd Live migration of applications and file systems in a distributed system
US9483542B2 (en) 2011-09-23 2016-11-01 Hybrid Logic Ltd System for live-migration and automated recovery of applications in a distributed system
US9547705B2 (en) 2011-09-23 2017-01-17 Hybrid Logic Ltd System for live-migration and automated recovery of applications in a distributed system
US20130227101A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing, Inc. Method and system for providing transaction management in a request-oriented service architecture
US20130227143A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing Inc. Method and system for providing transaction management in a request-oriented service architecture using meta-models
US9542177B1 (en) * 2012-10-30 2017-01-10 Amazon Technologies, Inc. Peer configuration analysis and enforcement
US9003106B1 (en) * 2012-11-26 2015-04-07 Emc Corporation Crash consistency
US8977830B1 (en) * 2012-11-26 2015-03-10 Emc Corporation Crash consistency
US9197700B2 (en) * 2013-01-18 2015-11-24 Apple Inc. Keychain syncing
US9430545B2 (en) * 2013-10-21 2016-08-30 International Business Machines Corporation Mechanism for communication in a distributed database
US20160277182A1 (en) * 2013-11-18 2016-09-22 Mitsubishi Electric Corporation Communication system and master apparatus
US9898398B2 (en) 2013-12-30 2018-02-20 Microsoft Technology Licensing, Llc Re-use of invalidated data in buffers
US9430508B2 (en) 2013-12-30 2016-08-30 Microsoft Technology Licensing, Llc Disk optimized paging for column oriented databases
US9723054B2 (en) 2013-12-30 2017-08-01 Microsoft Technology Licensing, Llc Hierarchical organization for scale-out cluster
US20150263900A1 (en) * 2014-03-11 2015-09-17 Schlumberger Technology Corporation High performance distributed computing environment particularly suited for reservoir modeling and simulation
JP5908175B2 (ja) * 2014-04-24 2016-04-26 三菱電機株式会社 制御システム、マスタ局、およびリモート局
US10423498B2 (en) * 2014-06-26 2019-09-24 Sybase, Inc. Zero data loss transfer protocol
KR101713537B1 (ko) * 2014-08-05 2017-03-09 네이버 주식회사 데이터의 일관성을 보장하는 상태기기 기반의 복제 및 체크포인트데이터와 복제로그를 이용한 분산 복구를 처리하는 데이터 복제 방법 및 데이터 저장 시스템
CN104361424B (zh) * 2014-10-11 2018-05-04 中国电子科技集团公司第十研究所 基于企业服务总线的主数据系统集成方法
JP2016081349A (ja) * 2014-10-17 2016-05-16 ソニー株式会社 情報処理装置、情報処理方法、および情報処理システム
US10303796B2 (en) * 2015-01-09 2019-05-28 Ariba, Inc. Updating distributed shards without compromising on consistency
US9774729B2 (en) * 2015-03-26 2017-09-26 Futurewei Technologies, Inc. System and method for mobile core data services
CN104881444B (zh) * 2015-05-14 2018-08-14 微梦创科网络科技(中国)有限公司 网站中更新缓存服务器的方法及系统
CN106375102B (zh) * 2015-07-22 2019-08-27 华为技术有限公司 一种服务注册方法、使用方法及相关装置
CN105354046B (zh) * 2015-09-15 2019-03-26 深信服科技股份有限公司 基于共享磁盘的数据库更新处理方法及系统
US10496630B2 (en) 2015-10-01 2019-12-03 Microsoft Technology Licensing, Llc Read-write protocol for append-only distributed databases
US10025947B1 (en) 2015-11-30 2018-07-17 Ims Health Incorporated System and method to produce a virtually trusted database record
CN105608229A (zh) * 2016-01-29 2016-05-25 锐达互动科技股份有限公司 一种主从数据库同步系统及方法
CN105744298A (zh) * 2016-01-30 2016-07-06 安徽欧迈特数字技术有限责任公司 一种基于视频码流技术的工业交换机电口传输方法
CN107656937B (zh) * 2016-07-26 2021-05-25 北京京东尚科信息技术有限公司 用于实现读写数据一致性的方法和装置
EP3285220A1 (en) * 2016-08-18 2018-02-21 Mastercard International Incorporated Transaction control management
CN107809326B (zh) * 2016-09-09 2021-07-06 阿里巴巴集团控股有限公司 数据一致性的处理方法、装置和设备
CN108123967A (zh) * 2016-11-28 2018-06-05 中国石油天然气股份有限公司 一种集群系统的数据同步方法和系统
CN108123976B (zh) * 2016-11-30 2020-11-20 阿里巴巴集团控股有限公司 集群间的数据备份方法、装置及系统
CN108574854A (zh) * 2017-03-10 2018-09-25 达创科技股份有限公司 传输多媒体数据的方法、伺服器及系统
US10831719B2 (en) * 2017-08-29 2020-11-10 Western Digital Technologies, Inc. File consistency in shared storage using partial-edit files
WO2019089619A1 (en) * 2017-10-31 2019-05-09 Ab Initio Technology Llc Managing a computing cluster using replicated task results
CN110019091A (zh) * 2017-12-03 2019-07-16 中国直升机设计研究所 一种异地数据协同系统
CN108052358B (zh) * 2017-12-12 2021-07-13 上海天旦网络科技发展有限公司 一种分布式部署的系统和方法
CN110045912B (zh) 2018-01-16 2021-06-01 华为技术有限公司 数据处理方法和装置
CN110309156A (zh) * 2018-03-01 2019-10-08 阿里巴巴集团控股有限公司 数据库系统、数据库更新、扩容方法及设备
KR102116813B1 (ko) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 분산 환경 시스템에서의 어플리케이션 무중단 배포 시 불필요한 리소스 인식 및 해제 방안
KR102116814B1 (ko) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 어플리케이션 무중단 배포 시 응용 프로그램 버전 정합성을 위한 방법 및 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램
US10922199B2 (en) * 2018-07-04 2021-02-16 Vmware, Inc. Role management of compute nodes in distributed clusters
CN110825309B (zh) * 2018-08-08 2021-06-29 华为技术有限公司 数据读取方法、装置及系统、分布式系统
CN111406251B (zh) 2018-08-24 2023-12-08 华为技术有限公司 数据预取方法及装置
CN109165230A (zh) * 2018-09-11 2019-01-08 郑州云海信息技术有限公司 一种分布式集群管理软件数据同步的方法、装置及设备
CN110008284B (zh) * 2019-03-18 2021-06-22 武汉达梦数据库股份有限公司 基于数据页预加载及回滚的数据库数据同步方法及设备
CN109977168B (zh) * 2019-03-18 2021-11-05 武汉达梦数据库股份有限公司 基于数据页预加载的数据库数据同步方法及设备
CN110297640B (zh) * 2019-06-12 2020-10-16 北京三快在线科技有限公司 模型部署的方法、装置、存储介质及电子设备
CN110737670B (zh) * 2019-10-21 2023-06-13 中国民航信息网络股份有限公司 一种集群数据一致性的保障方法、装置及系统
US11455312B1 (en) 2019-11-20 2022-09-27 Sabre Glbl Inc. Data query system with improved response time
CN111147560B (zh) * 2019-12-18 2022-05-17 河北远东通信系统工程有限公司 基于http协议以及断点续传的数据同步方法
CN111240698A (zh) * 2020-01-14 2020-06-05 北京三快在线科技有限公司 模型部署的方法、装置、存储介质及电子设备
CN111273965B (zh) * 2020-02-17 2021-10-29 支付宝(杭州)信息技术有限公司 一种容器应用启动方法、系统、装置及电子设备
CN111930396B (zh) * 2020-06-29 2021-05-11 广西东信易联科技有限公司 一种基于notify机制的4G路由器中通讯模组的升级方法
CN113297231A (zh) * 2020-07-28 2021-08-24 阿里巴巴集团控股有限公司 数据库处理方法及装置
US11570243B2 (en) * 2020-09-22 2023-01-31 Commvault Systems, Inc. Decommissioning, re-commissioning, and commissioning new metadata nodes in a working distributed data storage system
US11314687B2 (en) 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
KR102440733B1 (ko) * 2020-10-26 2022-09-05 피네보 주식회사 결제 처리를 위한 시스템 및 방법
CN112307083A (zh) * 2020-10-28 2021-02-02 深圳前海微众银行股份有限公司 数据处理方法、装置及服务器
CN112492026B (zh) * 2020-11-26 2022-08-23 郑州师范学院 动态云存储环境下混合型自适应副本一致性更新方法
CN112699325B (zh) * 2021-01-14 2022-07-26 福建天晴在线互动科技有限公司 一种缓存二次淘汰保障数据一致性的方法及其系统
CN112699139A (zh) * 2021-01-14 2021-04-23 福建天晴在线互动科技有限公司 一种利用数据服务中心来保证数据一致性的方法及其系统
CN113778975B (zh) * 2021-09-15 2023-11-03 京东科技信息技术有限公司 基于分布式数据库的数据处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023618A1 (en) 2001-07-26 2003-01-30 Orbits David A. System and method for reliably replicating data
US7500020B1 (en) 2003-12-31 2009-03-03 Symantec Operating Corporation Coherency of replicas for a distributed file sharing system
US7653668B1 (en) 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721909A (en) * 1994-03-30 1998-02-24 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US5835757A (en) * 1994-03-30 1998-11-10 Siemens Telecom Networks Distributed database management system for servicing application requests in a telecommunications switching system
US5566304A (en) * 1995-05-08 1996-10-15 Apple Computer, Inc. Method of dynamic selection between immediate and delayed read access acknowledgement
US6411991B1 (en) * 1998-09-25 2002-06-25 Sprint Communications Company L.P. Geographic data replication system and method for a network
US6405219B2 (en) * 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
US20010039548A1 (en) * 2000-04-27 2001-11-08 Yoshitake Shinkai File replication system, replication control method, and storage medium
US6711572B2 (en) * 2000-06-14 2004-03-23 Xosoft Inc. File system for distributing content in a data network and related methods
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US20040122730A1 (en) * 2001-01-02 2004-06-24 Tucciarone Joel D. Electronic messaging system and method thereof
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US7243103B2 (en) * 2002-02-14 2007-07-10 The Escher Group, Ltd. Peer to peer enterprise storage system with lexical recovery sub-system
AU2003217599A1 (en) * 2002-02-22 2003-09-09 Bea Systems, Inc. System and method for using a data replication service to manage a configuration repository
US7305585B2 (en) * 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
TWI256556B (en) * 2002-07-08 2006-06-11 Via Tech Inc Distributed concurrent version management system and method
ATE354905T1 (de) * 2002-08-29 2007-03-15 Hewlett Packard Co Verfahren und vorrichtung zur datenverteilung in einem netzwerk
US20040068523A1 (en) * 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
CN1261877C (zh) * 2002-10-11 2006-06-28 鸿富锦精密工业(深圳)有限公司 多节点文件同步系统及方法
US7359926B1 (en) * 2003-02-13 2008-04-15 Stampede, Technologies, Inc. System for optimization of database replication/synchronization
US7567987B2 (en) * 2003-10-24 2009-07-28 Microsoft Corporation File sharing in P2P group shared spaces
US7478400B1 (en) * 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
JP2006059319A (ja) * 2004-07-21 2006-03-02 Ricoh Co Ltd 情報処理装置、プログラムおよび記憶媒体
US20060190549A1 (en) * 2004-07-23 2006-08-24 Kouichi Teramae Multi-media information device network system
US7401192B2 (en) * 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file
US7548928B1 (en) * 2005-08-05 2009-06-16 Google Inc. Data compression of large scale data stored in sparse tables
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
US8756683B2 (en) * 2006-12-13 2014-06-17 Microsoft Corporation Distributed malicious software protection in file sharing environments
JP2008197779A (ja) * 2007-02-09 2008-08-28 Fujitsu Ltd 階層型ストレージ管理システム、階層制御装置、階層間ファイル移動方法、及びプログラム
US7984202B2 (en) * 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
US7788233B1 (en) * 2007-07-05 2010-08-31 Amazon Technologies, Inc. Data store replication for entity based partition
US8887298B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Updating and validating documents secured cryptographically
US20090063503A1 (en) * 2007-09-05 2009-03-05 Kevin Ward Method and system for remote cache access
US7872581B2 (en) * 2007-09-28 2011-01-18 Nokia Corporation Method, devices and system for multiple RFID tag read-out
DE102007048579B4 (de) * 2007-10-10 2016-05-19 Airbus Operations Gmbh Mehrzweck-Flugbegleiterpanel
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US8170990B2 (en) * 2008-05-30 2012-05-01 Hitachi, Ltd. Integrated remote replication in hierarchical storage systems
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
DE102008035601A1 (de) * 2008-07-31 2010-02-04 Walter, Thomas, Dr.-Ing. System zum Verwalten von Dateien
SE533007C2 (sv) * 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
JP4719318B2 (ja) * 2009-03-19 2011-07-06 株式会社Murakumo データの複製管理方法及びシステム
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US20110016100A1 (en) * 2009-07-16 2011-01-20 Microsoft Corporation Multiple fidelity level item replication and integration
US8683161B2 (en) * 2009-07-30 2014-03-25 Franz Michael Schuette Method and apparatus for increasing file copy performance on solid state mass storage devices
KR101601032B1 (ko) * 2009-12-01 2016-03-08 삼성전자주식회사 메모리 카드의 장착이 가능한 이동 단말기 및 그의 메모리 카드 관리 방법
WO2011083505A1 (en) * 2010-01-05 2011-07-14 Hitachi, Ltd. Method and server system for testing and executing migration between virtual servers
US8959215B2 (en) * 2010-07-06 2015-02-17 Nicira, Inc. Network virtualization
EP2617159B1 (en) * 2010-09-17 2018-04-04 Oracle International Corporation System and method for facilitating protection against run-away subnet manager instances in a middleware machine environment
US8732108B2 (en) * 2010-10-07 2014-05-20 International Business Machines Corporation Rule authoring for events in a grid environment
US8301600B1 (en) * 2010-11-15 2012-10-30 Amazon Technologies, Inc. Failover recovery in a distributed data store
US8442962B2 (en) * 2010-12-28 2013-05-14 Sap Ag Distributed transaction management using two-phase commit optimization
US9063969B2 (en) * 2010-12-28 2015-06-23 Sap Se Distributed transaction management using optimization of local transactions
CN102122306A (zh) * 2011-03-28 2011-07-13 中国人民解放军国防科学技术大学 一种数据处理方法及应用该方法的分布式文件系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023618A1 (en) 2001-07-26 2003-01-30 Orbits David A. System and method for reliably replicating data
US7500020B1 (en) 2003-12-31 2009-03-03 Symantec Operating Corporation Coherency of replicas for a distributed file sharing system
US7653668B1 (en) 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees

Also Published As

Publication number Publication date
ZA201400774B (en) 2015-05-27
CN103858122A (zh) 2014-06-11
JP2014535081A (ja) 2014-12-25
BR112014002501A2 (pt) 2017-03-01
KR20140068916A (ko) 2014-06-09
US8495017B2 (en) 2013-07-23
US20130036092A1 (en) 2013-02-07
CN103858122B (zh) 2016-12-28
ES2723781T3 (es) 2019-09-02
JP6165729B2 (ja) 2017-07-19
EP2555129A1 (en) 2013-02-06
CA2848910C (en) 2018-09-04
EP2555129B1 (en) 2019-02-06
AU2012292068A1 (en) 2013-05-02
WO2013017599A1 (en) 2013-02-07
CA2848910A1 (en) 2013-02-07
AU2012292068B2 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
KR101623663B1 (ko) 클라이언트/서버 시스템에서 분산된 복제 콘텐츠들의 강한 일관성을 유지하는 방법 및 시스템
US7076553B2 (en) Method and apparatus for real-time parallel delivery of segments of a large payload file
US7765186B1 (en) Update-anywhere replication of distributed systems
US7962574B2 (en) Data integration in service oriented architectures
US8713098B1 (en) Method and system for migrating object update messages through synchronous data propagation
US9037801B2 (en) Method and system of storing and retrieving data
KR101863398B1 (ko) 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법
CN106777311B (zh) 航班舱位状态缓存方法和系统
WO2017192174A1 (en) Splitting and moving ranges in a distributed system
EP2486486B1 (en) Synchronization with reconciliation on client site
CN102855239A (zh) 一种分布式地理文件系统
US9081839B2 (en) Push replication for use with a distributed data grid
CA2882498C (en) Method and system of storing and retrieving data
KR101696911B1 (ko) 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
US7024371B2 (en) High availability planning and scheduling architecture
CN108347454A (zh) 元数据交互方法及系统
EP2713284B1 (en) Method and system of storing and retrieving data
CN117609389A (zh) 一种多端数据库系统
CN117354141A (zh) 应用服务管理方法、设备和计算机可读存储介质
Wong et al. The architecture of DIVINE: an object database server for collaborative virtual environment

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant