KR20030068779A - 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법 - Google Patents

데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법 Download PDF

Info

Publication number
KR20030068779A
KR20030068779A KR1020020008393A KR20020008393A KR20030068779A KR 20030068779 A KR20030068779 A KR 20030068779A KR 1020020008393 A KR1020020008393 A KR 1020020008393A KR 20020008393 A KR20020008393 A KR 20020008393A KR 20030068779 A KR20030068779 A KR 20030068779A
Authority
KR
South Korea
Prior art keywords
client
information
thread
data area
library
Prior art date
Application number
KR1020020008393A
Other languages
English (en)
Other versions
KR100450419B1 (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-0008393A priority Critical patent/KR100450419B1/ko
Publication of KR20030068779A publication Critical patent/KR20030068779A/ko
Application granted granted Critical
Publication of KR100450419B1 publication Critical patent/KR100450419B1/ko

Links

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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

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

Abstract

본 발명은 클라이언트/서버로 동작하는 데이터베이스 시스템에서 클라이언트 프로세서가 다중 쓰레드로 동작하도록 하기 위한 클라이언트 라이브러리 동작방법에 관한 것이다. 이를 위해 본 발명은 클라이언트/서버로 동작하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법에 있어서, 클라이언트 라이브러리를 기능별로 다수개의 라이브러리 그룹으로 분류하고 상기 각 그룹을 기능별 함수로 분류하여 구성하는 제1 단계; 상기 분류된 각 라이브러리 그룹 내의 각 함수가 하나의 클라이언트 프로세스내에서 동작하는 다수의 쓰레드 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당받는 제2 단계; 상기 할당된 쓰레드 특정 데이터 영역을 클라이언트 라이브러리에서 사용하는 정보로 분할하는 제3 단계; 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록한 후 서버로 메시지를 전송하는 제4 단계; 상기 서버로부터 메시지를 전송 받아 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록하고 그 결과값을 클라이언트 쓰레드에 반환하는 제5 단계; 및 쓰레드 종료시 상기 할당된 쓰레드 특정 데이터 영역을 반환하는 제6 단계를 포함한다.

Description

데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법{A Method of the Multi-thread Client Liberary's Operating in Database System}
본 발명은 데이터베이스 시스템에서의 클라이언트 라이브러리 동작에 관한 것으로서 보다 상세하게는, 클라이언트/서버로 동작하는 데이터베이스 시스템에서클라이언트 프로세서가 다중 쓰레드로 동작하도록 클라이언트 라이브러리를 효과적으로 분류하여 동작시킴으로써 데이터베이스 시스템에서의 클라이언트와 서버의 성능을 향상시키는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로 클라이언트/서버로 동작하는 데이터베이스 시스템에서는 클라이언트 응용 프로그램내에서 질의를 처리하기 위하여 ESQL/C나 그와 유사한 형태의 클라이언트 응용 프로그램 인터페이스를 제공한다. 클라이언트 응용 프로그램은 서버가 동작하는 동일 머신 상에서 동작하는 로컬 클라이언트와 서버와 다른 머신에서 동작하는 리모트 클라이언트로 구분된다. 로컬 및 리모트 클라이언트 응용 프로그램에서는 서버 프로세스에 접근하기 위한 방법으로 ESQL/C로 작성된 프로그램을 사용 가능하며, 이 응용이 서버에게 질의 처리를 요청하기 위한 클라이언트 라이브러리를 사용한다.
이와 관련된 선행특허로, '서버/클라이언트 관계 데이터베이스 관리 시스템에서 클라이언트와 서버간의 자료 전달 방법'(대한민국 특허출원 제1994-35466호)에는 클라이언트 라이브러리를 구성하는데 있어 질의 처리시에 사용된 데이터 유형에 따라 서버로 데이터를 전송하는 방법 및 서버에서 전달받은 데이터를 복원하는 방법을 차별화함으로써 서버와 클라이언트 사이에 효과적으로 데이터를 전달하는 방법에 대해 기술하였다.
또한, '데이터베이스 관리 시스템의 대화형 질의어 관리방법'(대한민국 특허출원 제1996-49490호)에서는 교환기 시스템의 운용자용 단말기에서 분산 실시간 주기억장치 상주 데이터베이스에 접근하기 위한 대화형 질의어 관리 방법에 관한 것으로 사용자가 운용자용 단말기를 통하여 데이터를 입력하고 메뉴를 선택하는 사용자 편의 위주의 인터페이스 방식에 따라 교환기 운용 중에 교환기 데이터베이스에 접근하여 데이터를 검색 또는 변경할 수 있는 방법에 대해 기술하였다.
한편, '교환기의 데이터베이스 매니지먼트 시스템의 질의어 처리 방법 및 장치'(대한민국 특허출원 제1998-21519호)에서는 교환기 시스템의 운용자가 DBMS에서 제공하는 운용자 질의 인터페이스를 통하여 DBMS의 유지 및 보수를 위한 각종 질의어를 교환기에 입력할 수 있는데, 이때 유사한 성질을 가지는 다수의 질의어를 프로그래밍하여 한번에 입력 및 처리할 수 있도록 하는 질의어 처리방법 및 장치에 대해 기술하였다.
상술한 바와 같이 종래의 기술에서는 DBMS 클라이언트가 다중 프로세스로 동작하는 환경이었으며, 클라이언트 인터페이스를 사용자 편의 위주로 하며, 클라이언트와 서버의 데이터 전달 방법 및 유사한 질의어를 한꺼번에 전달하기 위한 방법에 관한 것이다.
이러한 다중 프로세스 클라이언트 환경에서는 응용 프로그램 구동시 각 작업 단위마다 하나의 프로세스로 동작하였으므로 시스템 성능에 장애를 초래하였다. 또한, 이러한 프로세스간에 데이터를 공유하기 위해서는 프로세스간 통신(IPC;Inter-Process Communications) 방법을 사용함으로써 프로그램 작성이 어려웠고 응용 프로그램간의 성능 또한 저하되었다. 나아가, DBMS 클라이언트에서 유효하지 않은 상태의 질의를 서버에서 처리하도록 함으로써 서버 성능도 저하되는 문제점이 있었다.
상술한 바와 같은 문제점을 해결하기 위한 본 발명의 목적은, DBMS의 클라이언트가 다중 프로세스 클라이언트 환경이나 다중 쓰레드 클라이언트 환경에 모두 동작할 수 있는 효율적인 다중 쓰레드 클라이언트 라이브러리 동작방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.
도 1은 본 발명에 따른 다중 쓰레드로 동작하는 클라이언트 라이브러리 구성도의 일실시예이다.
도 2는 본 발명에 따른 다중 쓰레드로 동작하는 클라이언트 라이브러리 함수의 동작 순서도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 다중쓰레드 클라이언트 라이브러리
101 : 데이터 정의 언어 관련 라이브러리
102 : 데이터 조작 언어 관련 라이브러리
103 : 시스템 정보 및 에러 처리 관련 라이브러리
상술한 목적을 달성하기 위한 본 발명은, 클라이언트/서버로 동작하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법에 있어서, 클라이언트 라이브러리를 기능별로 다수개의 라이브러리 그룹으로 분류하고 상기 각 그룹을 기능별 함수로 분류하여 구성하는 제1 단계; 상기 분류된 각 라이브러리 그룹 내의 각 함수가 하나의 클라이언트 프로세스내에서 동작하는 다수의 쓰레드 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당받는 제2 단계; 상기 할당된 쓰레드 특정 데이터 영역을 클라이언트 라이브러리에서 사용하는 정보로 분할하는 제3 단계; 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록한 후 서버로 메시지를 전송하는 제4 단계; 상기 서버로부터 메시지를 전송 받아 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록하고 그 결과값을 클라이언트 쓰레드에 반환하는 제5 단계; 및 쓰레드 종료시 상기 할당된 쓰레드 특정 데이터 영역을 반환하는 제6 단계를 포함한다.
또한, 상기 목적을 달성하기 위한 본 발명은, 컴퓨터에, 클라이언트 라이브러리를 기능별로 다수개의 라이브러리 그룹으로 분류하고 상기 각 그룹을 기능별 함수로 분류하여 구성하는 제1 기능; 상기 분류된 각 라이브러리 그룹 내의 각 함수가 하나의 클라이언트 프로세스내에서 동작하는 다수의 쓰레드 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당받는 제2 기능; 상기 할당된 쓰레드 특정 데이터 영역을 클라이언트 라이브러리에서 사용하는 정보로 분할하는 제3 기능; 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록한 후 서버로 메시지를 전송하는 제4 기능; 상기 서버로부터 메시지를 전송 받아 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록하고 그 결과값을 클라이언트 쓰레드에 반환하는 제5 기능; 및 쓰레드 종료시 상기 할당된 쓰레드 특정 데이터 영역을 반환하는 제6 기능을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 클라이언트/서버로 동작하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리의 효과적인 동작방법에 관한 것으로서, 클라이언트 라이브러리를 각 기능별로 다수개의 그룹으로 분류하고 상기 각 그룹을 다수개의 기능 함수로 분류한 후, 상기 각 그룹내의 각 함수에서 각각의 쓰레드별로 특정 데이터 영역을 할당하고 상기 영역에 데이터베이스 시스템 클라이언트로 동작하기 위한 정보를 유지하여 클라이언트 프로세서가 다중 쓰레드로 동작하도록 하며, 상기 쓰레드 내에 유지하고 있는 정보의 유효성을 판별하여 데이터베이스 서버에 질의 처리를 요청할 것인가를 결정함으로써 데이터베이스 시스템 클라이언트와 서버의 성능을 향상시키기 위한 것이다.
이하, 본 발명의 바람직한 일실시예를 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명에 따른 하나의 클라이언트 프로세서가 다중 쓰레드로 동작하기 위한 클라이언트 라이브러리 구성도의 일실시예이다. 도 1에 도시된 바와 같이, 다중 쓰레드로 동작하는 클라이언트 라이브러리(100)를 각 기능별로 다수개의 라이브러리 그룹으로 분류한다. 도 1에서는 그 일실시예로 상기 다중 쓰레드 클라이언트 라이브러리(100)를 기능별로 3개의 라이브러리 그룹(101,102,103)으로 분류한 것을 도시한다. 즉, 도 1에 도시된 바와 같이 본 발명에 따른 다중 쓰레드로 동작하는 클라이언트 라이브러리(100)는 데이터 정의 언어(DDL;Data Definition Language)와 관련된 라이브러리(101), 데이터 조작 언어(DML;Data Manipulation Language)와 관련된 라이브러리(102), 기타 시스템 정보 및 에러 처리와 관련된 라이브러리(103)로 구성된다.
상기 각각의 라이브러리 그룹(101,102,103)은 다수개의 기능 함수들로 구성된다. 즉, 상기 데이터 정의 언어 관련 라이브러리(101)는 쓰레드 특정 데이터 영역 할당/해제부(104), 연결 설정/해제부(105), 트랜잭션 시작/완료/철회부(106),클래스 생성/삭제부(107), 인덱스 생성/삭제부(108), 사용자 정의 타입 생성/삭제부(109) 등의 함수로 구성되며, 상기 데이터 조작 언어 관련 라이브러리(102)는 커서 개방/폐쇄부(110), 레코드 삽입/삭제/갱신/검색부(111), 현 커서 위치에서 레코드 갱신/삭제부(112) 등의 함수로 구성된다.
상기와 같은 다중 쓰레드로 동작하기 위해 클라이언트 라이브러리의 각 함수들이 어떠한 방식으로 동작하는지를 설명하도록 한다.
상기 분류된 각 그룹(101,102,103) 내의 각 함수들은 하나의 클라이언트 프로세스 내에서 동작하는 여러 쓰레드들 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당받게 된다. 이때, 상기 하나의 프로세스 내의 여러 쓰레드가 접근하기 위해 해당 쓰레드의 키값을 생성하여 상기 쓰레드 특정 데이트 영역과 상기 생성한 키값을 연관시킨다. 상기 할당된 쓰레드 특정 데이터 영역을 상기 클라이언트 라이브러리(100)에서 사용하는 정보로 분할한다. 상기 정보는 상기 쓰레드 특정 데이터 영역을 데이터베이스 시스템 서버와 통신을 위해 필요한 환경정보, 상기 서버와 메시지를 주고 받기 위해 필요한 정보이다. 즉, 상기 서버와의 연결 상태를 나타내는 연결 설정 정보, 현재 클라이언트의 쓰레드 내에서 수행중인 트랜잭션 정보, 하나의 트랜잭션 내에서 수행중인 커서 정보, 서버에 보내는 SQL 스트링을 저장하기 위한 버퍼 정보 등이다.
이와 같이 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록한 후 서버로 메시지를 전송한다. 이어, 상기 서버로부터 메시지를 전송받으면 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록하고 그 결과값을 클라이언트 쓰레드에 반환한다. 이와 같이 쓰레드가 종료될때 상기 할당된 쓰레드 특정 데이터 영역을 반환하게 된다.
이와 같이 각 그룹내의 각 함수에서 각각의 쓰레드별로 특정 데이터 영역을 할당하고 그 영역에 DBMS 클라이언트로 동작하기 위한 정보를 유지하여 클라이언트 프로세스가 다중 쓰레드로 동작하도록 하며, 각 쓰레드내에 유지하고 있는 정보의 유효성을 판별하게 된다.
이하, 도 2를 참조하여 상기와 같이 구성된 다중 쓰레드로 동작하는 클라이언트 라이브러리의 각 함수들의 동작을 보다 구체적으로 설명한다.
도 2는 본 발명에 따른 다중 쓰레드로 동작하는 클라이언트 라이브러리의 동작 순서도로서, 클라이언트/서버로 동작하는 데이터베이스 시스템에서 하나의 클라이언트 프로세서가 다중 쓰레드로 동작하기 위한 클라이언트 라이브러리를 구성하는 과정을 나타낸다. 본 발명에서는 다중 쓰레드로 동작하는 클라이언트 라이브러리가 수행을 위하여 필요한 모든 정보를 쓰레드 특정 데이터 영역에 유지한다. 따라서 도 2에 도시된 바와 같이 클라이언트 라이브러리가 호출되면(S200) 해당 라이브러리 수행에 필요한 정보를 획득하기 위하여 해당 쓰레드의 특정 데이터 영역에 접근한다(S201). 상기 해당 영역의 할당 여부를 조사하여 특정 테이터 영역이 할당되어 있는지 판단한다(S202). 상기 단계(S202)의 판단결과 상기 해당 영역이 할당되어 있지 않은 경우에는 상기 해당 영역을 할당하고(S203) 상기 할당된 영역을 클라이언트 라이브러리에서 사용하는 정보로 분할 및 초기화하여 사용한다(S204). 이때, 상기 단계(S203)에서의 영역 할당은, 하나의 클라이언트 프로세서 내에서 동작하는 다수의 쓰레드 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당한다.
그러나, 상기 단계(S202)의 판단결과 이미 할당되어 있는 경우 상기 할당된 영역을 그대로 사용하여 상기 접근한 쓰레드 특정 데이터 영역의 연결 설정 정보, 트랜잭션 관련 정보, 커서 관련 정보 등의 상기 특정 데이터 영역의 정보가 유효한지를 판단한다(S205). 상기 단계(S205)의 판단결과 상기 특정 데이터 영역의 정보가 유효하지 않은 것으로 판단되면 상기 쓰레드 특정 데이터 영역의 관련 정보를 초기화하고(S206) 관련 에러를 반환한다(S207). 반대로, 상기 단계(S205)의 판단결과 상기 특정 데이터 영역의 정보가 유효한 것으로 판단되면, DBMS 서버로 클라이언트 라이브러리에서 필요한 질의를 전송하고 그 결과를 수신한다(S208). 상기 과정이 정상적으로 수행되었는지 검사하여(S209), 상기 과정이 비정상적으로 수행되었을 경우 상기 쓰레드 특정 데이터 영역의 관련 정보를 초기화하고(S206) 관련 에러를 반환한다(S207).
그러나, 상기 단계(S209)의 검사결과 상기 과정이 정상적으로 수행되었을 경우는, 서버로부터 전송 받은 질의 처리 결과가 연결 설정 정보에 대한 오류인지를 검사한다(S210). 상기 단계(S210)의 검사결과 상기 서버로부터 전송된 상기 질의 처리 결과가 연결 설정 정보에 대한 오류인 경우 상기 쓰레드 특정 데이터 영역의 관련 정보를 초기화하고(S206) 관련 에러를 반환한다(S207). 그러나, 상기 단계(S210)의 검사결과 상기 연결 설정 정보에 대한 오류가 아닌 경우에는 관련 특정 데이터 영역의 관련 정보를 상기 서버로부터 전송 받은 정보로 지정하고 그 결과를 반환한다(S211). 여기서, 상기 서버로부터 연결 설정에 대한 오류 메시지가 반환되는 경우는 연결 설정 정보, 트랜잭션 정보, 커서 정보 등을 초기화하고 상기 클라이언트 쓰레드에 오류를 반환함으로써 추후에 연결 설정을 시도하는 클라이언트 라이브러리 이외의 클라이언트 라이브러리 호출시 더 이상 정상적으로 수행하지 않도록 한다.
상술한 바와 같이 클라이언트 프로세스가 다중 쓰레드로 동작하도록 하며 쓰레드 내에 유지하고 있는 정보의 유효성을 판별하여 DBMS 서버의 질의 처리를 요청할 것인가를 결정함으로써 DBMS 클라이언트와 서버의 성능을 향상시킬 수 있다.
상술한 본 발명은 하기와 같은 효과를 가진다.
첫째, 다중 쓰레드 클라이언트로 동작하는 환경에서는 쓰레드의 실행 크기와 실행 속도가 다중 프로세스 클라이언트 환경에서 동작하는 프로세스의 실행 크기와 실행 속도 보다 작고 빠르기 때문에 다중 프로세스 클라이언트 환경에 비해 응용 프로그램에 대한 시스템의 오버헤드를 줄인다.
둘째, 기존 다중 프로세스 클라이언트 환경에서는 프로세스 사이의 자원을 공유하기 위한 방법으로 프로세스간 통신(Inter-Process Communications, IPC) 방법을 사용하였으나 다중 쓰레드 클라이언트 환경에서는 이러한 IPC 방법을 사용할 필요가 없으므로 응용 프로그램 작성이 용이하다.
셋째, 다중 쓰레드 클라이언트 라이브러리내에 각각의 쓰레드가 유지하고 있는 연결 설정 정보, 트랜잭션 정보, 커서 정보 등을 이용하여 쓰레드 유지 정보 오류시 DBMS 서버로 메시지를 전송하여 DBMS 서버로부터 메시지 처리 결과를 기다리지 않음으로써 클라이언트에 빠른 응답시간을 제공한다.
넷째, 다중 쓰레드 클라이언트 라이브러리에서 유효하지 않은 메시지를 DBMS 서버에 전송하여 메시지 처리를 요구하지 않음으로써 DBMS 서버에 대한 부담을 줄인다.
다섯째, 위와 같이 클라이언트는 다중 쓰레드로 동작하면서 빠른 응답 시간을 제공하고, 서버에 대한 부담을 줄임으로써 DBMS 클라이언트와 서버 전체 시스템의 성능을 향상시킨다.

Claims (8)

  1. 클라이언트/서버 구조의 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법에 있어서,
    클라이언트 라이브러리를 기능별로 다수개의 라이브러리 그룹으로 분류하고 상기 각 그룹을 기능별 함수로 분류하여 구성하는 제1 단계;
    상기 분류된 각 라이브러리 그룹 내의 각 함수가 하나의 클라이언트 프로세스내에서 동작하는 다수의 쓰레드 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당받는 제2 단계;
    상기 할당된 쓰레드 특정 데이터 영역을 클라이언트 라이브러리에서 사용하는 정보로 분할하는 제3 단계;
    상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록한 후 서버로 메시지를 전송하는 제4 단계;
    상기 서버로부터 메시지를 전송 받아 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록하고 그 결과값을 클라이언트 쓰레드에 반환하는 제5 단계; 및
    쓰레드 종료시 상기 할당된 쓰레드 특정 데이터 영역을 반환하는 제6 단계를 포함하는 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  2. 제 1 항에 있어서, 상기 제1 단계는,
    상기 클라이언트 라이브러리는 데이터 정의 언어 관련 라이브러리, 데이터 조작 언어 관련 라이브러리 및 시스템 정보나 에러 처리 관련 라이브러리로 분류하는 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  3. 제 2항에 있어서,
    상기 데이터 정의 언어 관련 라이브러리를 쓰레드 특정 데이터 영역 할당/해제, 연결 설정/해제, 트랜잭션 시작/완료/철회, 클래스 생성/삭제, 인덱스 생성/삭제, 사용자 정의 타입 생성/삭제의 함수로 분류하고 상기 데이터 조작 언어 관련 라이브러리를 커서 개방/폐쇄, 레코드 삽입/삭제/갱신/검색, 현 커서 위치에서 레코드 갱신/삭제의 함수로 분류하는 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  4. 제 1항에 있어서, 상기 제2 단계는,
    해당 쓰레드의 키값을 생성하여 상기 할당된 쓰레드 특정 데이터 영역과 연관시켜 하나의 프로세스 내의 다수의 쓰레드가 접근하도록 하는 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  5. 제 1 항에 있어서,
    상기 제3 단계의 정보는 상기 쓰레드 특정 데이터 영역을 서버와 통신을 위해 필요한 클라이언트 환경정보 및 상기 서버와 메시지를 주고 받기 위해 필요한 정보인 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  6. 제 1항에 있어서, 상기 제4 단계는,
    상기 서버로 메시지를 보내기 전에 연결설정 정보, 트랜잭션 정보, 커서 정보의 유효여부를 검사하는 단계;
    상기 정보들이 유효하지 않으면 상기 서버로 메시지를 전송하지 않고 클라이언트 쓰레드에 오류를 반환하는 단계; 및
    상기 메시지 전송이나 기타 시스템 함수 호출시 오류가 발생시 상기 서버로 메시지를 전송하지 않고 상기 정보들을 초기화하여 상기 클라이언트 쓰레드에 오류를 반환하는 단계를 추가로 포함하는 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  7. 제 1항에 있어서, 상기 제5 단계는,
    상기 서버로부터 연결 설정에 대한 오류 반환시 연결 설정 정보, 트랜잭션 정보, 커서 정보를 초기화하여 상기 클라이언트 쓰레드에 오류를 반환하는 단계를 추가로 포함하는 것을 특징으로 하는 데이터베이스 시스템에서 다중 쓰레드로 동작하는 클라이언트 라이브러리 동작방법.
  8. 컴퓨터에,
    클라이언트 라이브러리를 기능별로 다수개의 라이브러리 그룹으로 분류하고 상기 각 그룹을 기능별 함수로 분류하여 구성하는 제1 기능;
    상기 분류된 각 라이브러리 그룹 내의 각 함수가 하나의 클라이언트 프로세스내에서 동작하는 다수의 쓰레드 중 하나의 쓰레드만이 사용하는 특정 데이터 영역을 할당받는 제2 기능;
    상기 할당된 쓰레드 특정 데이터 영역을 클라이언트 라이브러리에서 사용하는 정보로 분할하는 제3 기능;
    상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록한 후 서버로 메시지를 전송하는 제4 기능;
    상기 서버로부터 메시지를 전송 받아 상기 분할된 쓰레드 특정 데이터 영역에 필요한 정보를 기록하고 그 결과값을 클라이언트 쓰레드에 반환하는 제5 기능; 및
    쓰레드 종료시 상기 할당된 쓰레드 특정 데이터 영역을 반환하는 제6 기능;
    을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2002-0008393A 2002-02-18 2002-02-18 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법 KR100450419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0008393A KR100450419B1 (ko) 2002-02-18 2002-02-18 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0008393A KR100450419B1 (ko) 2002-02-18 2002-02-18 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법

Publications (2)

Publication Number Publication Date
KR20030068779A true KR20030068779A (ko) 2003-08-25
KR100450419B1 KR100450419B1 (ko) 2004-09-30

Family

ID=32221617

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0008393A KR100450419B1 (ko) 2002-02-18 2002-02-18 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법

Country Status (1)

Country Link
KR (1) KR100450419B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153653A (zh) * 2016-03-03 2017-09-12 阿里巴巴集团控股有限公司 一种分库分表的轮询访问方法及装置
KR101852610B1 (ko) * 2017-11-16 2018-04-27 (주)시큐레이어 Ai 학습 기반 실시간 분석 시스템을 이용한 자원 사용 방법 및 이를 사용한 매니지먼트 서버

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2922723B2 (ja) * 1992-06-29 1999-07-26 キヤノン株式会社 情報処理装置
US6119145A (en) * 1997-02-28 2000-09-12 Oracle Corporation Multithreaded client application storing a separate context for each transaction thus allowing threads to resume transactions started by other client threads
US6192389B1 (en) * 1997-03-28 2001-02-20 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
JPH1115684A (ja) * 1997-06-26 1999-01-22 Hitachi Ltd ドライバ処理方法
KR100278303B1 (ko) * 1998-12-30 2001-01-15 이계철 다중접속 클라이언트와 단일접속 서버간의 통신방법
JP2001229035A (ja) * 2000-02-16 2001-08-24 Oki Electric Ind Co Ltd 処理システム及び処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153653A (zh) * 2016-03-03 2017-09-12 阿里巴巴集团控股有限公司 一种分库分表的轮询访问方法及装置
CN107153653B (zh) * 2016-03-03 2020-06-26 阿里巴巴集团控股有限公司 一种分库分表的轮询访问方法及装置
KR101852610B1 (ko) * 2017-11-16 2018-04-27 (주)시큐레이어 Ai 학습 기반 실시간 분석 시스템을 이용한 자원 사용 방법 및 이를 사용한 매니지먼트 서버

Also Published As

Publication number Publication date
KR100450419B1 (ko) 2004-09-30

Similar Documents

Publication Publication Date Title
US8799213B2 (en) Combining capture and apply in a distributed information sharing system
JP4301937B2 (ja) 分散データベース環境での一貫した読取
US7107267B2 (en) Method, system, program, and data structure for implementing a locking mechanism for a shared resource
US7844720B2 (en) Managing database connections
JP4612710B2 (ja) トランザクション並行制御方法、データベース管理システム、およびプログラム
WO1995031787A1 (en) Method and apparatus for handling requests regarding information stored in a file system
US20080141260A1 (en) User mode file system serialization and reliability
US20050256897A1 (en) Providing the timing of the last committed change to a row in a database table
JPH06337794A (ja) プログラム制御方式
US7962922B2 (en) Delivering callbacks into secure application areas
US20170337197A1 (en) Rule management system and method
US5784623A (en) Using a parent latch that covers a plurality of child latches to track the progress of a process attempting to acquire resources
CN111782419A (zh) 一种缓存更新方法、装置、设备及存储介质
KR100450419B1 (ko) 데이터베이스 시스템에서 다중 쓰레드로 동작하는클라이언트 라이브러리 동작방법
CN110868365B (zh) 通信方法和通信系统
US20190102433A1 (en) Storing derived summaries on persistent memory of a storage device
US8291377B2 (en) External configuration of processing content for script
CN113760465A (zh) 一种事务执行方法、装置、服务器、设备和存储介质
CN114547206A (zh) 一种数据同步方法和数据同步系统
US10719425B2 (en) Happens-before-based dynamic concurrency analysis for actor-based programs
CN110019113B (zh) 一种数据库的业务处理方法及数据库服务器
CN112231290A (zh) 一种本地日志的处理方法、装置、设备及存储介质
US8166018B2 (en) Browsing a list of data items
CN111949601A (zh) 数据存储方法、装置及计算机存储介质
KR102125791B1 (ko) 멀티코어 환경에서 네트워크 세션 관리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080905

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee