KR100952166B1 - 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치 - Google Patents

그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치 Download PDF

Info

Publication number
KR100952166B1
KR100952166B1 KR1020080072023A KR20080072023A KR100952166B1 KR 100952166 B1 KR100952166 B1 KR 100952166B1 KR 1020080072023 A KR1020080072023 A KR 1020080072023A KR 20080072023 A KR20080072023 A KR 20080072023A KR 100952166 B1 KR100952166 B1 KR 100952166B1
Authority
KR
South Korea
Prior art keywords
data
version information
version
node
update
Prior art date
Application number
KR1020080072023A
Other languages
English (en)
Other versions
KR20100011000A (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 KR1020080072023A priority Critical patent/KR100952166B1/ko
Publication of KR20100011000A publication Critical patent/KR20100011000A/ko
Application granted granted Critical
Publication of KR100952166B1 publication Critical patent/KR100952166B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 그리드 데이터 베이스에 관한 것으로 특히, 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치에 관한 것이다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 다수의 노드를 포함하는 그리드 데이터 베이스의 데이터 버전 관리 방법에 있어서, 노드로부터 데이터 업데이트 연산이 발생되어 상기 데이터의 새로운 버전 정보 요청을 수신하는 단계; 상기 새로운 버전 정보 요청의 처리 여부를 판단하는 단계; 판단 결과, 처리가 가능하면 새로운 버전 정보 생성 및 버전 정보를 업데이트 하는 단계; 및 상기 새로운 버전 정보를 상기 노드로 전송하는 단계를 포함한다.
그리드 데이터 베이스, 수요기반 트리, 데이터 버전 관리

Description

그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치{Method and apparatus for data version management of grid database}
본 발명은 그리드 데이터 베이스에 관한 것으로 특히, 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치에 관한 것이다.
인터넷이 보편화되고 컴퓨터 및 네트워크의 성능이 향상됨에 따라서 컴퓨터가 여러 분야에 이용되고 있다. 이에 대한 예로 대량의 유전자 정보 처리, 비행체나 발사체 설계, 기후나 환경변화, 고 에너지 물리분야의 데이터분석에 관한 연구이다. 이런 방대한 데이터들의 효율적인 활용을 위한 노력으로 분산 데이터 베이스와 데이터 베이스 클러스터가 개발되었으며, 최근에 들어서는 자원통합에 있어서 동일 기종 데이터 베이스뿐만 아니라 이 기종 데이터 베이스들과 대용량 데이터의 통합을 위해 그리드 데이터 베이스(grid database)에 대한 연구가 진행되고 있다.
먼저, 분산 데이터 베이스는 컴퓨터 통신망을 이용하여 여러 개의 지역 데이터 베이스를 논리적으로 연관시킨 통합된 데이터 베이스다. 물리적으로는 분산되고, 논리적으로는 집중되어 있는 형태의 구성으로 단순한 연결이 아닌 각 데이터 베이스가 서로 관여하는 연결 구조이다. 분산 데이터 베이스의 장점은 데이터를 분 산 배치하므로 장애에 대한 대비에 강하고 다수의 이용자가 대규모의 데이터 베이스를 낮은 비용으로 공유할 수 있는 점이다. 분산 데이터 베이스는 중앙 집중형 데이터 베이스보다 저비용으로 구성이 가능하며, 확장성 및 가용성에 장점이 있다.
그리드 데이터 베이스는 도 1에 도시된 바와 같이, 분산된 복수의 노드(10, 20, 30, 40)와 노드들(10, 20, 30, 40)을 상호 연결하는 링크로 구성되며, 각각의 노드들(10, 20, 30, 40)은 복수의 단말(12, 22, 32, 42)과 연결되어 있다. 복수의 노드 중 사용자의 접근 및 데이터의 업데이트가 가장 많이 발생되는 노드를 루트 노드(10)로 정의한다. 여기서, 노드는 데이터 베이스 관리 시스템이나 클러스터 시스템으로 구성된 데이터 베이스 관리 시스템을 의미하며, 그리드(Grid)란 모든 종류의 자원을 시간에 따라 변화하는 요구사항에 동적 및 실시간적으로 반응할 수 있도록 다양한 개체의 협력을 통해 효율적으로 관리 및 활용하는 것을 의미한다.
그리드 데이터 베이스는 그리드 컴퓨팅 환경에서 분산된 데이터의 효율적 처리와 사용을 위한 데이터 베이스 관리 시스템이다. 그리드 데이터 베이스는 상술한 분산 데이터 베이스 시스템의 기능을 기본적으로 포함하는 동시에 통합, 자동화 및 가상화 등의 기능을 제공한다. 그리드 데이터 베이스의 주요한 기능으로는 대용량 자원에 대한 관리와 고속 연산, 그리고 데이터 복제(duplication)를 통한 가용성 향상에 있다. 그리드 데이터 베이스를 구성하는 각 노드는 데이터의 처리 성능과 가용성 향상을 위해 동일한 데이터를 서로 다른 위치에 복제하여 저장하며, 데이터 연합, 데이터 변환, 데이터 배치, 데이터 통합 등의 기능을 제공한다.
그러나, 그리드 데이터 베이스는 기존의 분산 데이터 베이스 시스템과는 달 리 지역적 자율성을 보장하기 때문에 단일 관리자에 대한 적용이 불가능하거나 비효율적인 시스템 구성이 이루어질 가능성이 있다. 또한, 데이터가 동적으로 변화되는 환경에 유동적인 대응을 위해서는 효율적인 재조직 연산이 필요한 단점이 있다.
그리드 데이터 베이스에서는 가용성과 확장성 그리고 데이터 처리의 성능을 향상하기 위하여 상술한 바와 같이, 동일한 데이터를 다른 노드에 중복 복제하여 관리한다. 그러나, 데이터 복제본의 사용으로 시스템의 가용성은 증가되었지만 복수의 노드에서 실시간적으로 이루어지는 복제본 데이터의 변경으로 인한 데이터의 버전 관리(일관성 유지)에 문제점이 있다.
이러한, 종래의 버전 관리 방법의 문제를 개선한 방법으로 수요기반 트리를 이용한 데이터 버전 관리 방법이 있다. 그리드 환경에서 응용 서비스의 종류 및 데이터의 특성에 따라서 각각의 복제본에 대한 사용빈도가 다른 특성을 가지고, 수요기반 트리(Demand Tree)를 이용하여 데이터의 버전의 일관성이 유지되도록 관리하는 방법이다.
그러나, 종래 기술의 수요기반 트리를 이용한 데이터 버전 관리 방법은 사용자의 수요 빈도에 따라서 업데이트 데이터의 전파에만 집중되어, 동시 다발적으로 발생하는 업데이트 연산에 대한 일관성 유지가 이루어지지 못하는 단점이 있다. 여기서, 동시 다발적인 업데이트 연산이란 유동적으로 변경되는 그리드 환경에서 복제본에 대하여 업데이트 발생하고 있을 상황에서 다른 노드에서 또 다른 업데이트가 발생하여, 복수의 노드에서 데이터의 업데이트 연산이 발생하는 경우를 의미한다.
이렇게 동시 다발적으로 여러 노드에서 업데이트 연산이 발생되는 경우에는 각 노드에서 업데이트된 데이터의 버전이 전체 그리드 데이터 베이스에서 효율적으로 관리되지 못하는 문제점이 있고, 동시 다발적으로 업데이트가 이루어진 데이터의 버전 관리에 많은 시간이 소요되는 문제점이 있어 이러한 환경에 부합되는 새로운 그리드 데이터 베이스의 데이터 버전 관리 방법이 요구되고 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 수요기반 트리를 이용한 그리드 데이터 베이스에서 관리되는 데이터의 일관성을 유지할 수 있는 데이터 버전 관리 방법 및 장치를 제공하는 것을 기술적 과제로 한다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 그리드 데이터 베이스에서 데이터의 업데이트 연산 시간 및 데이터 버전 관리 시간을 단축시킬 수 있는 데이터 버전 관리 방법 및 장치를 제공하는 것을 기술적 과제로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 데이터 버전 관리 방법은 다수의 노드를 포함하는 그리드 데이터 베이스의 데이터 버전 관리 방법에 있어서, 노드로부터 데이터 업데이트 연산이 발생되어 상기 데이터의 새로운 버전 정보 요청을 수신하는 단계; 상기 새로운 버전 정보 요청의 처리 여부를 판단하는 단계; 판단 결과, 처리가 가능하면 새로운 버전 정보 생성 및 버전 정보를 업데이트 하는 단계; 및 상기 새로운 버전 정보를 상기 노드로 전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 새로운 버전 정보 요청의 처리 여부 판단 결과, 처리가 가능하지 않으면 상기 노드로부터의 새로운 버전 정보 요청을 대기열에 저장하는 단계; 및 상기 노드로 업데이트 수행의 중지를 통보하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법에서 상기 새로운 버전 정보 요청의 처리 여부의 판단은 상기 노드로부터의 데이터의 제 1 버전 정보와 버전 관리 장치에 저장된 이전 버전 정보 및 현재 버전 정보를 포함하는 제 2 버전 정보를 비교하는 단계를 포함하고, 상기 제 1 버전 정보와 상기 제 2 버전 정보의 비교결과, 상기 제 1 버전 정보와 상기 제 2 버전 정보가 동일한 경우 상기 새로운 버전 정보 요청의 처리를 수행하고, 상기 제 1 버전 정보와 상기 제 2 버전 정보가 상이한 경우 상기 그리드 데이터 베이스의 다수의 노드에서 데이터의 업데이트가 수행되지 않도록 상기 새로운 버전 정보 요청의 처리를 보류하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 상기 그리드 데이터 베이스의 다수의 노드 중 제 1 노드에서 지연이 발생되는 경우, 상기 제 1 노드의 지연이 해제될 때까지 상기 제 1 노드 외에 다른 노드로부터 데이터의 업데이트 수행을 보류하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 데이터 버전 관리 장치는 다수의 노드를 포함하는 그리드 데이터 베이스의 데이터 버전을 관리하는 데이터 버전 관리 장치에 있어서, 상기 다수의 노드로부터 업데이트가 이루어진 데이터의 버전 정보를 생성 및 관리하는 버전 정보 관리부; 상기 다수의 노드에서 동시 다발적으로 발생되는 업데이트 연산에 대한 처리 과정에서 일부 노드의 작업 부하로 인해 새로운 업데이트 연산 처리를 중지시켜야 하는 경우에 사용되는 작업 대기열을 생성 및 관리하는 작업 대기열 관리부; 상기 다수의 노드에서 동시 다발적 으로 이루어지는 데이터의 업데이트에 대한 정보를 수신하여 작업 대기열에 저장하고, 상기 다수의 노드에서 이루어지는 데이터의 업데이트를 순차적으로 진행할 수 있도록 각 노드들의 우선순위를 제어하는 우선순위 관리부; 상기 다수의 노드 중에서 업데이트 연산이 지연되고 있는 노드의 정보를 초과용량 대기열에 저장 및 관리하는 초과용량 대기열 관리부; 및 상기 다수의 노드 중 적어도 하나의 노드에서 업데이트의 지연이 발생된 이후에 상기 다수의 노드로부터 수신되는 업데이트 연산 요청 메시지를 우선 업데이트 대기열에 저장 및 관리하는 우선 업데이트 대기열 관리부를 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치는 다수의 노드에서 복제본 데이터를 허용하는 그리드 데이터 베이스에서 일관성 유지를 위한 버전 관리 방법 및 장치 제공할 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치는 그리드 데이터 베이스 내의 데이터 및 데이터 버전 정보 업데이트 수행 시 소요되는 시간을 줄여 그리드 데이터 베이스의 성능을 향상시킬 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치는 업데이트 연산이 발생되는 노드의 위치 정보를 저장하여, 향후 작업 부하가 완화되면 대기열에 저장되어 있는 정보를 통해 다시 업데이트 연산을 처리함으로써 동시 다발적으로 업데이트 되는 데이터의 일관성을 보장할 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치는 그리드 데이터 베이스 내의 데이터 및 데이터 버전 정보의 일관성을 유지함으로써 그리드 데이터 베이스의 성능 향상을 이룰 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 각 노드의 업데이트 연산 요청을 제어하여 하위 노드에서의 업데이트 수행 시 발생될 수 있는 데드락 현상을 방지할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 설명하기로 한다.
실시 예에 따른 본 발명은 그리드 데이터 베이스에서 계층 구조를 이용한 데이터의 버전 관리 방법 및 버전 관리 장치를 제안한다. 본 발명의 실시 예에 따른 데이터 버전 관리 방법은 수요기반 트리를 이용한 그리드 데이터 베이스에서 데이터의 일관성 유지를 위한 데이터 버전 관리 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 기존의 수요기반 트리를 확장시킬 수 있으며, 데이터 버전 관리 방법 및 장치를 통해 그리드 데이터 베이스 내의 데이터 복제본들의 버전을 관리하여 데이터의 일관성을 유지할 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 버전 관리 장치는 그리드 데이터 베이스의 계층 구조에 대한 재조직을 수행하며, 계층 구조의 재조직 수행 시 그리드 데이터 베이스들의 정보를 논리적으로 취합하는 오가나이저(organizer) 역할을 수행한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 버전 관리 장치는 전 체 그리드 데이터 베이스를 계층적 구조로 구성 함으로써 단계적인 정보 전파 및 재조직 연산 수행을 지원할 수 있다. 이를 통해, 지역적인 재조직 연산의 지원 및 효율적 균형 조정을 가능케 한다. 또한, 부가적으로 불필요한 재조직 연산의 제거가 가능하며, 그리드 데이터 베이스의 데이터 처리 능력을 향상시킬 수 있다.
도 2는 본 발명의 실시 예에 따른 버전 관리 장치를 포함하는 그리드 데이터 베이스를 나타내는 도면이다. 먼저, 각 노드(110, 120, 130, 140)에 연결된 단말(112)의 개수는 임의로 설정될 수 있으며, 노드 N1(110)에 제정된 데이터 A1에 대한 사용자의 수요가 가장 많은 경우를 일 예로 하여 노드 N1을 루트 노드(110)로 정의하였다.
도 2를 참조하면, 그리드 데이터 베이스는 분산된 복수의 노드(110, 120, 130, 140)와, 노드들(110, 120, 130, 140)을 상호 연결하는 링크 및 노드들(110, 120, 130, 140)에서 업데이트 되는 데이터의 버전을 관리하는 버전 관리 장치(100)를 포함하여 구성된다. 각각의 노드들(110, 120, 130, 140)은 복수의 단말(112)과 연결되어 있으며, 복수의 노드 중 사용자의 접근 및 데이터의 업데이트가 가장 많이 발생되는 노드를 루트 노드(110)로 정의한다.
여기서, 노드는 데이터 베이스 관리 시스템이나 클러스터 시스템으로 구성된 데이터 베이스 관리 시스템을 의미하며, 그리드(Grid)란 모든 종류의 자원을 시간에 따라 변화하는 요구사항에 동적 및 실시간적으로 반응 할 수 있도록 다양한 개체의 협력을 통해 효율적으로 관리 및 활용하는 것을 의미한다.
노드들(110, 120, 130, 140)은 모두 동일한 데이터의 복제본(A1 내지 A9)을 저장하고 있으며, 자신이 저장하고 있는 데이터 복제본의 버전 정보를 가지고 있다. 여기서, 데이터의 복제본은 수요기반 트리 구조를 통해 데이터의 업데이트가 이루어진 노드로부터 루트 노드(110)를 경유하여 그리드 데이터 베이스의 모든 노드로 전파되며, 데이터 복제본의 업데이트 및 업데이트가 이루어진 데이터의 복제본의 버전 정보는 버전 관리 장치(100)에 의하여 생성 및 제어된다.
본 발명의 실시 예에 따른 버전 관리 장치(100)를 포함하는 그리드 데이터 베이스는 수요기반 트리를 기반으로 하며, 지역적으로 서로 떨어져 있는 노드들에 현재 복제본이 저장되어 있고, 각 노드의 복제본에 대한 수요를 기준으로 순서대로 계층 구조로 연결되어 있다. 여기서, 버전 관리 장치(100)는 그리드 데이터 베이스에서 업데이트가 이루어지는 데이터의 이전 버전 정보 및 현재 버전 정보를 포함한다.
수요기반 트리에서 각각의 그룹은 하나의 노드와, 노드에 연결되는 복수의 단말로 구성되며, 이러한 그룹들이 모여 트리 형태의 네트워크 구조로 연결된다. 여기서, 수요란 단일 노드에서 특정 데이터에 대한 단위 시간 당 읽기 연산 요청 빈도로 정의되고, 각 노드는 저장되는 모든 데이터에 대한 수요를 기록하고, 이 정보는 주기적으로 업데이트가 이루어진다.
임의의 그룹에서 데이터의 업데이트가 발생되면 이는 해당 그룹 내에서 데이터 업데이트 메시지로서 그룹의 노드로 전송되고, 데이터의 업데이트가 발생된 그룹의 노드는 자신의 그룹 내에서 데이터가 업데이트 되었음을 의미하는 데이터 업데이트 메시지를 상술한 트리 구조를 이용하여 인접한 다른 노드들로 전송한다.
여기서, 데이터의 업데이트가 발생된 그룹 노드는 자신의 그룹 내에서 발생된 데이터 업데이트에 대한 정보를 그리드 데이터 베이스의 모든 노드들로 전송하기 위하여, 도 2에 도시된, 그리드 데이터 베이스의 루트 노드(110)로 데이터 업데이트 메시지를 전송하고, 이를 수신한 루트 노드(110)가 상술한 트리 구조를 통해 그리드 데이터 베이스의 모든 노드들로 특정 노드에서 데이터의 업데이트가 발생되었음을 전파하게 된다.
본 발명의 실시 예에 따른 그리드 데이터 베이스의 버전 관리 장치(100)는 데이터의 버전 정보에 대한 구조체와 작업 대기열을 생성하며, 생성된 버전 정보에 대한 구조체와 작업 대기열을 이용하여 업데이트 이전의 데이터에 대한 이전 버전(Previous Version) 정보와, 업데이트가 이루진 데이터의 현재 버전(Next Version) 정보를 기록 및 관리한다.
이를 위하여, 버전 관리 장치(100)는 도 3에 도시된 바와 같이, 버전 정보 관리부(210), 작업 대기열 관리부(220), 프로세서(230), 우선순위 대기열 관리부(240), 초과 용량 대기열 관리부(250) 및 우선 업데이트 대기열 관리부(260)를 포함한다.
버전 정보 관리부(210)는 각 노드들(110, 120, 130, 140)에 보관 중인 데이터의 버전 및 각 노드들(110, 120, 130, 140)로부터 업데이트가 이루어진 데이터의 버전 정보를 생성 및 관리한다.
이하, 설명에서 업데이트 수행을 기준으로 하여, 업데이트가 이루어지기 전의 데이터에 대한 버전 정보를 이전 버전 정보라 정의하고, 업데이트가 이루어진 이후의 데이터에 대한 버전 정보를 현재 버전 정보 또는 다음 버전 정보로 정의한다.
버전 정보 관리부(210)에서 관리되는 데이터의 버전 정보는 크게 이전 버전 정보와 다음 버전(현재 버전) 정보의 두 가지로 나뉜다. 버전 정보를 이렇게 두 가지 타입(TYPE)으로 저장하는 이유는 여러 노드에서 불규칙적으로 업데이트 정보가 입력되는데 반하여 업데이트는 순차적으로 실행되어야 하기 때문이다. 이전 버전 정보와 현재 버전 정보를 통하여 데이터의 업데이트가 순차적으로 일관성을 가지고 처리되는 것을 보장할 수 있다.
상기 이전 버전 정보 및 현재 버전 정보는 각 노드에서 수행된 데이터의 업데이트 이후에 다른 노드들의 데이터 업데이트 시 전체 그리드 데이터 베이스의 내에서 데이터의 일관성을 유지하는 데 이용되는 것으로, 그리드 데이터 베이스의 모든 노드들은 버전 관리 장치(100)의 버전 정보 관리부(210)로부터 제공되는 데이터의 버전 정보를 통해 자신이 보유하고 있는 데이터의 복제본이 현재 버전의 데이터의 복제본인지, 이전 버전의 데이터 복제본인지 여부를 알 수 있다.
작업 대기열 관리부(220)는 그리드 데이터 베이스 내에서 동시 다발적으로 발생되는 업데이트 연산에 대한 처리 과정에서 일부 노드의 작업 부하로 인해 새로운 업데이트 연산 처리를 중지시켜야 하는 경우에 사용되는 작업 대기열을 생성 및 관리한다.
여기서, 작업 대기열은 업데이트가 중지된 기간 동안 새롭게 업데이트 연산이 발생되는 노드의 위치 정보를 기억하였다가, 향후 작업 부하가 완화되면 대기열 에 쌓여 있는 정보를 통해 다시 업데이트 연산을 처리함으로써 전체 그리드 데이터 베이스 내의 데이터 복제본에 대한 일관성을 보장한다.
도 2에 도시된 그리드 데이터 베이스의 모든 노드들(110, 120, 130, 140)은 동일한 데이터에 대한 복제본(A1 내지 A9)을 저장하고 있으며, 복제된 데이터의 업데이트 순서에 따라서 데이터의 버전 정보(114)를 가지고 있다.
버전 관리 장치(100)에 저장된 데이터의 버전 정보(114)를 살펴보면, 데이터의 현재 버전 정보는 “4”이며, 이전 버전 정보는 “3”이다. 현재 그리드 데이터 베이스의 모든 노드들은 동일한 데이터에 대해 버전 “4”에 해당하는 동일한 버전 정보(114)를 가지고 있음을 알 수 있다. 여기서, 버전 관리 장치(100)에서는 도 4에 도시된 바와 같이, 데이터의 이전 버전 및 다음 버전 또는 현재 버전 정보를 생성 및 관리한다.
우선순위 관리부(230)는 여러 노드들에서 동시 다발적으로 이루어지는 데이터의 업데이트에 대한 정보를 노드들로부터 로딩하여 작업 대기열에 저장하고, 노드들에서 이루어지는 데이터의 업데이트를 순차적으로 진행할 수 있도록 각 노드들의 우선순위 대기열을 관리 한다.
여기서, 우선순위 대기열은 도 5에 도시된 바와 같이 형성되면, 노드가 가지고 있는 대기열로서 동시 다발적으로 발생하는 업데이트 정보를 저장하고 있는 대기열이다. 노드는 버전 관리 장치(100)의 작업 대기열에 저장된 데이터의 버전 정보를 자신이 저장하고 있는 데이터의 버전 정보와 비교하고, 자신이 저장하고 있는 데이터의 버전 정보가 이전 버전 정보인 경우, 버전 관리 장치(100)로부터 데이터 의 버전 정보를 순차적으로 로딩함과 아울러, 루트 노드(110)로부터 순차적으로 현재 버전 정보에 해당하는 데이터를 로딩하여 데이터의 업데이트 연산을 수행한다. 이때, 대기열 안에 저장되는 정보는 실제 데이터의 업데이트 정보와 버전 정보가 저장된다.
노드에서는 우선순위 대기열 저장된 데이터의 버전 순서에 따라 데이터의 업데이트 수행을 순차적으로 수행한다. 여기서, 순차적으로 데이터의 업데이트를 수행한다는 것의 의미는 데이터의 현재 버전 정보가 “4”이고, 특정 노드가 저장하고 있는 데이터의 버전 정보가 “2”인 경우에는 버전 “3”과 버전 “4”의 데이터를 순차적으로 로딩하여 데이터의 업데이트를 수행하는 것을 의미한다.
그리고, 현재 수행 중인 버전의 다음 버전 데이터가 없다면 다음 버전의 데이터를 받을 때까지 노드는 업데이트 연산을 대기한다. 또한 노드에서는 대기열의 한계치 이상의 데이터가 쌓일 경우 더 이상의 업데이트 정보를 받을 수 없음으로 업데이트 정보 지연 메시지를 버전 관리 장치(100)로 전달한다.
초과용량 대기열 관리부(240)는 노드로부터 업데이트 지연 메시지를 수신한 경우 업데이트 연산이 지연되고 있는 노드의 정보를 도 6에 도시된 바와 같은 초과용량 대기열에 저장 및 관리한다. 도 6에 도시된 초과용량 대기열은 버전 관리 장치(100)에서 관리되는 대기열의 하나로써, 노드에서 업데이트 지연이 발생된 경우, 각 노드들의 지연 정보가 저장되는 대기열이다. 초과용량 대기열 관리부(240)는 초과용량 대기열에 저장된 지연 정보를 이용하여 지연이 발생된 이후부터 데이터의 업데이트 연산이 각각의 노드들로부터 발생되지 않도록 각각의 노드들을 제어한다. 이를 통해 전체 그리드 데이터 베이스 내의 데이터에 대한 버전의 일관성을 유지할 수 있다.
또한, 초과용량 대기열에 지연된 노드의 정보가 삽입되면 우선 업데이트 대기열 관리부(250)가 동작되며, 이 후에 발생되는 업데이트 연산 메시지는 도 7에 도시된 바와 같이, 각 노드로부터의 지연 정보가 우선 업데이트 대기열에 저장된다.
이어서, 우선 업데이트 대기열 관리부(250)는 그리드 데이터 베이스에서 데이터의 업데이트에 지연이 발생된 이후에 노드들로부터 수신되는 모든 업데이트 연산 요청 메시지를 도 7에 도시된 바와 같이, 우선 업데이트 대기열에 저장 및 관리한다. 여기서, 우선 업데이트 대기열은 데이터의 업데이트에 지연이 발생된 이후의 모든 업데이트 연산 요청 메시지를 저장한다.
우선 업데이트 대기열에 업데이트 연산 요청 메시지를 순차적으로 저장함으로써 초과용량 대기열에 있는 모든 노드의 지연이 해제되었을 경우에, 이후 수해되는 업데이트 연산의 순차성을 보장하여 지연 발생 이후에 동시다발적으로 발생하는 업데이트 연산의 일관성을 보장할 수 있다.
상술한 설명에서는 버전 관리 장치(100)가 그리드 데이터 베이스 내에서 별로의 독립적 구성요소로 형성되는 것으로 설명하였으나, 이는 하나의 실시 예에 불과한 것으로, 버전 관리 장치(100)는 노드들에서 업데이트 되는 데이터의 버전 관리를 위해 임의의 노드(예를 들면, 루트 노드)에 포함되어 형성될 수 있다. 이러한 경우에는 루트 노드(110)가 데이터의 버전 정보의 생성, 관리 및 전송을 담당하게 된다.
이하, 설명에서는 노드 A0에서 데이터의 업데이트 연산이 발생된 경우를 일 예로 하여 본 발명의 실시 예에 따른 그리드 데이터 베이스의 데이터 버전 관리 방법을 설명하기로 한다. 도 8을 참조하여 본 발명의 실시 예에 따른 데이터 버전 관리 방법의 전체적인 흐름에 대하여 설명하고, 이후, 도 9 내지 도 11을 참조하여 버전 관리 장치(100) 및 노드들 간의 메시지 송수신과정 및 데이터 버전 정보의 업데이트 과정에 대하여 설명하기로 한다.
도 8은 본 발명의 실시 예에 따른 데이터 버전 관리 방법을 설명하기 위한 흐름도이다. 먼저, 도 8을 참조하면, 노드 A0에서 데이터의 업데이트 연산이 발생하면 노드 A0는 버전 관리 장치(100)로 업데이트가 이루어진 데이터의 새로운 버전 정보를 요청한다(S100). 여기서, 버전 관리 장치(100)가 그리드 데이터 베이스의 임의의 노드에 형성되는 경우에는 버전 관리 장치(100)가 있는 노드로 업데이트가 이루어진 데이터의 새로운 버전 정보를 요청하게 된다.
이후, 버전 관리 장치(100)는 현재 저장되어 있는 데이터의 버전 정보를 업데이트하여 데이터의 새로운 버전 정보를 생성하고(S110), 생성된 새로운 버전 정보를 데이터의 새로운 버전 정보를 요청한 노드 A0로 전송한다(S120).
이후, 버전 관리 장치(100)로부터 데이터의 새로운 버전 정보를 수신한 노드 A0는 수신한 새로운 버전 정보를 기반으로 데이트의 버전 업데이트 메시지를 작성한다(S130).
이후, 노드 A0는 업데이트가 이루어진 데이터 및 데이터의 업데이트 정보를 트리 구조에서의 전파 순서에 따라 다른 노드로 전달하기 위하여 생성된 버전 업데이트 메시지를 루트 노드(110)로 전송한다(S140).
이후, 데이터의 업데이트가 이루어진 노드 A0로부터 버전 업데이트 메시지를 수신한 루트 노드(110)는 수신된 업데이트 메시지의 데이터 버전 정보와 자신이 저장하고 있는 데이터의 버전 정보를 비교한다. 여기서, 버전 정보에는 이전 버전과 업데이트가 이루어진 현재 버전 정보가 포함되어 있다.
예를 들면, 수신된 업데이트 메시지의 버전 정보가 이전 버전 3에서 현재 버전 4로 변경되는 것이고, 루트 노드(100) 자신이 가지고 있는 데이터의 현재 버전이 3인 경우에는 자신이 가지고 있는 데이터의 버전이 업데이트 된 것이므로, 업데이트 연산을 수행하여 자신이 저장하고 있는 데이터 및 데이터의 버전 정보의 업데이트 한다(S150). 이후, 루트 노드(100)는 자신의 하부에 구성된 다른 노드(예를 들면, 노드 An-1)로 버전 업데이트 메시지를 전송한다(S160).
만약, 루트 노드(110) 자신이 보유한 데이터의 현재 버전이 노드 A0로부터 수신된 데이터의 이전 버전 정보와 상이한 경우에는 업데이트 연산을 잠시 보류하게 된다. 예를 들면, 수신된 업데이트 메시지의 버전 정보가 이전 버전 4에서 현재 버전 5로 변경되는 것이고, 루트 노드(100) 자신이 가지고 있는 데이터의 현재 버전이 3인 경우에는 자신이 가지고 있는 데이터의 버전이 노드 A0 에서 업데이트가 수행된 데이터의 버전과 상이하므로 이런 경우에는 업데이트 연산을 연산순위 대기 열에 저장하고 자신이 저장하고 있는 복제본 데이터의 버전이 최근의 버전으로 교체될 때까지 버전 정보의 업데이트 연산을 보류한다.
루트 노드(110)로부터 버전 업데이트 메시지를 수신한 노드 An-1은 노드 A0 및 루트 노드(110)와 동일한 방법을 통해 업데이트 연산을 수행하여 자신이 저장하고 있는 데이터 및 데이터의 버전 정보의 업데이트 한다(S170). 이후, 노드 An-1은 자신의 하부에 구성된 다른 노드(예를 들면, 노드 An)로 버전 업데이트 메시지를 전송한다(S180).
노드 An-1도 자신이 저장하고 있는 데이터의 버전 정보와 루트 노드(110)로부터 수신된 데이터의 버전 정보가 상이한 경우에는 자신이 저장하고 있는 데이터의 버전이 최근의 버전으로 변경 때까지 업데이트 연산을 우선순위 대기열에 저장하여 버전 정보의 업데이트 연산을 보류한다.
노드 An-1로부터 버전 업데이트 메시지를 수신한 노드 An은 업데이트 연산을 수행하여 자신이 저장하고 있는 데이터 및 데이터의 버전 정보의 업데이트 한다(S190).
이후, 상술한 S150 내지 S190 과정과 같이 데이터의 버전 업데이트를 수신 한 후, 자신이 저장하고 있는 데이터 및 데이터의 버전 정보의 업데이트 수행하고, 자신의 하부에 구성된 다른 노드들로 버전 업데이트 메시지를 전송하는 과정을 수행하여 그리드 데이터 베이스의 모든 노드들은 동일한 버전의 데이터를 저장하게 된다. 이를 통해, 그리드 데이터 베이스 내의 데이터의 일관성을 유지할 수 있다.
도 9는 본 발명의 실시 에에 따른 데이터 버전 관리 방법에서 버전 관리 장 치와 노드 간의 업데이트 메시지 송수신 과정을 나타내는 흐름도이다.
도 9를 참조하면, 노드 A0에서 데이터의 업데이트 연산이 수행되면(S200) 노드 A0는 버전 정보 업데이트 메시지를 생성하고(S210), 생성된 버전 정보 업데이트 메시지를 버전 관리 장치(100)로 전송한다(S220).
이후, 버전 관리 장치(100)는 현재 저장되어 있는 버전 정보(이전 버전 정보 및 현재 버전 정보)와 노드 A0로부터 수신된 버전 정보를 비교하여 데이터의 업데이트 및 데이터 버전 정보의 업데이트가 가능한지를 확인 한다(S230).
S230의 확인 결과, 업데이트가 가능한 경우에는 새로운 버전 정보를 생성하고, 생성된 새로운 버전 정보를 노드 A0로 전송한다(S2340).
이후, 노드 A0는 버전 관리 장치(100)로부터 수신된 새로운 버전 정보로 데이터 및 데이터의 버전 정보의 업데이트를 수행한다(S250). 이후, 루트 노드(110)로 새로운 버전 정보를 전달하여 수요기반 트리 구조를 통해 그리드 데이터 베이스의 모든 노드들로 새로운 버전 정보를 전달하게 된다.
다시 S230으로 돌아가서, 확인 결과, 업데이트가 가능하지 않은 경우에는 수신된 버전 정보 업데이트 메시지에 따른 버전 정보 업데이트 요청을 보류하고, 초과용량 대기열에 수신된 버전 정보를 저장한다(S260).
여기서, 업데이트가 가능하지 않은 경우는 노드 A0로부터의 버전 정보의 업데이트 요청 이전에 다른 노드로부터 버전 정보의 업데이트의 요청이 있을 경우는 버전 정보의 업데이트 요청을 순차적으로 하기 위함이다.
이후, 노드 A0로 업데이트 연산 중지 메시지를 전송하여 노드 A0가 데이터 버전 정보의 업데이트를 수행하는 것을 중지시킨다(S270).
버전 관리 장치(100)로부터 버전 정보의 업데이트 연산 중지를 통보받은 노드는 자신이 수행한 데이터의 업데이트에 따른 새로운 버전 정보를 획득하지 못하였으므로, 버전 관리 장치(100)에서 새로운 버전 정보를 획득할 때까지 그리드 데이터 베이스 내의 다른 노드들로 자신이 수행한 데이터 업데이트에 대한 정보 전달을 보류하게 된다.
상술한, S200 내지 S270의 과정을 통해 그리드 데이터 베이스 내의 여러 노드들로부터 데이터의 업데이트가 수행되어 버전 정보의 업데이트가 요청된 경우, 버전 정보의 업데이트를 순차적으로 수행할 수 있어 그리드 데이터 베이스 내에서 데이터 및 데이터 버전 정보의 일관성을 유지시킬 수 있다.
도 10은 본 발명의 실시 예에 따른 데이터 버전 관리 방법에서 버전 관리 장치에서 메시지 수신 이후의 처리 과정을 나타내는 흐름도이다.
도 10을 참조하면, 그리드 데이터 베이스의 노드들로부터 메시지가 수시되면(S300), 수신된 메시지의 종류를 확인하게 되는데 먼저 수신된 메시지가 버전 정보 업데이트 메시지(UP DATA MSG)인지를 확인 한다(S310).
S310의 확인 결과, 수신된 메시지가 버전 정보 업데이트 메시지이면, 노드로부터 수신된 버전 정보 업데이트 메시지에 포함된 버전 정보와 자신이 관리하고 있는 버전정보를 비교한 후, 버전 정보의 업데이트가 가능한 경우에 현재 버전 정보 를 새로운 버전 정보로 업데이트를 수행한다(S320). 여기서, 버전 정보의 업데이트가 가능하지 않은 경우에는 도 9의 S260 및 S270의 절차를 수행한다.
여기서, 버전 정보 업데이트 메시지(UP DATA MSG)는 노드에서 발생되는 데이터의 일반적인 업데이트를 의미하는 메시지로, 업데이트 연산은 Waiting Flag를 확인하여 Waiting Flag가 FALSE인 경우 버전의 메시지를 다음 버전으로 변경한다. 그리고, VMSUC MSG 메시지를 노드로 전송한다. 만약 Waiting Flag가 TRUE일 경우는 데이터는 Stored Waiting Q 함수를 통하여 우선순위 대기열에 저장된다. 또한 Exchange Version은 현재 저장된 버전 정보를 증가하여 새로 들어온 버전 정보를 변경하는 역할을 수행한다.
S310으로 돌아가서, 확인 결과, 수신된 메시지가 버전 정보 업데이트 메시지가 아니면, 수신된 메시지가 지연 메시지(PENDING MSG)인지 확인 한다(S330).
S330의 확인 결과, 수신된 메시지가 지연 메시지이면, 지연이 발생된 노드에 대한 정보를 초과 용량 대기열에 저장한다(S340). 이후, 지연이 발생되고 있는 노드에서 데이터 및 데이터 버전 정보의 업데이트 연산이 수생되지 않도록 업데이트 연산을 차단한다(S350). 이후, 업데이트 연산 차단 이후에 발생되는 업데이트 메시지는 초과용량 대기열에 저장하고(S360), 노드에 발생된 지연이 해제될 때까지 업데이트 연산을 보류한다.
여기서, 지연 메시지(PENDING MSG)는 지연이 발생된 노드의 정보를 포함하는 메시지로, 버전 관리 장치(100)는 지연이 발생된 노드의 정보를 저장하고 Wait Running Flag 함수를 호출하여 더 이상의 업데이트 연산이 발생하지 않도록 노드를 제어한다.
S330으로 돌아가서, 확인 결과, 수신된 메시지가 지연 메시지(PENDING MSG)가 아니면, 수신된 메시지가 지연 해제 메시지(IMPENDING MSG)인지 확인 한다(S370).
S370의 확인 결과, 수신된 메시지가 지연 해제 메시지이면, 메시지를 전송한 노드에 대하여 초과용량 대기열에서 대기중인 업데이트 연산을 수행하도록 노드의 지연 상태를 해제한다(S380). 이후, 현재 우선순위 대기열에 다른 노드의 정보가 존재하는지 확인 한다(S390).
S390의 확인 결과, 현재 우선순위 대기열에 다른 노드의 정보가 존재하지 않으면, 현재까지 저장된 우선 업데이트 대기열의 데이터를 각각의 노드로 전달한다(S400). 이를 통해, 데이터 업데이트가 이루어진 노드로부터의 새로운 버전 정보가 그리드 데이터 베이스의 다른 노드들로 전달되게 된다. 한편, 390의 확인 결과, 현재 우선순위 대기열에 다른 노드의 정보가 존재하면 다른 노드에 지연이 발생되고 있거나, 먼저 요청된 정보가 있는 것이므로, 이에 대한 처리가 완료될 때까지 처리를 대기한다(S395).
도 11은 본 발명의 실시 예에 따른 데이터 버전 관리 방법에서 노드에서 데이터 업데이트 메시지 수신 이후의 처리 과정을 나타내는 흐름도이다. 데이터의 복제본을 저장하고 관리하는 노드는 데이터 베이스의 일반적 역할을 수행하고 있으며 버전 관리 장치(100) 및 다른 노드로부터 입력된 메시지에 따라 데이터의 및 버전 정보의 업데이트 수행이 달라지게 된다.
도 11을 참조하면, 그리드 데이터 베이스의 버전 관리 장치(100) 또는 다른 노드로부터 메시지가 수시되면(S410), 수신된 메시지의 종류를 확인하게 되는데 먼저 수신된 메시지가 버전 정보 업데이트 성공 메시지(VM SUC MSG)인지를 확인 한다(S420).
S420의 확인 결과, 수신된 메시지가 버전 정보 업데이트 성공 메시지이면, 수신된 업데이트가 성공된 버전 정보가 노드에 저장된 버전 정보 보다 이전 버전인지 확인 한다(S430).
S430의 확인 결과, 수신된 업데이트가 성공된 버전 정보가 노드에 저장된 버전 정보와 같거나, 이전 버전이면 해당 노드가 저장하고 있는 데이터의 버전 정보와 버전 관리 장치(100)에 저장된 데이터의 버전 정보가 동일하므로 업데이트 연산을 수행할 필요가 없다.
그러나, S430의 확인 결과, 수신된 업데이트가 성공된 버전 정보가 노드에 저장된 버전 정보보다 최근의 버전 정보인 경우에는 버전 정보의 업데이트 연산 수행이 필요하게 된다.
이러한 경우, 수신된 버전 정보를 Insert First PQ 함수에 저장한다(S440). 이후, 우선순위 대기열이 초과된 상태가 아니라면 수신된 버전 정보를 Insert PT에 삽입한다(S450). 이후, Insert First PQ 함수의 결과 값이 FULL 인지를 확인 한다(S460). S460의 확인 결과, Insert First PQ 함수의 결과 값이 FULL PQ면 우선순위 대기열의 공간이 전부 사용되었기 때문에 버전 관리 장치에게 지연 메시지를 전송 한다(S470). 이후, 지연이 해제될 때까지 버전 정보의 업데이트 연산 수행을 보 류 한다.
S420으로 돌아가서, 확인 결과, 수신된 메시지가 버전 정보 업데이트 성공 메시지가 아니면, 수신된 메시지가 버전 정보 전달 지연 메시지(VM WAIT MSG)인지 확인 한다(S480).
S480의 확인 결과, 수신된 메시지가 버전 정보 전달 지연 메시지인 경우에는 버전 관리 장치(100)가 지연이 발생된 노드의 정보를 받은 경우임에도 불구하고 노드에서는 버전 관리 장치(100)에게 업데이트 메시지를 전송한 경우로, 더 이상의 업데이트가 발생하지 않고 보류해야 한다.
이를 위해, 버전 관리 장치(100)는 노드로 버전 정보 전달 지연 메시지를 전송하고, 이를 수신한 노드는 지연 프로세서(Waiting Process)를 동작하여 업데이트 연산을 요청한 테이블의 버전 정보의 업데이터 연산을 보류한다. 노드는 버전 정보 재전송 메시지(VM RE UPDATE MSG)를 수신할 때까지 업데이트 연산을 보류한다(S490).
S480으로 돌아가서, 수신된 메시지가 버전 정보 전달 지연 메시지가 아닌 경우에는, 수신된 메시지가 버전 정보 재전송 메시지(VM RE UPDATE MSG)인지 확인 한다(S500).
S500의 확인 결과, 수신된 메시지가 버전 정보 재전송 메시지이면, 버전 정보 관리자(100)로부터 지연 해제를 통보받은 것이므로, 업데이트가 보류되었던 데이터의 업데이트를 수행한다(S510).
여기서, 버전 정보 재전송 메시지(VM RE UPDATE MSG)는 버전 정보 관리 자(100)로부터 지연이 해제된 노드에게 전송되는 메시지이다. 노드에서 이 메시지를 받으면 버전 관리 장치에서의 지연 때문에 업데이트가 보류되었던 데이터 및 데이터 버전 정보의 업데이트 수행이 가능케 된다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 상술한 과정들을 통해 그리드 데이터 베이스 내의 데이터 및 데이터의 버전 정보의 일관성을 유지할 수 있다.
이하에서는 데이터 버전 관리 방법 다른 실시 예에 대하여 설명하기로 한다.
그리드 데이터 베이스의 노드에서는 우선순위 대기열을 가지고 업데이트 메시지를 저장하여 순차적으로 데이터 및 버전 정보의 업데이트 연산을 수행한다. 여기서, 버전 정보 관리부 및 노드에서 송수신 되는 메시지가 노드의 대기열 한계치를 초과하게 되는 경우가 발생할 수 있다. 이런 경우는 버전 관리 장치에게 지연 메시지를 보내서 더 이상의 업데이트 연산이 발생이 발생하지 않게 보류할 수 있다. 하지만 현재까지 실행된 업데이트 메시지를 노드에서 더 이상 받지 못하여 업데이트 데이트 정보를 유실할 수 있는 경우가 발생할 수 있다.
또한, 다음 버전의 업데이트 데이터 버전을 기다리는 상태에서 다음 버전의 데이터는 삽입되지 않고 차후의 버전들이 먼저 삽입되어 우선순위 대기열의 저장공간 한계치를 초과하는 상태가 발생할 수 있다.
대기열의 한계치를 초과한 경우 더 이상의 데이터를 받을 수 없고 현재까지 처리된 데이터의 다음 업데이트 버전이 대기열에 없어서 처리를 할 수도 없는 데드락(Deadlock)현상이 발생할 수 있다.
상술한, 예외적인 경우를 방지하기 위하여 본 발명의 다른 실시 예에 따른 데이터 버전 관리 방법은 NOTE MP MSG 메시지 및 HASE MP MSG의 메시지를 이용한다.
먼저, NOTE MP MSG의 메시지는 하위 노드의 우선순위 대기열에 더 이상의 가용공간이 없을 경우 상위 노드로 전송되는 메시지이다. 다음으로, HASE MP MSG의 메시지는 하위 노드에서 우선순위 대기열에 사용할 수 있는 공간이 발생하면 전송하는 메시지이다.
노드에서 더 이상의 우선순위 대기열의 가용공간이 없을 경우 CHI FULL MSG 메시지와 자신이 현재 기다리고 있는 버전의 정보를 상위 노드로 전송한다. 상위 노드로 메시지를 전송하는 이유는 노드에서 업데이트 데이터를 더 이상 대기열에 저장할 수 있는 공간이 부족하기 때문에 상위 노드에서 메시지를 전달하지 않고 하위 노드에 전달할 메시지를 보관하고 있는 것이다. 이후, 하위 노드에서 우순 순위 대기열의 빈 공간이 발생하였다는 메시지를 전달하면 상위 노드는 자신의 노드에 저장되었던 업데이트 메시지를 전달한다.
또한, send block PQ 메시지는 우선순위 대기열의 데이터를 하위 노드로 전송하는 것을 막는 역할과 현재 노드에서 업데이트 연산이 수행된 데이터에 관해서도 업데이트 메시지의 삭제를 지연하는 역할을 한다. 이것은 하위 노드에서 더 이상의 업데이트 데이터를 저장할 수 없기 때문에 상위 노드에서 데이터의 삭제와 전송을 지연하여 하위 노드에서 데이터를 유실하지 않게 보장한다. 또한, 자신의 노드도 하위 노드로 업데이트 데이터를 전송하지 못하여 데이터가 쌓여서 우선순위 대기열이 저장할 수 있는 한계치를 초과할 경우 자신의 상위 노드로 NOTE MP MSG 메시지를 전달한다. 만약. 하위 노드에서 HASE MP MSG의 메시지를 상위 노드에 보내면 업데이트 데이터를 전송하고 수행된 전달된 데이터는 삭제한다.
자신의 노드에서 HASE MP MSG의 메시지를 받았을 경우, Wanted Update data는 자신의 하위 노드에서 필요로 하는 데이터의 버전 정보를 보내주는 역할을 하는 함수 이다. 이 함수를 사용함으로써 하위 노드에서의 우선순위 대기열의 데드락 현상을 방지할 수 있다.
도 12는 복제본 수에 따른 업데이트 완료 시간을 나타내는 도면, 도 13은 접근 빈도의 변화에 따른 업데이트 데이터가 반영된 정보에 대한 검색 비율을 나타내는 도면, 도 14는 접근 빈도의 변화에 따른 네트워크 사용량의 변화를 나타내는 도면이다.
이하, 도 12 내지 도 14를 참조하여 본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치를 통해 얻을 수 있는 여러 효과들과 이를 검증하는 시뮬레이션 결과에 대하여 설명하기로 한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치를 통해 그리드 데이터 베이스의 데이터 및 데이터 버전 관리 성능이 향상되었을 증명하기 위하여 아래의 표 1의 조건 하에서 시뮬레이션을 수행하였다. 시뮬레이션은 3가지로 구분하여 수행하였으며, 첫 번째로 복제본 수에 따른 업데이트 완료 시간, 두 번째로 접근 빈도의 변화에 따른 업데이트 데이터가 반영된 정보에 대한 검색 비율, 세 번째로 접근 빈도의 변화에 따른 네트워크 사용량에 대하여 수행하였다.
실험요소 실험 데이터 실험 요소 실험 데이터
실험시간 30,000 unit 업데이트 연산 처리 시간 4∼7 unit
서버 수 200∼400개 업데이트 정보 전송 시간 2∼4 unit
노드 당 테이블 수 0∼300개 업데이트 질의 입력 간격 0.1 unit
전근 빈도 변화 비율 10∼12 unit
상기 표1은 업데이트 데이터 처리 성능 평가를 위한 실험 환경이며, 각 노드의 저장소 크기, 로그에 대한 대기열 크기 등의 정보는 실제 실험평가에서 대기열의 길이에 따른 결과 값의 변화가 미미하여 이에 대한 평가는 생략하였다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법의 평가를 위해 C/C++언어 기반 시뮬레이션 툴인 CSIM를 적용하였다. CSIM는 분산 환경에서의 컴퓨팅 모델, 알고리즘 평가 등 대부분의 시뮬레이션이 가능한 툴이다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법의 구현을 위해 다수의 클라이언트와 서버를 구성하였으며, 모든 서버에 제안하는 대기열 자료구조를 저장하였다. 또한, 시뮬레이션의 구현을 위해 알고리즘 언어로 MS Visual C++ 6.0을 사용하였다. 전체적인 구성은 그리드 환경에 적합하도록 복제본의 사용을 허용하였으며, 이질적인 분산 환경에서의 성능 평가를 위하여 여러 노드에서의 각기 다른 대기열 사이즈와 질의 처리 속도 등의 범위를 설정하여 평가하였다.
이하, 도 12 내지 도 14의 시뮬레이션의 결과에서는 본 발명의 실시 예에 따른 데이터 버전 관리 방법을 DAF-tree로 정의한다. 그리고, 본 발명의 실시 예에 따른 데이터 버전 관리 방법과 비교한 종래 기술의 데이터 버전 관리 방법은 빠른 일관성(Fast-Consistency: FC) 유지 방법을 예로 적용하였다.
또한, 시뮬레이션의 비교 대상으로서 빠른 FC 방법과 함께 빠른 FC 방법 확장하여 대표 노드에 대한 개념을 포함시킨 FCL(Fast-Consistency with Leader) 방법과 ARCS(Adaptive Replica Consistency Service) 방법을 함께 시뮬레이션의 비교 대상 예로 적용하였다.
여기서, ARCS는 데이터 그리드에서 사용되는 일관성 유지 서비스로서 빠른 업데이트 전파를 위해 다수의 마스터 노드를 사용한다. 마스터 노드는 업데이트가 처음 일어나는 노드로서 이러한 노드를 다수 두어 다른 노드들로 업데이트 메시지를 전파함으로써 전파 과정의 병렬성을 향상시킬 수 있는 데이터 버전 관리 방법으로 알려져 있다.
실험 평가의 대상이 되는 팩터로는 임의의 업데이트 연산에 대해 모든 노드가 업데이트 완료될 때까지 걸리는 시간과 접근 빈도의 변화 비율에 따른 단위 시간 당 업데이트 반영 정보의 검색 비율 및 네트워크 사용 비율이 있다. 단위 시간 당 정보의 검색 비율은 해당 값이 높을수록 접근 빈도가 동적으로 변화하는 환경에서의 업데이트 정보 반영 비율이 높다는 것을 의미한다.
먼저, 첫 번째로 복제본 수에 따른 업데이트 완료 시간에 대한 시뮬레이션을 수행하였고, 이에 대한 결과 값은 도 12와 같다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)의 경우 종래 기술에 따른 FC와 FCL 방법들에 비해 빠른 완료 시간을 보임을 알 수 있다. 이는 종래 기술의 FC와 FCL방법에 비해 본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)에서의 업데이트 연산이 작은 메시지 교환 방식을 사용하기 때문이다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)에서는 이미 접근 빈도에 따른 우선순위가 결정되어 있기 때문에 업데이트 메시지가 별다른 과정 없이 순차적으로 전달이 된다. 그러나, 종래 기술의 FC와 FCL 방법의 경우 업데이트 메시지를 전달하기 전에 우선순위 비교를 위한 메시지 교환을 선행하게 된다. 이로 인해, 도 12에 도시된 바와 같이 성능의 차이가 발생하게 된다.
이어서, 두 번째로, 각 노드의 접근 빈도 값을 지속적으로 변화시켰을 때의 단위 시간 당 업데이트 반영 정보의 검색 비율 및 네트워크 사용 비율에 대한 시뮬레이션 결과는 도 13에 도시된 바와 같다.
도 13에서 세로축의 "갱신 반영정보의 검색 비율은 "각 트리(여기서, 트리는 미리 그리드 데이터 베이스에 구축되어 있음)를 통해서 구축된 노드들 중에서 얼마나 많은 노드에 갱신 정보가 반영되었는가를 나타내는 비율을 의미한다. 그리고, 가로축의 "접근 빈도의 변화 비율(%)"은 각 노드에 계속적인 접근(Access)을 통하여 전체 시스템이 부하(Workload)가 걸리게 되며 이에 따라 업데이트 연산이 느려지는 상황이 발생된다. 이때의 접근 빈도에 발생되는 변화 비율을 의미한다.
각 노드의 접근 빈도 변화는 초기 접근 빈도 값 대비 변경 비율로서 산출되며, 비율이 클수록 본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)에서의 노드 간의 위상 변화가 심해짐을 알 수 있다. 또한, 단위 시간 당 업데이트된 정보를 검색해 가는 비율이 접근 빈도의 변화에 따라 크게 떨어지는 것을 볼 수 있다. 도 13에서 종래 기술의 데이터 버전 관리 방법들의 감소 비율이 본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)에 비해 더 큰 것은 종래 기술의 방법들이 네트워크의 부하로 인해 노드 간의 접근 빈도 값 비교가 원활하지 않기 때문이다.
이어서, 세 번째로 접근 빈도의 변화에 따른 네트워크 사용량을 패킷 단위로 나타낸 시뮬레이션 결과는 도 14에 도시된 바와 같다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)을 통해 네트워크 사용량이 종래 기술 대비 증가함을 알 수 있다. 또한, 본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)에서는 각 노드의 임계 값(threshold), 즉 하위 노드의 개수를 4개에서 20개까지 늘려가며 평가를 하였으며, 그 외에 네트워크 속도와 각 노드의 처리 속도에 변화를 주었을 때 전체적인 성능의 변화는 있으나, 종래 기술의 FC 및 FCL 방법에 비해 향상된 성능을 나타내었다. 여기서, 최적의 성능을 위한 본 발명의 실시 예에 따른 데이터 버전 관리 방법(DAF-tree)의 임계 값은 그리드 데이터 베이스의 환경에 따라 다르게 적용될 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 및 장치는 상술한 구성 및 방법을 통해 다수의 노드에서 복제본 데이터를 허용하는 그리드 데이터 베이스에서 데이터 버전의 일관성 유지를 위한 데이터 버전 관리 방법 및 장치 제공할 수 있다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법은 복제본 데이터의 동시 다발적인 업데이트 연산으로 인한 일관성의 유지를 위하여 그리드 데이터 베이스에서 프로세서와 같은 버전 관리 장치를 통해 캐쉬를 관리한다.
본 발명의 실시 예에 따른 버전 관리 장치는 그리드 데이터 베이스에서 복제본의 데이터 일관성을 유지하기 위하여 버전 정보에 대한 구조체를 가지며, 버전 정보는 이전 버전 값과 다음 버전 값의 구조로 구성된다. 이 두 가지 값을 이용하여 복제본의 일관성을 유지할 수 있다.
또한, 버전 관리 장치에서 관리되는 작업 대기열은 동시 다발적으로 발생하는 업데이트 연산에 처리 과정에서 일부 노드에서의 작업 부하로 업데이트 연산의 지연이 발생할 경우 업데이트 연산이 발생되는 노드의 위치 정보를 기억한다. 향후 작업 부하가 완화되면 대기열에 저장되어 있는 정보를 통해 다시 업데이트 연산을 처리함으로써 동시 다발적으로 발생하는 데이터의 일관성을 보장한다.
시뮬레이션을 통한 성능 평가에서는 본 발명의 실시 예에 따른 데이터 버전 관리 방법이 종래 기술보다 5∼25%의 성능 향상을 이루었다. 이것은 본 발명의 실시 예에 따른 버전 관리 방법 및 장치를 통하여 그리드 데이터 베이스 내의 데이터 및 데이터 버전 정보의 일관성을 유지함으로써 종래 기술의 보다 그리드 데이터 베이스의 성능 향상을 이룰 수 있음을 의미한다.
본 발명의 실시 예에 따른 데이터 버전 관리 방법 노드의 수가 많고, 복제본 데이터를 가지는 그리드 데이터 베이스 환경이나 분산 데이터 베이스 환경에서 유용하게 사용될 수 있다.
상기한 바와 같은 구성 및 작용은 하나의 실시 예로서 본 발명의 청구범위를 제한하는 것은 아니며, 본 발명의 기술적 사상을 변경하지 아니하는 범위내에서 다양한 변경과 수정이 가능함은 본 발명이 속하는 분야에 종사하는 자에게는 자명함을 알 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
도 1은 종래 기술에 따른 그리드 데이터 베이스의 구조를 나타내는 도면.
도 2는 본 발명의 실시 예에 따른 버전 관리 장치를 포함하는 그리드 데이터 베이스를 나타내는 도면.
도 3은 본 발명의 실시 예에 따른 버전 관리 장치의 구성을 나타내는 도면.
도 4는 본 발명의 실시 예에 따른 버전 관리 방법의 버전 정보 구조를 나타내는 도면.
도 5는 본 발명의 실시 예에 따른 버전 관리 방법의 우선순위 대기열을 나타내는 도면.
도 6은 본 발명의 실시 예에 따른 버전 관리 방법의 초과용량 대기열을 나타내는 도면.
도 7은 본 발명의 실시 예에 따른 버전 관리 방법의 우선 업데이트 대기열을 나타내는 도면.
도 8은 본 발명의 실시 예에 따른 데이터 버전 관리 방법을 설명하기 위한 흐름도.
도 9는 본 발명의 실시 예에 따른 데이터 버전 관리 방법에서 버전 관리 장치와 노드 간의 메시지 송수신 과정을 나타내는 흐름도.
도 10은 본 발명의 실시 예에 따른 데이터 버전 관리 방법에서 버전 관리 장치에서 데이터 업데이트 메시지 수신 이후의 처리 과정을 나타내는 흐름도.
도 11은 본 발명의 실시 예에 따른 데이터 버전 관리 방법에서 노드에서 데 이터 업데이트 메시지 수신 이후의 처리 과정을 나타내는 흐름도.
도 12는 복제본 수에 따른 업데이트 완료 시간을 나타내는 도면.
도 13은 접근 빈도의 변화에 따른 업데이트 데이터가 반영된 정보에 대한 검색 비율을 나타내는 도면.
도 14는 접근 빈도의 변화에 따른 네트워크 사용량의 변화를 나타내는 도면.
<도면 주요 부분에 대한 부호의 설명>
100 : 버전 관리 장치 110 : 루트 노드
120, 130, 140 : 노드 112 : 단말
210 : 버전 정보 관리부 220 : 작업 대기열 관리부
230 : 우선순위 대기열 관리부 240 : 초과용량 대기열 관리부
250 : 우선 업데이트 대기열 관리부

