KR101694980B1 - 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버 - Google Patents

데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버 Download PDF

Info

Publication number
KR101694980B1
KR101694980B1 KR1020140006562A KR20140006562A KR101694980B1 KR 101694980 B1 KR101694980 B1 KR 101694980B1 KR 1020140006562 A KR1020140006562 A KR 1020140006562A KR 20140006562 A KR20140006562 A KR 20140006562A KR 101694980 B1 KR101694980 B1 KR 101694980B1
Authority
KR
South Korea
Prior art keywords
data
storage server
storage
message
server
Prior art date
Application number
KR1020140006562A
Other languages
English (en)
Other versions
KR20150086649A (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 한국전자통신연구원
Priority to KR1020140006562A priority Critical patent/KR101694980B1/ko
Priority to US14/484,607 priority patent/US20150207880A1/en
Publication of KR20150086649A publication Critical patent/KR20150086649A/ko
Application granted granted Critical
Publication of KR101694980B1 publication Critical patent/KR101694980B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/005Network, LAN, Remote Access, Distributed System
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버에 관한 것으로, 본 발명에 따른 데이터 분산 처리 장치는, 데이터에 대응하는 메타데이터 정보를 메타데이터 서버로 제공하여 상기 메타데이터 서버로부터 상기 데이터를 저장할 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버의 정보를 확인하는 메타데이터 관리부, 및 상기 메타데이터 관리부에 의해 확인된 스토리지 서버들에 대한 정보 및 상기 데이터를 포함하는 메시지를 생성하여 상기 스토리지 서버들의 우선순위에 따라 높은 우선순위의 스토리지 서버로 상기 메시지를 전송하여 해당 데이터가 저장되도록 하는 데이터 관리부를 포함한다.

Description

데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버{Apparatus and method for distribution processing of data, storage server}
본 발명은 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버에 관한 것으로, 데이터를 분산하여 비동기적으로 복수의 스토리지 서버에 저장하고 관리하는 기술에 관한 것이다.
스토리지 시스템 혹은 파일 시스템은 스토리지 시스템의 확장성 및 성능 향상에 대해 기술 개발이 되고 있다.
최근, 스토리지 구조에서 파일의 데이터 입출력 경로와 파일의 메타 데이터 관리 경로를 분리시켜서 스토리지 시스템의 확장성과 성능을 높이기 위한 노력이 시도되고 있다. 이러한 구조는 클라이언트 시스템이 저장 장치들을 직접 접근할 수 있게 해주며, 또한 파일의 빈번한 접근으로 인해 발생하는 병목 지점을 회피하여 스토리지의 확장성을 높일 수 있다
특히, 이러한 분산 스토리지에서는 서버 장애에 대한 신뢰성을 보장하기 위해 데이터를 생성할 때 하나의 스토리지 서버에만 저장하지 않고, 다수의 스토리지 서버에 사본으로 복제하여 저장한다. 이 경우, 서버에 장애가 발생한 경우에도 사본 데이터를 통한 접근이 가능하여 사용자 데이터에 대한 가용성을 보장할 수 있다.
하지만, 클라이언트 서버에서 각 스토리지 서버에 직접 데이터를 전송하고, 해당 스토리지로부터 결과에 대한 응답을 받은 후 다음 스토리지 서버로 데이터를 전송하는 방식의 경우, 하나의 데이터 기록을 위해서 각 스토리지 서버의 순서대로 결과에 대한 응답을 받은 이후에야 완료되기 때문에 사용자의 기록 요청에 대한 응답 시간이 지연될 수 있다. 뿐만 아니라, 클라이언트 서버에서 모든 스토리지 서버마다 네트워크로 데이터를 전송하기 때문에 클라이언트 서버의 네트워크 효율을 저하시킬 수 있다.
또한, 클라이언트 서버에서 원본 데이터를 저장할 스토리지 서버에만 데이터를 전송하는 방식의 경우, 원본 데이터를 저장할 스토리지 서버는 사본 데이터를 저장할 각 스토리지 서버마다 데이터를 전송하고 그 처리 결과를 모두 받은 이후에 최종적으로 클라이언트 서버에 처리 결과를 반환한다. 이 경우, 클라이언트 서버에서 하나의 스토리지 서버로만 데이터를 전송하기 때문에 클라이언트 서버의 네트워크 효율을 저하시키지는 않지만, 모든 스토리지 서버로부터 처리 결과를 순차적으로 받기 때문에 여전히 사용자 기록 요청에 대한 처리 지연 문제가 발생한다.
국내공개특허 제2001-0109499
본 발명의 목적은, 복수의 스토리지 서버에 데이터를 분산하여 저장함으로써 복제를 통한 데이터의 가용성을 보장하면서도, 비동기적으로 데이터를 기록함에 따라 데이터의 처리 지연을 최소화하도록 하는 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버를 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명에 따른 데이터 분산 처리 장치는, 데이터에 대응하는 메타데이터 정보를 메타데이터 서버로 제공하여 상기 메타데이터 서버로부터 상기 데이터를 저장할 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버의 정보를 확인하는 메타데이터 관리부, 및 상기 메타데이터 관리부에 의해 확인된 스토리지 서버들에 대한 정보 및 상기 데이터를 포함하는 메시지를 생성하여 상기 스토리지 서버들의 우선순위에 따라 높은 우선순위의 스토리지 서버로 상기 메시지를 전송하여 해당 데이터가 저장되도록 하는 데이터 관리부를 포함하는 것을 특징으로 한다.
상기 스토리지 서버들에 대한 정보는, 상기 스토리지 서버들의 우선순위에 따라 각 스토리지 서버의 정보를 순차적으로 배열한 스토리지 서버 리스트 형태로 구현되는 것을 특징으로 한다.
상기 메시지는, 상기 스토리지 서버 리스트가 헤더 영역에 포함되고, 상기 데이터가 바디 영역에 포함되는 것을 특징으로 한다.
상기 스토리지 서버들에 대한 정보는, 각 스토리지 서버의 ID, IP 및 상기 메시지에 포함된 데이터의 복제 경로 IP 중 적어도 하나를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 분산 처리 장치는, 상기 메시지를 전송하기 전에 상기 메시지가 임시 저장되는 장애 처리 버퍼를 더 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 분산 처리 장치는, 상기 스토리지 서버들 중 어느 하나에 장애가 발생한 경우 상기 장애 처리 버퍼에 임시 저장된 메시지를 호출하여 상기 장애가 발생한 스토리지 서버를 제외한 나머지 서버들 중 높은 우선순위의 스토리지 서버로 재전송하도록 하는 장애 관리부를 더 포함하는 것을 특징으로 한다.
상기 원본 스토리지 서버는, 상기 사본 스토리지 서버들보다 높은 우선순위를 갖는 것을 특징으로 한다.
한편, 상기의 목적을 달성하기 위한 본 발명에 따른 스토리지 서버는, 스토리지 서버 리스트 및 데이터를 포함하는 메시지로부터 상기 스토리지 서버 리스트에 포함된 복수의 스토리지 서버들에 대한 정보를 인식하는 정보 인식부, 및 상기 메시지로부터 데이터를 추출하여 데이터 블록에 저장하고, 상기 정보 인식부에 의해 인식된 상기 복수의 스토리지 서버들의 우선순위에 따라 다음 순서의 스토리지 서버로 상기 데이터를 전송하도록 하는 데이터 처리부를 포함하는 것을 특징으로 한다.
상기 데이터 처리부는, 상기 스토리지 서버 리스트에서 자신의 정보를 제외한 나머지 스토리지 서버들의 정보를 우선순위에 따라 순차적으로 배열한 스토리지 서버 리스트를 재구성하여 상기 데이터와 함께 다음 순서의 스토리지 서버로 전송하도록 하는 것을 특징으로 한다.
또한, 본 발명에 따른 스토리지 서버는, 상기 데이터 블록에 장애가 발생하여 상기 데이터 저장에 실패한 경우 해당 스토리지 서버의 디스크 장애 상태를 데이터 분산 처리 장치로 전송하도록 하는 장애 처리부를 더 포함하는 것을 특징으로 한다.
상기 장애 처리부는, 상기 다음 순서의 스토리지 서버로의 데이터 전송에 실패한 경우, 상기 다음 순서의 스토리지 서버에 대한 네트워크 장애 상태를 데이터 분산 처리 장치로 전송하도록 하는 것을 특징으로 한다.
상기 메시지는, 상기 다음 순서의 스토리지 서버 간에 형성된 복제 전용 채널을 통해 전송되는 것을 특징으로 한다.
한편, 상기의 목적을 달성하기 위한 본 발명에 따른 데이터 분산 처리 방법은, 데이터에 대응하는 메타데이터 정보를 메타데이터 서버로 제공하여 상기 메타데이터 서버로부터 상기 데이터를 저장할 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버의 정보를 확인하는 단계, 확인된 스토리지 서버들에 대한 정보 및 상기 데이터를 포함하는 메시지를 생성하는 단계, 상기 메시지를 장애 처리 버퍼에 임시 저장하는 단계, 및 상기 스토리지 서버들의 우선순위에 따라 높은 우선순위의 스토리지 서버로 상기 메시지를 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 분산 처리 방법은, 상기 스토리지 서버들 중 어느 하나의 장애 상태를 감지하는 단계, 및 상기 장애 처리 버퍼에 임시 저장된 메시지를 호출하여 상기 장애가 발생한 스토리지 서버를 제외한 나머지 서버들 중 높은 우선순위의 스토리지 서버로 재전송하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 따르면, 복수의 스토리지 서버에 데이터를 분산하여 저장함으로써 복제를 통한 데이터의 가용성을 보장하면서도, 비동기적으로 데이터를 기록함에 따라 데이터의 처리 지연을 최소화할 수 있는 이점이 있다.
특히, 본 발명에 따르면 데이터를 복제하는 과정에서 각 스토리지 서버가 데이터 기록에 대한 응답처리를 하지 않음으로써 처리 속도를 향상시킬 수 있는 이점이 있다.
도 1은 본 발명의 일 실시예에 따른 분산 시스템의 구성을 도시한 도이다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 서버의 구성을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 스토리지 서버의 구성을 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 분산 시스템에서 각 서버간에 전달되는 메시지의 구조를 설명하는데 참조되는 예시도이다.
도 5는 본 발명의 일 실시예에 따른 분산 시스템의 데이터 복제 동작을 설명하는데 참조되는 예시도이다.
도 6은 본 발명의 일 실시예에 따른 분산 시스템의 데이터 흐름을 도시한 예시도이다.
도 7은 본 발명의 일 실시예에 따른 스토리지 서버 간 연결 구조를 도시한 예시도이다.
도 8 및 도 9은 본 발명의 일 실시예에 따른 분산 시스템의 장애 처리 동작을 설명하는데 참조되는 예시도이다.
도 10 내지 도 12는 본 발명의 일 실시예에 따른 분산 시스템의 동작 흐름을 도시한 순서도이다.
이하에서는 첨부된 도면들을 참조하여 본 발명에 대해서 자세히 설명한다. 이때, 각각의 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타낸다. 또한, 이미 공지된 기능 및/또는 구성에 대한 상세한 설명은 생략한다. 이하에 개시된 내용은, 다양한 실시 예에 따른 동작을 이해하는데 필요한 부분이 중점적으로 설명하며, 그 설명의 요지를 흐릴 수 있는 요소들에 대한 설명은 생략한다.
또한 도면의 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시될 수 있다. 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니며, 따라서 각각의 도면에 그려진 구성요소들의 상대적인 크기나 간격에 의해 여기에 기재되는 내용들이 제한되는 것은 아니다.
도 1은 본 발명의 일 실시예에 따른 분산 시스템의 구성을 도시한 도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 분산 시스템은 클라이언트 서버(100), 메타데이터 서버(200) 및 스토리지 서버(300)를 포함할 수 있다. 여기서, 클라이언트 서버(100), 메타데이터 서버(200) 및 스토리지 서버(300)는 각각 네트워크로 연결되어 상호 간에 정보를 송수신할 수 있다. 또한, 클라이언트 서버(100)는 분산 시스템에서 데이터를 분산 처리하는 장치로서, 청구범위에 기재된 데이터 분산 처리 장치가 해당 될 수 있다. 다만, 설명의 편의를 위해 이하에서는 클라이언트 서버(100)로 지칭하여 설명하도록 한다.
먼저, 메타데이터 서버(200)는 메타데이터를 저장하고 관리하는 서버이다. 이때, 메타데이터는 파일의 크기, 생성시간 및 소유자 등의 속성 정보를 포함한다. 메타데이터는 텍스트 형태의 파일, 예를 들어, txt 파일로 저장될 수 있다. 또한, 메타데이터 서버(200)는 파일을 저장하는 스토리지 서버(300)의 정보가 저장될 수 있다.
클라이언트 서버(100)는 사용자로부터 파일 저장 요청이 있는 경우에 해당 파일이 저장되도록 처리한다. 여기서, 사용자로부터 저장 요청된 파일의 경우, 메타데이터 및 데이터로 구성된다.
클라이언트 서버(100)는 사용자가 저장 요청한 파일의 메타데이터에 대한 정보를 메타데이터 서버(200)에 전송하도록 한다. 이때, 메타데이터 서버(200)는 클라이언트 서버(100)로부터 수신한 메타데이터 정보에 근거하여 해당 파일을 저장한 스토리지 서버(300)의 정보를 클라이언트 서버(100)로 제공할 수 있다.
한편, 클라이언트 서버(100)는 사용자가 저장 요청한 파일의 데이터를 스토리지 서버(300)에 저장하도록 한다. 이때, 클라이언트 서버(100)는 사용자로부터 파일을 저장할 위치 정보, 예를 들어, 해당 데이터를 저장할 스토리지 서버(300)들의 정보를 메타데이터 서버(200)로부터 확인하여, 해당 스토리지 서버(300)들의 정보와 함께 데이터를 스토리지 서버(300)로 전송하도록 한다. 이 경우, 클라이언트 서버(100)는 스토리지 서버(300)들 중 높은 우선순위를 갖는 스토리지 서버(본 발명의 실시예에서는 원본 스토리지 서버가 될 수 있다.)로 해당 데이터 및 스토리지 서버 리스트를 전송하도록 한다.
만일, 사용자가 기 저장된 파일을 요청하는 경우, 클라이언트 서버(100)는 사용자가 요청한 파일의 메타데이터 정보를 메타데이터 서버(200)에 요청하도록 한다. 이 경우, 메타데이터 서버(200)는 기 저장된 메타데이터의 정보, 예를 들어, 해당 파일의 속성 정보 및 해당 파일의 데이터가 저장된 위치 정보를 클라이언트 서버(100)로 제공할 수 있다. 따라서, 클라이언트 서버(100)는 메타데이터 서버(200)로부터 제공된 정보에 근거하여 사용자가 요청한 파일의 데이터가 저장된 스토리지 서버(300)로 데이터를 요청하고, 스토리지 서버(300)에 저장된 데이터를 사용자에게 제공할 수 있다.
스토리지 서버(300)는 클라이언트 서버(100)의 요청에 따라 사용자의 데이터를 데이터 블록에 저장한다. 이때, 스토리지 서버(300)는 복수 개가 구비될 수 있다. 이 경우, 복수 개의 스토리지 서버(300) 중 하나는 원본 데이터가 저장되는 원본 스토리지 서버이고, 원본 스토리지 서버를 제외한 적어도 하나의 스토리지 서버(300)는 사본 데이터가 저장되는 사본 스토리지 서버이다.
복수 개의 스토리지 서버(300)는 각각 네트워크로 연결될 수 있다. 여기서, 복수 개의 스토리지 서버(300)는 클라이언트와 연결되는 경로와 각 스토리지 서버(300) 간에 데이터 복제를 위한 경로가 각각 구비될 수 있다. 이때, 원본 스토리지 서버와 적어도 하나의 사본 스토리지 서버는 기 설정된 우선순위에 따라 순차적으로 클라이언트 서버(100)로부터의 데이터를 저장하고 전달할 수 있다. 이에 대한 구체적인 설명은 도 5의 실시예를 참조하여 더욱 상세히 설명하도록 한다.
이와 같이, 본 발명에 따른 분산 시스템은 동일한 데이터를 복수 개의 스토리지 서버(300)에 저장함으로써 어느 하나의 스토리지 서버(300)에 장애가 발생하더라도, 다른 스토리지 서버(300)에 저장된 데이터를 활용할 수 있게 된다. 일 예로서, 사용자가 요청한 파일의 데이터를 저장하고 있는 원본 스토리지 서버에 장애가 발생한 경우, 클라이언트 서버(100)는 사본 스토리지 서버에 저장된 사본 데이터를 요청하여 사용자에게 제공할 수도 있다.
이에, 본 발명에 따른 분산 시스템의 클라이언트 서버(100) 및 스토리지 서버(300)에 대한 세부 구성은 도 2 및 도 3을 참조하여 더욱 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 서버의 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명에 따른 클라이언트 서버(100)는 메타데이터 관리부(110), 데이터 관리부(130), 장애 관리부(150) 및 장애 처리 버퍼(170)를 포함할 수 있다.
메타데이터 관리부(110)는 사용자로부터 파일 저장 요청이 있는 경우에 해당 파일의 메타데이터 정보를 메타데이터 서버에 전송하고, 메타데이터 서버로부터 해당 파일의 메타데이터에 대응하는 정보를 요청하도록 한다. 이때, 메타데이터 관리부(110)는 해당 파일을 저장할 스토리지 서버의 정보를 요청할 수 있다.
데이터 관리부(130)는 복수 개의 스토리지 서버에 대한 정보를 관리한다. 만일, 사용자로부터 파일 저장 요청이 있는 경우에, 데이터 관리부(130)는 메타데이터 서버로부터 확인한 복수 개의 스토리지 서버에 대한 정보에 근거하여 사용자가 저장 요청한 파일의 데이터를 스토리지 서버로 전송하여 저장되도록 한다.
이때, 데이터 관리부(130)는 사용자가 저장 요청한 파일의 데이터를 저장할 원본 스토리지 서버와 적어도 하나의 사본 스토리지 서버의 정보를 포함하는 스토리지 서버 리스트를 구성하고, 해당 스토리지 서버 리스트와 해당 데이터를 포함하는 메시지를 생성하여 원본 스토리지 서버로 전송하도록 한다. 여기서, 데이터 관리부(130)에 의해 원본 스토리지 서버로 전송되는 메시지는 도 4와 같은 구조로 구현될 수 있다.
데이터 관리부(130)는 원본 스토리지 서버로 데이터를 전송하기 전에 장애 처리 버퍼(170)에 데이터를 저장할 수 있다. 이때, 장애 처리 버퍼(170)는 임시 버퍼로서, 장애 처리 버퍼(170)에 임시 보관된 데이터는 스토리지 서버에 장애가 발생하여 데이터 전송이 처리되지 않은 경우에 장애 관리부(150)에 의해 호출되어 재전송될 수 있다.
다시 말해, 장애 관리부(150)는 장애가 발생한 스토리지 서버 또는 장애가 발생한 스토리지 서버로 데이터를 전송한 스토리지 서버로부터 특정 서버의 장애 발생 정보를 수신할 수 있다.
예를 들어, 원본 스토리지 서버에서 다음 순서의 사본 스토리지 서버로 데이터 전송 시 네트워크 장애로 인해 해당 데이터 전송에 실패한 경우, 장애 관리부(150)는 원본 스토리지 서버로부터 다음 순서의 사본 스토리지 서버에 대한 네트워크 장애 정보를 수신할 수 있다. 또한, 원본 스토리지 서버에서 다음 순서의 사본 스토리지 서버로 데이터 전송 시, 다음 순서의 사본 스토리지 서버에서 해당 데이터를 저장하는 과정에서 디스크 장애로 인해 데이터 저장에 실패한 경우, 장애 관리부(150)는 다음 순서의 사본 스토리지 서버로부터 다음 순서의 사본 스토리지 서버에 대한 디스크 장애 정보를 수신할 수 있다.
이때, 장애 관리부(150)는 사전에 장애 처리 버퍼(170)에 저장된 데이터를 호출하여 스토리지 서버로 재전송할 수 있다. 물론, 이 경우에도 데이터 관리부(130)는 계속해서 사용자의 데이터를 스토리지 서버로 전송할 수 있다. 다만, 데이터 관리부(130)는 데이터를 저장할 스토리지 서버 리스트에서 장애가 발생한 스토리지 서버를 제외하고 전송하도록 한다.
도 3은 본 발명의 일 실시예에 따른 스토리지 서버의 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명에 따른 스토리지 서버(300)는 정보 인식부(310), 데이터 처리부(330) 및 장애 처리부(350)를 포함할 수 있다.
정보 인식부(310)는 클라이언트 서버 또는 이전 순서의 스토리지 서버로부터 메시지가 수신되면, 수신된 메시지의 헤더로부터 복제할 데이터 수 및 해당 데이터를 저장할 스토리지 서버 리스트에 대한 정보를 확인한다.
데이터 처리부(330)는 클라이언트 서버 또는 이전 순서의 스토리지 서버로부터 수신된 메시지의 바디 영역에 포함된 데이터를 추출하여 데이터 블록에 저장하도록 한다.
한편, 데이터 처리부(330)는 정보 인식부(310)에 의해 인식된 스토리지 서버 리스트에서 해당 데이터를 복제할 다음 순서의 스토리지 서버에 대한 정보가 포함된 경우, 해당 스토리지 서버(300)를 제외한 스토리지 서버 리스트를 포함하는 메시지를 다음 순서의 스토리지 서버로 전송한다.
다시 말해, 데이터 처리부(330)는 수신한 메시지의 헤더에 스토리지 서버#1, 스토리지 서버#2 및 스토리지 서버#3의 정보를 포함하는 리스트가 존재하는 경우, 스토리지 서버#1의 데이터 블록에 해당 메시지로부터 추출된 데이터를 저장하고, 이후 스토리지 서버#2 및 스토리지 서버#3의 정보를 포함하는 리스트와 해당 데이터를 포함하는 메시지를 다음 순서의 스토리지 서버#2로 전송하도록 한다.
장애 처리부(350)는 데이터를 복제하는 과정에서 장애가 발생한 경우 장애 발생 정보를 포함하는 통보 메시지를 생성하여 클라이언트 서버에 통보할 수 있다.
여기서, 데이터를 복제하는 과정에서 발생할 수 있는 장애는 네트워크 장애 및 디스크 장애가 해당 될 수 있다.
먼저, 스토리지 서버(300) 간에 데이터를 전송하는 과정에서 네트워크 장애가 발생하는 경우 해당 데이터 전송에 실패할 수 있다.
예를 들어, 원본 스토리지 서버에서 다음 순서의 사본 스토리지 서버로 데이터를 전송하는 과정에서 네트워크 장애가 발생한 경우, 원본 스토리지 서버의 장애 처리부(350)는 다음 순서의 사본 스토리지 서버에 대한 네트워크 장애 정보를 클라이언트 서버로 통지할 수 있다.
한편, 클라이언트 서버와 스토리지 서버(300) 간, 그리고 각 스토리지 서버(300) 간에 데이터를 전송하는 과정에서 디스크 장애가 발생하는 경우, 데이터를 수신한 스토리지 서버는 해당 데이터를 저장하는데 실패할 수 있다.
일 예로서, 클라이언트 서버에서 원본 스토리지 서버로 데이터 전송하는 경우 원본 스토리지 서버에서 디스크 장애가 발생하면, 원본 스토리지 서버의 장애 처리부(350)는 해당 원본 스토리지 서버의 디스크 장애 정보를 클라이언트 서버로 통지할 수 있다.
다른 예로서, 원본 스토리지 서버 또는 이전 순서의 사본 스토리지 서버에서 다음 순서의 사본 스토리지 서버로 데이터 전송하는 경우 다음 순서의 사본 스토리지 서버에서 디스크 장애가 발생하면, 다음 순서의 사본 스토리지 서버의 장애 처리부(350)는 해당 사본 스토리지 서버의 디스크 장애 정보를 클라이언트 서버로 통지할 수 있다.
도 4는 본 발명의 일 실시예에 따른 분산 시스템에서 각 서버 간에 전달되는 메시지의 구조를 설명하는데 참조되는 예시도이다.
특히, 도 4는 스토리지 서버에 저장할 데이터를 포함하는 메시지의 구조를 나타낸 것으로, 해당 메시지는 클라이언트 서버에서 스토리지 서버로 전송하는 메시지일 수 있고, 데이터의 복제를 위해 이전 순서의 스토리지 서버에서 다음 순서의 스토리지 서버로 전송하는 메시지일 수도 있다.
도 4에 도시된 바와 같이, 해당 메시지는 헤더(HEADER)(410) 및 바디(BODY)(450)로 구성된다.
여기서, 헤더(410)에는 해당 데이터에 대해 복제할 데이터의 수(420), 예를 들어, "# of REPLICA"가 포함될 수 있다. 이때, 복제할 데이터의 수는 원본 데이터와 사본 데이터를 모두 합한 개수이다.
또한, 헤더(410)에는 해당 데이터를 저장할 스토리지 서버 리스트(430), 즉, 원본 스토리지 서버 및 사본 스토리지 서버들에 대한 리스트가 포함될 수 있다. 여기서, 스토리지 서버 리스트(430)는 해당 스토리지 서버의 ID, IP 및 데이터 복제 경로에 대한 IP 정보를 포함할 수 있다. 스토리지 서버들 간 데이터 복제 경로에 대한 구체적인 설명은 도 7의 실시예를 참조하도록 한다.
일 예로서, 클라이언트 서버에서 원본 스토리지 서버로 전송되는 메시지의 경우, 해당 메시지에 포함되는 스토리지 서버 리스트(430)는 원본 스토리지 서버에 대한 "PRIMARY ID, IP"와, 사본 스토리지 서버들에 대한 "REPLICA#N ID, IP, Replication IP"를 포함할 수 있다.
여기서, 스토리지 서버 리스트에 포함되는 원본 스토리지 서버 및 사본 스토리지 서버들의 정보는 각 스토리지 서버의 데이터 저장 우선순위에 따라 순차적으로 정렬되도록 한다. 이때, 원본 스토리지 서버의 데이터 저장 우선순위가 가장 높고, 이후 각 사본 스토리지 서버에 차례로 우선순위가 부여될 수 있다.
한편, 메시지의 바디(450)에는 스토리지 서버에 저장할 실제 데이터가 포함될 수 있다.
다른 예로서, 원본 스토리지 서버 또는 이전 순서의 사본 스토리지 서버에서 다음 순서의 사본 스토리지 서버로 전송되는 메시지의 경우, 해당 메시지의 헤더에 포함되는 스토리지 서버 리스트에는 데이터 저장을 마친 해당 스토리지 서버, 즉, 원본 스토리지 서버 또는 이전 순서의 사본 스토리지 서버의 정보를 제외한 나머지 사본 스토리지 서버들의 정보를 포함하게 된다.
도 5는 본 발명의 일 실시예에 따른 분산 시스템의 데이터 복제 동작을 설명하는데 참조되는 예시도이다.
도 5에서 스토리지 서버 1은 원본 스토리지 서버(PRIMARY)이고, 스토리지 서버 2(302) 내지 스토리지 서버 N+1(309)은 사본 스토리지 서버(REPLICA #1 내지 REPLICA #N)를 나타낸 것이다. 또한, 도 5에서 DATA는 원본 데이터를 나타낸 것이고, DATA(1) 내지 DATA(N)은 사본 데이터를 나타낸 것이다.
도 5를 참조하면, 클라이언트 서버는 사용자가 저장 요청한 데이터를 저장하기 위해 스토리지 서버들의 정보를 확인한다. 이때, 클라이언트 서버는 메타데이터 서버로부터 데이터를 저장할 스토리지 서버들의 정보를 확인할 수 있다. 도면부호 150은 메타데이터 서버로부터 획득한 스토리지 서버들의 정보를 나타낸 것이다.
클라이언트 서버는 메타데이터 서버로부터 획득한 스토리지 서버들의 정보를 이용하여 데이터를 복제할 스토리지 서버 리스트를 구성한다. 이때, 스토리지 서버 리스트는 PRIMARY, REPLICA #1, ..., REPLICA #N에 대한 정보, 예를 들어, ID, IP 및 복제 경로의 IP 등이 포함될 수 있다.
클라이언트 서버는 스토리지 서버 리스트와 저장할 데이터를 포함하는 메시지(510)을 스토리지 서버 1(301)로 전송하도록 한다. 물론, 클라이언트 서버는 해당 메시지(510)를 스토리지 서버 1(301)로 전송하기 전에 장애 처리 버퍼에 해당 메시지를 저장할 수 있다.
이때, 클라이언트 서버로부터 메시지(510)를 수신한 스토리지 서버 1(301)은 수신한 메시지(510)에 포함된 데이터(DATA)를 데이터 블록에 저장한다. 또한, 스토리지 서버 1(301)은 메시지(510)에 포함된 스토리지 서버 리스트로부터 해당 데이터를 복제할 다음 순서의 스토리지 서버 2(302)에 대한 정보를 확인하고, 스토리지 서버 2(302)로 메시지(520)를 전송한다. 이 경우, 스토리지 서버 1(301)은 스토리지 서버 리스트에서 자신의 정보를 제외하고 나머지 스토리지 서버의 정보, 예를 들어, EPLICA #1, ..., REPLICA #N에 대한 정보를 메시지(520)에 포함하여 데이터와 함께 스토리지 서버 2(302)로 전송하도록 한다.
또한, 스토리지 서버 1(301)로부터 메시지를 수신한 스토리지 서버 2(302)는 수신한 메시지(520)에 포함된 데이터를 데이터 블록에 저장한다. 또한, 스토리지 서버 2(302)는 메시지(520)에 포함된 스토리지 서버 리스트로부터 해당 데이터를 복제할 다음 순서의 스토리지 서버의 정보를 확인하고, 다음 순서의 스토리지 서버로 메시지를 전송한다. 마찬가지로, 스토리지 서버 2(302)는 스토리지 서버 리스트에서 자신의 정보를 제외하고 나머지 스토리지 서버의 정보를 메시지에 포함하여 데이터와 함께 전송하도록 한다.
이와 같은 방식으로, 데이터를 복제할 마지막 순서의 스토리지 서버 N+1(309)은 이전 순서의 스토리지 서버 N으로부터 REPLICA #N에 대한 정보 및 데이터를 포함하는 메시지(530)를 수신할 수 있다. 이 경우, 스토리지 서버 N+1(309)에서 수신한 메시지(530)에는 데이터를 복제할 다음 순서의 스토리지 서버에 대한 정보가 포함되어 있지 않으므로, 스토리지 서버 N+1(309)은 메시지(530)에 포함된 데이터를 데이터 블록에 저장하고 관련 동작을 종료하도록 한다.
이 경우, 스토리지 서버 리스트 및 데이터를 포함하는 메시지를 전송하는 과정에서 장애가 발생한 경우를 제외하고, 각 스토리지 서버는 메시지를 수신하면 별도의 응답 처리를 하지 않고 바로 데이터를 저장한 후 다음 순서의 스토리지 서버로 메시지를 전송하도록 한다.
도 6은 본 발명의 일 실시예에 따른 분산 시스템의 데이터 흐름을 도시한 예시도이다.
도 6에서는 클라이언트 서버, 스토리지 서버 1(301), 스토리지 서버 2(302) 및 스토리지 서버 3(303) 간에 전달되는 데이터의 흐름을 나타낸 것이다.
클라이언트는 DATA1, DATA2 및 DATA3을 순차적으로 스토리지 서버 1(301)로 전송할 수 있다.
다시 말해, 클라이언트 서버는 t1 시점에 DATA1을 스토리지 서버 1(301)로 전송한다. 따라서, 스토리지 서버 1(301)은 클라이언트 서버로부터 수신한 DATA1을 저장한다.
이후, 클라이언트 서버는 스토리지 서버 1(301)로부터 DATA1에 대한 응답을 기다리지 않고 t2 시점에 DATA2를 스토리지 서버 1(301)로 전송하도록 한다. 이 경우, 스토리지 서버 1(301)은 DATA1에 대한 응답 처리를 하지 않기 때문에, 클라이언트 서버로부터 수신한 DATA1을 연이어 스토리지 서버 2(302)로 전송하게 된다. 따라서, 스토리지 서버 1(301)이 클라이언트 서버로부터 DATA2를 수신한 시점 t2에는 이미 DATA1을 스토리지 서버 2(302)로 전송하기 때문에 DATA2를 기록하는 과정에서 지연시간이 거의 발생하지 않게 된다.
또한, 클라이언트 서버는 t2 시점에 DATA2를 스토리지 서버 1(301)로 전송하고 연이어 t3 시점에 DATA3을 스토리지 서버 1(301)로 전송하도록 한다. 이 경우에도, 스토리지 서버 1(301)은 DATA2에 대한 응답 처리를 하지 않고 연이어 스토리지 서버 2(302)로 전송하기 때문에 DATA3을 기록하는 과정에서 지연시간이 거의 발생하지 않게 된다.
마찬가지로, 스토리지 서버 1(301)에서 DATA2를 스토리지 서버 2(302)로 전송하는 경우, 스토리지 서버 2(302)는 이전에 수신한 DATA1에 대한 응답 처리를 하지 않고 연이어 스토리지 서버 2(302)로 전송하기 때문에, 스토리지 서버 2(302)에 DATA2를 기록함에 있어서 지연시간이 거의 발생하지 않을 수 있다.
물론, 스토리지 서버가 DATA1을 다음 순서의 스토리지 서버로 전송하는 시점과, 이전 순서의 스토리지 서버로부터 DATA2를 수신하는 시점이 일치하지 않을 수는 있으나, DATA1과 DATA2를 동시에 저장하지 않는다는 점에서 지연시간을 최소화할 수 있다.
도 7은 본 발명의 일 실시예에 따른 스토리지 서버 간 연결 구조를 도시한 예시도이다.
도 7을 참조하면, 복수 개의 스토리지 서버는 각각 클라이언트 서버와 연결되는 제1 네트워크 경로와, 데이터 복제를 위해 메시지를 전송하는 제2 네트워크 경로가 별도로 구현될 수 있다.
다시 말해, 스토리지 서버 1(301) 내지 스토리지 서버 N+1(309)은 각각 제1 네트워크 경로를 통해 클라이언트 서버와 연결될 수 있다. 이때, 제1 네트워크 경로 상에는 제1 스위치(710)가 구비될 수 있으며, 제1 스위치(710)의 스위칭 동작에 의해 클라이언트로부터 수신된 메시지가 해당하는 스토리지 서버로 전달될 수 있다.
클라이언트 서버에서 스토리지 서버 리스트 및 데이터를 포함하는 메시지를 전송하면, 제1 스위치(710)는 스토리지 서버 리스트 상의 최상위 서버로 메시지를 전달할 수 있다. 이 경우, 스토리지 서버 1(301)이 최우선순위이므로, 제1 스위치(710)는 클라이언트 서버에서 전송한 메시지를 스토리지 서버 1(301)로 전송하도록 한다.
다만, 스토리지 서버 1(301)에 장애가 발생한 경우에는 스토리지 서버 리스트에서 스토리지 서버 1(301)이 제외되므로 스토리지 서버 2(302)가 최상위 서버가 된다. 따라서, 제1 스위치(710)는 클라이언트 서버로부터의 메시지를 스토리지 서버 2(302)로 전송할 수 있다.
한편, 스토리지 서버 1(301) 내지 스토리지 서버 N+1(309)은 제2 경로를 통해 각각 연결될 수 있다. 이때, 제2 네트워크 경로 상에는 제2 스위치(720)가 구비될 수 있으며, 제2 스위치(720)에 의해 데이터 복제를 위한 메시지가 전달될 수 있다.
일 예로서, 스토리지 서버 1(301)에서 데이터 복제를 위해 스토리지 서버 리스트 및 데이터를 포함하는 메시지를 제2 네트워크 경로로 전송하면, 제2 스위치(720)는 스토리지 서버 리스트 상의 최상위 서버, 즉, 스토리지 서버 1(301) 다음 순서의 스토리지 서버 2(302)로 해당 메시지를 전달하도록 한다. 물론, 스토리지 서버 2(302)에 장애가 발생함에 따라 스토리지 서버 리스트 상에 스토리지 서버 2(302)의 정보가 존재하지 않는 경우에는 다음 순서의 스토리지 서버 3(303)으로 해당 메시지를 전달하도록 한다.
이와 같은 방식으로 제2 스위치(720)는 데이터 복제를 위한 메시지를 스토리지 서버 N+1(309)까지 전달할 수 있다.
여기서, 제1 스위치(710) 및 제2 스위치(720)는 네트워크 경로를 스위칭하는 네트워크 스위치이다.
상기에서와 같이, 본 발명의 경우, 클라이언트와 스토리지 서버 간 통신 서비스를 위한 네트워크 경로와 데이터 복제를 위한 네트워크 경로를 별도로 구성하기 때문에, 서비스 네트워크 트래픽과 복제 네트워크 트래픽을 분리하여 처리함으로써 데이터 복제로 인한 서비스 네트워크 품질 저하를 방지할 수 있게 된다.
도 8 및 도 9은 본 발명의 일 실시예에 따른 분산 시스템의 장애 처리 동작을 설명하는데 참조되는 예시도이다.
도 8은 원본 스토리지 서버에 장애가 발생한 경우의 장애 처리 동작을 나타낸 것이다.
도 8의 (a)에서와 같이, 클라이언트 서버는 스토리지 서버들, 예를 들어, 스토리지 서버 1(PRIMARY)(301), 스토리지 서버 2(REPLICA #1)(302) 및 스토리지 서버 3(REPLICA #2)(303)에 대한 정보로 구성된 스토리지 서버 리스트와 데이터를 포함하는 메시지(810)를 구성하여 장애 처리 버퍼에 저장하고, 원본 스토리지 서버인 스토리지 서버 1(301)로 전송한다.
클라이언트 서버에서 메시지(810)를 스토리지 서버 1(301)로 전송하는 과정에서 스토리지 서버 1(301)의 네트워크 장애로 인해 메시지 전송에 실패한 경우, 클라이언트 서버는 스토리지 서버 1(301)의 장애 상태를 감지할 수 있다. 이때, 클라이언트 서버는 장애가 발생한 스토리지 서버 1(301)로의 메시지 전송을 중단하고, 스토리지 서버 1(301)의 정보를 메타데이터 서버로 전송하여 해당 파일의 정보에서 스토리지 서버 1(301)의 정보를 제거하도록 할 수 있다.
이와 같이, 스토리지 서버 1(301)에 장애가 발생한 경우, 클라이언트 서버는 도 8의 (b)와 같이, 장애가 발생한 스토리지 서버 1(301)을 제외한 나머지의 스토리지 서버 2(REPLICA #1)(302) 및 스토리지 서버 3(REPLICA #2)(303)에 대한 정보로 구성된 스토리지 서버 리스트와 장애 처리 버퍼에 저장된 데이터를 포함하는 메시지(820)를 다시 생성하여 스토리지 서버 2(302)로 전송하도록 한다.
이때, 클라이언트 서버로부터 메시지(820)를 수신한 스토리지 서버 2(302)는 메시지(820)에 포함된 데이터(DATA)를 데이터 블록에 저장한다. 이후, 스토리지 서버 2(302)는 메시지(820)에 포함된 스토리지 서버 리스트로부터 해당 데이터를 복제할 다음 순서의 스토리지 서버 3(303)에 대한 정보를 확인하고, 스토리지 서버 3(REPLICA #2)(303)에 대한 정보를 포함하는 스토리지 서버 리스트 및 데이터를 포함하는 메시지(830)를 구성하여, 해당 메시지(830)를 스토리지 서버 3(303)으로 전송한다.
도 9는 사본 스토리지 서버에 장애가 발생한 경우의 장애 처리 동작을 나타낸 것이다.
도 9의 (a)에서와 같이, 클라이언트 서버는 스토리지 서버들, 예를 들어, 스토리지 서버 1(PRIMARY)(301), 스토리지 서버 2(REPLICA #1)(302) 및 스토리지 서버 3(REPLICA #2)(303)에 대한 정보로 구성된 스토리지 서버 리스트와 데이터를 포함하는 메시지(910)를 구성하여 장애 처리 버퍼에 저장하고, 원본 스토리지 서버인 스토리지 서버 1(301)로 전송한다.
이때, 클라이언트 서버로부터 메시지(910)를 수신한 스토리지 서버 1(301)은 메시지(910)에 포함된 데이터(DATA)를 데이터 블록에 저장한다. 이후, 스토리지 서버 1(301)은 메시지(910)에 포함된 스토리지 서버 리스트로부터 해당 데이터를 복제할 다음 순서의 스토리지 서버에 대한 정보를 확인하고, 스토리지 서버 2(REPLICA #1)(302) 및 스토리지 서버 3(REPLICA #2)(303)에 대한 정보를 포함하는 스토리지 서버 리스트 및 데이터를 포함하는 메시지(920)를 구성하여, 해당 메시지(920)를 스토리지 서버 2(302)로 전송한다.
스토리지 서버 1(301)에서 스토리지 서버 2(302)로 메시지(920)를 전송하는 과정에서 스토리지 서버 2(302)의 네트워크 장애로 인해 메시지 전송에 실패한 경우, 스토리지 서버 1(301)은 스토리지 서버 2(302)의 장애 상태를 감지할 수 있다. 이때, 스토리지 서버 1(301)은 장애가 발생한 스토리지 서버 2(302)로의 메시지 전송을 중단하고, 스토리지 서버 2(302)에 대한 장애 발생 정보를 클라이언트 서버로 통지하도록 한다.
이 경우, 클라이언트 서버는 도 9의 (b)와 같이, 장애가 발생한 스토리지 서버 2(302)를 제외한 나머지의 스토리지 서버 1(PRIMARY)(301) 및 스토리지 서버 3(REPLICA #2)(303)에 대한 정보로 구성된 스토리지 서버 리스트와 장애 처리 버퍼에 저장된 데이터를 포함하는 메시지(930)를 다시 생성하여 스토리지 서버 1(301)로 전송하도록 한다.
이때, 클라이언트 서버는 장애 처리 버퍼에 보관된 데이터를 우선적으로 스토리지 서버들(301, 303)에 전송하고, 그 이후 장애 발생 시점에 기록하던 데이터를 재전송하도록 한다.
따라서, 스토리지 서버 1(301)은 클라이언트 서버로부터 수신한 메시지(930)에 포함된 데이터(DATA)를 데이터 블록에 저장하고, 스토리지 서버 리스트로부터 데이터를 복제할 스토리지 서버 3(303)의 정보를 확인하여 스토리지 서버 3(REPLICA #2)(303)에 대한 정보를 포함하는 스토리지 서버 리스트 및 데이터를 포함하는 메시지(940)를 스토리지 서버 3(303)으로 전송한다.
상기와 같이 구성되는 본 발명에 따른 분산 시스템의 동작 흐름을 보다 상세히 설명하면 다음과 같다.
도 10 내지 도 12는 본 발명의 일 실시예에 따른 분산 시스템의 동작 흐름을 도시한 순서도이다.
도 10은 본 발명에 따른 클라이언트 서버의 동작 흐름을 도시한 순서도이다.
도 10을 참조하면, 클라이언트 서버는 사용자로부터 파일 저장 요청이 있으면, 해당 파일의 메타데이터 정보를 메타데이터 서버로 제공하여 해당 파일 정보, 예를 들어, 해당 파일을 저장할 스토리지 서버들의 정보 등을 획득할 수 있다(S100).
이후, 클라이언트 서버는 사용자가 저장 요청한 파일의 데이터를 장애 처리 버퍼에 임시로 보관하고(S110), 'S100' 과정에서 획득한 스토리지 서버들의 정보에 기초하여 원본 스토리지 서버로 데이터를 전송하도록 한다(S120). 이 경우, 클라이언트 서버는 'S100' 과정에서 획득한 스토리지 서버들의 우선순위에 따라 관련 정보를 포함하는 스토리지 서버 리스트를 구성하여, 데이터와 함께 전송할 수 있다.
물론, 'S120' 과정에서는 원본 스토리지 서버에 장애가 발생하지 않은 것으로 가정한다. 이때, 클라이언트 서버는 'S100' 과정에서 획득한 스토리지 서버들의 우선순위에 따라 높은 우선순위의 스토리지 서버로 데이터를 전송할 수 있다.
'S120' 과정에서 원본 스토리지 서버로 전송된 데이터는 원본 스토리지 서버에 의해 다음 우선순위를 갖는 사본 스토리지 서버로 전송되기 때문에, 클라이언트 서버는 데이터 전송이 완료되면(S130), 관련 동작을 종료하도록 한다.
한편, 'S130' 과정에서 원본 스토리지 서버의 네트워크 장애로 인해 데이터 전송에 실패한 경우, 클라이언트 서버는 'S100' 과정에서 획득한 스토리지 서버들의 정보 중 장애가 발생한 원본 스토리지 서버를 제외한 사본 스토리지 서버들 중 높은 우선순위를 갖는 사본 스토리지 서버의 정보를 확인하고, 'S110' 과정에서 장애 처리 버퍼에 보관하고 있는 데이터를 호출하여 해당하는 사본 스토리지 서버로 재전송하도록 하고, 이후 사용자가 저장 요청한 데이터를 해당 사본 스토리지 서버로 전송하도록 한다(S160).
도 11은 본 발명에 따른 스토리지 서버 간 동작 흐름을 도시한 흐름도이다. 도 11에서 스토리지 서버 1(301)은 원본 스토리지 서버를 나타낸 것이고, 스토리지 서버 2(302)는 사본 스토리지 서버를 나타낸 것이다.
도 11을 참조하면, 스토리지 서버 1(301)은 클라이언트 서버로부터 사용자가 저장 요청한 데이터를 수신하면(S200), 해당 데이터를 데이터 블록에 기록하도록 한다(S210).
스토리지 서버 1(301)은 'S200' 과정에서 데이터를 수신 시 해당 데이터와 스토리지 서버 리스트를 함께 수신할 수 있다. 따라서, 스토리지 서버 1(301)은 데이터와 함께 수신한 스토리지 서버 리스트에서 해당 데이터에 대한 복제 정보, 예를 들어, 스토리지 서버 1(301)을 제외한 나머지 사본 스토리지 서버들의 정보를 인식하도록 한다(S230).
이후, 스토리지 서버 1(301)은 사본 스토리지 서버들 중 다음 순서에 해당하는 스토리지 서버 2(302)와 스토리지 서버 1(301) 간에 데이터 복제를 위한 전용 채널을 설정하고(S240), 'S240' 과정에서 설정된 채널을 통해 데이터를 전송하도록 한다(S250).
따라서, 스토리지 서버 2(302)는 스토리지 서버 1(301)로부터 수신한 데이터를 데이터 블록에 기록하도록 한다(S260).
이후, 스토리지 서버 2(302) 또한 스토리지 서버 1(301)과 마찬가지로 'S200' 내지 'S250' 에 대응하는 동작을 수행함으로써 다음 순서의 사본 스토리지 서버로 데이터를 전송할 수 있다.
도 12는 본 발명에 따른 사본 스토리지 서버의 장애 처리 동작 흐름을 도시한 순서도이다. 도 12의 동작들은 스토리지 서버에서 다음 순서의 스토리지 서버로 데이터를 전송하는 과정에서 다음 순서의 스토리지 서버에 네트워크 장애가 발생한 경우의 실시예를 나타낸 것으로, 해당 스토리지 서버는 원본 스토리지 서버일 수 있으며, 사본 스토리지 서버일 수도 있다.
도 12를 참조하면, 스토리지 서버는 데이터를 수신하면(S300), 해당 데이터를 데이터 블록에 기록하도록 한다(S310).
이때, 스토리지 서버는 'S300' 과정에서 데이터를 수신 시 해당 데이터와 스토리지 서버 리스트를 함께 수신할 수 있다. 따라서, 스토리지 서버는 데이터와 함께 수신한 스토리지 서버 리스트에서 해당 데이터에 대한 복제 정보, 예를 들어, 자신의 정보를 제외한 나머지 스토리지 서버들의 정보를 인식하도록 한다(S320).
이후, 스토리지 서버는 'S230' 과정에서 인식된 스토리지 서버들 중 다음 순서의 스토리지 서버로 해당 데이터를 전송하도록 한다(S330).
스토리지 서버는 'S330' 과정에서 다음 순서의 스토리지 서버로의 데이터 전송이 완료되면(S340), 관련 동작을 종료하도록 한다.
반면, 'S340' 과정에서 다음 순서의 스토리지 서버의 네트워크 장애로 인해 데이터 전송에 실패한 경우, 네트워크 장애가 발생한 다음 순서의 스토리지 서버의 정보를 클라이언트 서버로 전송하여(S350), 장애 상태를 통지하도록 한다.
따라서, 클라이언트 서버는 스토리지 서버의 장애 상태를 확인하고, 이후 장애가 발생한 스토리지 서버를 제외한 나머지 스토리지 서버들에 대해 스토리지 서버 리스트를 구성하여 데이터를 전송할 수 있다.
한편, 본 발명은 위에서 논의된 다양한 실시예가 하나 이상의 컴퓨터 또는 프로세서에 의해 실행되는 경우 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 클라이언트 서버 110: 메타데이터 관리부
130: 데이터 관리부 150: 장애 관리부
170: 장애 처리 버퍼 200: 메타데이터 서버
300: 스토리지 서버 310: 정보 인식부
330: 데이터 처리부 350: 장애 처리부
710: 제1 스위치 720: 제2 스위치

Claims (18)

  1. 데이터에 대응하는 메타데이터 정보를 메타데이터 서버로 제공하여 상기 메타데이터 서버로부터 상기 데이터를 저장할 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버의 정보를 확인하는 메타데이터 관리부; 및
    상기 메타데이터 관리부에 의해 확인된 상기 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버들에 대한 스토리지 서버 리스트 및 상기 데이터를 포함하는 메시지를 생성하여 상기 스토리지 서버 리스트 상에서 높은 우선순위를 갖는 어느 하나의 스토리지 서버로 상기 메시지를 전송하여 상기 메시지에 포함된 데이터가 해당 스토리지 서버에 저장되도록 하는 데이터 관리부를 포함하며,
    상기 메시지는,
    상기 스토리지 서버 리스트에 포함된 스토리지 서버들의 우선순위에 따라 상기 메시지를 수신한 스토리지 서버로부터 다음 우선순위의 스토리지 서버로 전달되어 상기 메시지에 포함된 데이터의 사본 데이터가 저장되는 것을 특징으로 하는 데이터 분산 처리 장치.
  2. 청구항 1에 있어서,
    상기 스토리지 서버 리스트는,
    상기 스토리지 서버들의 우선순위에 따라 각 스토리지 서버의 정보를 순차적으로 배열한 것을 특징으로 하는 데이터 분산 처리 장치.
  3. 청구항 1에 있어서,
    상기 메시지는,
    상기 스토리지 서버 리스트가 헤더 영역에 포함되고, 상기 데이터가 바디 영역에 포함되는 것을 특징으로 하는 데이터 분산 처리 장치.
  4. 청구항 1에 있어서,
    상기 스토리지 서버 리스트는,
    각 스토리지 서버의 ID, IP 및 상기 메시지에 포함된 데이터의 복제 경로 IP 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 분산 처리 장치.
  5. 청구항 1에 있어서,
    상기 메시지를 전송하기 전에 상기 메시지가 임시 저장되는 장애 처리 버퍼를 더 포함하는 것을 특징으로 하는 데이터 분산 처리 장치.
  6. 청구항 5에 있어서,
    상기 스토리지 서버들 중 어느 하나에 장애가 발생한 경우 상기 장애 처리 버퍼에 임시 저장된 메시지를 호출하여 상기 장애가 발생한 스토리지 서버를 제외한 나머지 서버들 중 높은 우선순위의 스토리지 서버로 재전송하도록 하는 장애 관리부를 더 포함하는 것을 특징으로 하는 데이터 분산 처리 장치.
  7. 청구항 1에 있어서,
    상기 원본 스토리지 서버는,
    상기 사본 스토리지 서버들보다 높은 우선순위를 갖는 것을 특징으로 하는 데이터 분산 처리 장치.
  8. 데이터 분산 처리 장치 또는 이전 순서의 스토리지 서버로부터 스토리지 서버 리스트 및 데이터를 포함하는 메시지가 수신되면 상기 스토리지 서버 리스트에 포함된 복수의 스토리지 서버들에 대한 정보를 인식하는 정보 인식부; 및
    상기 메시지로부터 데이터를 추출하여 데이터 블록에 저장하고, 상기 정보 인식부에 의해 인식된 상기 복수의 스토리지 서버들의 우선순위에 따라 상기 데이터를 복제할 다음 순서의 스토리지 서버와의 복제 전용 채널을 설정하여 스토리지 서버 리스트 및 상기 데이터를 전송하는 데이터 처리부
    를 포함하는 것을 특징으로 하는 스토리지 서버.
  9. 청구항 8에 있어서,
    상기 데이터 처리부는,
    상기 수신된 메시지에 포함된 스토리지 서버 리스트에서 자신의 정보를 제외한 나머지 스토리지 서버들의 정보를 우선순위에 따라 순차적으로 배열한 스토리지 서버 리스트를 재구성하여 상기 데이터와 함께 다음 순서의 스토리지 서버로 전송하도록 하는 것을 특징으로 하는 스토리지 서버.
  10. 청구항 8에 있어서,
    상기 데이터 블록에 장애가 발생하여 데이터 저장에 실패한 경우 해당 스토리지 서버의 디스크 장애 상태를 데이터 분산 처리 장치로 전송하도록 하는 장애 처리부를 더 포함하는 것을 특징으로 하는 스토리지 서버.
  11. 청구항 10에 있어서,
    상기 장애 처리부는,
    상기 다음 순서의 스토리지 서버로의 데이터 전송에 실패한 경우, 상기 다음 순서의 스토리지 서버에 대한 네트워크 장애 상태를 데이터 분산 처리 장치로 전송하도록 하는 것을 특징으로 하는 스토리지 서버.
  12. 청구항 8에 있어서,
    상기 메시지는,
    상기 데이터를 저장함과 동시에 상기 다음 순서의 스토리지 서버 간에 형성된 복제 전용 채널을 통해 비 동기식으로 전송되는 것을 특징으로 하는 스토리지 서버.
  13. 데이터 분산 처리 장치가,
    데이터에 대응하는 메타데이터 정보를 메타데이터 서버로 제공하여 상기 메타데이터 서버로부터 상기 데이터를 저장할 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버의 정보를 확인하는 단계;
    확인된 상기 원본 스토리지 서버 및 하나 이상의 사본 스토리지 서버들에 대한 스토리지 서버 리스트 정보 및 상기 데이터를 포함하는 메시지를 생성하는 단계;
    상기 메시지를 장애 처리 버퍼에 임시 저장하는 단계; 및
    상기 스토리지 서버 리스트 상에서 들의 우선순위에 따라 높은 우선순위를 갖는 어느 하나의 스토리지 서버로 상기 메시지를 전송하는 단계를 포함하며,
    상기 스토리지 서버가, 상기 데이터 분산 처리 장치로부터 수신한 메시지에 포함된 데이터를 저장하고, 상기 스토리지 서버 리스트에 포함된 스토리지 서버들의 우선순위에 따라 상기 메시지를 다음 우선순위의 스토리지 서버로 전달하는 단계를 더 포함하는 것을 특징으로 하는 데이터 분산 처리 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 청구항 13에 있어서,
    상기 데이터 분산 처리 장치가,
    상기 스토리지 서버들 중 어느 하나의 장애 상태를 감지하는 단계; 및
    상기 장애 처리 버퍼에 임시 저장된 메시지를 호출하여 상기 장애가 발생한 스토리지 서버를 제외한 나머지 서버들 중 높은 우선순위의 스토리지 서버로 재전송하는 단계를 더 포함하는 것을 특징으로 하는 데이터 분산 처리 방법.
KR1020140006562A 2014-01-20 2014-01-20 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버 KR101694980B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140006562A KR101694980B1 (ko) 2014-01-20 2014-01-20 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버
US14/484,607 US20150207880A1 (en) 2014-01-20 2014-09-12 Apparatus and method for distribution processing of data, and storage server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140006562A KR101694980B1 (ko) 2014-01-20 2014-01-20 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버

Publications (2)

Publication Number Publication Date
KR20150086649A KR20150086649A (ko) 2015-07-29
KR101694980B1 true KR101694980B1 (ko) 2017-01-23

Family

ID=53545859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140006562A KR101694980B1 (ko) 2014-01-20 2014-01-20 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버

Country Status (2)

Country Link
US (1) US20150207880A1 (ko)
KR (1) KR101694980B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190012622A (ko) * 2017-07-28 2019-02-11 네이버 주식회사 저장 장치의 개별 제어를 위한 데이터의 배치 및 복구
KR102118586B1 (ko) * 2019-11-20 2020-06-03 한국건설기술연구원 블록 체인 기술을 이용하여 bim 데이터를 전송하기 위한 시스템 및 그 방법
US11250015B2 (en) 2020-02-07 2022-02-15 Coupang Corp. Systems and methods for low-latency aggregated-data provision
US11662949B2 (en) 2020-11-04 2023-05-30 Samsung Electronics Co., Ltd. Storage server, a method of operating the same storage server and a data center including the same storage server

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9348525B2 (en) * 2014-02-21 2016-05-24 Netapp, Inc. Systems and methods for a storage array-managed initiator cache
KR102025801B1 (ko) 2016-01-26 2019-09-26 한국전자통신연구원 분산 파일 시스템 및 이의 데이터 내결함성 지원 방법
KR20180010442A (ko) * 2016-07-21 2018-01-31 주식회사 시공미디어 온라인 저작 서비스가 수행되는 사용자 단말 및 이의 문서 저장 방법
US10805070B2 (en) * 2016-10-19 2020-10-13 Index Systems, Llc Systems and methods for multi-region encryption/decryption redundancy
KR102610996B1 (ko) * 2016-11-04 2023-12-06 에스케이하이닉스 주식회사 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법
CN108347455B (zh) * 2017-01-24 2021-03-26 阿里巴巴集团控股有限公司 元数据交互方法及系统
CN108347454B (zh) * 2017-01-24 2021-03-26 阿里巴巴集团控股有限公司 元数据交互方法及系统
KR102610984B1 (ko) * 2017-01-26 2023-12-08 한국전자통신연구원 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 운영 방법
US10673791B2 (en) 2017-12-29 2020-06-02 Facebook, Inc. Techniques for data reads from secondary stores
US10642877B2 (en) * 2017-12-29 2020-05-05 Facebook, Inc. Techniques for consistent reads in a split message store
US11405343B2 (en) 2017-12-29 2022-08-02 Meta Platforms, Inc. Techniques for extensible message indexing
US10645040B2 (en) * 2017-12-29 2020-05-05 Facebook, Inc. Techniques for consistent writes in a split message store
US11412041B2 (en) 2018-06-25 2022-08-09 International Business Machines Corporation Automatic intervention of global coordinator
US11669076B2 (en) 2018-07-27 2023-06-06 Rockwell Automation Technologies, Inc. System and method of communicating unconnected messages over high availability industrial control systems
US11221612B2 (en) * 2018-07-27 2022-01-11 Rockwell Automation Technologies, Inc. System and method of communicating data over high availability industrial control systems
US11927950B2 (en) 2018-07-27 2024-03-12 Rockwell Automation Technologies, Inc. System and method of communicating safety data over high availability industrial control systems
US11327472B2 (en) 2018-07-27 2022-05-10 Rockwell Automation Technologies, Inc. System and method of connection management during synchronization of high availability industrial control systems
US11272005B1 (en) * 2018-09-25 2022-03-08 Amazon Technologies, Inc. Communicating state information in a distributed storage environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010109499A (ko) 2001-10-11 2001-12-10 온스그래픽(주) 인터넷 캐싱 시스템 및 방법
US6910150B2 (en) * 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
KR20100048130A (ko) * 2008-10-30 2010-05-11 주식회사 케이티 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법
KR101453425B1 (ko) * 2008-12-18 2014-10-23 한국전자통신연구원 메타데이터 서버 및 메타데이터 관리 방법
KR101346188B1 (ko) * 2011-12-27 2013-12-31 삼성중공업 주식회사 데이터 분산 처리 방법 및 상기 방법을 수행할 수 있는 시스템들

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190012622A (ko) * 2017-07-28 2019-02-11 네이버 주식회사 저장 장치의 개별 제어를 위한 데이터의 배치 및 복구
KR102007810B1 (ko) 2017-07-28 2019-08-07 네이버 주식회사 저장 장치의 개별 제어를 위한 데이터의 배치 및 복구
KR102118586B1 (ko) * 2019-11-20 2020-06-03 한국건설기술연구원 블록 체인 기술을 이용하여 bim 데이터를 전송하기 위한 시스템 및 그 방법
US11250015B2 (en) 2020-02-07 2022-02-15 Coupang Corp. Systems and methods for low-latency aggregated-data provision
US11899678B2 (en) 2020-02-07 2024-02-13 Coupang Corp. Systems and methods for low latency aggregated data provision
US11662949B2 (en) 2020-11-04 2023-05-30 Samsung Electronics Co., Ltd. Storage server, a method of operating the same storage server and a data center including the same storage server

Also Published As

Publication number Publication date
KR20150086649A (ko) 2015-07-29
US20150207880A1 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
KR101694980B1 (ko) 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버
US7249192B1 (en) Protocol for insuring exactly once semantics of transactions across an unordered, unreliable network
US10831741B2 (en) Log-shipping data replication with early log record fetching
US20120303912A1 (en) Storage account migration between storage stamps
US20070204275A1 (en) Method and system for reliable message delivery
US9319267B1 (en) Replication in assured messaging system
JP2017531250A (ja) 粒状同期/半同期アーキテクチャ
US10484449B2 (en) Email webclient notification queuing
CN102171995A (zh) 服务器故障时的报文处理方法及路由器
KR20100031513A (ko) 고가용성 전송
CN109739435B (zh) 文件存储和更新方法及装置
US9723074B2 (en) Method and apparatus for in the middle primary backup replication
US10432487B2 (en) System and method for offline survivability
CN108347463A (zh) 一种终端文件上传方法
CN108259595A (zh) 一种服务间异步调用的方法及系统
CN108512753B (zh) 一种集群文件系统中消息传输的方法及装置
US6741561B1 (en) Routing mechanism using intention packets in a hierarchy or networks
CN113411363A (zh) 一种镜像文件的上传方法、相关设备及计算机存储介质
CN111163120A (zh) 分布式数据库的数据存储传输方法和装置以及存储介质
CN109992447A (zh) 数据复制方法、装置及存储介质
KR102286913B1 (ko) 네트워크 관리 장치 및 그 제어방법
KR100608394B1 (ko) 데이터베이스 동기화 인터페이스 장치 및 방법
CN104378438A (zh) 数据同步方法及其装置
CN106685697B (zh) 一种异常边际消息数据恢复处理的方法及系统
CN104009873A (zh) 网络小型计算机系统接口的处理方法及装置

Legal Events

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

Payment date: 20191223

Year of fee payment: 4