KR100257558B1 - 이동 트랜잭션을 위한 분산 잠금 관리방법 - Google Patents

이동 트랜잭션을 위한 분산 잠금 관리방법 Download PDF

Info

Publication number
KR100257558B1
KR100257558B1 KR1019970046758A KR19970046758A KR100257558B1 KR 100257558 B1 KR100257558 B1 KR 100257558B1 KR 1019970046758 A KR1019970046758 A KR 1019970046758A KR 19970046758 A KR19970046758 A KR 19970046758A KR 100257558 B1 KR100257558 B1 KR 100257558B1
Authority
KR
South Korea
Prior art keywords
mobile terminal
data
transaction
mobile
lock
Prior art date
Application number
KR1019970046758A
Other languages
English (en)
Other versions
KR19990025211A (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 KR1019970046758A priority Critical patent/KR100257558B1/ko
Publication of KR19990025211A publication Critical patent/KR19990025211A/ko
Application granted granted Critical
Publication of KR100257558B1 publication Critical patent/KR100257558B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이동 단말기가 트랙잭션을 수행시키고 최종 서버에서 읽기 연산을 수행한 데이터들에게 해제를 수행시킬 때 후발 트랜잭션들이 접근하고자 하는 데이터들의 읽기_잠금수와 읽기_해제수가 일치하지 않더라도 해당 데이터의 최종 수정시간을 이용하여 트랜잭션을 수행시킴으로써 트랜잭션의 처리율을 높이도록 한 이동 트랜잭션을 위한 분산 잠금 관리방법을 제공하기 위한 것이다.
이를 위해 본 발명은, 이동 단말기와 무선으로 데이터통신을 행하는 이동 데이터 처리시스템에서, 상기 이동 단말기로부터 읽기 연산을 수신하게 되면 읽기 연산을 위한 데이터 및 그 데이터의 잠금상태에 따라 연산 처리를 행하는 과정과, 상기 이동 단말기로부터 쓰기 연산을 수신하게 되면 쓰기 연산을 위한 데이터를 가지고 있는 모든 이동 데이터 처리시스템으로부터 해당 데이터에 대한 잠금상태 및 그 데이터에 대한 최종수정시간치를 수집하고 현재의 잠금상태에 따라 연산 처리를 행하는 과정 및, 상기 이동 단말기로부터 완료 연산을 수신하게 되면 해당 이동 단말기가 수행한 트랜잭션의 로그를 찾아 수행하였던 연산들의 잠금을 해제하는 연산처리를 행하는 과정으로 구성됨으로써, 이동 단말기의 트랜잭션 수행 완료율과 무선 데이터 통신 채널의 효율성을 제고할 수 있다.

Description

이동 트랜잭션을 위한 분산 잠금 관리방법
본 발명은 이동 트랜잭션을 위한 분산 잠금 관리방법에 관한 것으로, 보다 상세하게는 무선통신을 이용한 이동 데이터 처리시스템에서 하나의 데이터가 여러 데이터 서버시스템에 중복저장되어 있는 경우 및 그 데이터 서버시스템들이 중복된 데이터들의 일치성을 제공하기 위해 ROWA(Read One Write All) 프로토콜을 사용하는 경우 그 ROWA 프로토콜의 장점을 유지하도록 한 이동 트랜잭션을 위한 분산 잠금 관리방법에 관한 것이다.
무선 데이터 통신기술이 발전함에 따라 컴퓨터 사용자들은 이동중에 무선 데이터 통신망을 이용하여 통신망에 연결된 데이터 서버에 접속한 후 필요한 정보를 검색하거나 수정할 수 있는 이동 트랜잭션을 처리할 수 있게 되었다.
이동 단말기(예를 들어, 무선 모뎀을 장착한 노트북 컴퓨터, Hand-held PC 등)들이 이동중에 무선 데이터 통신망을 이용하여 데이터 서버에 저장된 데이터를 수정하거나 검색하는 작업(이동 트랜잭션)을 용이하도록 하기 위해, 일반적으로 데이터들은 지역적으로 서로 떨어진 여러 데이터 서버에 중복저장하는 방법이 제안되고 있다.
동일한 데이터들을 여러 데이터 서버에 중복저장함에 의해 이동 단말기들이 이동 트랜잭션 처리시 자신에게서 가장 가까운 데이터 서버를 선택하게 하고, 이렇게 함으로써 이동성에 의해 발생하게 되는 데이터 경로가 길어지는 문제를 해소할 수 있게 되며 통신 메시지들이 불필요하게 여러 네트워크 노드를 거치지 않게 되는 장점이 있게 된다.
통상적으로, 데이터들을 지역적으로 서로 떨어진 여러 데이터 서버에 중복저장하는 방법을 사용할 때 중복된 데이터들의 일관성을 유지하고 데이터의 사용효율을 좋게 하기 위한 데이터 접근 프로토콜로서 ROWA 프로토콜이 가장 많이 사용되고 있다.
이 ROWA 프로토콜의 동작원리를 설명하면, 하나의 데이터에 대해 읽기(Read) 연산을 수행할 때는 읽고자 하는 데이터가 단말기에 접속된 데티어 서버에 있으면 단말기는 그 서버로부터 읽기 연산 하나만을 수행하고, 그 서버에 없으면 가장 가까이 위치한 데이터 서버로부터 하나의 읽기 연산을 수행한다.
즉, 데이터 읽기 연산을 수행할 때는 중복된 여러 데이터 중 가장 가까운 데이터 하나만(Read One) 읽게 된다. 그러나, 데이터 쓰기(Write) 연산을 할 때는 중복된 모든 데이터에 대해 쓰기 연산을 수행하여야 한다. 중복된 모든 데이터에 대해 쓰기 연산을 수행하는 이유는 중복된 모든 데이터에 대해 쓰기 연산을 해야하지만 중복된 데이터들의 일관성이 유지되기 때문이다.
ROWA 프로토콜의 장점은 읽기 연산을 수행할 경우 중복된 데이터 중 하나만을 읽기 때문에 읽기 연산시 통신망에 대한 메시지(해당 데이터에 대한 읽기 잠금(Read Lock)과 해제(Unlock) 요청 메시지) 트래픽을 줄일 수 있다는 점이다.
ROWA 프로토콜은 원래 분산 시스템환경에서 데이터의 신뢰성 및 유용성을 높이기 위해 분산 네트워크로 연결된 데이터 서버들에 데이터를 중복시켰을 때 중복된 데이터에 대해 트랜잭션을 수행하기 위해 개발된 프로토콜이다.
그러나, ROWA 프로토콜을 이동 데이터환경에서 사용할 때는 읽기 연산시 통신망에 대한 메시지 트래픽을 줄일 수 있다는 장점이 사라지게 된다.
예를 들어 제1도에서 데이터(x)와 데이터(y)는 제1~3서버(10, 12, 14)에 중복 저장되어 있고, 데이터(z)는 제3서버(14)에 저장되어 있다고 설정한 상태에서, 이동 환경에서 제시된 트랜잭션중 읽기(x)는 제1서버(10)에서 수행되고 단말기가 제2서버(12) 지역으로 이동하여 제2서버(12)에서 읽기(y)를 수행한 후 제3서버(14)지역으로 이동하여 쓰기(z)를 수행했을 경우 단말기는 최종적으로 위치한 제3서버(14)에서 트랜잭션을 완료한 후 제1서버(10)에게 데이터(x)에 대한 해제(x) 메시지를 보내고 제2서버(12)에게 데이터 (y)에 대한 해제(y) 메시지를 보내야 한다.
하지만, 이러한 해제 메시지들은 ROWA 프로토콜이 분산 환경에서 사용될때에는 발생하지 않는 메시지들이다. 만약, 동일한 트랜잭션이 분산 환경에서 수행될 경우 환경에서는 단말기가 이동하지 않으므로 제1서버(10)에서 읽기(x)와 읽기(y)를 수행하고 제3서버(14)에 대해 쓰기(z)를 수행한 후 해제(z) 메시지만을 제3서버(14)에게 보내면 트랜잭션이 완료된다.
이동 환경에서 ROWA 프로토콜의 장점이 사라지는 문제를 해결하기 위해 미국의 Jin Jing은 이동 환경에서 트랜잭션을 수행한 후 해제 연산을 최종 위치한 지역의 서버에서만 수행하도록 하는 방법을 제안하였다.
즉, 제1도에서 해제(x)와 해제(y) 연산을 제1 및 제2서버(10, 12)에 보내지 않고 제3서버(14)에서만 수행시킴으로써 해제 메시지 발생을 방지하였다.
제1 및 제2서버(10, 12)에 남아 있는 읽기_잠금(x)과 읽기_잠금(y)은 x와 y를 수정하고자 할 트랜잭션 즉 쓰기(x)와 쓰기(y) 연산을 할 후발 트랜잭션이 풀게되는데, 이때 쓰기 연산을 수행할 트랜잭션은 전체 서버들에 저장되어 dT는 데이터(x)에 대한 잠금의 갯수와 해제의 갯수를 비교하여 일치하는지를 검사하게 된다. 해당 데이터에 대한 잠금의 갯수와 해제의 갯수가 일치하면 선행 트랜잭션이 무사히 완료되었음을 의미하므로 잠금을 푼 후 쓰기 연산을 진행시키고, 일치하지 않으면 에러로 처리된다.
Jin Jing의 방법은 이동 환경에서 ROWA 프로토콜을 사용할 경우 상술한 ROWA의 장점을 계속해서 유지할 수 있는 장점이 있지만, 후발 트랜잭션들이 정상적으로 수행되기 위해서는 데이터들의 잠금수와 해제수가 항상 일치해야 한다는 문제점을 안고 있다.
다시 말해서 각 서버의 데이터베이스는 서로 독립적으로 운영되고 자신들의 트랜잭션을 처리할 때 자주적인 입장이므로 데이터들의 잠금수와 해제수가 항상 일치한다는 것을 보장할 수 없다. 왜냐하면 각 서버의 데이터베이스들은 트랜잭션을 처리할 때 데드락(deadlock)을 풀기 위해 혹은 데이터 크래쉬(crash)발생시 임의로 수행중인 트랜잭션을 중지시키거나 필요에 따라 잠금을 일방적으로 취소시킬 수 있기 때문이다.
이러한 경우 Jin Jing의 방법에서는 데이터들의 잠금수와 해제수가 일치하지 않기 때문에 트랜잭션들의 수행이 거부당하는 문제가 발생하게 된다.
따라서 본 발명은 상기한 종래의 문제점을 해결하기 위해 이루어진 것으로, 각 서버에 데이터들의 임의적 서버에 임의적 갯수로 중복저장되어 있는 경우 이동 단말기가 트랜잭션을 수행시키고 최종 서버에서 읽기 연산을 수행한 데이터들에게 해제를 수행시킬 때 후발 트랜잭션들이 접근하고자 하는 데이터들의 읽기_잠금수와 읽기_해제수가 일치하지 않더라도 데이터와 함께 저장된 데이터 최종 수정시간을 이용하여 트랜잭션을 수행시킴으로써 트랜잭션의 처리율을 높이도록 한 이동 트랜잭션을 위한 분산 잠금 관리방법을 제공함에 그 목적이 있다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 실시예에 따르면, 이동 단말기와 무선으로 데이터통신을 행하는 이동 데이터 처리시스템에 있어서, 상기 이동 단말기로부터 읽기 연산을 수신하게 되면 읽기 연산을 위한 데이터 및 그 데이터의 잠금상태에 따라 연산 처리를 행하는 과정과, 상기 이동 단말기로부터 쓰기 연산을 수신하게 되면 스기 연산을 위한 데이터를 가지고 있는 모든 이동 데이터 처리시스템으로부터 해당 데이터에 대한 잠금상태 및 그 데이터에 대한 최종수정시간치를 수집하고 현재의 잠금상태에 따라 연산 처리를 행하는 과정 및, 상기 이동 단말기로부터 완료 연산을 수신하게 되면 해당 이동 단말기가 수행한 트랜잭션의 로그를 찾아 수행하였던 연산들의 잠금을 해제하는 연산 처리를 행하는 과정으로 구성된 이동 트랜잭션을 위한 분산 잠금 관리방법이 제공된다.
제1도는 종래 이동 데이터 환경에서 이동 트랜잭션 처리의 일예를 설명하는 도면.
제2도는 본 발명이 적용되는 이동 단말기와 이동 데이터 처리시스템의 구성도.
제3도는 본 발명의 실시예에 따른 읽기 연산 처리과정을 설명하는 플로우차트.
제4도는 본 발명의 실시예에 따른 쓰기 연산 처리과정을 설명하는 플로우차트.
제5도는 본 발명의 실시예에 따른 완료 연산 처리과정을 설명하는 플로우차트.
제6도는 본 발명의 적용된 이동 데이터 처리시스템내의 데이터베이스에 저장된 데이터 구조도이다.
* 도면의 주요부분에 대한 부호의 설명
10 : 제1서버 12 : 제2서버
14 : 제3서버 16 : 하드 디스크
18 : 메인 메모리 20 : CPU
22 : 통신모듈 24 : 하드 디스크
26 : 메인 메모리 28 : CPU
30 : 무선 통신모듈 100 : 이동 데이터 처리시스템
200 : 이동 단말기
이하, 본 발명의 실시예에 대해 첨부된 도면을 참조하여 보다 상세히 설명한다.
제2도는 본 발명이 적용되는 이동 단말기와 이동 데이터 처리시스템의 구성도로서, 이동 데이터 처리시스템(100)은 해당 이동 데이터 처리시스템(100)이 고유의 서비스를 제공하기 위해 필요한 각종 데이터와 정보를 저장/관리하는 데이터베이스를 갖춘 하드 대스크(16)와, 해당 이동 데이터 처리시스템(100)에서 수행되고 있는 프로그램과 수행에 필요한 데이터를 기억하고 있는 메인 메모리(18), 해당 이동 데이터 처리 시스템(100)의 전체적인 동작을 제어하는 CPU(Centralized Processing Unit : 20) 및, 그 CPU(20)의 제어하에 이동 단말기(200)와의 통신을 행하는 통신모듈(Communication Module : 22)을 구비한다.
이동 단말기(200)는 보조기억수단으로서의 하드 디스크(24)와, 해당 이동 단말기(200)에서 수행되고 있는 프로그램과 수행에 필요한 데이터를 기억하고 있는 메인 메모리(26), 해당 이동 단말기(200)의 전체적인 동작을 제어하는 CPU(Centralized Processing Unit : 28) 및, 그 CPU(28)의 제어하에 이동 데이터 처리시스템(100)과의 무선 통신을 행하는 무선 통신모듈(Wireless Communication Module : 30)을 구비한다.
여기서, 상기 이동 단말기(200)에 갖추어진 하드 디스크(24)는 생략가능하다.
그리고, 상기 이동 데이터 처리시스템(100)과 이도 deks말기(200)는 기지국(도시 생략)을 통해 무선 데이터통신을 행한다.
이와 같이 구성된 장치에 적용된 본 발명에 따르면, 상기 이동 단말기(200)로부터 읽기(Read) 연산을 수신하게 되면 그에 따른 읽기 연산 처리를 행하고, 상기 이동 단말기(200)로부터 쓰기(Write) 연산을 수신하게 되면 그에 따른 쓰기 연산 처리를 행하며, 상기 이동 단말기(200)로부터 완료(Commit) 연산을 수신하게 되면 그에 따른 완료 연산 처리를 행하게 되는데, 그 각 알고리즘은 데이터베이스를 가지고 있는 이동 데이터 처리시스템(100)에서 수행된다.
즉, 제3도는 본 발명의 실시예에 따른 읽기 연산 처리과정을 설명하는 플로우차트로서, 그 플로우차트를 기초로 본 발명에서의 읽기 연산 처리과정에 대해 설명하면 다음과 같다.
먼저, 이동 데이터 처리시스템(100)은 이동 단말기(200)로부터 트랜잭션 연산 처리요청(예컨대, 읽기 연산 처리요청)이 있는지를 기다린다(단계 300).
그 이동 단말기(200)로부터 읽기 연산 처리요청이 오면(단계 310에서 “예”) 읽기 연산을 위한 데이터를 가지고 있는지를 확인하고, 해당 데이터를 자신이 가지고 있으면 데이터의 잠금상태를 체크하고, 해당 데이터를 가지고 있지 않으면 그 해당 데이터를 가지고 있는 가장 가까운 사이트로부터 데이터의 값과 잠금상태를 가져온다(단계 320).
그 데이터에 쓰기 잠금이 걸려 있을 경우(단계 330에서 “예”) 읽기 연산 처리거부 메시지를 해당 이동 단말기(200)에게 전송하는 반면에(단계 340), 그 데이터에 쓰기 잠금이 걸려 있지 않을 경우에는 요청한 읽기 연산에 해당하는 데이터에 읽기 잠금을 걸고 해당 데이터 값을 이동 단말기(200)에게 송신한다(단계 350).
여기서, 만약 자신이 가지고 있지 않을 경우에는 상기 단계 320에서 선택된 사이트에게 읽기 잠금을 요청한다.
이와 같이 이동 단말기(200)에 읽기 연산 처리거부 메시지 또는 해당 데이터 값이 전송된 후에는, 이동 데이터 처리시스템(100)은 그 이동 단말기(200)로부터 송신에 대한 응답메시지(즉, 읽기 연산 처리거부 메시지 또는 해당 데이터값을 전송받았다는 메시지)가 오는지를 기다리게 된다(단계 360).
일정시간내에 그 응답메시지를 수신하지 못한 경우(단계 370에서 “아니오”)에는 시스템 관리자에게 수행 실패메시지를 프린트한 후(단계 380) 초기상태로 복귀하게 된다. 한편, 그 응답메시지가 일정시간내에 수신된 경우에는 바로 초기상태로 복귀하게 된다.
그리고, 제4도는 본 발명의 실시예에 따른 쓰기 연산 처리과정을 설명하는 플로우차트로서, 그 플로우차트를 기초로 본 발명에서의 쓰기 연산 처리과정에 대해 설명하면 다음과 같다.
먼저, 이동 데이터 처리시스템(100)은 이동 단말기(200)로부터 트랜잭션 연산 처리요청(예컨대, 쓰기 연산 처리요청)이 있는지를 기다린다(단계 400).
그 이동 단말기(200)로부터 쓰기 연산 처리요청이 오면(단계 410에서 “예”) 쓰기 연산을 위한 데이터를 가지고 있는 모든 이동 데이터 처리시스템으로부터 해당 데이터에 대한 잠금상태와 최종수정시간(max_update_ts)치를 수집한 후 그 잠금상태를 체크한다(단계 420).
그 체크결과, 읽기 잠금이 걸려 있는 경우(단계 430에서 “예”)에는 단계 440으로 이동하여 수행완료된 트랜잭션의 읽기 잠금과 해제수가 전체적으로 일치하는지를 계산하게 된다.
그 계산결과, 상호 일치하지 않게 되면 단계 450으로 이동하여 최종수정시간(max_update_ts)치들이 일치하는지를 비교한다.
그 비교결과, 일치할 경우(상기 단계 440에서의 읽기 잠금과 해제수가 전체적으로 일치하는 경우도 포함됨)에는 단계 460으로 이동하여 수행완료된 트랜잭션의 읽기 잠금을 가지고 있는 사이트에 대해서는 읽기 잠금을 푼 후 쓰기 잠금을 걸고 쓰기 연산을 수행하며, 읽기 잠금이 걸려 있지 않은 사이트에 대해서는 단지 쓰기 잠금만을 걸고 쓰기 연산을 수행한다.
이후, 쓰기 연산 수행 완료메시지를 해당 이동 단말기(200)에게 전송하고 해당 데이터의 최종수정시간(max_update_ts)치를 현재 시간으로 변경한 후 해당 이동 단말기(200)로부터 전송될 응답메시지(즉, 쓰기 연산 수행 완료메시지를 받았다는 메시지)를 기다리게 된다(단계 470).
그 응답메시지를 일정시간내에 수신하였을 경우(단계 480에서 “예”)에는 초기상태로 복귀하는 반면에, 그 일정시간내에 응답메시지가 수신되지 않았을 경우에는 시스템 관리자에게 에러메시지를 프린트하고서(단계 490) 초기상태로 복귀하게 된다.
상기 단계 430에서 읽기 잠금이 걸려 있지 않게 되면 단계 500으로 이동하여 끄기 잠금이 걸려 있는지를 확인하게 된다.
그 확인결과, 쓰기 잠금이 걸려 있는 경우에는 쓰기 연산 처리거부 메시지를 해당 이동 단말기(200)에게 전송하고 해당 이동 단말기(200)로부터 전송될 응답메시지(즉, 쓰기 연산 처리거부 메시지를 받았다는 메시지) 수신을 기다리게 되는데(단계 510), 그 이후부터는 상기 단계 480 및 그 다음의 동작을 반복수행한다.
그리고, 상기 단계 500에서 쓰기 잠금이 걸려 있지 않은 경우에는 단계 520으로 이동하여 쓰기 연산을 위한 데이터에 대해 쓰기 잠금을 모두 걸고 쓰기 연산을 수행하는데, 이후부터는 상기 단계 470로 복귀하여 그 단계 및 그 다음의 동작을 반복수행하게 된다.
한편, 제5도는 본 발명의 실시예에 따른 완료 연산 처리과정을 설명하는 플로우차트로서, 그 플로우차트를 기초로 본 발명에서의 완료 연산 처리과정에 대해 설명하면 다음과 같다.
먼저, 이동 데이터 처리시스템(100)은 이동 단말기(200)로부터 트랜잭션 연산 처리요청(예컨대, 완료 연산 처리요청)이 있는지를 기다린다(단계 600).
그 이동 단말기(200)로부터 완료 연산 처리요청이 오면(단계 610에서 “예”) 해당 이동 단말기(200)가 구생한 트랜잭션으 로그(log)를 찾아 수행했던 연산들의 잠금(Lock)을 해제하게 된다(단계 620).
즉, 해당 이동 단말기(200)가 읽기 연산을 수행하였을 경우(단계 630에서 “예”)에는 읽기 연산에 해당하는 데이터들을 자신이 가지고 있으면 해당 데이터들에 대한 잠금해제(Unlock) 연산을 수행하고, 자신이 가지고 있지 않은 데이터들인 경우에는 해당 데이터를 가지고 있는 가장 가까운 사이트에 대해 잠금해제 연산을 수행하게 된다.
이에 반하여, 해당 이동 단말기(200)가 쓰기 연산을 수행하였을 경우(단계 650에서 “예”)에는 쓰기 연산에 해당하는 데이터를 가지고 있는 모든 사이트들에 잠금해제 연산을 수행한다(단계 660).
이와 같은 잠금해제 연산이 수행되고 나면, 완료 연산 수행 완료메시지를 해당 이동 단말기(200)에게 전송하고 그 이동 단말기(200)로부터의 응답메시지를 기다리게 된다(단계 670).
그 응답메시지가 일정시간내에 수신되면(단계 680에서 “예”) 초기상태로 복귀하게 되는 반면에, 그 응답메시지가 일정시간내에 수신되지 않으면 시스템 관리자에게 에러메시지(수행 실패 메시지)를 프린트하고(단계 690) 초기상태로 복귀하게 된다.
제6도는 본 발명이 적용된 이동 데이터 처리시스템내의 데이터베이스에 저장된 데이터 구조도로서, 각각의 데이터(x, …, y)는 고유의 최종수정시간치(max_update_ts)를 갖음을 보여준다.
이상 설명한 바와같은 본 발명에 의하면, 이동 데이터 처리시스템의 데이터 베이스에 저장된 모든 데이터에 그 데이터가 수정된 가장 최근의 시간을 함께 저장하여 데이터들의 리드_잠금수와 리드_해제수가 일치하지 않더라도 각 데이터의 최종수정시간치를 비교하여 일치하면 트랜잭션의 수행을 에러로 처리하지 않고 정상적으로 수행시킴으로써, 이동 단말기의 트랜잭션 수행 완료율과 무선 데이터 통신채널의 효율성을 제고할 수 있다.
본 발명은 상술한 실시예로만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 수정 및 변형하여 실시할 수 있다. 그러한 수정 및 변형 등에 의한 여타 기술 사상은 다음의 특허청구범위에 속하는 기술 사상으로 보아야 한다.

Claims (20)

  1. 이동 단말기와 무선으로 데이터통신을 행하는 이동 데이터 처리시스템에 있어서, 상기 이동 단말기로부터 읽기 연산을 수신하게 되면 읽기 연산을 위한 데이터 및 그 데이터의 잠금상태에 따라 연산 처리를 행하는 과정과, 상기 이동 단말기로부터 쓰기 연산을 수신하게 되면 스기 연산을 위한 데이터를 가지고 있는 모든 이동 데이터 처리시스템으로부터 해당 데이터에 대한 잠금상태 및 그 데이터에 대한 최종수정시간치를 수집하고 현재의 잠금상태에 따라 연산 처리를 행하는 과정 및, 상기 이동 단말기로부터 완료 연산을 수신하게 되면 해당 이동 단말기가 수행한 트랜잭션의 로그를 찾아 수행하였던 연산들의 잠금을 해제하는 연산 처리를 행하는 과정으로 구성된 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  2. 제1항에 있어서, 상기 읽기 연산 처리과정에서 데이터의 잠금상태를 체크한 결과 쓰기 잠금이 걸려 있을 경우 읽기 연산 처리거부 메시지를 해당 이동 단말기로 전송하고, 상기 이동 단말기로부터 전송되는 송신에 대한 응답 메시지가 일정시간내에 수신되지 않으면 수행 실패 메시지를 사용자에게 알려준 후 상기 이동 단말기로부터 후속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  3. 제2항에 있어서, 상기 이동 단말기로부터 전송되는 송신에 대한 응답 메시지가 일정시간내에 수신되면 바로 상기 이동 단말기로부터 후속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  4. 제1항에 있어서, 상기 읽기 연산 처리과정에서 데이터의 잠금상태를 체크한 결과 쓰기 잠금이 걸려 있지 않은 경우 요청한 읽기 연산에 해당하는 데이터에 읽기 잠금을 걸고 해당 데이터값을 이동 단말기에 송신하고, 상기 이동 단말기로부터 전송되는 송신에 대한 응답 메시지가 일정시간내에 수신되지 않으면 수행 실패 메시지를 사용자에게 알려준 후 상기 이동 단말기로부터 후속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  5. 제4항에 있어서, 상기 이동 단말기로부터 전송되는 송신에 대한 응답 메시지가 일정시간내에 수신되면 바로 상기 이동 단말기로부터 후속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  6. 제1항에 있어서, 상기 쓰기 연산 처리과정에서 현재의 잠금상태가 읽기 잠금상태일 경우 수행완료된 트랜잭션의 읽기 잠금과 해제수가 일치하는지를 판단하여 일치하면 수행완료된 트랜잭션의 읽기 잠금상태에 따라 사이트에 대한 쓰기 연산을 수행한 후, 쓰기 연산 수행완료 메시지를 해당 이동 단말기에 전송하고, 해당 데이터에 대한 최종수정시간치를 현재 시간으로 변경시키고서, 해당 이동 단말기로부터 전송되는 응답 메시지가 일정시간내에 수신되면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  7. 제6항에 있어서, 상기 수행완료된 트랜잭션의 읽기 잠금과 해제수가 일치하지 않을 경우 최종수정시간치들을 비교하여 일치하면 수행완료된 트랜잭션의 읽기 잠금상태에 따라 사이트에 대한 쓰기 연산을 수행한 후, 쓰기 연산 수행완료 메시지를 해당 이동 단말기에 전송하고, 해당 데이터에 대한 최종수정시간치를 현재 시간으로 변경시키고서, 해당 이동 단말기로부터 전송되는 응답 메시지가 일정시간내에 수신되면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  8. 제6항 또는 제7항에 있어서, 상기 수행완료된 트랜잭션의 읽기 잠금이 걸려있는 사이트에 대해서는 그 읽기 잠금을 푼 후에 쓰기 잠금을 걸고 쓰기 연산을 행하는 반면에, 읽기 잠금이 걸려 있지 않는 사이트에 대해서는 쓰기 잠금만을 걸고 쓰기 연산을 행하는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  9. 제6항 또는 제7항에 있어서, 상기 이동 단말기로부터 전송되는 송신에 대한 응답 메시지가 일정시간내에 수신되지 않으면 수행 실패 메시지를 사용자에게 알려준 후 상기 이동 단말기로부터 흐속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  10. 제7항에 있어서, 상기 최종수정시간치들을 비교한 결과 일치하지 않을 경우 쓰기 연산 처리거부 메시지를 해당 이동 단말기에게 전송하고, 해당 단말기로부터 응답 메시지 수신이 일정시간내에 행해지면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  11. 제10항에 있어서, 상기 해당 단말기로부터 응답 메시지 수신이 일정시간에 되지 않을 경우에는 시스템 관리자에게 에러 메시지를 통지한 후 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  12. 제1항에 있어서, 상기 쓰기 연산 처리과정에서 현재의 잠금상태가 쓰기 잠금상태일 경우 쓰기 연산 처리거부 메시지를 해당 이동 단말기에게 전송하고, 해당 단말기로부터 응답 메시지 수신이 일정시간내에 행해지면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  13. 제12항에 있어서, 상기 해당 단말기로부터 응답 메시지 수신이 일정시간에 되지 않을 경우에는 시스템 관리자에게 에러 메시지를 통지한 후 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  14. 제1항에 있어서, 상기 쓰기 연산 처리과정에서 현재의 잠금상태가 읽기 및 쓰기 잠금상태가 아닌 경우에는 데이터에 대해 쓰기 잠금을 모두 걸고 쓰기 연산을 수행한 후 쓰기 연산 수행완료 메시지를 해당 이동 단말기에 전송하고, 해당 데이터에 대한 최종수정시간치를 현재 시간으로 변경시키고서, 해당 이동 단말기로부터 전송되는 응답 메시지가 일정시간내에 수신되면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  15. 제14항에 있어서, 상기 이동 단말기로부터 전송되는 송신에 대한 응답 메시지가 일정시간내에 수신되지 않으면 수행 실패 메시지를 사용자에게 알려준 후 상기 이동 단말기로부터 후속 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  16. 제1항에 있어서, 상기 완료 연산 처리과정에서 해당 이동 단말기가 읽기 연산을 수행하였을 경우 읽기연산에 해당하는 데이터들을 해당 이동 데이터 처리시스템이 가지고 있느냐의 여부에 따라 해당 데이터들에 대한 잠금 해제 연산 또는 해당 데이터를 가지고 있는 가장 가까운 사이트에 대해 잠금 해제 연산을 수행한 후, 완료 연산 수행 완료 메시지를 해당 이동 단말기에게 전송하고, 그 이동 단말기로부터 전송되는 응답 메시지가 일정시간내에 수신되는 지를 체크하여 일정시간내에 응답을 수신하게 되면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  17. 제16항에 있어서, 상기 읽기 연산에 해당하는 데이터들이 해당 이동 데이터 처리시스템이 가지고 있으면 해당 데이터들에 대한 잠금 해제 연산을 수행하는 반면에, 해당 이동 데이터 처리시스템이 가지고 있지 않는 데이터들인 경우에는 해당 데이터를 가지고 있는 가장 가까운 사이트에 대해 잠금 해제 연산을 수행하는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  18. 제16항에 있어서, 상기 응답 메시지가 일정시간내에 수신되지 않을 경우에는 수행 실패 메시지를 시스템 관리자에게 알려준 후 상기 이동 단말기로부터 후속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  19. 제1항에 있어서, 상기 완료 연산 처리과정에서 해당 이동 단말기가 쓰기 연산을 수행하였을 경우 쓰기 연산에 해당하는 데이터를 가지고 있는 모든 사이트들에 대하여 잠금 해제 연산을 수행한 후, 완료 연산 수행 완료 메시지를 해당 이동 단말기에게 전송하고, 그 이동 단말기로부터 전송되는 응답 메시지가 일정시간내에 수신되는지를 체크하여 일정시간내에 응답을 수신하게 되면 해당 이동 단말기로부터 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
  20. 제19항에 있어서, 상기 응답 메시지가 일정시간동안에 수신되지 않을 경우에는 수행 실패 메시지를 시스템 관리자에게 알려준 후 상기 이동 단말기로부터 후속의 트랜잭션 연산 처리요청이 있는지를 기다리는 것을 특징으로 하는 이동 트랜잭션을 위한 분산 잠금 관리방법.
KR1019970046758A 1997-09-11 1997-09-11 이동 트랜잭션을 위한 분산 잠금 관리방법 KR100257558B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970046758A KR100257558B1 (ko) 1997-09-11 1997-09-11 이동 트랜잭션을 위한 분산 잠금 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970046758A KR100257558B1 (ko) 1997-09-11 1997-09-11 이동 트랜잭션을 위한 분산 잠금 관리방법

Publications (2)

Publication Number Publication Date
KR19990025211A KR19990025211A (ko) 1999-04-06
KR100257558B1 true KR100257558B1 (ko) 2000-06-01

Family

ID=19521152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970046758A KR100257558B1 (ko) 1997-09-11 1997-09-11 이동 트랜잭션을 위한 분산 잠금 관리방법

Country Status (1)

Country Link
KR (1) KR100257558B1 (ko)

Also Published As

Publication number Publication date
KR19990025211A (ko) 1999-04-06

Similar Documents

Publication Publication Date Title
US5634072A (en) Method of managing resources in one or more coupling facilities coupled to one or more operating systems in one or more central programming complexes using a policy
Lam et al. Concurrency control in mobile distributed real-time database systems
US8200643B2 (en) Lock and transaction management
US8161018B2 (en) Managing locks and transactions
US7448077B2 (en) File level security for a metadata controller in a storage area network
US7246187B1 (en) Method and apparatus for controlling exclusive access to a shared resource in a data storage system
US20040068563A1 (en) Method, system, and program for managing locks enabling access to a shared resource
KR100450400B1 (ko) 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법
EP0730766A1 (en) Computer method and apparatus for asynchronous ordered operations
JPH086840A (ja) サーバ回復のためのディレクトリ操作の完了を判定する機構
US20020147719A1 (en) Distribution of physical file systems
US7792977B1 (en) Method for fencing shared resources from cluster nodes
CN112039970B (zh) 一种分布式业务锁服务方法、服务端、系统及存储介质
US7885946B2 (en) Low-overhead storage cluster configuration locking
Huang et al. A competitive dynamic data replication algorithm
CN101189581B (zh) 用于处理与锁定相关的不一致的方法
KR100257558B1 (ko) 이동 트랜잭션을 위한 분산 잠금 관리방법
JPH0277868A (ja) 共用データの管理方法
CN101523352A (zh) 用于并发控制的持久锁/资源
JP3330006B2 (ja) 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに
Lam et al. Mobile distributed real-time database systems
CN116909809A (zh) 一种多人在线数据处理系统
KR100205952B1 (ko) 이동데이타 처리시스템에서의 타임스탬프 스케쥴링 방법
Selinger et al. The impact of site autonomy on R*: A distributed relational DBMS
KR100194773B1 (ko) 이동 데이타 처리 시스템과 이동 단말기간의 데이타 일치성 제어 방법

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: 20100302

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee