KR100486854B1 - 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법 - Google Patents

멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법 Download PDF

Info

Publication number
KR100486854B1
KR100486854B1 KR10-2002-0083161A KR20020083161A KR100486854B1 KR 100486854 B1 KR100486854 B1 KR 100486854B1 KR 20020083161 A KR20020083161 A KR 20020083161A KR 100486854 B1 KR100486854 B1 KR 100486854B1
Authority
KR
South Korea
Prior art keywords
global
transaction
global transaction
transactions
sub
Prior art date
Application number
KR10-2002-0083161A
Other languages
English (en)
Other versions
KR20040056640A (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 KR10-2002-0083161A priority Critical patent/KR100486854B1/ko
Publication of KR20040056640A publication Critical patent/KR20040056640A/ko
Application granted granted Critical
Publication of KR100486854B1 publication Critical patent/KR100486854B1/ko

Links

Landscapes

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

Abstract

본 발명은 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어방법에 관한 것으로, 그룹 통신의 메시징 순서 기능을 이용하여 트랜잭션의 동시성을 증가시킬 수 있고 효율적으로 전역 교착상태를 해결할 수 있는 전역 동시성 제어방법이 제시된다. 데이터의 일관성은 동시에 실행되는 트랜잭션의 직렬화 가능성을 보장함으로써 유지되기 때문에 멀티데이터베이스 시스템에서 전역 직렬화 가능성을 유지하기 위해서는 전역 트랜잭션이 실행되는 모든 지역 데이터베이스 시스템에서의 실행 순서가 같은 순서로 직렬화되어야 한다. 그룹 통신에서 제공하는 메시징 순서 기능은 하나의 노드가 여러 개 메시지를 방송하는 경우, 모든 노드는 미리 정해진 순서에 따라 메시지를 수신함을 보장하는 것으로 이는 트랜잭션의 순서를 미리 정하는 것과 같은 역할을 함으로, 전역 트랜잭션의 실행 순서 제어와 전역 교착 상태 해결에 용이하다. 따라서 동시에 실행되는 트랜잭션의 동시성을 증가시키고 효율적으로 전역 교착상태를 해결함으로 써 성능을 향상시킬 수 있다.

Description

멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어시스템 및 그 방법{System and Mothod Messaging order based global concurrency control in multidatabase systems}
본 발명은 그룹 통신의 메시징 순서를 이용한 전역 트랜잭션 직렬화와 효율적인 전역 교착 상태 해결을 위한 전역 동시성 제어방법에 관한 것으로, 이는 지역 데이터베이스 시스템들이 서로 다른 사용자 인터페이스, 데이터 모델, 트랜잭션 처리 방법들로 구성되는 멀티데이터베이스 시스템 환경에서 그룹 통신의 메시징 순서를 이용한 동시성 제어시스템 및 그 방법에 관한 것이다.
멀티데이터베이스 시스템은 기존에 독자적으로 개발되어 사용되고 있는 서로 다른 지역 데이터베이스 시스템들이 통신망을 통하여 논리적으로 통합한 이질형 분산 데이터베이스 시스템으로, 하나 이상의 상이한 데이터베이스를 엑세스하는 전역 응용 프로그램을 처리할 수 있다. 이 때 전역 데이터의 일관성을 유지하기 위한 전역 동시성 제어방법에 대한 종래의 기술에는 지역 자치성을 완전히 지원하는 방법과 지역 자치성을 부분적으로 위반한 방법 두 가지로 나눌 수 있다.
지역 자치성을 부분적으로 위반한 방법은 (1) 멀티데이터베이스 시스템에 포함될 수 있는 지역 데이터베이스를 제한하는 방법, (2) 전역 트랜잭션이 엑세스하는 데이터와 지역 트랜잭션이 엑세스하는 데이터를 분리하는 방법, (3) 지역 데이터베이스 관리 시스템을 수정하여 전역 트랜잭션 관리자에게 지역 트랜잭션의 수행 정보를 알려주는 방법, 마지막으로 (4) 직렬성 기준을 완화한 방법으로 나누어진다.
(1)의 경우에 해당하는 방법에는 암시적 티켓 방법 (Implicit Ticket Method: ITM)을 들 수 있다. ITM은 지역 데이터베이스 시스템이 2단계 로킹과 같은 엄격한(rigorous) 트랜잭션 실행만을 지원할 때 사용될 수 있는 방법이다.
(2)의 경우에 해당하는 방법은 2단계 직렬성(2-Level Serializability: 2LSR)을 들 수 있다. 2LSR의 경우 지역 스케쥴은 모두 직렬화 가능하고 전역 단계에서는 지역 트랜잭션을 제외한 전역 트랜잭션들만이 직렬 스케쥴인 경우 정확한 수행 결과롤 판단한다.
이를 위해 지역 데이터베이스 시스템에 저장된 데이터를 지역 데이터와 전역 데이터로 분류하고, 지역 트랜잭션과 전역 트랜잭션의 데이터 엑세스 유형에 따라 단순 모형, Gr 모형, Lr모형, 그리고 Grw 모형으로 분류하였다. 단순 모형을 제외한 나머지 모형은 전역 직렬화 가능성을 만족하지 않는 트랜잭션을 실행을 허용한다. 따라서 2LSR의 경우 전역 직렬성을 보장하기 위해서는 지연 트랜잭션은 지역 데이터만 엑세스할 수 있고, 전역 트랜잭션은 전역 데이터만 엑세스하는 단순 모형만이 가능하다.
(3)의 경우에 해당되는 방법은 사이트 그래프 알고리즘이 있다. 사이트 그래프 알고리즘은 동일한 지역 데이터베이스 시스템에서 동시에 실행되는 전역 트랜잭션은 반드시 충돌이 있다고 가정하는 비관적 동시성 제어방법으로 그래프의 각 노드는 전역 트랜잭션이 실행되는 지역 데이터베이스 이름이고, 전역 트랜잭션이 여러 지역 데이터베이스 시스템에 나누어 실행될 때 해당 노드를 무방향성 에지(edge)로 연결한다. 실행 스케쥴에 따라 만들어진 그래프에 순환이 발견되는 경우 해당 전역 트랜잭션을 대기상태로 둔다. 이때 해당 전역 트랜잭션의 실행을 재개하기 위해서는 전역 트랜잭션 관리자는 지역 트랜잭션의 완료 시점과 같은 수행 정보가 필요하다.
(4)의 경우에 해당되는 방법에는 quasi, 2LSR 등이 있고 이들은 전역 트랜잭션들간의 종속성이 없음을 가정하거나 완화된 종속성을 가정하여 현실적으로 응용되기 어렵다는 단점을 갖는다.
따라서 이들 지역 자치성을 부분적으로 위반한 방법은 전역 동시성 제어방법을 구현하기 위해 LDBS를 제한함으로써 지역 자치성을 위반한다는 문제점을 갖는 것으로 여러 곳에 산재되어 있는 이질형 지역 데이터베이스 시스템을 통합하는 데 제약사항으로 작용하기 때문에 고려 대상에서 제외키로 한다.
지역 자치성을 지원하는 방법에서 지역 자치성으로 인하여 전역 트랜잭션 관리자는 지역 트랜잭션 실행에 관한 정보가 없으므로 전역 트랜잭션 사이에 발생하는 간접 충돌을 인식하기 어렵다. 이를 해결하기 위해서는 동일한 지역 데이터베이스 시스템에서 동시에 실행되는 전역 트랜잭션 사이에 직접 충돌을 유발하는 방법들이 있지만, 이들 방법은 동시성 저하와 동일 데이터를 엑세스하기 때문에 동시에 실행되는 트랜잭션의 수가 많아지면 성능이 떨어질 수 있고 전역 교착상태가 발생할 수 있다는 문제점을 갖는다.
지역 자치성을 완전히 지원하는 방법은 전역 동시성 제어방법을 구현할 때 분산 시스템으로 통합되는 지역 데이터베이스 시스템을 제한하거나 수정을 필요로 하지 않는 것으로 OTM(Optimistic ticket method)와 Chain-Conflict 등이 있고 이들은 전역 트랜잭션 간의 직접 충돌을 유발하는 방법을 채택하고 있다.
OTM은 티켓이라고 불리는 추가적인 데이터를 사용하여 모든 전역 트랜잭션들이 티켓이라는 공통된 데이터를 수정하게 함으로써 직접 충돌을 유도하게 하는 방법으로, 직접충돌로 인하여 비직렬 스케쥴이 발견되면 해당 전역 트랜잭션은 철회한다.
이 방법은 모든 전역 트랜잭션을 강제적으로 티켓을 엑세스하게 하여 전역 트랜잭션들 간에 직렬화 순서를 검사하는 방법으로, 극단적인 경우 두 전역 트랜잭션이 전혀 데이터를 공유하지 않고, 또한 지역 트랜잭션에 의해서 간접 충돌이 발생하지 않는 경우에도 강제적으로 티켓이라는 데이터를 엑세스해야 하므로 높은 데이터 충돌이 발생하게 된다.
OTM은 전역 직렬성을 보장하기 위한 가장 간단한 방법이면서도, 한편 전역 트랜잭션들 간의 높은 병행성 정도를 제공하지 못하는 단점을 갖는다. 뿐만 아니라 동시에 실행되는 트랜잭션의 수가 많아지면 티켓 충돌로 인해 트랜잭션 철회율이 높아지고 이로 인하여 성능이 떨어진다. 또한 전역 교착상태가 발생할 수도 있다는 단점을 갖는다. 아래의 시나리오는 불필요한 티켓 충돌로 인한 문제점을 보여준다.
지역 데이터베이스 시스템 LDBS1과 LDBS2로 구성된 멀티데이타베시스 시스템을 가정하자. LDBS1은 데이터 a, LDBS2는 데이터 b와 c를 저장한다. 전역 트랜잭션 T1은 (R1(a) W1(c)), T2는 (W2(b) W2(a))를 각각 실행한다. 전역 직렬성을 만족하는 실행 스케줄(T1 → T2 혹은 T2 →T1)을 보장하기 위해서 OTM을 적용하면 다음과 같다.
1. 노드 LDBS1에서 트랜잭션 T1은 티켓 (t1)의 S 로크를 획득하고 판독 연산을 실행한 후 t1의 X 로크를 획득하여 쓰기 연산(t1+1)을 실행한다. 그리고 데이터 a에 대한 S 로크를 획득하여 판독연산 R1(a)을 실행한다. 이어 트랜잭션 T2는 티켓 (t1)의 S 로크를 요청한다. 그러면 이미 T1에 의해 X로크가 요청된 상태이므로 대기한다.
2. 노드 LDBS2에서 트랜잭션 T2는 티켓 (t2)의 S 로크를 획득하고 판독 연산을 실행한 후 t2의 X 로크를 획득하여 쓰기 연산(t2+1)을 실행한다. 이어 데이터 b에 대한 X 로크를 획득하여 쓰기 연산 W2(b)을 실행한다. 이어 트랜잭션 T1이 티켓 (t2)의 S 로크를 요청한다. 그러면 이미 T2에 의해 X로크가 요청된 상태이므로 대기한다.
3. 이때 지역 대기 그래프를 사용하여 전역 교착상태를 해결한다고 가정하면 T1 혹은 T2가 희생자로 선택되어 철회된다. 여기서는 나중에 로크를 요청한 T2 를 희생자로 선정한다고 가정하면 T2가 철회된다.
OTM의 경우 모든 전역 트랜잭션은 해당 노드의 지역 데이터베이스 시스템을 엑세스할 때 강제적으로 공통 데이터인 티켓을 엑세스해야 한다. 따라서 LDBS1에서 T1과 T2간에는 직접 충돌이 있기 때문에 티켓에 대한 엑세스가 불필요하다. 또한 LDBS2에서는 동일한 데이터를 엑세스하는 충돌이 발생하지 않으므로 티켓에 대한 엑세스가 필요 없다. 따라서 티켓으로 인한 불필요한 트랜잭션이 철회가 발생하고 철회 트랜잭션으로 인한 추가적인 오버헤드가 생긴다.
본 발명은 상기한 문제를 해결하기 위한 것으로, 철회 트랜잭션으로 인한 디스크 엑세스 수 및 로크 대기 시간을 줄이고 동시에 실행되는 트랜잭션간의 동시성을 증가시킴으로써 성능을 향상시킨 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어시스템 및 그 방법을 제공하는 데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명의 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어시스템은, 사전에 전역 트랜잭션 순서를 할당하는 순서 할당 모듈, 전역 트랜잭션을 각 지역 트랜잭션 관리자 모듈에서 처리할 수 있도록 서브 트랜잭션으로 분할하는 전역 트랜잭션 분할 모듈 및 전역 동시성 제어를 위해 직접 충돌 발생 유무룰 검사하는 충돌 유무 검사 모듈을 구비하는 전역 트랜잭션 관리자 모듈; 새로운 전역 트랜잭션 에이전트를 생성하고 상기 전역 트랜잭션 내용을 전달하고, 전역 트랜잭션의 실행을 담당하는 전역 트랜잭션 에이전트 모듈; 및 메시징 순서 기능을 담당하는 그룹 통신의 메시징 컴포넌트 형태로써 사전에 설정된 순서대로 각 지역 데이터베이스 시스템에 전달하는 인터페이스 모듈;로 구성된 것을 특징으로 한다.
또한, 본 발명의 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어방법은, 메시징 순서를 이용하여 전역 트랜잭션의 순서를 사전에 부여하고, 지역 데이터베이스 시스템으로 처리를 의뢰하기 전 전역 트랜잭션 직접 충돌 여부를 판단하여 직접 충돌이 없는 경우에만 강제적인 충돌을 유발하는 전역 동시성 제어방법을 제시한다.
전역 트랜잭션 관리자는 전역 트랜잭션에 순서를 부여한 후 각 전역 트랜잭션을 지역 데이터베이스에서 처리할 서브 트랜잭션으로 분할한다. 이후 전역 트랜잭션이 순서대로 저장된 판독 연산 집합, 갱신 연산 집합, 트랜잭션 식별자의 정보를 갖는 메시지 큐 테이블(MQ-TBL)을 이용하여 직접 충돌 여부를 판단한다. 만약 MQ-TBL에 저장된 이전 트랜잭션과 직접 충돌이 발생하지 않으면 해당 전역 트랜잭션의 서브 트랜잭션에 강제적인 충돌 연산을 추가한다.
본 발명이 적용되는 메시징 순서는 Amoeba와 같이 전체 시스템에 하나의 그룹 통신 관리자가 존재하는 집중형 구조를 갖는 그룹 통신 시스템의 형태로 전역 트랜잭션 관리자에서 그 역할을 담당하여 메시징 순서 기능을 제공한다. 이를 위하여 전역 트랜잭션 관리자는 메시지 일련 번호를 부여하는 역할을 한다.
본 발명에서는 전역 트랜잭션간의 강제적인 직접 충돌을 유발하여 전역 직렬성을 보장하는 OTM과 동일한 정책을 채택하지만, 메시징 순서를 이용하여 사전에 전역 트랜잭션간의 순서를 부여하고 직접 충돌이 있는 경우에는 강제적인 직접 충돌을 하지 않으므로써 OTM에서 발생한 불필요한 전역 트랜잭션 철회를 방지할 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명이 적용되는 분산 시스템 모듈 및 전체 구성도이다. 도면을 참조하면, 본 발명에 따른 분산 시스템은 노드 Ni(1 ≤i ≤n)로 구성된다. 분산 시스템을 구성하는 각각의 노드(Ni - Nn)에는 사용자와 시스템을 연결하는 인터페이스 모듈(11), 디스크에 데이터베이스(13)를 생성하고 처리하는 데이터 저장/엑세스 관리 모듈(12), 그리고 트랜잭션 관리 모듈(14)로 구성된다.
트랜잭션 관리 모듈(14)은 요청된 전역 트랜잭션(15)과 자신의 노드에서 발생한 지역 트랜잭션(16)의 처리를 담당하는 지역 트랜잭션 관리자 모듈(17)과 2단계 로킹과 같이 지역 동시성 제어를 담당하는 지역 스케쥴러 모듈(18)이 있다.
지역 트랜잭션 관리자 모듈(17)은 지역 스케쥴러 모듈(18)과 데이터 저장/엑세스 관리모듈(12)과 협조한다.
전역 트랜잭션 관리노드(19)는 전역 트랜잭션 관리자 모듈(20)과 전역 트랜잭션 실행자(에이젼트) 모듈(21), 그리고 분산 시스템의 각 노드와 연결되는 인터페이스 모듈(22)로 구성된다.
전역 트랜잭션 관리자 모듈(20)은 전역 트랜잭션의 서브 트랜잭션으로 분할하는 역할을 담당하는 모듈로 전역 트랜잭션의 순서를 할당하는 순서 할당모듈(23), 전역 트랜잭션 분할모듈(24), 그리고 본 발명에서 제시하는 전역 동시성 제어방법을 위한 직접 충돌 유무 검사모듈(25)로 구성된다.
전역 트랜잭션 에이전트 모듈(21)은 전역 트랜잭션 실행을 담당하는 역할을하는 것으로 GTM은 새로운 전역 트랜잭션 에이전트를 생성하고 트랜잭션 내용을 전달한다. 그러면 생성된 전역 트랜잭션 에이전트는 2단계 완료 프로토콜에 따라 조정자 역할을 담당한다.
인터페이스 모듈(22)은 메시징 순서 기능을 담당하는 그룹 통신의 메시징 컴포넌트로써 전역 트랜잭션 관리자에 의해 사전에 부여된 순서대로 각 처리 지역 데이터베이스 시스템에 전달하는 역할을 담당한다.
제 2도는 본 발명이 적용되는 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어방법에 대한 전역 트랜잭션 관리노드의 동작 흐름도이다.
도면을 참조하면, 본 발명은 멀티데이터베이스의 인터페이스를 통하여 전역 트랜잭션의 실행이 요청되면 전역 트랜잭션 간 이미 직접 충돌이 있는 경우, 전역 트랜잭션 요청단계(S31), 전역 트랜잭션 분할단계(S32), 직접 충돌 여부 검사단계(S33), 전역 트랜잭션 실행 요청단계(S34) 및 전역 트랜잭션 실행단계(S35)의 5 단계로 구성된다.
또한 본 발명은 직접 충돌 여부검사에서 직접 충돌이 없는 경우에는 강제적으로 직접 충돌을 유발하는 연산단계(S36)를 더 포함한다.
전역 트랜잭션 요청단계(S31)에서 전역 트랜잭션 관리자는 멀티데이터베이스 인터페이스를 통하여 요청된 전역 트랜잭션의 요구를 수락한다.
전역 트랜잭션 분할단계(S32)에서 전역 트랜잭션 관리자는 요청된 전역 트랜잭션이 엑세스해야 하는 지역 데이터베이스 시스템(노드)를 파악한 후, 각 노드에서 실행되어야 하는 서브 트랜잭션으로 분할된다.
직접 충돌 여부 검사단계(S33)는 분할된 서브 트랜잭션이 실행되어야 하는 노드에서 아직 완료되지 않은 가장 마지막에 실행되는 전역 트랜잭션의 서브 트랜잭션과의 직접 충돌 여부를 검사한다. 직접 충돌은 해당 트랜잭션간에 충돌 연산이 있는 경우를 의미하는 것으로 동일한 데이터를 엑세스하면서 하나이상의 쓰기 연산을 포함한 경우이다.
전역 트랜잭션 실행 요청단계(S34)는 전역 트랜잭션을 실행하기 위해 새로운 전역 트랜잭션 에이전트를 생성하여 실행해야 하는 트랜잭션의 내용을 전역 트랜잭션 에이전트에게 전달한다.
전역 트랜잭션 실행단계(S35)에서 전역 트랜잭션 에이전트는 2단계 완료 프로토콜의 조정자 역할을 하면서 실행노드에게 서브 트랜잭션의 실행을 요청한다. 각 노드는 요청된 서브 트랜잭션을 실행한 후 그 결과를 전역 트랜잭션 에이전트에게 전달한다.
직접 충돌 유발단계(S35)는 단계 33에서 직접충돌이 없을 경우 강제적으로 직접 충돌을 유발한 후 전역 트랜잭션 실행을 요청한다.
도 3은 본 발명을 사용하기 위한 전역 트랜잭션 관리노드의 동작 흐름도이다.
도면을 참조하면, 본 발명은 요청된 전역 트랜잭션에게 사전에 순서를 부여하는 단계(S41), 전역 트랜잭션을 서브 트랜잭션으로 분할하는 단계(S42), 메시지 큐 테이블에 정보를 기록하는 단계(S43), 및 서브 트랜잭션간 직접 충돌 여부를 검사하는 단계(S44)로 구성된다.
전역 트랜잭션을 해당 트랜잭션이 엑세스해야 하는 실행 노드에 해당하는 서브 트랜잭션으로 분할 한 후 <판독 연산 집합, 쓰기 연산 집합, 트랜잭션 식별자>를 메시지 큐 테이블에 기록한다. 메시지 큐 테이블에 저장된 정보로 해당 서브 트랜잭션(Tki) 이전에 실행된 서브 트랜잭션(Tk-1i)과 직접 충돌 유무를 검사한다(S44). 검사 결과에 따라 직접 충돌이 있는 경우에는 전역 트랜잭션 에이전트에게 실행을 요청하고, 직접 충돌이 없는 경우는 직접 충돌을 유발하는 연산을 추가한다.(S45) 그리고 전역 트랜잭션 에이전트에게 실행을 요청한다.(S46)
제 4도는 본 발명이 적용되는 전역 트랜잭션 관리노드의 메시지 큐 테이블을 이용한 전역 동시성 제어방법에 대한 동작 흐름도이다.
본 발명에서는 전역 트랜잭션 TK가 멀티데이터베이스 시스템 인터페이스를 통하여 요청되면 메시징 순서를 할당하여 해당 전역 트랜잭션의 순서를 부여한다.
해당 전역 트랜잭션은 TK, 판독 연산 집합은 RSK, 갱신 연산 집합은 WSK,그리고 트랜잭션의 순서를 저장한 메시지 큐 테이블은 MQ-TBL이 된다.TK가 처리되는 지역 데이터베이스 시스템 노드가 N1,..Ni..NN이라고 가정하면 노드 Ni에서 실행되는 전역 트랜잭션 TK의 서브 트랜잭션은 TKi가 된다.
또한 MQ-TBL[i]에는 노드 Ni에서 실행되어야 하는 서브 트랜잭션이 순서대로 저장된다. 즉, TK-1이 TK 이전에 실행되어야 하는 전역 트랜잭션이라면 MQ-TBL에는 TK-1, TK 순으로 정보가 기록된다.
도면을 참조하면, 제 1단계는 전역 트랜잭션 TK가 요청되면 트랜잭션의 순서를 할당(S51)한다.
제 2단계는 TK를 판독하여 처리 노드에 따른 서브 트랜잭션(TK1 TKi, ..TKN)으로 분할(S52)된다.
제 3단계는 아직 처리되지 않은 서브 트랜잭션 TKi가 있다면 이전 실행 서브 트랜잭션과 해당 서브 트랜잭션간의 직접 충돌 여부를 검사하는 작업을 진행(S53)한다.
제 4단계는 분할된 서브 트랜잭션의 [RSK, WSK]를 기록(S54)한다. 만약 노드 Ni에서 처리되어야 하는 서브 트랜잭션인 경우 [RSKi, WSKi]가 기록된다. RSK i는 전역 트랜잭션 TK 중에서 노드 N1에서 처리해야 하는 판독 연산의 집합을 의미하고 WSKi는 전역 트랜잭션 TK 중에서 노드 N1에서 처리해야 하는 갱신 연산의 집합을 의미한다.
제 5단계는 이전 실행 서브 트랜잭션과의 직접 충돌이 있는지 검사하기 위하여 분할된 서브 트랜잭션을 해당 메시지 큐 테이블(MQ-TBL)에 기록(S55)한다. MQ-TBL에는 3단계에서 기록된 서브 트랜잭션 정보 [RSKi, WSKi]와 트랜잭션 식별자가 기록된다.
제 6단계는 MQ-TBL[i]에 저장된 정보를 이용하여 TKi의 직접 충돌 여부를 검사(S56-S57)한다. 단, 노드 Ni에 현재 처리 중인 전역 트랜잭션의 서브 트랜잭션이 없는 경우 MQ-TBL[i]은 Φ의 값을 갖고, 현재는 마지막 처리 서브 트랜잭션이 TK-1이라고 가정한다.
따라서 TKi와 TK-1사이에 직접 충돌 검사 결과는 다음의 3가지 중 하나에 해당되면 직접 충돌이 있다는 것을 의미한다.
(1) dr ∈ RSk인 dr 중에서 dw ∈ WSK-1dw와 동일한 데이터 값을 가지는 dr이 있는지 검사한다. 검사 결과 동일한 데이터 값이 존재하면 직접 충돌이 있는 경우이므로 제 3단계로 진행하여 다음 서브 트랜잭션을 검사한다.
(2) dw ∈ WSk인 dw 중에서 dr ∈ RSk-1인 dr와 동일한 데이터 값을 가지는 dw이 있는지 검사한다. 검사 결과 동일한 데이터 값이 존재하면 직접 충돌이 있는 경우이므로 제 3단계로 진행하여 다음 서브 트랜잭션을 검사한다.
(3) dw ∈ WSk인 dw 중에서 dw와 동일한 데이터 값을 가지는 dw이 있는 지 검사한다. 검사 결과 동일한 데이터 값이 존재하면 직접 충돌이 있는 경우이므로 제 3단계로 진행하여 다음 서브 트랜잭션을 검사한다.
제 7단계는 TKi와 TK-1사이에 직접 충돌이 존재하지 않는 경우이므로 강제적인 직접 충돌을 추가한다.
제 8단계는 모든 서브 트랜잭션에 대해 제 3단계 - 제 7단계의 작업 수행을 마쳤으면 해당 전역 트랜잭션을 실행하기 위한 전역 트랜잭션 에이전트를 생성하고(S49) 해당 전역 트랜잭션 에이전트는 처리 지역 데이터베이스 시스템에 작업을 의뢰(S50)한다.
제 9단계는 전역 트랜잭션 에이전트에서 의뢰한 작업은 인터페이스 모듈에 포함된 메시징 순서 기능에 따라 모든 처리 지역 데이터베이스 시스템에 전역 트랜잭션 관리자에 의해 사전에 정해진 순서대로 전달(S51)한다.
이상에서 설명한 바와 같이 본 발명은 직접 충돌 유무 검사 결과 서브 트랜잭션 간 직접 충돌이 없는 경우에만 강제적인 직접 충돌을 유발하기 때문에 트랜잭션 간 충돌 횟수가 줄어들고, 철회 트랜잭션으로 인한 디스크 엑세스 수와 로크 대기 시간을 줄임으로써 성능을 향상시킬 수 있다.
이상에서 설명한 것은 본 발명에 따른 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어방법을 설명한 하나의 실시 예에 불과한 것으로써, 본 발명은 상기한 실시 예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 사상이 미친다고 할 것이다.
도 1은 본 발명이 적용되는 멀티데이터베이스 시스템 모듈 및 전체 구성도,
도 2는 본 발명이 적용되는 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어방법에 대한 동작 흐름도,
도 3은 본 발명을 사용하기 위한 전역 트랜잭션 관리노드의 동작 흐름도,
도 4는 본 발명이 적용되는 전역 트랜잭션 관리노드의 메시지 큐 테이블을 이용한 전역 동시성 제어방법에 대한 동작 흐름도.
* 도면의 주요부분에 대한 부호의 설명 *
12;데이터 저장/엑세스 관리모듈 14;트랜잭션 관리 모듈
20;전역 트랜잭션 관리자 모듈 21;전역 트랜잭션 에어전트 모듈
22;인터페이스 모듈

Claims (10)

  1. 사전에 전역 트랜잭션 순서를 할당하는 순서 할당 모듈, 전역 트랜잭션을 각 지역 트랜잭션 관리자 모듈에서 처리할 수 있도록 서브 트랜잭션으로 분할하는 전역 트랜잭션 분할 모듈 및 전역 동시성 제어를 위해 직접 충돌 발생 유무룰 검사하는 충돌 유무 검사 모듈을 구비하는 전역 트랜잭션 관리자 모듈;
    새로운 전역 트랜잭션 에이전트를 생성하고 상기 전역 트랜잭션 내용을 전달하고, 전역 트랜잭션의 실행을 담당하는 전역 트랜잭션 에이전트 모듈; 및
    메시징 순서 기능을 담당하는 그룹 통신의 메시징 컴포넌트 형태로써 사전에 설정된 순서대로 각 지역 데이터베이스 시스템에 전달하는 인터페이스 모듈;
    을 포함하는 것을 특징으로 하는 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 멀티데이터베이스 시스템에서 그룹통신의 메시징 순서를 이용한 전역 동시성 제어 방법에 있어서,
    멀티데이터베이스 인터페이스를 통하여 요청된 전역 트랜잭션의 요구를 수락하는 전역 트랜잭션 요청 단계;
    요청된 전역 트랜잭션에 순서를 부여하는 단계;
    전역 트랜잭션이 액세스해야 하는 지역 데이터베이스 시스템 노드를 파악한 후, 각 노드에서 실행되어야 하는 서브 트랜잭션으로 분할하는 전역 트랜잭션 분할 단계;
    분할된 서브 트랜잭션이 실행되어야 하는 노드에서 아직 완료되지 않은 가장 마지막에 실행되는 전역 트랜잭션의 서브 트랜잭션과의 직접 충돌 여부를 검사하는 직접 충돌 여부 검사 단계;
    전역 트랜잭션을 실행하기 위해 새로운 전역 트랜잭션 에이전트를 생성하여 실행해야 하는 전역 트랜잭션을 전달하는 전역 트랜잭션 실행 요청 단계; 및
    전역 트랜잭션 에이전트는 인터페이스 모듈을 통하여 각 실행 지역 데이터베이스 시스템 노드에 서브 트랜잭션의 실행을 요청하고 2단계 완료 프로토콜의 조정자 역할을 담당하여 각 실행 지역 데이터베이스 시스템은 실행결과를 전역 트랜잭션 에이전트에게 전달하는 전역 트랜잭션 실행 단계; 를 포함하는 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어 방법.
  6. 삭제
  7. 제 5항에 있어서, 전역 동시성 제어방법은,
    상기 직접 충돌 여부 검사단계에서 직접 충돌이 없는 경우 강제적으로 직접 충돌을 유발하는 연산단계를 더 포함하는 것을 특징으로 하는 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를 이용한 전역 동시성 제어방법.
  8. 전역 트랜잭션 관리노드의 메시지 큐 테이블을 이용한 전역 동시성 제어방법에 있어서,
    멀티데이터베이스 시스템 인터페이스를 통하여 수신한 전역 트랜잭션을 분할하고, 분할된 서브 트랜잭션을 차례로 읽으면서 RSK와 WSK로 분리한 후 MQ-TBL에 저장하는 제 1단계;
    상기 MQ-TBL에 마지막으로 저장된 서브 트랜잭션과의 직접 충돌 유무를 검사하는 제 2단계;
    상기 단계에서 직접 충돌이 있을 경우 dr ∈ RSK인 dr 중에서 dw ∈ WSK-1인 dw와 동일한 데이터 값을 가지는 dr이 있는지 검사하는 제 3단계;
    상기 단계에서 dw ∈ WSK인 dw 중에서 dr ∈ RSK-1이 dr와 동일한 데이터 값을 가지는 dw가 있는지 검사하는 제 4단계;
    상기 단계에서 dw ∈ WSK인 dw 중에서 dw와 동일한 데이터 값을 가지는 dw가 있는지 검사하는 제 5단계;
    제 2단계에서 직접 충돌이 없는 경우에 강제적인 직접 충돌을 추가하는 제 6단계; 및
    Tk의 모든 서브 트랜잭션에 대하여 작업을 마치면 그룹 통신의 메시징 순서 기능을 이용하여 모든 처리 지역 데이터베이스 시스템에 사전에 정해진 순서대로 트랜잭션 처리를 의뢰하는 제 7단계;
    를 포함하는 것을 특징으로 하는 전역 트랜잭션 관리노드의 메시지 큐 테이블을 이용한 전역 동시성 제어방법.
  9. 전역 트랜잭션 관리노드에서 메시지 큐 테이블을 이용한 충돌 검사방법에 있어서,
    요청된 전역 트랜잭션에게 사전에 순서를 부여하는 단계;
    상기 전역 트랜잭션을 서브 트랜잭션으로 분할하는 단계;
    상기 메시지 큐 테이블에 서브 트랜잭션 정보를 기록하는 단계;
    상기 서브 트랜잭션간 직접 충돌 여부를 검사하는 단계; 및
    상기 서브 트랜잭션간 직접 충돌이 있을 경우 전역 트랜잭션 에이전트에게 실행을 요청하고, 직접 충돌이 없을 경우 직접충돌을 유발하여 상기 전역 트랜잭션 에이전트에게 실행을 요청하는 단계;
    를 포함하는 것을 특징으로 하는 전역 트랜잭션 관리노드에서 메시지 큐 테이블을 이용한 충돌 검사방법.
  10. 제 9항에서 있어서, 상기 전역 트랙잭션에 순서를 부여하는 단계는,
    상기 전역 트랜잭션 관리노드에서 사전에 정한 순서대로 모든 처리 노드에서 수신함을 보장하는 것을 특징으로 하는 전역 트랜잭션 관리노드의 메시지 큐 테이블을 이용한 충돌 검사방법.
KR10-2002-0083161A 2002-12-24 2002-12-24 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법 KR100486854B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0083161A KR100486854B1 (ko) 2002-12-24 2002-12-24 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0083161A KR100486854B1 (ko) 2002-12-24 2002-12-24 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20040056640A KR20040056640A (ko) 2004-07-01
KR100486854B1 true KR100486854B1 (ko) 2005-05-03

Family

ID=37349305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0083161A KR100486854B1 (ko) 2002-12-24 2002-12-24 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100486854B1 (ko)

Also Published As

Publication number Publication date
KR20040056640A (ko) 2004-07-01

Similar Documents

Publication Publication Date Title
JP3689336B2 (ja) データベースにおける並行したトランザクションのストリームを調停するための方法およびシステム
US7376744B2 (en) Using local locks for global synchronization in multi-node systems
US5212788A (en) System and method for consistent timestamping in distributed computer databases
US5745747A (en) Method and system of lock request management in a data processing system having multiple processes per transaction
US7447786B2 (en) Efficient locking of shared data that is accessed for reads in a cluster database
KR100437704B1 (ko) 공간효율적인오브젝트로킹을위한시스템및방법
JP4586019B2 (ja) 非故障ノードによる並列な回復
CN107608773B (zh) 任务并发处理方法、装置及计算设备
Salem et al. Altruistic locking
US5159678A (en) Method for efficient non-virtual main memory management
US7664799B2 (en) In-memory space management for database systems
US20060020634A1 (en) Method, system and program for recording changes made to a database
US6961729B1 (en) Processing in parallel units of work that perform DML operations on the same spanning rows
US11204813B2 (en) System and method for multidimensional search with a resource pool in a computing environment
JPH03161859A (ja) リクエスト管理方法及びアクセス制御システム
US7293011B1 (en) TQ distribution that increases parallism by distributing one slave to a particular data block
CN109033359A (zh) 一种多进程安全访问sqlite的方法
Cheng et al. IBM Database 2 performance: Design, implementation, and tuning
US10313477B2 (en) System and method for use of a non-blocking process with a resource pool in a computing environment
Shanker et al. SWIFT—A new real time commit protocol
US7188113B1 (en) Reducing contention by slaves for free lists when modifying data in a table partition
CN115629822B (zh) 一种基于多核处理器的并发事务处理方法及其系统
JP2001282599A (ja) データ管理方法および装置並びにデータ管理プログラムを格納した記録媒体
KR100486854B1 (ko) 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법
JP2001229058A (ja) データベースサーバ処理方法

Legal Events

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

Payment date: 20100401

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee