KR101547719B1 - 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 - Google Patents

데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 Download PDF

Info

Publication number
KR101547719B1
KR101547719B1 KR1020117002453A KR20117002453A KR101547719B1 KR 101547719 B1 KR101547719 B1 KR 101547719B1 KR 1020117002453 A KR1020117002453 A KR 1020117002453A KR 20117002453 A KR20117002453 A KR 20117002453A KR 101547719 B1 KR101547719 B1 KR 101547719B1
Authority
KR
South Korea
Prior art keywords
data
servers
server
catalog
computer
Prior art date
Application number
KR1020117002453A
Other languages
English (en)
Other versions
KR20110044858A (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 KR20110044858A publication Critical patent/KR20110044858A/ko
Application granted granted Critical
Publication of KR101547719B1 publication Critical patent/KR101547719B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

다수의 데이터 센터들의 데이터 서버들내 하나의 데이터의 다수의 복사본들에 대한 데이터 무결성(data integrity,無缺性)을 유지하는 방법, 컴퓨터 프로그램 제품 및 시스템은, 카탈로그 서버들의 클러스터를 유지하는 단계-상기 카탈로그 서버들 중 하나는 마스터 카탈로그 서버로 선택됨-, 상기 데이터 서버들로부터 선택된 주 데이터 서버에 상기 하나의 데이터를 저장하는 단계, 상기 하나의 데이터를 상기 데이터 서버들로부터 선택된 하나 또는 그 이상의 백업 데이터 서버들에 복사하는 단계, 데이터 상태 정보를 상기 마스터 카탈로그 서버로 기록하고, 상기 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터로 복사하는 단계; 및 상기 주 데이터 서버가 고장(failure)나면, 상기 데이터 서버들 및 카탈로그 서버들의 클러스터를 업데이트하는 단계를 포함한다.

Description

데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지{MAINTAINING DATA INTEGRITY IN DATA SERVERS ACROSS DATA CENTERS}
본 발명은 데이터 센터내의 데이터 관리에 관한 것이다. 보다 자세하게는, 다수의 데이터 센터들내 데이터 서버들내의 데이터에 대한 다수의 복사본들의 데이터 무결성을 관리하는 것에 관한 것이다.
데이터 센터는 컴퓨터 시스템들 및 이들과 연관된 컴포넌트들(예를 들어 통신이나 저장 시스템들)을 수용하는데 사용되는 설비이다. 거의 모든 주요 기업들은 하나 이상의 데이터 센터들을 가지고 있는데, 여기에는 엄청난 양의 데이터가 저장 시스템내에 저장되어 있다. 데이터 센터들은 이러한 기업들의 연속적인 업무를 위해 필수적인 데이터, 애플리케이션, 웹-호스팅 및 이비지니스 기능들을 제공한다. 일반적으로 상기 데이터 센터들은 여분 또는 백업 전력 공급장치들, 여분의 데이터 통신 연결들, 환경 제어(예를 들어 에어 컨디셔닝, 화재 예방) 및 특수 보안 디바이스들을 가지고 있다. 이들은 효율적인 재난 복구 및 지리적 동작 둘다의 효율을 위해 서로 다른 지리적 위치에 흩어져있다.
대부분의 기업들은 다수의 데이터 센터들을 가진다. 몇몇 기업들은 데이터를 포함하는 다른 데이터 센터들(즉, 백업 데이터 센터들)은 패시브인 반면에, 액티브 데이터 센터들(즉, 주 데이터 센터)내에 데이터의 복사본을 가지는 패시브-액티브(passive-active) 데이터 센터들을 이용한다. 재난이 액티브 데이터 센터에 일어나면서 백업 데이터 센터들이 여전히 보전될 확률은 거의 없는 바, 데이터 센터들의 이러한 구현은 종종 리소스들의 낭비이다. 다른 기업들은 상기 주 및 백업 데이터 센터들 둘다가 액티브인 액티브-액티브 데이터 센터들을 활용한다. 상기 액티브-액티브 데이터 센터들은 훨씬 더 복잡하지만, 보통 동작(normal operations)에 대해 클라이언트들에 서비스를 제공하고 서버 활용을 개선하는데 매우 효율적이다.
그러나, 액티브-액티브 데이터 센터들은 데이터 무결성(data integrity,無缺性)을 유지하고 트랜잭션 흐름을 제어하기 위해, 데이터 센터들간에 신뢰할 수 있고 일관된 연결을 필요로한다. 그렇지 않으면 다른 데어터 센터들내 데이터는 필수적인 무결성을 가질 수 없을 것이고, 전체 시스템이 제대로 동작하지 않을 것이다. 또한, 다른 데이터 센터들이 위치한 지리적 위치들에 걸쳐 신뢰할 수 있고 한결같은 연결들을 유지하는 것은 일반적으로 매우 어렵고, 따라서 현재 액티브-액티브 데이터 센터들은 엄격한 트랜잭션들이 필요하지 않은 데이터에 대해서만, 그리고 값비싼 전용 메트로 네트워크(Metrod network)내에서 사용된다.
많은 기업들은 보다 나은 확장성, 보다 나은 신뢰성 및 리소스들의 보다 나은 효율을 위해 액티브-액티브 데이터 센터들을 필요로한다. 훌륭한 액티브-액티브 데이터 센터들은, 데이터 센터의 네트워크, 컴퓨터 또는 컴포넌트가 다운되었을 때, 데이터의 대량의 액티브 복사본을 처리하고 데이터 무결성 및 액티브 롤 제어(active role control)를 관리할 수 있어야 한다.
제1 실시예에 따라, 하나의 데이터의 복수의 복사본들에 대한 데이터 무결성(data integrity,無缺性)을 유지하는 방법에 있어서, 상기 복수의 복사본들은 다수의 데이터 센터들에 걸쳐서 복수의 데이터 서버들에 저장되어 있고, 상기 하나의 데이터를 저장하기 위해서 상기 복수의 데이터 서버들로부터 주 데이터 서버를 선택하고, 상기 하나의 데이터를 상기 복수의 데이터 서버들내 다른 데이터 서버들로 복사하는 단계; 카탈로그 서버들의 클러스터를 유지하는 단계 -상기 카탈로그 서버들 중 하나는 마스터 카탈로그 서버로서 선택됨-; 상기 하나의 데이터의 데이터 상태 정보를 상기 마스터 카탈로그 서버로 기록하고, 상기 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터내 다른 카탈로그 서버들에 복사하는 단계; 및 상기 주 데이터 서버의 고장(failure)에 대응하여, 상기 복수의 데이터 서버들로부터 새로운 주 서버를 선택하고, 카탈로그 서버들의 클러스터를 업데이트하는 단계를 포함하는 방법이 제공된다.
다수의 데이터 센터들의 데이터 서버들내 하나의 데이터의 다수의 복사본들에 대한 데이터 무결성(data integrity)을 유지하기 위한 방법, 컴퓨터 프로그램 제품 및 시스템이 제공된다. 바람직하게는 카탈로그 서버들의 클러스터가 유지되는데, 상기 클러스터 서버들 중 하나는 마스터 클러스터 서버로서 선택된다. 바람직하게는 상기 하나의 데이터는 상기 데이터 서버들로부터 선택된 주 데이서 서버내에 저장된다. 바람직하게는 상기 하나의 데이터는 상기 데이터 서버들로부터 선택된 하나 또는 그 이상의 백업 데이터 서버들로 복사된다. 바람직하게는 데이터 상태 정보는 마스터 카달로그 서버에 기록된다. 바람직하게는 상기 데이터 상태 정보는 클러스터 서버들의 클러스터에 복사된다. 바람직하게는 상기 데이터 서버들 및 카탈로그 서버들의 클러스터는 상기 주 데이터 서버가 고장날 때 업데이트된다.
제2 실시예에 따라, 하나의 데이터의 복수의 복사본들에 대한 데이터 무결성(data integrity)을 유지하기 위한 컴퓨터 프로그램 제품이 제공되는데, 상기 복수의 복사본들은 다수의 데이터 센터들에 걸쳐서 복수의 데이터 서버들에 저장되어 있고, 상기 컴퓨터 프로그램 제품은 내장된 컴퓨터 사용가능 프로그램 코드를 가지는 컴퓨터 사용가능 매체를 포함하고, 상기 컴퓨터 사용가능 프로그램 코드는 상기 하나의 데이터를 저장하기 위해서 상기 복수의 데이터 서버들로부터 주 데이터 서버를 선택하고, 상기 하나의 데이터를 상기 복수의 데이터 서버들내 다른 데이터 서버들로 복사하는 명령; 카탈로그 서버들의 클러스터를 유지하는 명령 -상기 카탈로그 서버들 중 하나는 마스터 카탈로그 서버로서 선택됨-; 상기 하나의 데이터의 데이터 상태 정보를 상기 마스터 카탈로그 서버로 기록하고, 상기 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터내 다른 카탈로그 서버들에 복사하는 명령; 및 상기 주 데이터 서버의 고장(failure)에 대응하여, 상기 복수의 데이터 서버들로부터 새로운 주 서버를 선택하고, 카탈로그 서버들의 클러스터를 업데이트하는 명령을 포함한다.
제3 실시예에 따라, 프로세서; 상기 프로세서에 동작가능하도록 연결된 메모리; 상기 프로세서와 상기 메모리에 동작가능하도록 연결된 저장 디바이스; 및 하나의 데이터의 복수의 복사본들에 대한 데이터 무결성(data integrity,無缺性)을 유지하기 위한 컴퓨터 프로그램 제품을 포함하는 컴퓨터 시스템이 제공되는데, 상기 복수의 복사본들은 다수의 데이터 센터들에 걸쳐서 복수의 데이터 서버들에 저장되어 있고, 상기 컴퓨터 프로그램 제품은 내장된 컴퓨터 사용가능 프로그램 코드를 가지는 컴퓨터 사용가능 매체를 포함하고, 상기 컴퓨터 사용가능 프로그램 코드는 상기 하나의 데이터를 저장하기 위해서 상기 복수의 데이터 서버들로부터 주 데이터 서버를 선택하고, 상기 하나의 데이터를 상기 복수의 데이터 서버들내 다른 데이터 서버들로 복사하는 명령; 카탈로그 서버들의 클러스터를 유지하는 명령 -상기 카탈로그 서버들 중 하나는 마스터 카탈로그 서버로서 선택됨-; 상기 하나의 데이터의 데이터 상태 정보를 상기 마스터 카탈로그 서버로 기록하고, 상기 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터내 다른 카탈로그 서버들에 복사하는 명령; 및 상기 주 데이터 서버의 고장(failure)에 대응하여, 상기 복수의 데이터 서버들로부터 새로운 주 서버를 선택하고, 카탈로그 서버들의 클러스터를 업데이트하는 명령을 포함한다.
제4 실시예에 따라, 하나의 데이터의 복수의 복사본들에 대한 데이터 무결성을 유지하기 위한 컴퓨터 시스템에 있어서, 상기 복수의 복사본들은 다수의 데이터 센터들에 걸쳐서 복수의 데이터 서버들에 저장되어 있고, 상기 복수의 데이터 센터들 중 하나가 고장날 때 생성된 제1 및 제2 네트워크 파티션들을 감지하고 관리하도록 구성된 네트워크 파티션 관리자; 상기 제1 및 제2 네트워크 파티션들 중 적어도 하나에서 데이터 센터들의 기능들을 제어하도록 구성된 해드마스터 제어기; 상기 제2 네트워트 파티션으로의 모든 기록 트랜잭션들을 상기 제1 네트워크 파티션으로 다시 보내도록 구성된 라우터; 상기 제2 네트워트 파티션내 선택된 데이터 서버를 상기 해드마스터 제어기로 재연결하도록 구성된 수리 관리자-이를 통해 상기 해드마스터 제어기가 상기 선택된 데이터 서버상의 기능 제한들(function limitations)을 제거할 수 있음-; 상기 수리 관리자가 상기 해드마스터 제어기로 연결을 설정한 후에, 상기 선택된 데이터 서버의 상태와 권한 정보를 복구하도록 구성된 복구 관리자; 상기 고장난 데이터 센터내 고장난 데이터 서버를 제거하고, 상기 복수의 데이터 서버들내 다른 데이터 서버들을 재그룹하도록 구성된 임시 재그룹 관리자; 다른 데이터 서버들 각각의 서비스 성능에 따라, 다른 데이터 서버들로 트래픽을 다시 보내도록 구성된 로드 및 트래픽 제어기; 및 상기 데이터 센터들간의 연결을 모니터링하도록 구성된 내부-데이터-센터 연결 관리자를 포함한다.
이하의 도면들을 참고로, 단지 일 예로서 본 발명의 바람직한 실시예가 기술될 것이다:
도 1은 본 발명의 일 예의 다양한 컴포넌트들의 블럭도이다;
도 2는 일 실시예에 따라, 데이터 무결성 및 액티브 롤 제어 메카니즘이 작업하는 방법을 기술하는 블럭도이다;
도 3은 일 실시예에 따라, 본 발명이 다수의 데이터 센터들내 데이터 서버들에 걸쳐서 데이터 무결성을 유지하는 방법을 도시하는 흐름도이다.
도 4는 바람직한 실시예에 따라 바람직한 일 실시예에 따라 본 발명이 활용될 수 있는 컴퓨터 시스템의 컨셉 도면이다.
본 발명은 첨부된 도면들에 도시된 실시예들을 참고로 일 예로서 더욱 상세하게 기술될 것이다. 이하의 개시된 실시예들은 단지 일 예로써 표시된 것이고, 특정 물리적 구성으로 본 발명의 컨셉을 한정하는 것으로 고려되어서는 안된다는 점에 유념해야 한다. 또한 별도로 기술되지 않는 한, 용어들 "초과", "미만", "앞", "뒤", "이상", "이하" 및 유사한 용어들은 본 발명을 특정 성향으로 한정하는 것으로 고려되어서는 안될 것이다. 대신에, 이러한 용어들은 단지 상대적인 기준으로 사용된다.
본 기술분야에서 통상의 기술을 가진 자들이 인식할 수 있는 바와 같이, 본 발명은 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명은 전체적으로 하드웨어 구현, 전체적으로 소프트웨어 구현(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함) 또는 여기서 "회로", "모듈" 또는 "시스템"으로 언급될 수 있는 소프트웨어와 하드웨어 측면을 조합하는 형태를 취할 수 있다. 더 나아가, 본 발명은 매체에 구현된 컴퓨터-사용가능 프로그램 코드를 가지는 구현(expression)의 유형 매체내에 포함된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 사용가능 또는 컴퓨터 판독가능 매체의 조합이 활용될 수 있다. 상기 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 예를 들어 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치, 디바이스 또는 전파 매체(한정이 아님)일 수 있다. 컴퓨터-판독가능 매체의 더욱 구체적인 예들로는(불완전 리스트임) 하나 또는 그 이상의 전선들을 가지는 전기 연결, 휴대가능한 컴퓨터 디스켓, 하드 디스크, 램(random access memory), 롬(read-only memory), EPROM이나 플래시 메모리(erasable programmable read-only memory), 광섬유, 휴대가능한 시디-롬(compact disc read-only memory), 광 저장 디바이스, 예를 들어 인터넷이나 인트라넷을 지원하는 전송 매체, 또는 자기 저장 매체를 포함할 수 있다. 심지어 상기 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 상기 컴퓨터가 프린트되는 종이나 다른 적절한 매체일 수도 있는데, 상기 프로그램이 예를 들어 상기 종이나 다른 매체의 광 스캐닝을 통해 전기적으로 캡쳐되고, 그리고 컴파일, 인터프리트나 적절한 방법으로 다른 처리가 되고, 그리고나서 만약 필요하다면 컴퓨터 메모리에 저장될 수 있기 때문이다. 본 문서의 구문에서, 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해서 또는 이와 연결하여 상기 프로그램을 포함, 저장, 통신, 전파 또는 전달할 수 있는 그 어떤 매체도 될 수 있다. 상기 컴퓨터-사용가능 매체는 베이스밴드내에 또는 전송파의 일부로서 내장된 컴퓨터-사용가능 프로그램 코드를 가진 전파된 데이터 신호를 포함할 수 있다. 상기 컴퓨터 사용가능 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등을 포함하는(한정은 아님) 임의의 적절한 매체를 이용하여 전송될 수 있다.
본 발명의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 객체 지향 프로그램 언어(예를 들어 자바TM, 스몰토크(Smalltalk), C++ 등) 및 종래의 절차지향 프로그램 언어(예를 들어 C 프로그래밍 언어나 유사한 프로그램 언어들)들을 포함하는 하나 또는 그 이상의 컴퓨터 프로그램 언어들의 조합으로 기록될 수 있다(자바 및 모든 자바-기반 상표들 및 로고들을 미국이나, 다른 국가들 또는 둘다에서 선 마이크로시스템사의 상표들이다). 상기 프로그램 코드는 독립형 소프트웨어 패키지로서 유저의 컴퓨터상에서 전체적이나 유저의 컴퓨터에서 부분적으로 실행될 수 있거나, 상기 유저의 컴퓨터에서 부분적 및 원격 컴퓨터에서 부분적으로 또는 상기 원격 컴퓨터나 서버에서 전체적으로 실행될 수 있다. 후자의 경우, 상기 원격 컴퓨터는 LAN(local area network) 또는 WAN(wide area network)을 포함하는 네트워크 타입을 통해서 상기 유저의 컴퓨터에 연결될 수 있거나, 또는 상기 연결이 외부 컴퓨터로 이루어질 수 있다(예를 들어 인터넷 서비스 제공자를 이용하여 인터넷을 통해서).
본 발명의 실시예들에 따른 법들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블럭도들을 참고로, 본 발명이 이하에서 기술된다. 흐름도 및/또는 블럭도들의 각 블럭, 그리고 호름도 및/또는 블럭도의 블럭들의 조합은 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 점이 이해될 것이다. 이러한 컴퓨터 프로그램 명령들은 범용 컴퓨터, 전용 컴퓨터 또는 머신을 제공하기 위한 다른 프로그램가능한 데이터 처리 장치들의 프로세서로 제공될 수 있고, 이를 통해 상기 컴퓨터나 다른 프로그램가능한 데이터 처리 장치들의 프로세서를 통해 실행하는 상기 명령들이 흐름도 및/또는 블럭도의 블럭이나 블럭들에 지정된 기능/동작들을 구현하기 위한 수단을 생성한다.
또한 이러한 컴퓨터 프로그램 명령들은 컴퓨터나 다른 프로그램가능한 데이터 처리 장치들이 특정 방법으로 기능하도록 지시할 수 있는 컴퓨터-판독가능 매체내에 저장될 수 있고, 이를 통해 상기 컴퓨터-판독가능 매체내 저장된 명령들은 흐름도 및/또는 블럭도의 블럭이나 블럭들에 명시된 기능/동작을 구현하는 명령 수단을 포함하는 제품을 제공한다.
또한 컴퓨터 구현 프로세스를 제공하기 위해 동작 단계들의 시리즈들이 컴퓨터나 다른 프로그램가능한 장치상에서 수행되도록 하기 위해서, 상기 컴퓨터 프로그램 명령들은 컴퓨터나 다른 프로그램가능한 데이터 처리 장치에 로드될 수 있고, 이를 통해서 상기 컴퓨터나 다른 프로그램가능한 장치들상에서 실행되는 명령들이 흐름도 및/또는 블럭도들의 블럭이나 블럭들에 명시된 기능들/동작들을 구현하기 위한 프로세스들을 제공한다.
도면들내 흐름도 및 블럭도들은 본 발명의 다양한 실시예들에 따라 시스템, 방법 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍쳐, 기능 및 동작을 도시한다. 이러한 관점에서, 흐름도나 블럭도들의 각 블럭은 명시된 논리적 기능(들)을 구현하기 위해 하나 또는 그 이상의 실행가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드 일부를 나타낼 수 있다. 또한 몇몇 대체 구현들에서, 블럭들내에 지정된 기능들이 도면들에 개시된 순서와는 다르게 발생할 수 있다는 점에 유념해야 한다. 예를 들어, 연속적으로 도시된 두 개의 블럭들이, 관련된 기능에 따라 실제로는 거의 동시에 실행될 수 있거나, 때때로는 상기 블럭들이 반대 순서로 실행될 수 있다. 또한 블럭도들 및/또는 흐름도의 각 블럭 그리고 블럭도들 및/또는 흐름도의 블럭들의 조합이, 상기 지정된 기능이나 동작들을 수행하는 전용 하드웨어-기반 시스템들, 또는 전용 하드웨어와 컴퓨터 명령들의 조합에 의해 구현될 수 있다는 점에 유념해야 한다. 본 발명은 가동되지 않는 데이터의 복사본들이 없는 액티브-액티브 데이터 센터들을 가능케하고, 데이터의 많은 복사본들이 동시에 클라이언트들에 제공될 수 있도록 한다. 따라서, 본 발명은 데이터 센터들내 서버들이나 머신들의 활용이나 확장성을 증가키시고, 유저로부터의 서비스 요청의 응답시간을 감소시킨다.
본 발명의 일 실시예에서, 카탈로그 서버들(catalog servers)의 클러스터 -이들 중 하나가 마스터 카탈로그 서버-가 데이터의 상태 정보를 저장하는데 사용되고, 또한 이는 지리적 위치들에 걸쳐 데이터 센터들내 많은 다른 서버들로 복제된다. 데이터의 각 부분들(예를 들어 데이터 테이블)은 주 서버들(또는 리더로도 알려짐), 그리고 많은(예를 들어 수천의) 복제 서버들에 저장된다. 주 서버가 고장(fail)나면, 상기 데이터 복제 서버들 중 하나가 새로운 주 서버로 선택될 수 있다. 어떠한 서버도 몇몇 데이터의 주 서버 그리고 다른 데이터에 대한 복제 서버가 될 수 있고, 따라서 모든 서버들의 워크로드 및 롤들이 균형될 수 있다. 리더 선택 메카니즘은 하나의 데이터에 대해 일정 순간동안 오직 하나의 리더를 선택하는 것을 가능케한다. 만약 이전의 리더가 고장나면, 새로운 리더가 즉시 선택된다. 상기 새로운 리더의 상태 정보는 마스터 카탈로그 서버에 등록되고 카탈로그 서버들의 클러스터에 복사된다. 서비스 요청이 상기 정정된 롤(즉, 주/복제)을 포함하는 정정된 데이터를 가지는 가장 가까운 서버로 라우트되는 것을 보장하기 위해, 상기 서버들의 롤들에 기초하는 데이터 상황 인식(data-context-aware) 라우팅 및 포워딩 시스템이 사용된다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에서는, 네트워크 파티션 관리자(101), 해드마스터 제어기(102), 라우터(103), 수리 관리자(104), 복구 관리자(105), 임시 재그룹 관리자(106), 로드 및 트래픽 제어기(107) 및 내부-데이터-센터 연결 관리자(108)인 8개의 요소들이 있다. 상기 네트워크 파티션 관리자(101)는 끊겨진 네트워크를 감지하고 관리하고, 상기 네트워크의 끊김이 감지되면 동작들을 개시한다.
상기 해드마스터 제어기(102)는 상기 네트워크 파티션 관리자(101)를 따르고(listens to), 데이터 센터의 상기 네트워크가 끊길때 수행된 데이터 센터들의 기능들을 제어한다. 예를 들어, 데이터 센터들이 기능하지 못하는 컴포넌트에 의해 다수 그룹과 소수 그룹으로 나뉘는 경우, 더티 판독(dirty read)이 모두 없도록 유지하면서 상기 소수 데이터 센터 그룹이 어떤 트랜잭션들도 커밋(commit)할 수 없다(즉, 트랜잭션 커밋 권한이 제거될 것이다).
상기 라우터(103)는 모든 기록 트랜잭션들을 주 데이터 센터 그룹으로 지시할 것이고, 이는 더티 레코드들을 컴파일 할 것이다.
상기 수리 관리자(104)는 연결이 끊긴 소수 데이터 센터들의 각 서버의 쓰레드를 스핀(spin)하고, 스케쥴대로(예를 들어 처음 10분동안 매 10초마다, 처음 10분후에는 일분 간격으로) 상기 파티션된 해드마스터 제어기로 연결을 계속 시도하고, 이에 따라 상기 해드 마스터 제어기는 서버 기능의 제한(예를 들어 기록 트랜잭션의 커밋)을 제거할 수 있다.
상기 수리 관리자가 상기 해드마스터 제어기로 연결을 설정하면, 상기 복구 관리자(105)는 서버의 모든 상태와 권한을 복구한다.
상기 임시 재그룹 관리자(106)는 각 그룹의 각 리더에게 핑을 한다(ping). 만약 리더가 도달할 수 없다면, 이러한 도달할 수 없는 리더가 관리하는 모든 서버들을 추출한다. 그리고나서 도달할 수 없는 리더의 각 멤버에 핑을 하고, 도달할 수 없는 서버들을 임시적으로 제거한다.
상기 로드 및 트래픽 제어기(107)는 그들의 서비스 성능에 따라 상기 연결이 끊긴 데이터 센터들에 대한 트래픽을 다른 데이터 센터로 다시 보낸다;
상기 인터-데이터-센터 연결 관리자(108)는 데이터 센터들간의 연결을 모니터링한다.
본 발명은 데이터 센터들에 걸쳐서 대량의 액티브 복제를 관리하는 엑티브-액티브 데이터 센터들을 가능케 한다. 예를 들어, 데이터 센터내에 동시에 5000개의 복제 액티브가 있을 수 있다. 데이터 무결성과 액티브 롤 제어 메카니즘은 이러한 대량의 액티브 복제들이 적절히 관리되고 업데이트되는 것을 보장하도록 구현된다.
도 2는 본 발명의 일 실시예에서 상기 데이터 무결성 및 액티브 롤 제어 메카니즘이 작동하는 방법을 도시하는 블럭도이다. 일반적인 작업 모드에서, 상기 인터-데이터-센터 연결 관리자(108)는 데이터 센터들간의 연결을 모니터링하고(단계 201), 상기 네트워크 파티션 관리자(101)는 가능한 오동작에 관해 네트워크들을 액티브하게 모니터링한다(단계 202). 상기 데이터 센터들의 컴포넌트가 비정상적으로 기능할 경우, 예를 들어 메카니즘이 다운되거나 네트워크의 일부가 부적절하게 작업할 때, 상기 네트워크 파티션 관리자(101)는 상기 데이터 센터들의 나머지들로부터 연결이 끊긴 데이터 센터들의 오작동하는 컴포넌트를 관리하고(단계 203), 상기 오동작중인 컴포넌트들을 고치기 위한 액션을 개시한다(단계 204). 상기 오동작 컴포넌트는 상기 데이터 센터를 두개의 부분들(상기 데이터 센터들내 서버들의 소수 그룹과 다수 그룹)로 나눌 수 있다. 수리 모드에서, 상기 해드마스터 제어기(102)는 상기 네트워크 파티션 관리자(101)로부터 오동작 정보를 수신하고, 그리고 상기 소수 그룹의 기능들을 제어한다(단계 205). 예를 들어, 소수 그룹내 데이터 센터의 트랜잭션 커밋 권한을 제거(revoke)할 수 있다. 그리고나서 상기 데이터 서버들의 소수 그룹으로부터의 모든 기록 트랜잭션들은 상기 라우터(103)에 의해 다시 보내진다(단계 206). 또한 상기 라우터(103)는 더티 레코드들(dirty records)을 컴파일하는데, 이는 상기 소수 그룹내 기록돼있는 데이터의 정보를 유지한다(단계 207). 그리고나서 상기 수리 관리자(104)는, 상기 오동작 서버를 식별하고 이를 데이터 센터들로부터 제거하기 위해, 상기 소수 그룹내 서버들을 해드마스터 제어기(102)에 연결하려고 시도한다(단계 208). 일단 연결이 서버와 해드마스터 제어기(102)간에 설정되면, 모든 상태 및 권한들은 상기 복구 관리자(105)에 의해 상기 서버에 대해서 복구될 것이다(단계 209). 그리고나서 상기 임시 재그룹 관리자(106)는 각 그룹의 각 리더에 핑을 한다(단계 210). 만약 리더가 도달불가능하면, 이러한 도달불가능한 리더가 관리하는 모든 서버들이 추출될 것이다. 그리고나서 상기 도달불가능한 리더의 각 멤버로 핑을 하고, 도달불가능한 서버들을 임시적으로 제거한다. 만약 상기 주 그룹내 다른 데이터 센터들에 엑세스하는 트랜잭션들이 있다면, 그들의 서비스 성능에 따라 상기 로드 및 트래픽 제어기(107)가 상기 트래픽을 각각의 데이터 센터들로 다시 보낼 것이다(단계 211).
도 3은 일 실시예에서, 본 발명이 다수의 데이터 센터들내 데이터 서버들에 걸쳐서 데이터 무결성을 유지하는 방법을 도시하는 흐름도이다. 단계 301에서, 카탈로그 서버들의 클러스터가 상기 서버들상의 데이터의 정보를 유지하기 위해 관리된다. 데이터의 선택된 부분에 대해, 주 데이터 서버가 선택된다. 다른 주 데이터 서버들이 데이터의 다른 부분에 대해서 선택될 수 있다(단계 302). 그리고나서 데이터의 이러한 부분은 상기 데이터 서버들로부터 하나 또는 그 이상의 선택된 백업 데이터 서버들로 복사된다. 단계 303에서, 데이터 상태 정보가 마스터 카탈로그 서버에 기록되고, 그리고나서 카탈로그 서버들의 클러스터로 복사된다. 상기 주 데이터 서버가 고장날 경우, 데이터 서버들 및 카탈로그 서버들의 클러스터가 효율적으로 업데이트될 수 있다(단계 304). 상기 업데이트 처리는 3가지 단계들을 포함한다. 첫번째는, 새로운 주 데이터 서버가 데이터의 일부분에 대해서 선택되고(단계 311), 그리고 이러한 주 데이터 서버의 정보가 상기 마스터 카탈로그 서버에 재등록되고(단계 312), 그리고나서 상기 재등록 정보가 하나 또는 그 이상의 다른 카탈로그 서버들에 복사된다(단계 313).
도 4는 본 발명이 구현될 수 있는 컴퓨터 시스템(402)을 도시한다. 상기 컴퓨터 시스템은 퍼스널 컴퓨터 시스템, 워크 스테이션 컴퓨터 시스템, 랩탑 컴퓨터 시스템, 임베디드 제어 시스템, 마이크로프로세서-기반 시스템, 디지털 신호 프로세서-기반 시스템, 휴대용 디바이스 시스템, PDA(personal digital assistant) 시스템, 무선 시스템, 무선 네트워킹 시스템 등 중에서 하나일 수 있다. 상기 컴퓨터 시스템은 버스(404)나 정보를 전달하기 위한 다른 통신 메카니즘과 그리고 상기 정보를 처리하기 위해 버스(404)와 연결된 프로세서(406)를 포함한다. 또한 상기 컴퓨터 시스템은 예를 들어 램(random access memory)이나 다른 동적 저장 디바이스(예를 들어 DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous DRAM), 플래시 RAM)와 같이, 정보와 프로세서(406)에 의해 실행될 명령들을 저장하기 위해 버스에 연결된 주메모리를 포함한다. 또한 주메모리(408)는 프로세서에 의해 실행될 명령들의 실행동안에 가변 변수들이나 다른 중간 정보를 저장하는데 사용될 수 있다. 상기 컴퓨터 시스템은 프로세서에 대한 정적 정보나 명령들을 저장하기 위해 버스(404)에 연결된 롬(read only memory,410) 또는 다른 정적 저장 디바이스(예를 들어, PROM(programmable ROM), EPROM(erasable PROM) 및 EEPROM(electrically erasable PROM))를 더 포함한다. 저장 디바이스(412)-예를 들어 자기 디스크나 광 디스크-가 정보 및 명령들을 저장하기 위해 제공되고 버스에 연결된다. 이러한 저장 디바이스가 컴퓨터 판독가능 매체의 일 예이다.
또한 상기 컴퓨터 시스템은 컴퓨터 시스템을 연결하기 위한 신호들을 입력하기 위해서 입력/출력 포트들(430)을 포함한다. 그러한 연결은 자동화된 제어 기능들, 원격 제어 기능들 등을 구현하기 위해, 직접 전기 연결들(direct electrical connections), 무선 연결들, 네트워크화된 연결들 등을 포함할 수 있다. 적절한 인터페이스 카드들이 필수적인 기능들 및 신호 레벨들을 제공하기 위해 인스톨될 수 있다.
또한 상기 컴퓨터는 전용 로직 디바이스들(예를 들어 ASICs(application specific integrated circuits))이나 구성가능한 로직 디바이스들(예를 들어 GAL(generic array of logic)이나 FPGAs(re-programmable field programmable gate arrays))을 포함될 수 있는데, 이는 도 1-도3을 참고로 기술된 방법의 일부나 전부의 기능들을 대체하는데 사용될 수 있다. 다른 삭제가능한 매체 디바이스들(예를 들어 컴팩트 디스크, 테이프 및 삭제가능한 자기-광 매체)이나 고정된 고밀도 매체 드라이브들이, 적절한 디바이스 버스(예를 들어, SCSI(small computer system interface) 버스, IDE(enhanced integrated device electronics) 버스 또는 DMA(ultra-direct memory access) 버스)를 이용하여 컴퓨터 시스템에 추가될 수 있다. 상기 컴퓨터 시스템은 추가적으로 컴팩트 디스크 리더, 컴팩트 디스트 리더-라이터 유닛, 또는 컴팩트 디스크 쥬크박스를 포함할 수 있고, 이들 각각은 동일한 디바이스 버스나 다른 디바이스 버스에 연결될 수 있다.
상기 컴퓨터 시스템은 컴퓨터 유저에게 정보를 디스플레이 및/또는 제공을 위해, 버스를 통해 디스플레이(414)-예를 들어 CRT(cathode ray tube), LCD(liquid crystal display), 음성 동기 하드웨어 및/또는 소프트웨어 등-에 연결될 수 있다. 상기 디스플레이는 디스플레이나 그래픽 카드에 의해 제어될 수 있다. 상기 컴퓨터 시스템은 정보 및 명령 선택을 프로세서(406)에 전달하기 위해, 입력 디바이스들(예를 들어 키보드(416) 및 커서 제어(418))를 포함한다. 그러한 명령 선택은 입력 디바이스들(416)에 의해, 음성 인식 하드웨어 및/또는 소프트웨어 기능을 통해 구현될 수 있다. 예를 들어, 상기 커서 제어(418)는 방향 정보 및 명령 선택을 프로세서로 전달하고 디스플레이(414)상에서 커서 이동을 제어하기 위한, 마우스, 트랙볼, 커서 방향키, 터치스크린 디스플레이, 광 글자 인식 하드웨어 및/또는 소프트웨어 등이다. 게다가, 프린터(미도시)가 프린트된 데이터 구조들, 정보 등, 또는 상기 컴퓨터 시스템에 의해 저장 및/또는 생성된 다른 데이터의 리스트를 제공될 수 있다.
프로세서가 메모리내(예를 들어 주메모리)내 포함된 하나 또는 그 이상의 명령들의 하나 또는 그 이상의 시퀀스들을 실행하는 것에 반응하여, 상기 컴퓨터 시스템이 본 발명의 처리 단계들의 일부나 전부를 수행한다. 그러한 명령들은 다른 컴퓨터 판독가능 메모리(예를 들어 저장 디바이스)로부터 주메모리로 판독될 수 잇다. 또한 다수의 프로세싱 배치내 하나 또는 그 이상의 프로세서들이 주메모리내 포함된 명령들의 시퀀스들을 실행하는데 사용될 수 있다. 다른 실시예들에서, 하드-와이어 회로(hard-wired circuitry)가 소프트웨어 명령들 대신에 또는 이와 조합해서 사용될 수 있다. 따라서 실시예들은 하드웨어 회로나 소프트웨어의 특정 조합에 한정되지 않는다.
본 발명의 상기 컴퓨터 코드 디바이스들은 스크립트들, 인터프리터들, DDL(dynamic link librarie), 자바 클래스 및 통합 실행가능 프로그램들을 포함하는(그러나 이에 한정은 아님) 인터프리터되거나 실행가능한 코드 메카니즘일 수 있다. 또한 본 발명의 처리의 부분들은 더 좋은 성능, 신뢰성 및/또는 가격경쟁력을 위해 분산될 수 있다. 또한 상기 컴퓨터 시스템은 버스에 연결된 통신 인터페이스를 포함한다. 상기 통신 인터페이스(420)는 예를 들어 로컬 네트워크(424)에 연결될 수 있는 네트워크 링크(422)에 양방향 데이터 통신 커플링을 제공한다. 예를 들어, 상기 통신 인터페이스(420)는 패킷 교환 LAN(local area network)에 부착되기 위한 네트워크 인터페이스 카드일 수 있다. 다른 실시예에 따라, 상기 통신 인터페이스(420)는 ADSL(asymmetrical digital subscriber line) 카드, ISDN(integrated services digital network) 카드 또는 전화선과 대응되는 타입으로 데이터 통신 연결을 제공하는 모뎀일 수 있다. 또한 무선 링크들은 통신 인터페이스(420)를 통해 구현될 수 있다. 그러한 구현에서, 상기 통신 인터페이스(420)는 다양한 타입의 정보를 나타내는 디지털 데이터 스트림들을 전달하는 전자, 전자기 또는 광신호를 송수신한다.
네트워크 링크(422)는 일반적으로 하나 또는 그 이상의 네트워크들을 통해 다른 데이터 디바이스들로 데이터 통신을 제공한다. 예를 들어, 상기 네트워크 링크는 로컬 네트워크(424)(예를 들어 LAN)나 서비스 제공자에 의해 동작하는 장비를 통해서 컴퓨터(426)에 연결을 제공할 수 있는데, 이는 통신 네트워크(428)을 통해 통신 서비스를 제공한다. 바람직한 실시예에서, 상기 로컬 네트워크 및 통신 네트워크는 디지털 신호 스트림들을 전송하는 전자, 전자기, 또는 광 신호를 사용한다. 다양한 네트워크들을 통한 상기 신호들 그리고 상기 네트워크 링크상의 그리고 상기 통신 인터페이스를 통한 신호들-상기 컴퓨터 시스템으로 및 이로부터 디지털 데이터를 전송하는-은 상기 정보를 전달하는 반송파의 바람직한 형태이다. 상기 컴퓨터 시스템은 상기 네트워크(들), 상기 네트워크 링크 및 상기 통신 인터페이스를 통해서, 통지를 전송하고 프로그램 코드를 포함하는 데이터를 수신할 수 있다.
본 발명은 위에서 도시되거나 기술된 특정 처리, 배치, 재료 및 컴포넌트들로 필수적으로 제한하는 것은 아니고, 본 발명의 권리범위이내에서 다수의 변형이 가능하다는 점이 이해되어져야 한다.

