KR101642027B1 - 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치 - Google Patents

인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치 Download PDF

Info

Publication number
KR101642027B1
KR101642027B1 KR1020160073305A KR20160073305A KR101642027B1 KR 101642027 B1 KR101642027 B1 KR 101642027B1 KR 1020160073305 A KR1020160073305 A KR 1020160073305A KR 20160073305 A KR20160073305 A KR 20160073305A KR 101642027 B1 KR101642027 B1 KR 101642027B1
Authority
KR
South Korea
Prior art keywords
lock
code
terminal
server
allocation
Prior art date
Application number
KR1020160073305A
Other languages
English (en)
Other versions
KR20160078306A (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 KR1020160073305A priority Critical patent/KR101642027B1/ko
Publication of KR20160078306A publication Critical patent/KR20160078306A/ko
Application granted granted Critical
Publication of KR101642027B1 publication Critical patent/KR101642027B1/ko

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

인터넷 범위로 공유되는 자원에 대한 동기화를 위한 방법 및 장치가 제공된다. 코드 영역은 하나 이상의 단말들에 의해 공유되는 데이터를 접근한다. 각 단말은 상기 코드 영역에 대한 인터넷 범위의 락을 획득한 후 코드 영역을 실행한다. 서버는 단말의 요청에 따라 상기의 락을 단말에게 할당한다. 코드 영역을 실행한 후, 단말은 서버에게 할당의 해제를 요청한다. 상기의 락을 통해 공유 데이터를 자유롭게 접근하는 코드 영역이 하나 이상의 단말들에 의해 동기화되어 실행될 수 있다.

Description

인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치{METHOD AND APPARATUS FOR SYNCHRONIZING INTERNET SHARED RESOURCE}
아래의 실시예들은 인터넷 공유 자원에 대한 동기화를 제공하기 위한 방법 및 장치에 관한 것이다.
인터넷 상의 하나 이상의 서버들에 의해 사용되는 공유 자원에 대한 동기화를 지원하는 방법 및 장치가 개시된다.
유효 범위 락(scoped lock)은 코드의 실행 점(execution point)이 특정한 범위 내에 진입하였을 때 자동으로 설정되고, 실행 점이 상기의 특정한 범위를 벗어났을 때 자동으로 해제되는 락이다. 유효 범위는 락이 적용되는 범위를 나타낸다.
즉, 복수의 프로세스(process)들(또는, 쓰레드(thread)들)이 자원을 공유할 때, 상기 자원을 접근(access)하는 일정 너비(width)의 코드를 실행하는 것을 상기의 복수의 프로세스들 간에 상호 배제(mutual exclusion) 시키기 위해 범위 락이 사용될 수 있다.
유효 범위 락은 뮤텍스(mutex) 또는 임계 영역(critical section)과 같은 동기화 (synchronizing) 객체(object)를 통해 지원될 수 있다.
일반적으로, 뮤텍스 또는 임계 영역 등과 같은 동기화 객체가 보장해주는 유효 범위(scope)는 하나의 프로세스 또는 하나의 기기 내에 존재한다. 즉, 유효 범위 락은 1) 단일 기기 내의 프로세스들 간에 공유되는 데이터를 보호하기 위해, 또는 2) 단일 프로세스 내의 쓰레드들 간에 공유되는 데이터를 보호하기 위해 사용될 수 있다.
네트워크(network)로 연결된 다수의 기기들이 연동하여 동작하는 분산 시스템에서, 유효 범위를 인터넷으로 확장시키는 동기화 객체들이 제공될 필요가 있다.
본 발명의 일 실시예는 인터넷 상의 서버 집합에 의해 사용되는 공유 데이터에 대한 동기화를 지원하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시예는 공유 데이터에 대해 인터넷 범위에서 유효 범위 락을 지원하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 측에 따르면, 단말로부터 코드 영역에 대한 인터넷 범위의 락의 할당 요청 메시지를 수신하는 단계 - 상기 코드 영역은 상기 단말을 포함하는 네트워크로 연결된 하나 이상의 단말들에 의해 공유되는 데이터를 접근함 -, 상기 락이 할당 중인지 검사하는 단계, 상기 락이 할당 중이지 않은 경우, 상기 단말에게 상기 락을 할당하는 단계, 상기 할당 요청의 승인 메시지를 상기 단말로 전송하는 단계, 상기 단말로부터 상기 락의 해제 요청 메시지를 수신하는 단계 및 상기 락을 상기 할당으로부터 해제하는 단계를 포함하는, 공유 데이터에 대한 동기화 제공 방법이 제공된다.
상기 공유 데이터에 대한 동기화 제공 방법은, 모든 락들의 상태를 갱신하는 단계를 더 포함할 수 있다.
상기 코드 영역은 상기 단말 내에서 실행될 수 있다.
상기 락의 식별자는 문자열일 수 있다. 상기 할당 요청 메시지, 상기 할당 요청의 승인 메시지, 상기 해제 요청 메시지 및 상기 해제 요청의 승인 메시지는 상기 식별자를 포함할 수 있다.
상기 할당 요청 메시지, 상기 할당 요청의 승인 메시지, 상기 해제 요청 메시지 및 상기 해제 요청의 승인 메시지는 상기 락의 명칭 공간 및 상기 락의 명칭을 포함할 수 있다.
본 발명의 다른 일 측에 따르면, 단말이 코드 영역을 실행함으로써 네트워크로 연결된 하나 이상의 단말들 간에 공유되는 데이터를 접근하는 방법에 있어서, 상기 코드 영역에 대한 인터넷 범위의 락의 할당 요청 메시지를 서버로 전송하는 단계, 상기 서버로부터 상기 할당 요청의 승인 메시지를 수신하는 단계, 상기 코드 영역을 실행함으로써 상기 데이터를 접근하는 단계 및 상기 락의 해제 요청 메시지를 상기 서버로 전송하는 단계를 포함하는, 공유 데이터 접근 방법이 제공된다.
상기 공유 데이터 접근 방법은, 상기 서버로부터 상기 해제 요청의 승인 메시지를 수신하는 단계를 더 포함할 수 있다.
상기 할당 요청 메시지는 타임 아웃 파라미터를 포함할 수 있다.
상기 단말은 상기 타임 아웃 파라미터가 가리키는 시간 동안 상기 할당 요청의 승인 메시지가 상기 서버로부터 전송되지 않으면, 상기 락의 할당이 실패된 것으로 처리할 수 있다.
본 발명의 또 다른 일 측에 따르면, 하나 이상의 단말들에 의해 공유되는 데이터를 접근하는 코드를 저장하는 저장부, 서버에게 상기 코드에 대한 인터넷 범위의 락의 할당을 요청하는 락의 할당 요청 메시지를 생성하고, 상기 서버로부터 상기 할당 요청의 승인을 획득한 후 상기 코드를 실행하고, 상기 서버에게 상기 락의 해제를 요청하는 락의 해제 요청 메시지를 생성하는 제어부 및 상기 할당 요청 메시지 및 상기 락의 해제 요청 메시지를 상기 서버로 전송하고, 상기 서버로부터 상기 락의 할당 요청의 승인 메시지를 수신하여 상기 할당 요청의 승인을 상기 제어부로 전달하는 송수신부를 포함하는, 단말이 제공된다.
상기 송수신부는 상기 서버로부터 상기 해제 요청의 승인 메시지를 수신하여 상기 해제 요청의 승인을 상기 제어부로 전달할 수 있다.
상기 제어부는 상기 타임 아웃 파라미터가 가리키는 시간 동안 상기 락의 할당 요청의 승인이 획득되지 않으면, 상기 락의 할당이 실패된 것으로 처리할 수 있다.
인터넷 상의 서버 집합에 의해 사용되는 공유 데이터에 대한 동기화를 지원하는 장치 및 방법이 제공된다.
공유 데이터에 대해 인터넷 범위에서 유효 범위 락을 지원하는 장치 및 방법이 제공된다.
유효 범위 락을 통한 동기화를 지원함으로써 분산된 서버들이 공유 데이터를 사용할 때 발생하는 문제를 해결하는 장치 및 방법이 제공된다.
도 1은 분산된 단말들이 동기화가 필요한 자원을 사용하는 경우를 설명한다.
도 2는 본 발명의 일 예에 따른 공유 데이터의 인터넷 범위의 유효 범위 락을 설명한다.
도 3은 본 발명의 일 예에 따른 코드 영역을 사용하여 공유 데이터를 접근하는 방법을 설명한다.
도 4는 본 발명의 일 실시예에 따른 공유 데이터에 대한 락 제공 방법을 설명한다.
도 5는 본 발명의 일 예에 따른 락 사용을 위한 메쏘드를 설명한다.
도 6은 본 발명의 일 실시예에 따른 단말(600)의 구조도이다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 분산된 단말들이 동기화가 필요한 자원을 사용하는 경우를 설명한다.
네트워크로 연결된 하나 이상의 단말들(110)(예컨대, 제1 단말(112), 제2 단말(114) 및 제3 단말(116))은 공유 데이터(shared data)(120)(또는, 공유 자원(shared resource))를 사용할 수 있다.
하나 이상의 단말들(110)은 각각 네트워크로 연결된 다른 단말에게 특정한 서비스를 제공할 수 있다. 또한, 상기의 네트워크는 인터넷(internet)일 수 있다. 즉, 하나 이상의 단말들(110)은 인터넷 상의 서버 집합일 수 있다.
공유 데이터(120)는 데이터베이스 내의 데이터일 수 있으며, 하나 이상의 단말들(110)이 공유하기 위해 노출된 데이터일 수 있다.
공유 데이터(120)는 하나 이상의 단말들(110)에 의해 인터넷 범위로 공유될 수 있다.
여기서, 인터넷 범위의 공유란, 데이터 공유의 주체들이 단일한 단말에 의해 실행되는 프로세스들 또는 쓰레드들 뿐만 아니라, 네트워크로 연결된 하나 이상의 단말들(110)일 수 있음을 의미한다.
예컨대, 공유 데이터(120)는 하나 이상의 프로그램들 각각의 프로세스, 하나의 프로세스 내의 하나 이상의 쓰레드들, 하나 이상의 서버들, 서버와 클라이언트, 피어-투-피어(peer-to-peer; P2P)로 연결된 하나 이상의 클라이언트들에 의해 공유되어 사용될 수 있다.
하나 이상의 단말들(110)이 동시에 공유 데이터(120)를 접근할 경우, 하나 이상의 단말들(110)이 동시에 공유 데이터를 독출(read) 또는 기입(write)하는 과정에서 데이터의 무결성(integrity)이 손상될 수 있다.
예컨대, 제1 단말(112)가 공유 데이터 중 특정 객체를 독출하는 중에 제2 단말(114)이 상기 특정 객체에 어떤 내용을 기입할 경우, 제1 단말(112) 및 제2 단말(114) 각각이 상기 특정 객체에 대하여 서로 상이한 값을 갖게 되는 문제가 발생할 수 있다.
즉, 하나 이상의 단말들(110) 각각에 의해 사용되는 공유 데이터가 상호 간에 불일치하게 될 수 있다.
도 2는 본 발명의 일 예에 따른 공유 데이터의 인터넷 범위의 유효 범위 락을 설명한다.
도 1을 참조하여 전술된 문제를 해결하기 위해서는, 인터넷 범위로 공유 데이터에 대한 동기화가 제공될 필요가 있다.
상기의 동기화는, 유효 범위 락을 통해 제공될 수 있다. 즉, 단말이 공유 데이터(120)를 사용하기 위해서는 상기 공유 데이터에 대한 락을 획득하여야 한다는 제한을 가함으로써, 공유 데이터(120)에 대한 접근이 동기화될 수 있다.
공유 데이터에 대한 락은 서버(210)에 의해 할당된다. 서버(210)는 락이 한 순간에 하나의 단말에게만 할당되도록 관리할 수 있다. 하나 이상의 단말들(110)은 네트워크로 연결되었기 때문에, 락은 인터넷 범위에서 유효하다.
락을 할당받은 단말은 공유 데이터(110)를 자유롭게 접근할 수 있다.
공유 데이터를 접근한 후, 단말은 서버(210)에게 락의 해제를 요청할 수 있다. 서버(210)에 의해 락이 해제되면, 서버(210)는 락을 요청하는 다른 단말에게 상기의 락을 다시 할당할 수 있다.
공유 데이터(120)는 하나 이상의 단말들(110) 중 특정한 단말 내에 저장될 수 있다. 또는, 공유 데이터(120)는 서버(210) 내에 저장될 수 있고, 하나 이상의 단말들(110) 및 서버(210) 와는 별개인, 제3의 서버 내에도 저장될 수 있다..
도 3은 본 발명의 일 예에 따른 코드 영역을 사용하여 공유 데이터를 접근하는 방법을 설명한다.
*하나 이상의 단말들(110) 각각은 공유 데이터(120)를 접근하는 코드를 가질 수 있다. 단말이 실행하는 모든 코드 중, 공유 데이터(120)를 접근하는 일정 구간의 코드를 코드 영역(310)으로 명명한다. 예컨대, 코드 영역(310)은 특정한 함수(function), 메쏘드(method) 또는 루틴(routine)일 수 있다.
하나 이상의 단말들(110) 각각이 갖는 코드 영역(310)들의 내용은 모두 동일할 수 있고, 또는 서로 상이할 수 있다.
하나 이상의 단말들(110)은 락을 획득하였을 때, 코드 영역(310)을 실행할 수 있다. 락을 획득하지 않은 단말(112, 114 또는 116)은 자신의 코드 영역(310)을 실행할 수 없다. 즉, 상기의 락은 유효 범위 락일 수 있다. 상기의 락은 네트워크로 연결된 하나 이상의 단말들(110)(또는, 프로세스들)에 의해 공유되는 공유 데이터(120)를 보호할 수 있다.
하나 이상의 단말들(110)이 락을 요청할 때, 상기의 요청에 의한 락의 획득 순서는 서버(210)에 의해 직렬화(serialization)될 수 있다. 즉, 하나 이상의 단말들(110)은 순차적으로 락을 획득할 수 있고, 락을 획득함에 따라 코드 영역(310)을 실행함으로써 공유 데이터(120)에 접근할 수 있다.
락에 의해, 한 순간에 하나 이상의 단말들(110) 각각이 갖는 코드 영역(310)들 중 하나의 코드 영역(310)만이 실행되는 것이 보장될 수 있다. 즉, 락은 코드 영역(310)에 대한 인터넷 범위의 동기화를 보장할 수 있다. 이러한 동기화에 의해, 하나 이상의 단말들(110) 각각이 갖는 코드 영역(310)들은 공유 데이터(120)를 자유롭게 접근할 수 있다.
도 4는 본 발명의 일 실시예에 따른 공유 데이터에 대한 락 제공 방법을 설명한다.
*서버(210)의 측면에서, 상기의 락 제공 방법은, 공유 데이터에 대한 동기화 제공 방법일 수 있다.
제1 단말(112) 및 제2 단말(114)의 측면에서, 상기의 락 제공 방법은, 공유 데이터에 대한 접근 방법일 수 있다.
본 실시예에서, 락은 특정한 코드 영역(310)에 대한 인터넷 범위의 락을 나타낼 수 있다.
코드 영역(310)은, 제1 단말(112) 및 제2 단말(114)을 포함하는 네트워크로 연결된 하나 이상의 단말들(110)에 의해 공유되는 공유 데이터(120)를 접근할 수 있다.
코드 영역(310)은 각각의 단말(예컨대, 제1 단말(112) 또는 제2 단말(114)) 내에서 실행될 수 있다.
단계(410)에서, 제1 단말(112)은, 예컨대 TryAccquireLock 메쏘드를 실행함으로써, 락의 할당 요청 메시지를 서버(210)로 전송한다. 서버(210)는 단말(110)로부터 락의 할당 요청 메시지를 수신한다.
서버(210)는 하나 이상의 락들을 관리할 수 있다.
따라서, 할당이 요청되는 락을 특정하기 위해, 할당 요청 메시지는 락의 식별자(identifier; ID)를 포함할 수 있다. ID는 문자열(string)일 수 있다. 상기의 ID는 명칭 공간(name space) 및 락의 명칭(name)을 포함할 수 있다.
이하, 제1 단말(112) 및 서버(210) 간에 전송되는 메시지들은, 메시지의 대상인 락을 특정하기 위해, 락의 ID를 포함할 수 있다.
단계(420)에서, 서버(210)는, 예컨대, CheckLockStatus 메쏘드를 실행함으로써, 상기 락의 상태를 검사할 수 있다. 즉, 서버(210)는 상기 락이 특정한 단말에게 할당 중 인지를 검사할 수 있다.
락이 특정한 단말에게 할당되지 않은 경우, 단계(430)에서, 서버(210)는, 예컨대 RegisterLock 메쏘드를 실행함으로써, 제1 단말(112)에게 락을 할당한다. 즉, 서버(210)는 락의 상태를 제1 단말(112)에게 할당 중인 것으로 설정한다.
락이 할당 중인 경우, 서버(210)는 제1 단말(112)에게 락을 할당할 수 없다. 즉, 서버(210)는 락의 할당 요청을 거부한다.
단계(440)에서, 서버(210)는 할당 요청의 승인 메시지 또는 할당 요청의 거부 메시지를 제1 단말(112)에게 전송한다. 락이 제1 단말(112)에게 할당된 경우, 서버(210)는 할당 요청의 승인 메시지를 제1 단말(112)에게 전송한다. 락이 제1 단말(112)에게 할당되지 않은 경우, 서버(210)는 할당 요청의 거부 메시지를 제1 단말(112)에게 전송한다.
할당 요청의 승인 메시지 및 할당 요청의 거부 메시지는 각각 락의 ID(또는, 락의 명칭 공간 및 락의 명칭)를 포함할 수 있다.
제1 단말(112)은 할당 요청의 승인 메시지 또는 할당 요청의 거부 메시지를 수신한다.
제1 단말(112)이 할당 요청의 승인 메시지 또는 할당 요청의 거부 메시지를 수신하면, 예컨대 AccquiredLockResult와 같은, 할당 요청 결과 메쏘드(또는, 할당 요청 결과 이벤트(event))가 실행될 수 있다.
할당 요청 결과 메쏘드는 락 할당의 성공 여부를 나타내는 파라미터를 포함할 수 있다. 제1 단말(112)은 상기 파라미터를 검사함으로써 할당 요청한 락이 획득되었는지 여부를 판단할 수 있다.
제1 단말(112)에게 락이 할당된 경우, 하기의 단계들(450, 455, 465, 470, 475 및 480)이 수행될 수 있다. 제1 단말(112)에게 락이 할당되지 않은 경우, 절차가 종료하거나 하기의 단계(490)이 수행될 수 있다. 제1 단말(112)에게 락이 할당되지 않은 경우, 제1 단말(112)은 락의 할당 요청의 거부에 대한 예외 처리를 실행할 수 있다.
단계(450)에서, 락을 획득한 제1 단말(112)은, 예컨대 RunSomeCodeBlock 메쏘드를 실행함으로써, 코드 영역(310)을 실행한다.
단계(455)에서, 제1 단말(112)은, 예컨대 UseSomeSharedData 메쏘드를 실행함으로써, 공유 데이터(120)를 접근한다. UseSomeSharedData 메쏘드는 코드 영역(310) 내에서 호출되는 메쏘드일 수 있다.
즉, 단계(450) 및 단계(455)에서, 제1 단말(112)은 코드 영역(310)을 실행함으로써 공유 데이터(120)를 접근한다.
단계(460)에서, 공유 데이터(120)를 저장하는 공유 데이터 서버(400)는 공유 데이터(120)에 대한 접근을 제공한다.
공유 데이터 서버(400)는 제1 단말(112), 제2 단말(114) 또는 서버(210) 중 하나일 수 있다.
단계(465)에서, 서버(210)는, 예컨대 AllLocksUpdate 메쏘드를 실행함으로써, 서버(210)가 관리하는 모든 락들의 상태를 갱신할 수 있다. 단계(460)은, 단말들(112 및 114)의 동작에 대해 독립적으로, 주기적으로 실행될 수 있다.
서버(210)는, 단계(430)에서 제1 단말(112)에게 락이 할당된 경우, 상기 락의 상태를 제1 단말(112)에게 할당된 것으로 설정할 수 있다.
단계(470)에서, 제1 단말(112)은, 예컨대 ReleaseLock 메쏘드를 실행함으로써, 락의 해제 요청 메시지를 서버(210)에게 전송한다.
서버(210)는 제1 단말(112)로부터 락의 해제 요청 메시지를 수신한다.
해제 요청 메시지는 락의 ID를 포함할 수 있다.
단계(475)에서, 서버(210)는, 예컨대 UnregisterLock 메쏘드를 실행함으로써, 락을 할당으로부터 해제한다.
단계(475)에서, 서버(210)는, 예컨대 AllLockUpdate 메쏘드를 실행함으로써, 서버(210)가 관리하는 모든 락들의 상태를 갱신할 수 있다.
단계(480)에서, 서버(210)는, 예컨대 ReleaseLockResult 메쏘드를 실행함으로써, 해제 요청의 승인 메시지를 제1 단말(112)로 전송한다.
제1 단말(112)은 서버(210)로부터 해제 요청의 승인 메시지를 수신한다.
해제 요청의 승인 메시지는 락의 ID를 포함할 수 있다.
전술된 단계들(410, 440, 450, 455, 470 및 480)에서, 제1 단말(112)이 수행하는 메쏘드들을 동일한 생명 주기를 갖는 코드 블록(485)으로 볼 수 있다.
단계(490)에서, 제2 단말(114)에 의해 다음 코드 블록이 수행된다.
즉, 제2 단말(114)은 락의 할당 요청 메시지를 서버(210)로 전송한다. 단계(490)는 단계(410)에 대응한다.
도 5는 본 발명의 일 예에 따른 락 사용을 위한 메쏘드를 설명한다.
본 예에서, 제1 단말(112)이 공유 자원(120)을 사용한다. 즉, 제1 단말(112)은 공유 자원(120)의 소비자(consumer)이다.
AcquireLock 메쏘드의 정의(510) 및 ReleaseLock 메쏘드의 정의(530)가 도시되었다.
AcquireLock 메쏘드의 반환 값(512)은 이진(Boolean) 타입일 수 있다. 즉, 반환 값(512)은 락의 할당 여부를 참(true) 또는 거짓(false)으로 나타낼 수 있다.
서버(210)에 의해 제공되는 락을 사용함으로써 코드 영역(310)을 동기화하기 위해, 제1 단말(112)은 AcquireLock 메쏘드를 사용하여, 네트워크를 통해 락의 할당을 요청한다.
AcquireLock 메쏘드가 호출되면, 제1 단말(112)은 락을 할당 받을 때(또는, 락을 할당 받지 못함을 통지 받을 때)까지 대기할 수 있다. 즉, 제1 단말(112)의 동작이 락의 할당에 대해 동기화될 수 있다.
AcquireLock 메쏘드는 락의 명칭 공간을 나타내는 명칭 공간 파라미터(514) 및 락의 명칭을 나타내는 명칭 파라미터(516)를 포함할 수 있다.
명칭 공간 파라미터(514) 및 명칭 파라미터(516)는 서버(210)가 할당을 요청하는 락을 식별할 수 있게 한다.
AcquireLock 메쏘드는 타임 아웃 파라미터(516)를 포함할 수 있다.
제1 단말(112)은 타임 아웃 파라미터가 가리키는 시간 동안 할당 요청의 승인 메시지가 서버(210)로부터 전송되지 않으면, 락의 할당이 실패된 것으로 처리할 수 있다. 예컨대, 타임 아웃 파라미터가 가리키는 시간 동안 할당 요청의 승인 메시지가 서버(210)로부터 전송되지 않으면 메쏘드의 반환 값(512)이 거짓이 될 수 있다. 즉, 타임 아웃 파라미터(516)는 락의 획득을 위해 제1 단말(112)이 대기하는 최대 시간을 나타낼 수 있다.
AcquireLock 메쏘드를 수행한 후, 제1 단말(112)은 코드(520)를 실행한다.
코드(520)는 코드 영역(310)을 포함할 수 있으며, 락의 할당이 실패한 경우에 수행되는 예외 처리(exception handling) 코드를 포함할 수 있다.
즉, 코드(520)는 AcquireLock 메쏘드의 반환 값에 기반하여 코드 영역(310) 및 예외 처리 등을 수행한다.
ReleaseLock 메쏘드는 동기화의 대상이 되는 코드 영역(310)에 대한 처리가 종료된 후, 할당된 락의 해제를 서버(210)에게 요청한다.
즉, 제1 단말(112)은 동기화 하고자 했던 코드(520)에 대한 처리가 종료된 후, ReleaseLock 메쏘드를 사용하여 할당된 락의 해제를 서버(210)에게 요청할 수 있다.
ReleaseLock 메쏘드는 락의 명칭 공간을 나타내는 명칭 공간 파라미터(534) 및 락의 명칭을 나타내는 명칭 파라미터(536)를 포함할 수 있다.
명칭 공간 파라미터(534) 및 명칭 파라미터(536)는 서버(210)가 할당으로부터의 해제를 요청하는 락을 식별할 수 있게 한다.
명칭 공간 파라미터(534)는 AcquireLock 메쏘드의 명칭 공간 파라미터(514)와 동일한 내용(예컨대, 문자열)을 가질 수 있다. 또한, 명칭 파라미터(536)는 AcquireLock 메쏘드의 명칭 파라미터(516)와 동일한 내용(예컨대, 문자열)을 가질 수 있다.
ReleaseLock 메쏘드는 AcquireLock 메쏘드의 반환 값(512)에 대응하는 결과 파라미터(538)를 포함할 수 있다.
결과 파라미터(538)는 이진(Boolean) 타입일 수 있다. 결과 파라미터(538)의 값이 거짓일 경우, ReleaseLock 메쏘드는 서버(210)에게 락의 해제를 요청하지 않을 수 있다.
도 6은 본 발명의 일 실시예에 따른 단말(600)의 구조도이다.
단말(600)은 하나 이상의 단말들(110) 중 하나의 단말(예컨대, 제1 단말(112) 또는 제2 단말(114))을 나타낼 수 있다.
단말(600)은 저장부(610), 제어부(620) 및 송수신부(620)를 포함할 수 있다.
저장부(610)는 하나 이상의 단말들에 의해 공유되는 공유 데이터(120)를 접근하는 코드(예컨대, 코드 영역(310), 코드 블록(485) 및 코드(520) 등)을 저장한다.
제어부(620)는 전술된 메시지(예컨대, 락의 할당 요청 메시지 및 락의 해제 요청 메시지)를 생성한다.
제어부(620)는 서버(210)로부터 락의 할당 요청의 승인을 획득한 후, 코드(예컨대, 코드 영역(310), 코드 블록(485) 및 코드(520) 등)를 실행한다.
송수신부(630)는 락의 할당 요청 메시지 및 락의 해제 요청 메시지를 서버(210)로 전송하고, 서버(210)로부터 할당 요청의 승인 메시지를 수신하여 할당 요청의 승인을 제어부로 전달한다.
송수신부(630)는 서버(210)로부터 해제 요청의 승인 메시지를 수신하여, 해제 요청의 승인을 제어부(620)로 전달할 수 있다.
락의 식별자는 문자열일 수 있다. 락의 할당 요청 메시지, 락의 할당 요청의 승인을 나타내는 메시지, 락의 해제 요청 메시지 및 락의 해제 요청의 승인을 나타내는 메시지는 식별자를 포함할 수 있다.
또한, 락의 할당 요청 메시지, 락의 할당 요청의 승인 메시지, 락의 해제 요청 메시지 및 락의 해제 요청의 승인 메시지는 락의 명칭 공간 및 락의 명칭을 포함할 수 있다.
락의 할당 요청 메시지는 타임 아웃 파라미터를 포함할 수 있고, 제어부(620)는 타임 아웃 파라미터가 가리키는 시간 동안 락의 할당 요청의 승인이 획득되지 않으면, 락의 할당이 실패된 것으로 처리할 수 있다.
앞서 도 1 내지 도 5를 참조하여 설명된 본 발명의 일 실시예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 하나 이상의 단말들
120: 공유 데이터
210: 서버