Claims (5)

  1. 다수의 노드를 포함하는 그리드 데이터 베이스의 데이터 버전 관리 방법에 있어서,
    노드로부터 데이터 업데이트 연산이 발생되어 상기 데이터의 새로운 버전 정보 요청을 수신하는 단계;
    상기 새로운 버전 정보 요청의 처리 여부를 판단하는 단계;
    판단 결과, 처리가 가능하면 새로운 버전 정보 생성 및 버전 정보를 업데이트 하는 단계; 및
    상기 새로운 버전 정보를 상기 노드로 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 버전 관리 방법.
  2. 제 1 항에 있어서,
    판단 결과, 처리가 가능하지 않으면
    상기 노드로부터의 새로운 버전 정보 요청을 대기열에 저장하는 단계; 및
    상기 노드로 업데이트 수행의 중지를 통보하는 단계를 포함하는 것을 특징으로 하는 데이터 버전 관리 방법.
  3. 제 1 항에 있어서,
    상기 새로운 버전 정보 요청의 처리 여부의 판단은
    상기 노드로부터의 데이터의 제 1 버전 정보와 버전 관리 장치에 저장된 이전 버전 정보 및 현재 버전 정보를 포함하는 제 2 버전 정보를 비교하는 단계를 포함하고,
    상기 제 1 버전 정보와 상기 제 2 버전 정보의 비교결과, 상기 제 1 버전 정보와 상기 제 2 버전 정보가 동일한 경우 상기 새로운 버전 정보 요청의 처리를 수행하고,
    상기 제 1 버전 정보와 상기 제 2 버전 정보가 상이한 경우 상기 그리드 데이터 베이스의 다수의 노드에서 데이터의 업데이트가 수행되지 않도록 상기 새로운 버전 정보 요청의 처리를 보류하는 것을 특징으로 하는 데이터 버전 관리 방법.
  4. 제 1 항에 있어서,
    상기 그리드 데이터 베이스의 다수의 노드 중 제 1 노드에서 지연이 발생되는 경우, 상기 제 1 노드의 지연이 해제될 때까지 상기 제 1 노드 외에 다른 노드로부터 데이터의 업데이트 수행을 보류하는 것을 특징으로 하는 데이터 버전 관리 방법.
  5. 다수의 노드를 포함하는 그리드 데이터 베이스의 데이터 버전을 관리하는 데이터 버전 관리 장치에 있어서,
    상기 다수의 노드로부터 업데이트가 이루어진 데이터의 버전 정보를 생성 및 관리하는 버전 정보 관리부;
    상기 다수의 노드에서 동시 다발적으로 발생되는 업데이트 연산에 대한 처리 과정에서 일부 노드의 작업 부하로 인해 새로운 업데이트 연산 처리를 중지시켜야 하는 경우에 사용되는 작업 대기열을 생성 및 관리하는 작업 대기열 관리부;
    상기 다수의 노드에서 동시 다발적으로 이루어지는 데이터의 업데이트에 대한 정보를 수신하여 작업 대기열에 저장하고, 상기 다수의 노드에서 이루어지는 데이터의 업데이트를 순차적으로 진행할 수 있도록 각 노드들의 우선순위를 제어하는 우선순위 관리부;
    상기 다수의 노드 중에서 업데이트 연산이 지연되고 있는 노드의 정보를 초과용량 대기열에 저장 및 관리하는 초과용량 대기열 관리부; 및
    상기 다수의 노드 중 적어도 하나의 노드에서 업데이트의 지연이 발생된 이후에 상기 다수의 노드로부터 수신되는 업데이트 연산 요청 메시지를 우선 업데이트 대기열에 저장 및 관리하는 우선 업데이트 대기열 관리부를 포함하는 것을 특징으로 하는 데이터 버전 관리 장치.