Claims (25)

  1. 하나의 데이터(a piece of data)의 복수의 복사본들에 대한 데이터 무결성(data integrity,無缺性)을 유지하는 방법에 있어서,
    상기 복수의 복사본들은 다수의 데이터 센터들에 걸쳐서 복수의 데이터 서버들에 저장되어 있고,
    복수의 액티브 데이터 서버들을 제공하는 단계 - 상기 복수의 액티브 데이터 서버들은 상기 복수의 데이터 서버들이고, 상기 복수의 데이터 서버들에 저장된 상기 복수의 복사본들은 동시에 액세스 가능함 -;
    상기 복수의 데이터 서버들 중 하나를 주 데이터 서버로 선택하고, 상기 하나의 데이터를 상기 주 데이터 서버에 저장하고, 그리고 상기 하나의 데이터를 상기 복수의 데이터 서버들 내 다른 데이터 서버들로 복사하는 단계;
    카탈로그 서버들의 클러스터를 유지하고, 상기 카탈로그 서버들 중 하나를 마스터 카탈로그 서버로 지정하는 단계;
    상기 하나의 데이터의 데이터 상태 정보를 상기 마스터 카탈로그 서버에 기록하고, 상기 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터 내 다른 카탈로그 서버들에 복사하는 단계 - 상기 하나의 데이터의 데이터 상태 정보를 상기 마스터 카탈로그 서버에 기록하는 것은 상기 하나의 데이터의 상기 복수의 복사본들을 저장하는 상기 복수의 데이터 서버들을 등록하는 것을 포함함; 및
    상기 하나의 데이터의 상기 데이터 상태 정보에 따라, 상기 하나의 데이터에 대한 복수의 서비스 요청들 각각을 상기 주 데이터 서버 또는 상기 다른 데이터 서버들 중 상기 서비스 요청에 가장 가까운 데이터 서버로 라우팅하는 단계 - 이에 의해, 상기 주 데이터 서버 상의 상기 복사본을 포함하는 상기 복수의 데이터 서버들 상의 상기 하나의 데이터의 상기 복사본들에 동시에 액세스함 -;를 포함하고, 상기 라우팅하는 단계는, 상기 기록된 데이터 상태 정보를 이용하여, 상기 등록된 복수의 데이터 서버들 중 가장 가까운 데이터 서버를 선택하고, 상기 서비스 요청을 선택된 상기 데이터 서버에 라우팅하는 것을 포함하는
    방법.
  2. 제1항에 있어서,
    상기 주 데이터 서버의 고장(failure)에 대응하여, 상기 복수의 데이터 서버들 중 다른 하나의(another one) 데이터 서버를 새로운 주 데이터 서버로 선택하고, 카탈로그 서버들의 클러스터를 업데이트하는 단계;를 더 포함하는
    방법.
  3. 삭제
  4. 제2항에 있어서, 상기 업데이트하는 단계는,
    상기 새로운 주 데이터 서버를 포함하는 새로운 데이터 상태 정보를 상기 마스터 카탈로그 서버에 등록하는 단계; 및
    상기 새로운 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터 내 다른 카탈로그 서버들로 복사하는 단계;를 포함하는
    방법.
  5. 제2항에 있어서, 상기 복수의 데이터 서버들 중 다른 하나의(another one) 데이터 서버를 새로운 주 데이터 서버로 선택하는 단계 이전에,
    상기 고장난 주 데이터 서버에 의해 연결이 끊긴 데이터 서버들의 다수 그룹(majority group)과 소수 그룹(minority group)을 관리하는 단계;
    상기 소수 그룹 내 데이터 서버들의 기능들을 제어하는 단계;
    상기 데이터 서버들의 소수 그룹 내 데이터의 더티 레코드들(dirty records)을 컴파일하는 단계;
    상기 복수의 데이터 서버들 내 각각의 서버를 헤드마스터 제어기(headmaster controller)에 연결함으로써 상기 고장난 주 데이터 서버를 제거하는 단계; 및
    상기 헤드마스터 제어기에 연결된 데이터 서버들을 재그룹화하는 단계;를 더 포함하는
    방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    상기 복수의 데이터 서버들은 둘 이상의 데이터 서버들(more than two data servers)을 포함하고, 상기 다른 데이터 서버들은 상기 복수의 데이터 서버들 중 적어도 두 개의 데이터 서버들을 포함하는
    방법.
  10. 프로세서;
    상기 프로세서에 동작가능하도록 연결된 메모리;
    상기 프로세서와 상기 메모리에 동작가능하도록 연결된 저장 디바이스; 및
    하나의 데이터의 복수의 복사본들에 대한 데이터 무결성(data integrity,無缺性)을 유지하기 위한 컴퓨터 프로그램을 포함하는 컴퓨터 시스템에 있어서,
    상기 복수의 복사본들은, 다수의 데이터 센터들에 걸쳐서 액티브 데이터 서버들인 복수의 데이터 서버들에 저장되어 있고, 그리고 동시에 액세스 가능하고,
    상기 컴퓨터 프로그램은:
    상기 복수의 데이터 서버들 중 하나를 주 데이터 서버로 선택하는 명령들, 상기 하나의 데이터를 상기 주 데이터 서버에 저장하는 명령들, 그리고 상기 하나의 데이터를 상기 복수의 데이터 서버들 내 다른 데이터 서버들로 복사하는 명령들;
    카탈로그 서버들의 클러스터를 유지하는 명령들, 그리고 상기 카탈로그 서버들 중 하나를 마스터 카탈로그 서버로 지정하는 명령들;
    상기 하나의 데이터의 상기 복수의 복사본들을 저장하는 상기 복수의 데이터 서버들을 등록하는 명령들을 포함하는 상기 하나의 데이터의 데이터 상태 정보를 상기 마스터 카탈로그 서버에 기록하는 명령들, 그리고 상기 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터 내 다른 카탈로그 서버들에 복사하는 명령들; 및
    상기 하나의 데이터의 상기 데이터 상태 정보에 따라, 상기 하나의 데이터에 대한 복수의 서비스 요청들 각각을 상기 주 데이터 서버 또는 상기 다른 데이터 서버들 중 상기 서비스 요청에 가장 가까운 데이터 서버로 라우팅하는 명령들 - 이에 의해, 상기 주 데이터 서버 상의 상기 복사본을 포함하는 상기 복수의 데이터 서버들 상의 상기 하나의 데이터의 상기 복사본들에 동시에 액세스함 -;을 포함하는 컴퓨터 사용가능 프로그램 코드를 포함하고, 상기 라우팅하는 명령들은, 상기 기록된 데이터 상태 정보를 이용하여, 상기 등록된 복수의 데이터 서버들 중 가장 가까운 데이터 서버를 선택하고, 상기 서비스 요청을 선택된 상기 데이터 서버에 라우팅하는 명령들을 포함하는
    컴퓨터 시스템.
  11. 삭제
  12. 제10항에 있어서, 상기 컴퓨터 사용가능 프로그램 코드는,
    상기 주 데이터 서버의 고장(failure)에 대응하여, 상기 복수의 데이터 서버들 중 다른 하나의(another one) 데이터 서버를 새로운 주 데이터 서버로 선택하고, 카탈로그 서버들의 클러스터를 업데이트하는 명령들을 더 포함하는
    컴퓨터 시스템.
  13. 제12항에 있어서, 상기 업데이트하는 명령들은,
    상기 새로운 주 데이터 서버를 포함하는 새로운 데이터 상태 정보를 상기 마스터 카탈로그 서버에 등록하는 명령들; 및
    상기 새로운 데이터 상태 정보를 상기 카탈로그 서버들의 클러스터 내 다른 카탈로그 서버들로 복사하는 명령들을 포함하는
    컴퓨터 시스템.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제10항에 있어서,
    상기 복수의 데이터 서버들은 둘 이상의 데이터 서버들(more than two data servers)을 포함하고, 상기 다른 데이터 서버들은 상기 복수의 데이터 서버들 중 적어도 두 개의 데이터 서버들을 포함하는
    컴퓨터 시스템.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 프로그램은, 컴퓨터 상에서 구동될 때, 상기 청구항 제1항, 제2항, 제4항, 제5항, 제9항 중 어느 한 항에 기재된 방법의 모든 단계들을 수행하도록 구성된 프로그램 코드를 포함하는,
    컴퓨터 판독가능 매체.
KR1020117002453A 2008-08-05 2009-07-31 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 KR101547719B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/185,863 2008-08-05
US12/185,863 US8676760B2 (en) 2008-08-05 2008-08-05 Maintaining data integrity in data servers across data centers
PCT/EP2009/059931 WO2010015574A1 (en) 2008-08-05 2009-07-31 Maintaining data integrity in data servers across data centers

Publications (2)

Publication Number Publication Date
KR20110044858A KR20110044858A (ko) 2011-05-02
KR101547719B1 true KR101547719B1 (ko) 2015-08-26

Family

ID=41172355

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117002453A KR101547719B1 (ko) 2008-08-05 2009-07-31 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지

Country Status (7)

Country Link
US (1) US8676760B2 (ko)
EP (1) EP2281240B1 (ko)
JP (1) JP5102901B2 (ko)
KR (1) KR101547719B1 (ko)
CN (1) CN102105867B (ko)
AT (1) ATE518189T1 (ko)
WO (1) WO2010015574A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1466435B1 (en) 2002-01-08 2019-05-22 Seven Networks, LLC Secure transport for mobile communication network
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
GB2501416B (en) 2011-01-07 2018-03-21 Seven Networks Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
GB2505103B (en) 2011-04-19 2014-10-22 Seven Networks Inc Social caching for device resource sharing and management cross-reference to related applications
US20120278431A1 (en) 2011-04-27 2012-11-01 Michael Luna Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
EP2702500B1 (en) 2011-04-27 2017-07-19 Seven Networks, LLC Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8522068B2 (en) * 2011-05-02 2013-08-27 International Business Machines Corporation Coordinated disaster recovery production takeover operations
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
WO2013086225A1 (en) * 2011-12-06 2013-06-13 Seven Networks, Inc. A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
WO2013086455A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
GB2499306B (en) 2012-01-05 2014-10-22 Seven Networks Inc Managing user interaction with an application on a mobile device
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US20130268656A1 (en) 2012-04-10 2013-10-10 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
CN103685398B (zh) * 2012-09-17 2015-08-19 腾讯科技(深圳)有限公司 通信连接建立方法及通信系统
US9591080B2 (en) 2012-09-17 2017-03-07 Tencent Technology (Shenzhen) Company Limited Method of establishing a network socket with a data server
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
WO2014083672A1 (ja) * 2012-11-30 2014-06-05 株式会社日立製作所 管理装置、管理方法及びプログラムを格納する記録媒体
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9626261B2 (en) * 2013-11-27 2017-04-18 Futurewei Technologies, Inc. Failure recovery resolution in transplanting high performance data intensive algorithms from cluster to cloud
CN104714853B (zh) * 2013-12-16 2018-05-04 雅特生嵌入式计算有限公司 使用cots组件的容错故障安全计算机系统
US20160021171A1 (en) * 2014-07-18 2016-01-21 Jive Communications, Inc. Datacenter event stream processing in a network-based communication system
US10055307B2 (en) * 2015-06-30 2018-08-21 Vmware, Inc. Workflows for series of snapshots
US10656991B2 (en) * 2015-08-24 2020-05-19 International Business Machines Corporation Electronic component having redundant product data stored externally
CN105302865B (zh) * 2015-09-22 2019-04-26 中国联合网络通信集团有限公司 一种实现数据处理的方法及装置
US10681113B2 (en) 2015-10-14 2020-06-09 International Business Machines Corporation Geographically distributed highly available mailbox
US10346270B2 (en) * 2016-05-25 2019-07-09 Arista Networks, Inc. High-availability network controller
US10621145B2 (en) 2016-10-18 2020-04-14 Arista Networks, Inc. Cluster file replication
US10270646B2 (en) * 2016-10-24 2019-04-23 Servicenow, Inc. System and method for resolving master node failures within node clusters
KR20180089682A (ko) * 2017-02-01 2018-08-09 삼성전자주식회사 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법
CN108196984A (zh) * 2017-12-30 2018-06-22 安华智能股份公司 一种用于维护数据完整性的计算机系统
US10951395B2 (en) * 2018-08-20 2021-03-16 Fujitsu Limited Data fetching in data exchange networks
US11068351B2 (en) * 2018-11-19 2021-07-20 International Business Machines Corporation Data consistency when switching from primary to backup data storage
US12050587B2 (en) 2021-05-28 2024-07-30 Bank Of America Corporation Data feed meta detail categorization for confidence
US12056112B2 (en) 2021-05-28 2024-08-06 Bank Of America Corporation Data feed meta detail categorization for confidence

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260972A1 (en) 2003-06-06 2004-12-23 Minwen Ji Adaptive batch sizing for asynchronous data redundancy

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596716A (en) 1995-03-01 1997-01-21 Unisys Corporation Method and apparatus for indicating the severity of a fault within a computer system
KR0147150B1 (ko) 1995-06-29 1998-09-15 김주용 디코더를 이용한 순환 리던던시 체크 오류 검출 및 정정 장치
JP4689137B2 (ja) 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6865591B1 (en) * 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
US7574499B1 (en) * 2000-07-19 2009-08-11 Akamai Technologies, Inc. Global traffic management system using IP anycast routing and dynamic load-balancing
US20030126197A1 (en) * 2001-12-28 2003-07-03 Black Brad R. Efficient content placement using network proximity
US20030158909A1 (en) * 2002-02-20 2003-08-21 Simpson Shell S. Composite image generation
US7096228B2 (en) * 2002-03-27 2006-08-22 Microsoft Corporation Method and system for managing data records on a computer network
US7035858B2 (en) * 2002-04-29 2006-04-25 Sun Microsystems, Inc. System and method dynamic cluster membership in a distributed data system
JP3923863B2 (ja) * 2002-07-09 2007-06-06 株式会社日立製作所 リクエストルータ装置
US20040083213A1 (en) * 2002-10-25 2004-04-29 Yuh-Cherng Wu Solution search
JP4037257B2 (ja) 2002-12-26 2008-01-23 株式会社日立製作所 情報処理システムの制御方法、情報処理システム、及びプログラム
JP2004318743A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd ファイル移送装置
US7747586B2 (en) * 2003-04-23 2010-06-29 International Business Machines Corporation Apparatus and method to map and copy computer files
JP2005196683A (ja) 2004-01-09 2005-07-21 Hitachi Ltd 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US7523341B2 (en) * 2004-05-13 2009-04-21 International Business Machines Corporation Methods, apparatus and computer programs for recovery from failures in a computing environment
JP4377790B2 (ja) 2004-09-30 2009-12-02 株式会社日立製作所 リモートコピーシステムおよびリモートコピー方法
US7451347B2 (en) 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
US7577805B2 (en) 2004-11-01 2009-08-18 Hitachi, Ltd. Using bandwidth and capacity parameters to control remote copy operations in storage systems
JP2006139477A (ja) 2004-11-11 2006-06-01 Hitachi Ltd 計算機システム、管理方法及びストレージネットワークシステム
US7490111B2 (en) * 2006-06-07 2009-02-10 International Business Machines Corporation Efficient handling of mostly read data in a computer server
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US7975115B2 (en) * 2007-04-11 2011-07-05 Dot Hill Systems Corporation Method and apparatus for separating snapshot preserved and write data
US7849354B2 (en) * 2007-06-12 2010-12-07 Microsoft Corporation Gracefully degradable versioned storage systems
US8271967B2 (en) * 2008-06-09 2012-09-18 Ricoh Company, Ltd. MFP software update using web service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260972A1 (en) 2003-06-06 2004-12-23 Minwen Ji Adaptive batch sizing for asynchronous data redundancy