Claims (13)

  1. 단말로부터 코드 영역에 대한 인터넷 범위의 락의 할당 요청 메시지를 수신하는 단계- 상기 코드 영역은 상기 단말을 포함하는 네트워크로 연결된 하나 이상의 단말들에 의해 공유되는 데이터를 접근함 -;
    상기 락이 할당 중인지 검사하는 단계;
    상기 락이 할당 중이지 않은 경우, 상기 단말에게 상기 락을 할당하는 단계;
    상기 할당 요청의 승인 메시지를 상기 단말로 전송하는 단계;
    상기 단말로부터 상기 락의 해제 요청 메시지를 수신하는 단계;
    상기 락을 상기 할당으로부터 해제하는 단계; 및
    모든 락들의 상태를 갱신하는 단계를 포함하고,
    상기 코드 영역은, 상기 공유되는 데이터를 접근하는 특정 구간의 코드로서, 상기 공유되는 데이터에 대해 실행하고자 하는 함수(function), 메쏘드(method) 또는 루틴(routine)을 포함하고,
    상기 락을 할당받은 단말은, 상기 코드 영역을 실행함에 따라 상기 공유되는 데이터에 접근하는 것을 특징으로 하는, 공유 데이터에 대한 동기화 제공 방법.
  2. 제1항에 있어서,
    상기 코드 영역은 상기 단말 내에서 실행되는, 공유 데이터에 대한 동기화 제공 방법.
  3. 제1항에 있어서,
    상기 락의 식별자는 문자열이며, 상기 할당 요청 메시지, 상기 할당 요청의 승인 메시지, 상기 해제 요청 메시지 및 해제 요청의 승인 메시지는 상기 식별자를 포함하는, 공유 데이터에 대한 동기화 제공 방법.
  4. 단말이 코드 영역을 실행함으로써 네트워크로 연결된 하나 이상의 단말들 간에 공유되는 데이터를 접근하는 방법에 있어서,
    상기 코드 영역에 대한 인터넷 범위의 락의 할당 요청 메시지를 서버로 전송하는 단계;
    상기 서버로부터 상기 할당 요청의 승인 메시지를 수신하는 단계;
    상기 코드 영역을 실행함으로써 상기 데이터를 접근하는 단계; 및
    상기 락의 해제 요청 메시지를 상기 서버로 전송하는 단계
    를 포함하고,
    상기 코드 영역은, 상기 공유되는 데이터를 접근하는 특정 구간의 코드로서, 상기 공유되는 데이터에 대해 실행하고자 하는 함수(function), 메쏘드(method) 또는 루틴(routine)을 포함하고,
    상기 락의 할당 및 해제에 기초하여 모든 락들의 상태가 갱신되는, 공유 데이터 접근 방법.
  5. 제4항에 있어서,
    상기 서버로부터 상기 해제 요청의 승인 메시지를 수신하는 단계
    를 더 포함하는, 공유 데이터 접근 방법.
  6. 제5항에 있어서,
    상기 코드 영역은 상기 단말 내에서 실행되는, 공유 데이터 접근 방법.
  7. 제5항에 있어서,
    상기 락의 식별자는 문자열이며, 상기 할당 요청 메시지, 상기 할당 요청의 승인 메시지, 상기 해제 요청 메시지 및 해제 요청의 승인 메시지는 상기 식별자를 포함하는, 공유 데이터 접근 방법.
  8. 제5항에 있어서,
    상기 할당 요청 메시지는 타임 아웃 파라미터를 포함하고,
    상기 단말은 상기 타임 아웃 파라미터가 가리키는 시간 동안 상기 할당 요청의 승인 메시지가 상기 서버로부터 전송되지 않으면, 상기 락의 할당이 실패된 것으로 처리하는, 공유 데이터 접근 방법.
  9. 제1항 내지 제8항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 하나 이상의 단말들에 의해 공유되는 데이터를 접근하는 코드를 저장하는 저장부;
    서버에게 상기 코드에 대한 인터넷 범위의 락의 할당을 요청하는 락의 할당 요청 메시지를 생성하고, 상기 서버로부터 상기 할당 요청의 승인을 획득한 후 상기 코드를 실행하고, 상기 서버에게 상기 락의 해제를 요청하는 락의 해제 요청 메시지를 생성하는 제어부; 및
    상기 할당 요청 메시지 및 상기 락의 해제 요청 메시지를 상기 서버로 전송하고, 상기 서버로부터 상기 락의 할당 요청의 승인 메시지를 수신하여 상기 할당 요청의 승인을 상기 제어부로 전달하는 송수신부
    를 포함하고,
    상기 코드는, 상기 공유되는 데이터를 접근하는 특정 구간의 코드로서, 상기 공유되는 데이터에 대해 실행하고자 하는 함수(function), 메쏘드(method) 또는 루틴(routine)을 포함하고,
    상기 제어부는, 상기 코드를 실행함에 따라 상기 공유되는 데이터에 접근하고,
    상기 락의 할당 및 해제에 기초하여 모든 락들의 상태가 갱신되는 것을 특징으로 하는, 단말.
  11. 제10항에 있어서,
    상기 송수신부는 상기 서버로부터 상기 해제 요청의 승인 메시지를 수신하여 상기 해제 요청의 승인을 상기 제어부로 전달하는, 단말.
  12. 제10항에 있어서,
    상기 락의 식별자는 문자열이며, 상기 락의 할당 요청 메시지, 상기 락의 할당 요청의 승인을 나타내는 메시지, 상기 락의 해제 요청 메시지 및 상기 락의 해제 요청의 승인을 나타내는 메시지는 상기 식별자를 포함하는, 단말.
  13. 제10항에 있어서,
    상기 락의 할당 요청 메시지는 타임 아웃 파라미터를 포함하고,
    상기 제어부는 상기 타임 아웃 파라미터가 가리키는 시간 동안 상기 락의 할당 요청의 승인이 획득되지 않으면, 상기 락의 할당이 실패된 것으로 처리하는, 단말.
KR1020160073305A 2016-06-13 2016-06-13 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치 KR101642027B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160073305A KR101642027B1 (ko) 2016-06-13 2016-06-13 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160073305A KR101642027B1 (ko) 2016-06-13 2016-06-13 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110079562A Division KR101632364B1 (ko) 2011-08-10 2011-08-10 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160078306A KR20160078306A (ko) 2016-07-04
KR101642027B1 true KR101642027B1 (ko) 2016-07-25

Family

ID=56501566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160073305A KR101642027B1 (ko) 2016-06-13 2016-06-13 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101642027B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240585A1 (en) 2004-04-27 2005-10-27 International Businesss Machines Corporation Locker manager for managing access to shared resources

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990053525A (ko) * 1997-12-24 1999-07-15 전주범 실시간 시스템의 자원 공유 방법
US7222119B1 (en) * 2003-02-14 2007-05-22 Google Inc. Namespace locking scheme
US8666958B2 (en) * 2009-11-27 2014-03-04 International Business Machines Corporation Approaches to reducing lock communications in a shared disk database

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240585A1 (en) 2004-04-27 2005-10-27 International Businesss Machines Corporation Locker manager for managing access to shared resources

Also Published As

Publication number Publication date
KR20160078306A (ko) 2016-07-04

Similar Documents