KR1020080072023A 2008-07-24 2008-07-24 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치 KR100952166B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080072023A KR100952166B1 (ko) 2008-07-24 2008-07-24 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080072023A KR100952166B1 (ko) 2008-07-24 2008-07-24 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100011000A KR20100011000A (ko) 2010-02-03
KR100952166B1 true KR100952166B1 (ko) 2010-04-09

Family

ID=42085517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080072023A KR100952166B1 (ko) 2008-07-24 2008-07-24 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100952166B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101782457B1 (ko) * 2013-08-13 2017-09-28 후아웨이 테크놀러지 컴퍼니 리미티드 어플리케이션 업그레이드 방법 및 장치
CN113220236B (zh) * 2021-05-17 2024-01-30 北京青云科技股份有限公司 一种数据管理方法、系统及设备
CN117931829B (zh) * 2024-03-22 2024-05-24 平凯星辰(北京)科技有限公司 数据库更新方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030004475A (ko) * 2001-07-05 2003-01-15 (주)타잔테크놀로지 유해 인터넷 사이트의 차단 및 검색 시스템
JP2007293831A (ja) 2006-03-30 2007-11-08 Jfe Steel Kk データベース同期更新処理方法、スラブ充当方法及びコイル充当方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030004475A (ko) * 2001-07-05 2003-01-15 (주)타잔테크놀로지 유해 인터넷 사이트의 차단 및 검색 시스템
JP2007293831A (ja) 2006-03-30 2007-11-08 Jfe Steel Kk データベース同期更新処理方法、スラブ充当方法及びコイル充当方法