Also Published As

Publication number Publication date
KR20110044858A (ko) 2011-05-02
EP2281240A1 (en) 2011-02-09
JP5102901B2 (ja) 2012-12-19
ATE518189T1 (de) 2011-08-15
CN102105867B (zh) 2014-03-26
JP2011530127A (ja) 2011-12-15
EP2281240B1 (en) 2011-07-27
WO2010015574A1 (en) 2010-02-11
CN102105867A (zh) 2011-06-22
US20100036885A1 (en) 2010-02-11
US8676760B2 (en) 2014-03-18

Similar Documents

Publication Publication Date Title
KR101547719B1 (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
CN112099918B (zh) 容器化环境中的集群的实时迁移
KR100711396B1 (ko) 서버의 이중화 방법 및 이중화 서버시스템
US8195976B2 (en) Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance
US7496646B2 (en) System and method for management of a storage area network
US7536586B2 (en) System and method for the management of failure recovery in multiple-node shared-storage environments
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
US20070061379A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
US20080005288A1 (en) Storage system and data replication method
JP4327831B2 (ja) ストレージシステム、管理計算機及びコピーペア監視方法
US7702757B2 (en) Method, apparatus and program storage device for providing control to a networked storage architecture
CN102640108A (zh) 已复制数据的监控
CN102656565A (zh) 已复制数据的故障切换和恢复
US11650891B2 (en) Preventing non-detectable data loss during site switchover
CN108984349B (zh) 主节点选举方法及装置、介质和计算设备
US10572188B2 (en) Server-embedded distributed storage system
KR20160004721A (ko) 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
US20080072001A1 (en) System, Method and Computer Program Product for Copying Data
Bhattacharya et al. Distributed data recovery architecture based on schema segregation
US8234465B1 (en) Disaster recovery using mirrored network attached storage
KR101323729B1 (ko) 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180727

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 5