Publication Publication Date Title
CN109101341B (zh) 分布式锁的分配方法及设备
EP3308275B1 (en) Recovery in data centers
US7991822B2 (en) Propagation of updates for attributes of a storage object from an owner node of the storage object to other nodes
US7376744B2 (en) Using local locks for global synchronization in multi-node systems
US8396968B2 (en) Information processor and resource scheduling method
US11675622B2 (en) Leader election with lifetime term
JP2007122664A (ja) 情報処理方法および情報処理装置
US8666958B2 (en) Approaches to reducing lock communications in a shared disk database
CN106802939B (zh) 一种解决数据冲突的方法和系统
JP4407956B2 (ja) 情報処理方法および情報処理装置
CN111858045A (zh) 一种多任务gpu资源调度方法、装置、设备及可读介质
JPWO2012008016A1 (ja) マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法
CN110968563B (zh) 一种数据存储方法、元数据服务器及客户端
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
KR101642027B1 (ko) 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치
US11372690B2 (en) Multi-phase distributed task coordination
KR101632364B1 (ko) 인터넷 공유 자원에 대한 동기화를 위한 방법 및 장치
CN111930503A (zh) 一种基于etcd的资源锁获取方法
US20140289725A1 (en) Threads in operating systems without kernel thread support
CN116662426A (zh) 数据库连接的建立方法、装置、设备及介质
CN110659303A (zh) 一种数据库节点的读写控制方法及装置
CN114647663A (zh) 一种资源处理方法、装置、系统、电子设备及存储介质
CN110019057B (zh) 请求处理方法及装置
CN112486696A (zh) 一种获取分布式锁的方法及设备
CN110879747B (zh) 资源管理方法及装置

Legal Events

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

Payment date: 20190624

Year of fee payment: 4