Also Published As

Publication number Publication date
KR20100011000A (ko) 2010-02-03

Similar Documents

Publication Publication Date Title
US11593404B2 (en) Multi-cluster warehouse
US10678614B2 (en) Messages with delayed delivery in an in-database sharded queue
CN106953901B (zh) 一种提高消息传递性能的集群通信系统及其方法
CN102857577B (zh) 一种集群存储自动负载均衡的系统及方法
US7457835B2 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
US8898680B2 (en) System and method for supporting asynchronous message processing in a distributed data grid
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US10365980B1 (en) Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization
US20100114824A1 (en) Replication for common availability substrate
CN106484713A (zh) 一种基于面向服务的分布式请求处理系统
Le et al. Dynastar: Optimized dynamic partitioning for scalable state machine replication
KR100952166B1 (ko) 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치
JP6556726B2 (ja) コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法
CN103634374A (zh) 一种并发访问请求的处理方法及装置
Rasool et al. Replica placement in multi-tier data grid
JP2014174597A (ja) インメモリ型分散データベース、データ分散方法及びプログラム
Park et al. QaaD (Query-as-a-Data): Scalable Execution of Massive Number of Small Queries in Spark
Santana et al. Evaluation of database replication techniques for cloud systems
Bao et al. Las: Logical-block affinity scheduling in big data analytics systems
Dzinamarira et al. Dyrs: Bandwidth-aware disk-to-memory migration of cold data in big-data file systems
Thu et al. Dynamic Replication Management Scheme for Cloud Storage
Vardhan et al. File Replication and Dereplication of Replica’s in Distributed Environment
Vardhan et al. De-replication: A Dynamic Memory-aware Mechanism
Hwang et al. Enhancing the Performance of Metadata Service for Cloud Computing
Shin et al. Version Management Using Demand-Based Tree for Replicas Consistency in Grid Database

Legal Events

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

Payment date: 20130325

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150216

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160401

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee