KR100611739B1 - PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT - Google Patents

PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT Download PDF

Info

Publication number
KR100611739B1
KR100611739B1 KR1020030096972A KR20030096972A KR100611739B1 KR 100611739 B1 KR100611739 B1 KR 100611739B1 KR 1020030096972 A KR1020030096972 A KR 1020030096972A KR 20030096972 A KR20030096972 A KR 20030096972A KR 100611739 B1 KR100611739 B1 KR 100611739B1
Authority
KR
South Korea
Prior art keywords
resource
transaction
allocation
return
buffer
Prior art date
Application number
KR1020030096972A
Other languages
Korean (ko)
Other versions
KR20050065202A (en
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 KR1020030096972A priority Critical patent/KR100611739B1/en
Publication of KR20050065202A publication Critical patent/KR20050065202A/en
Application granted granted Critical
Publication of KR100611739B1 publication Critical patent/KR100611739B1/en

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/466Transaction processing

Abstract

본 발명의 목적은 트랜잭션 완료 이전에 해당 잠금을 일관성 및 회복성 저해 없이 일찍 반납 할 수 있도록 하여, 할당 그룹간 잠금 교착이 근원적으로 발생하지 않아 잠금 교착을 처리하기 위한 복잡성 및 부가 비용을 제거할 수 있도록 한 것으로, 이와 같은 본 발명의 목적을 달성하기 위한 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법은, 다중 프로세서 환경에서 운영 되는 저널링을 지원하는 파일 시스템에서 다수의 할당 그룹으로 분할된 메타데이타를 이용하여 디스크의 블록 자원을 할당 및 반납 하는 방법에 있어서, 트랜잭션으로부터 요청된 특정 할당 그룹에 대한 자원 할당 요청에 대해 해당 할당 그룹으로부터 자원을 할당하고 할당된 자원의 식별자를 트랜잭션 테이블의 할당 자원 리스트에 등록하는 자원 할당 단계와, 상기 트랜잭션으로부터 요청된 특정 자원의 반납 요청에 대해 해당 자원의 식별자를 트랜잭션 테이블의 반납 자원 리스트에 등록하여 실제 자원 반납 절차를 트랜잭션 완료시까지 대기시키는 자원 반납 단계를 포함하여 이루어지는 것을 특징으로 한다.An object of the present invention is to enable the early return of a lock before the completion of a transaction without compromising consistency and resilience, thereby eliminating the complexity and additional cost of handling lock deadlocks, since lock deadlocks between allocation groups do not inherently occur. In order to achieve the object of the present invention, a parallel resource allocation and return method in a journaling file system in a multiprocessor environment is divided into a plurality of allocation groups in a file system supporting journaling operating in a multiprocessor environment. A method for allocating and returning a block resource of a disk by using metadata, the method allocating a resource from a corresponding allocation group for a resource allocation request for a specific allocation group requested from a transaction and assigning an identifier of the allocated resource to a transaction table Resource allocation to register in the resource list And a resource return step of registering an identifier of a corresponding resource in a return resource list of a transaction table for a request for return of a specific resource requested from the transaction, and waiting for the actual resource return procedure until the transaction is completed. .

저널 파일 시스템, 메타 데이타, 할당 그룹, 병렬 처리Journal file system, metadata, allocation group, parallel processing

Description

다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법{PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT} PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT}             

도 1은 종래의 무조건부 완료기간(Commit Duration) 잠금 기술에서 자원 할당 및 반납 방법의 흐름도.1 is a flow diagram of a method of allocating and returning resources in a conventional Unconditional Commit Duration lock technique.

도 2는 도 1의 문제점을 보인 예시도.2 is an exemplary view showing the problem of FIG.

도 3은 종래의 조건부 Commit Duration 잠금 기술에서 자원 할당 및 반납 방법의 흐름도.3 is a flow diagram of a resource allocation and return method in a conventional conditional Commit Duration lock technique.

도 4는 도 3의 문제점을 보인 예시도.4 is an exemplary view showing the problem of FIG.

도 5는 본 발명의 실시예가 적용되는 병렬 자원 할당 및 반납 시스템의 구성도.5 is a configuration diagram of a parallel resource allocation and return system to which an embodiment of the present invention is applied.

도 6은 본 발명의 실시예에 따른 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 방법의 예시도.6 is an exemplary diagram of a parallel resource allocation method in a journaling file system of a multiprocessor environment in accordance with an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 반납 방법의 예시도.7 is an exemplary diagram of a parallel resource return method in a journaling file system in a multiprocessor environment according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 잠금 교착 회피 예시도.8 is an exemplary view of locking deadlock avoidance according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 트랜잭션 시작 방법의 흐름도.9 is a flowchart of a transaction initiation method according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 의한 자원 할당 방법의 흐름도.10 is a flowchart of a resource allocation method according to an embodiment of the present invention.

도 11은 본 발명의 실시예에 따른 자원 반납 방법의 흐름도.11 is a flowchart of a resource return method according to an embodiment of the present invention.

도 12는 본 발명의 실시예에 따른 트랜잭션 완료 방법의 흐름도.12 is a flowchart of a transaction completion method according to an embodiment of the present invention.

도 13은 본 발명의 실시예에 따른 트랜잭션 철회 방법의 흐름도.13 is a flow chart of a transaction withdrawal method according to an embodiment of the present invention.

본 발명은 저널 파일 시스템(journal file system)에서 메타데이터(metadata)에 대한 병렬 처리 방법에 관한 것으로서, 특히 저장장치 안의 모든 블록의 할당 상태를 나타내는 메타데이터를 다수의 할당 그룹으로 분할 관리하며 이에 대한 접근 병렬성을 높이기 위해 각 할당 그룹별로 독립적인 잠금을 획득하는 파일 시스템에서, 트랜잭션 완료 이전이라도 상기 잠금을 안전하게 조기에 반납을 가능하게 하도록 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법에 관한 것이다.The present invention relates to a parallel processing method for metadata in a journal file system. In particular, the metadata representing the allocation status of all blocks in a storage device is divided into a plurality of allocation groups, In a file system that acquires independent locks for each allocation group to increase access parallelism, parallel resource allocation and return methods can be used in a journaling file system in a multiprocessor environment that enables secure early return of locks even before transaction completion. It is about.

현재, 컴퓨터 및 네트워킹 환경의 급속한 발전과 함께 저장해야 할 자료의 양과 요구되는 처리 속도가 급격하게 증가하고 있다. 이러한 환경 변화에 따라 ufs 및 ext2로 대표되는 기존의 파일 시스템은 여러 가지 한계를 드러내고 있으며, 이에 따라 ext3, XFS 등의 새로운 파일 시스템이 출현 하고 있다. 이러한 최근의 파 일 시스템 관련 기술은 크게 기존의 32bit 크기를 넘어서는 대용량 파일 지원(large file support) 기능, 특정 디렉토리 내에 매우 많은 파일이 존재할 때 빠른 접근을 위한 대용량 디렉토리 지원(large directory support) 기능, 파일 시스템 내의 파일 개수의 제한을 없애는 대량의 파일 지원(large number of file support) 기능 등의 용량 관련 기술과 함께, 동일 할당 그룹(allocation group)내에서 인접한 블록 할당, 기존의 블록(block) 기반 할당 방식이 아닌 익스텐트(extent) 기반 할당 방식 등 동일 파일에 속하는 블록간 고 인접성(high locality) 유지 기술, 로깅(logging)을 이용한 빠른 고장 회복 지원(fast crash recovery), 다중 프로세서(symmetric multi-processor)의 특성을 최대한 활용할 수 있는 특수한 자료 구조 및 알고리즘을 이용한 고 병렬성 지원(high parallelism support) 등 성능 관련 기술이 있다.At present, with the rapid development of computer and networking environments, the amount of data to be stored and the processing speed required are rapidly increasing. As the environment changes, existing file systems represented by ufs and ext2 exhibit various limitations, and new file systems such as ext3 and XFS are emerging. These recent file system-related technologies are large file support functions that exceed the existing 32-bit size, large directory support for fast access when a large number of files exist in a specific directory, and files. Allocating contiguous blocks within the same allocation group, existing block-based allocation methods, along with capacity-related techniques such as large number of file support to eliminate the number of files in the system. High locality between blocks belonging to the same file, such as extent-based allocation schemes, fast crash recovery using logging, and symmetric multi-processor High parallelism support using special data structures and algorithms that make the best use of features It is related technology.

실제로 ext2는 메타데이터를 다수의 할당 그룹별로 분할 관리하고 있으나 이에 대한 변경 시에는 할당 그룹 전체에 대하여 단일 잠금을 획득한다. 이는 단일 프로세스 환경에서는 크게 문제 되지 않으나 다중 프로세스 환경에서는 동일 파일 시스템에 접근하는 다른 프로세스가 잠금에 대해 대기하여야 하기 때문에 병렬성을 저해하는 요인으로 작용한다. Indeed, ext2 splits metadata into multiple allocation groups, but when you change it, you acquire a single lock on the entire allocation group. This is not a problem in a single process environment, but in a multiprocess environment, other processes that access the same file system have to wait for locks, which hinders parallelism.

이러한 한계는 ext3에서도 계속 된다. ext3는 ext2의 기본 기능에 저널링을 추가한 파일 시스템으로서 ext2가 가지는 이러한 제약을 그대로 가지고 있다. 단 ext3는 그 잠금을 트랜잭션 완료 시까지 유지 하지 않고 변경 완료 즉시 반납한다.This limitation continues in ext3. Ext3 is a file system that adds journaling to the basic functionality of ext2, and has all the limitations of ext2. Ext3 does not retain the lock until the transaction completes, but immediately returns it.

이러한 ext3의 잠금 운용 방식은 전통적인 트랜잭션 처리 기술에서는 강제 철회(cascading abort) 및 회복 불가능(unrecoverable) 문제를 초래할 수 있다고 알려져 있으나 ext3에서는 자원 할당 및 반납이라는 연산의 특성상 제한적으로 발생한다. While ext3's locking mechanism is known to cause cascading abort and unrecoverable problems in traditional transaction processing technology, ext3 is limited in the nature of operations such as resource allocation and return.

도 1의 단계(S101-S106)에서 확인할 수 있듯이, ARIES 등 전통적인 트랜잭션 처리 기술에서는 일관성(consistency)과 격리성(isolation)을 보장하기 위해 기본적으로 모든 공유 잠금 및 배타 잠금을 트랜잭션 완료 시까지 유지한다. 다만 낮은 격리 수준(isolation level)으로도 문제가 되지 않는 특정 응용에 한해 공유 잠금을 반납 하는 시점을 트랜잭션 완료 이전으로 옮기는 것을 허용한다. 이러한 방식을 따르지 않을 경우 트랜잭션은 철회 불능 상태(unrecoverable)가 되거나, 특정 트랜잭션 철회 시 다른 트랜잭션을 강제 철회(cascading abort) 시켜야 하거나 하는 등의 문제가 발생한다. ext3도 이러한 잠금 방식을 따르지 않으므로 원칙적으로는 이러한 문제가 발생할 수 있으나 할당 및 반납 연산의 특성상 아직 완료하지 않은 트랜잭션이 반납한 자원을 새로운 트랜잭션이 할당해 간 후 자원을 반납한 트랜잭션이 철회해야 할 경우에만 상기의 문제가 발생한다. ext3는 이 문제를 해결하기 위해 변경되는 메타데이터 블록에 대해 현재 버전뿐 아니라 완료된 트랜잭션에 의해 기록된 내용만을 가지는 버전을 버퍼에 유지한다. 자원의 반납은 현재 버전에 기록되며 자원의 할당은 현재 버전과 완료 버전 양쪽에서 모두 여유 자원으로 표시되어 있는 자원을 할당하는 방법을 사용한다. 이러한 방식은 비록 ext3가 메타데이터에 대한 잠금 기간이 짧기는 하지만 이를 위해 버퍼에 두 개의 메타데이터를 유지해야 하는 부담과 다중 프로세서 환경에서 잠금 충돌로부터 완전히 자유롭지는 못하다는 문제점을 가진다.As can be seen in steps S101-S106 of FIG. 1, in traditional transaction processing techniques such as ARIES, all shared locks and exclusive locks are maintained until transaction completion by default to ensure consistency and isolation. However, for certain applications where low isolation levels are not a problem, the point at which the shared lock is returned can be moved before transaction completion. If you do not follow this method, the transaction may become unrecoverable, or when a specific transaction is canceled, another transaction may have to be cascading abort. Ext3 does not follow this locking method, so this problem can occur in principle.However, due to the nature of allocation and return operations, when a transaction that returns resources has to be withdrawn after a new transaction allocates resources returned by a transaction that has not yet completed. Only the above problem occurs. To solve this problem, ext3 keeps a buffer in which the version of the metadata block that is changed is the only version that has been written by the completed transaction as well as the current version. The return of resources is recorded in the current version, and the allocation of resources uses the method of allocating the resources that are marked as free resources in both the current and completed versions. This approach has the problem that although ext3 has a short locking period for metadata, the burden of maintaining two metadata in the buffer for this purpose is not completely free from lock collisions in a multiprocessor environment.

이러한 ext3의 문제점은 XFS에서 상당부분 해결되었다. This problem with ext3 has been largely solved in XFS.

XFS는 ext3와 같이 미완료된 트랜잭션이 반납한 자원을 새로운 트랜잭션이 할당해 갈 수 있는 동일한 문제를 별도의 복사본을 유지하지 않고 해결한다. 즉 잠금 기간이 실제 로그 레코드가 로그 장치에 기록되는 시점인 동기 완료 시까지가 아니라 메모리내의 로그 버퍼에 기록되는 시점인 비동기 완료 시까지 이므로 상기와 같은 문제가 발생하나 XFS는 이 문제를 반납된 자원에 대해 BUSY 플래그를 실제 동기 완료 시점까지 설정하고 이를 이용하여 해당 자원의 할당을 금지시키거나, 꼭 할당해야 할 경우 이 자원을 반납한 트랜잭션의 로그를 로그 장치에 강제로 기록시키는 방법을 사용 함으로써 별도의 복사본을 가지지 않고 상기 문제를 효율적으로 해결하고 있다.XFS solves the same problem that new transactions can allocate resources returned by incomplete transactions, such as ext3, without maintaining a separate copy. This problem occurs because the lockout period is not until synchronous completion, which is when the actual log record is written to the log device, but until asynchronous completion, which is when it is written to the log buffer in memory. By setting the BUSY flag up to the actual synchronization completion point, use this method to prohibit the allocation of the resource, or use the method of forcibly writing the log of the transaction that returned this resource to the log device. The problem is solved efficiently without having a copy.

또한 XFS는 ex3와 달리 다중 프로세스 환경에서 병렬성을 높이기 위해 실제 접근하는 할당 그룹에 대한 메타데이터 블록에만 잠금을 획득한다. 이로써 동일한 파일 시스템을 접근 하지만 다른 할당 그룹에 접근하는 파일 시스템은 잠금에 의한 대기가 근본적으로 발생하지 않아 병렬성이 대폭 향상되는 효과를 가진다.Also, unlike ex3, XFS only acquires locks on metadata blocks for allocation groups that are actually accessed to increase parallelism in multiprocess environments. As a result, file systems that access the same file system but access different allocation groups do not inherently experience a lock wait, which greatly improves parallelism.

그러나 이러한 할당 그룹간 개별 잠금은 저널링을 위해 XFS에 도입된 트랜잭션 개념에 의해 완료 기간 잠금(commit duration lock)이어야 하며 이에 의해 잠금 간 교착에서 자유롭지 못하다는 문제를 가지고 있다. 즉, XFS에서 할당 그룹에 대한 잠금은 트랜잭션이 비동기 완료(asynchronous commit)된 이후에 반납하며 이는 동일 자료를 다수의 트랜잭션이 동시에 변경하였을 때 실제로 변경된 순서와 로 그 장치상의 로그의 순서를 일치 시키기 위한 제약 조건이다. 이는 전통적인 데이터베이스에서 트랜잭션의 엄정 수행(strict execution)으로 표현되는 제약이다. 이로 인해 XFS의 할당 그룹별 잠금 운용 방식은 ext2 및 ext3의 잠금 방식에 배해 다중 프로세서 환경에서의 병렬성이 상당 부분 개선 되나, 할당 그룹간 교착 가능성이라는 새로운 문제를 가진다.However, these individual locks between allocation groups have to be a commit duration lock by the transaction concept introduced in XFS for journaling, thereby preventing the locks from being deadlocked. In other words, locks on an allocation group in XFS are returned after a transaction has been asynchronously committed, which allows the same data to match the order of the logs on the log device when multiple transactions change at the same time. Constraints This is a constraint expressed as strict execution of a transaction in a traditional database. As a result, XFS's lock operation by allocation group significantly improves parallelism in multiprocessor environments, compared to ext2 and ext3's locking, but has a new problem of possible deadlock between allocation groups.

즉, 만약 특정 트랜잭션이 다수의 할당 그룹에 걸쳐 자원을 할당 하거나 반납해야 할 경우(큰 자료에 대한 write(), unlink() 또는 truncate()가 대표적인 경우) 잠금 기간이 비동기 완료 시까지 이므로 다음 할당 그룹에 대한 메타데이터에 잠금을 획득하기 전에 이전 할당 그룹에 대한 잠금을 해제할 수 없다. 따라서 둘 이상의 트랜잭션 사이에 이미 획득한 잠금에 대해 잠금 교착(deadlock)이 발생 할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 트랜잭션 T1가 할당 그룹 1에 대한 잠금을 획득하고 있는 상태에서 할당 그룹 2에 대해 잠금을 획득 하려하고, 트랜잭션 T2가 할당 그룹 2에 대한 잠금을 획득한 상태에서 할당그룹 1에 대해 잠금을 획득하려 할 경우 이 두 트랜잭션 간에 잠금 교착이 발생한다. That is, if a particular transaction needs to allocate or return resources across multiple allocation groups (such as write (), unlink (), or truncate () on large data), the lock period is until asynchronous completion, so You cannot release a lock on a previously allocated group before obtaining a lock on the metadata for the group. As a result, lock deadlocks can occur for locks already acquired between two or more transactions. For example, as shown in FIG. 2, when transaction T1 is acquiring a lock on allocation group 1, and attempts to acquire a lock on allocation group 2, transaction T2 acquires a lock on allocation group 2. If you try to acquire a lock on Allocation Group 1 in a state, a lock deadlock occurs between these two transactions.

따라서 XFS는 잠금 교착을 방지 하기 위한 특별한 절차가 필요하며 이러한 절차로서 할당 그룹 잠금에 대한 순서화(lock ordering), 조건부 잠금(XFS_BMI_TRYLOCK 플래그를 이용) 등의 방법을 사용한다. 할당 그룹 접근 순서화는 이미 잠금이 획득된 할당 그룹보다 이후의 할당 그룹에 대해 잠금을 요청하도록 순서화하는 것이다. 그러나 이러한 순서화가 언제나 가능한 것은 아니며 특히 마지막 할당 그룹까지 접근 하였으나 처리해야 할 할당 및 반납이 남은 경우 XFS는 다시 첫 할당 그룹으로 접근을 순환 시킨다. 이러한 경우 잠금 순서화가 깨지며 잠금 교착 가능성을 미리 검출하기 위해, 도 3 및 도 4에 도시된 바와 같이, 조건부 잠금을 사용한다. 이러한 방법으로 XFS는 잠금 교착을 피해갈 수 있으나 이러한 기술들을 적용 시켜야 하기 때문에 할당 및 반납 절차의 복잡도가 증가하며 이에 따른 비용 또한 증가하는 문제점을 가지고 있다.Therefore, XFS needs a special procedure to prevent lock deadlock, and uses such procedures as lock ordering and conditional locking (using the XFS_BMI_TRYLOCK flag) for allocation group locks. Allocation group access ordering is to order the lock request for a later allocation group than the allocation group for which the lock has already been acquired. However, this ordering is not always possible, especially if the last allocation group has been accessed but the allocation and return remain to be processed, XFS cycles access back to the first allocation group. In this case the lock ordering is broken and conditional locking is used, as shown in Figs. 3 and 4, to detect the possibility of lock deadlock in advance. In this way, XFS can avoid lock deadlocks, but these techniques have to be applied, which increases the complexity of the allocation and return process and increases the cost.

잠금 교착으로부터 자유로울 수 없는 완료 기간 잠금을 사용하는 종래의 기술은 다수의 자원에 대한 동시 접근 시 이들 자원의 일관성 및 격리성을 보장해 주는 일반화(generalized)된 방법이다. 여기서 일반화된 방법이라 함은 상기와 같은 잠금 운용 방식을 따르면 보호해야 할 자료 및 이에 대한 연산의 특성에 관계 없이 자원의 일관성 및 격리성을 간단하게 보장해 줄 수 있음을 의미한다.Conventional techniques that use period locks that cannot be freed from lock deadlocks are a generalized way to ensure the consistency and isolation of these resources when accessing multiple resources simultaneously. In this case, the generalized method means that the above lock operation method can easily guarantee the consistency and isolation of resources regardless of the data to be protected and the characteristics of the operation.

상기 트랜잭션 관리 방법은 할당 그룹을 통한 자원 할당 및 반납 절차에 대해서는 각 할당 그룹별 메타데이터 단위로 모든 연산 및 로깅을 직렬화 시키는 결과를 초래한다. 즉, 변경된 할당 그룹의 메타데이터에 완료 시점 잠금을 유지하는 것은 동일 할당 그룹에 대한 모든 트랜잭션의 메타데이터 변경 및 이에 대한 로그 레코드 기록을 메타데이터 변경 단위로 직렬화 시킨다.The transaction management method results in serializing all operations and logging in metadata units for each allocation group for the resource allocation and return procedure through the allocation group. That is, maintaining a completion point lock on metadata of a changed allocation group serializes metadata change and log record records of all transactions for the same allocation group in metadata change units.

이와 같은 메타데이타 단위의 직렬화는 다음과 같은 이유로 과도한 직렬화이며 이에 의해 필요 이상의 동기화 비용을 지불하는 문제가 있다. 즉, 이미 할당된 블록과 다른 블록은 이전 트랜잭션의 완료 여부에 관계없이 새로운 트랜잭션에 할당될 수 있다. 또한 이미 할당된 블록은 메타데이터에 별도의 완료 기간 잠금을 동원하지 않더라도 다른 트랜잭션에 중복 할당 되지 않는다. 또한 할당 관련 로깅 을 메타데이터 전체에 대한 이전 이미지 로깅(before image logging)이 아닌 연산 로깅(operational logging)으로 실시한다면 로그의 순서화도 메타데이터 전체에 대해 직렬화 할 필요 없이 해당 블록에 대해서만 순서화 시키면 된다. 따라서 할당에 대해서 완료 기간 잠금을 유지 하는 것은 불필요한 동기화이며 또한 이로 인해 발생하는 잠금 교착 역시 회피할 수 있다.Such serialization of metadata units is excessive serialization for the following reasons, thereby causing a problem of paying more synchronization costs than necessary. That is, a block different from an already allocated block may be allocated to a new transaction regardless of whether or not the previous transaction is completed. In addition, blocks that are already allocated are not duplicated in other transactions even if they do not use a separate completion period lock in the metadata. In addition, if allocation-related logging is performed by operational logging rather than before image logging for all of the metadata, the ordering of the logs does not need to be serialized over the entire metadata, only for that block. Therefore, maintaining completion period locks on allocations is an unnecessary synchronization and can also avoid lock deadlocks.

또한, 블록 반납의 경우, 이를 트랜잭션 완료 시까지 대기시키고 완료 로그 기록 후에 실제 블록을 반납 한다면 완료 되지 않은 트랜잭션이 반납한 블록을 다른 트랜잭션이 할당 받는 것을 방지할 수 있다.In addition, in case of returning a block, if it waits until the completion of a transaction and returns the actual block after completing the completion log, it is possible to prevent another transaction from allocating a block returned by an incomplete transaction.

따라서, 본 발명의 목적은 이와 같은 할당 및 반납 연산의 특성을 이용하여 완료 기간 잠금이 가지고 있는 잠금 교착 문제를 해결하기 위한 것으로, 다수의 할당 그룹으로 메타 데이터를 분할하여 관리하며 이에 대한 병렬성을 높이기 위해 각 할당 그룹별 잠금을 수행하는 저널링 파일 시스템에서, 트랜잭션 완료 이전에 해당 잠금을 일관성 및 회복성 저해 없이 일찍 반납 할 수 있도록 하여, 할당 그룹간 잠금 교착이 근원적으로 발생하지 않아 잠금 교착을 처리하기 위한 복잡성 및 부가 비용을 제거할 수 있는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법을 제공하는 데에 있다.Accordingly, an object of the present invention is to solve the lock deadlock problem of the completion period lock by using the characteristics of the allocation and return operation, and to divide and manage the metadata to a plurality of allocation groups to improve the parallelism In the journaling file system that performs locks for each allocation group, the locks can be returned early without transactional consistency and resilience before transaction completion, so that lock deadlocks between allocation groups do not occur. The purpose of the present invention is to provide a parallel resource allocation and return method in a journaling file system in a multiprocessor environment that can eliminate the complexity and the additional cost.

또한, 본 발명의 목적은 저널링 파일 시스템에서 일반적으로 채용하고 있는 구조인 다수의 할당 그룹(allocation group)을 통한 메타데이터(metadata) 분할 관 리 구조와 이에 대한 연산의 특성을 이용하여 각 트랜잭션(transaction)이 디스크 자원을 할당 및 반납할 때 실제 변경 되는 할당그룹의 메타데이터에만 개별적으로 잠금(lock)을 획득하고, 또한 그 잠금의 기간을 트랜잭션 완료 시까지 유지 하는 기존 절차(commit duration locking) 대신 변경 완료와 함께 바로 풀어도 메타데이터의 일관성 및 회복성에 저해되지 않게 함으로써 다수의 프로세스에 의한 병렬성을 개선 시키고 또한 기존 절차에서 필연적으로 해결해야 하는 잠금 간 교착(deadlock) 문제가 근본적으로 발생하지 않도록 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법을 제공하는 데에 있다.In addition, an object of the present invention is to use a metadata partition management structure through a plurality of allocation groups, which is a structure generally employed in a journaling file system, and each transaction using characteristics of operations thereof. Changes instead of the commit duration locking, which acquires locks only on the metadata of the allocation group that actually changes when the disk resource is allocated and released, and also keeps the duration of the lock until the transaction completes. Unlocking immediately upon completion does not impede the consistency and resilience of the metadata, improving parallelism by multiple processes, and avoiding fundamentally deadlock-to-lock deadlocks that must be addressed by existing procedures. How parallel resources are allocated and returned in journaled file systems in a processor environment To provide.

이와 같은 본 발명의 목적을 달성하기 위한 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법은 다중 프로세서 환경에서 운영 되는 저널링을 지원하는 파일 시스템에서 다수의 할당 그룹으로 분할된 메타데이타를 이용하여 디스크의 블록 자원을 할당 및 반납 하는 방법에 있어서, 다수의 트랜잭션으로부터 트랜잭션 시작 요청에 대해 트랜잭션 테이블에서 하나의 트랜잭션 식별자를 할당하고, 이 식별자 내에 포함된 할당 자원 리스트, 반납 자원 리스트, 장착 버퍼 리스트를 초기화하는 트랜잭션 시작 처리 단계와, 상기 트랜잭션으로부터 특정 할당 그룹에 대한 자원 할당 요청에 대해 해당 할당 그룹으로부터 자원을 할당하고 할당된 자원의 식별자를 트랜잭션 테이블의 할당 자원 리스트에 등록하는 자원 할당 단계와, 상기 트랜잭션으로부터 요청된 특정 자원의 반납 요청에 대해 해당 자원의 식별자를 트랜잭션 테이블의 반납 자원 리스트에 등록하여 실제 자원 반납 절차를 트랜잭션 완료시까지 대기시키는 자원 반납 단계와, 상기 트랜잭션으로부터 트랜잭션 완료 요청에 대해 할당 자원 리스트를 폐기하고, 반납 자원 리스트 내의 모든 자원을 반납하고, 장착 버퍼 리스트 내의 모든 버퍼를 해제한 후, 해당 트랜잭션 식별자를 반납하는 트랜잭션 완료 처리 단계와, 상기 트랜잭션으로부터 트랜잭션 철회 요청에 대해 할당 자원 리스트 내의 모든 자원을 반납하고, 반납 자원 리스트를 폐기하고, 장착 버퍼 리스트 내의 모든 버퍼를 해제한 후, 해당 트랜잭션 식별자를 반납하는 트랜잭션 철회 단계를 포함하여 이루어지는 것을 특징으로 한다.In order to achieve the object of the present invention, a parallel resource allocation and return method in a multiprocessor journaling file system uses metadata divided into a plurality of allocation groups in a file system supporting journaling operating in a multiprocessor environment. In the method of allocating and returning block resources of a disk, a transaction identifier is allocated in a transaction table for a transaction start request from a plurality of transactions, and an allocation resource list, a return resource list, and a mounting buffer list included in the identifier are allocated. A transaction start processing step of initializing, a resource allocation step of allocating a resource from the allocation group for a resource allocation request for a specific allocation group from the transaction and registering an identifier of the allocated resource in the allocation resource list of the transaction table; A resource return step that registers an identifier of the resource in the return resource list of the transaction table for a request for return of a specific resource requested from a transaction and waits for the actual resource return procedure until the transaction is completed, and allocates a resource for a transaction completion request from the transaction. A transaction completion processing step of discarding the list, releasing all resources in the return resource list, releasing all buffers in the mounting buffer list, and returning the corresponding transaction identifier, and in the allocation resource list for a request to withdraw a transaction from the transaction. And returning all resources, discarding the returned resource list, releasing all buffers in the mounting buffer list, and then canceling the transaction.

도 5는 본 발명의 실시예가 적용되는 파일 시스템의 구성도를 도시한 것이다.5 is a block diagram of a file system to which an embodiment of the present invention is applied.

도 5에 도시된 바와 같이, 본 발명의 실시예가 적용되는 파일 시스템은, 파일 시스템에 접근하는 트랜잭션(100)과, 그 트랜잭션(100)의 시작, 완료, 및 철회 처리를 담당하는 트랜잭션 관리기(200)와, 디스크의 블록 자원에 대한 할당 및 반납을 수행하는 자원 관리기(300)와, 디스크의 블록을 읽거나 변경 하기 위한 버퍼 기능을 제공하는 버퍼 관리기(400)으로 구성된다.As shown in FIG. 5, a file system to which an embodiment of the present invention is applied includes a transaction manager 200 that accesses the file system, and a transaction manager 200 that is responsible for starting, completing, and withdrawing the transaction 100. ), A resource manager 300 for allocating and returning block resources of the disk, and a buffer manager 400 for providing a buffer function for reading or changing a block of the disk.

이와 같이 구성되는 본 발명의 실시예가 적용되는 파일 시스템의 동작을 첨부된 도 6 내지 도 13을 참조하여 상세히 설명하기로 한다.An operation of a file system to which an embodiment of the present invention configured as described above is applied will be described in detail with reference to FIGS. 6 to 13.

먼저, 트랜잭션 관리기(200)는 트랜잭션 시작 시 트랜잭션 테이블(210)에서 자원 할당 리스트, 자원 반납 리스트, 및 버퍼 장착 리스트(220)를 추가로 포함하는 하나의 트랜잭션 식별자를 할당 받고 이를 초기화하게 된다.First, the transaction manager 200 is allocated and initialized one transaction identifier further including a resource allocation list, a resource return list, and a buffer mounting list 220 in the transaction table 210 at the start of a transaction.

또한, 디스크(500)는 다수의 할당 그룹(510)으로 구성되며 각 할당 그룹은 하나의 메타데이터 블록(520)과 다수의 데이터 블록(530)으로 구성된다. 메타데이터 블록(520)은 동일 할당 그룹 내의 모든 데이터 블록이 할당 상태를 나타내는 비트맵으로써, 할당 시 1, 미 할당 시 0 비트를 가진다.In addition, the disk 500 is composed of a plurality of allocation groups 510, and each allocation group is composed of one metadata block 520 and a plurality of data blocks 530. The metadata block 520 is a bitmap indicating that all data blocks in the same allocation group are allocated. The metadata block 520 has 1 bit when allocated and 0 bits when not allocated.

도 6은 본 발명의 실시예에 따른 파일 시스템에서 다수의 할당 그룹으로부터 자원 할당 방법의 예시도를 도시한 것이다.6 illustrates an example of a resource allocation method from a plurality of allocation groups in a file system according to an embodiment of the present invention.

도 5에 도시된 파일 시스템에서 트랜잭션(100) 내의 모든 자원 할당은 할당을 수행할 할당 그룹(510)의 메타데이타 블록(520)을 버퍼에 장착하고 이에 대해 무조건부 잠금을 획득하고, 이 버퍼 내에서 비트맵을 탐색하여 여유 블록을 할당하여 이를 표시하고, 해당 버퍼에 대해 잠금을 해제한 후 다음 할당 그룹으로부터 할당을 계속한다. 다음 할당 그룹에 대한 블록 할당을 지속 하기 전에 이전 할당 그룹에 대한 잠금을 해제하기 때문에 잠금에 의한 교착은 발생하지 않는다.In the file system shown in FIG. 5, all resource allocations within a transaction 100 mount a metadata block 520 of the allocation group 510 to perform the allocation into a buffer and acquire an unconditional lock on it, and within this buffer. Searches the bitmap and allocates a free block to mark it, releases the lock on that buffer and continues allocation from the next allocation group. The lock deadlock does not occur because the lock on the previous allocation group is released before continuing the block allocation for the next allocation group.

도7 은 본 발명의 실시예에 따른 파일 시스템에서 다수의 할당 그룹으로부터 자원 반납 방법의 예시도를 도시한 것이다.7 illustrates an example of a method of returning resources from a plurality of allocation groups in a file system according to an embodiment of the present invention.

도 5에 도시된 파일 시스템에서 트랜잭션(100) 내의 모든 자원 반납은 반납 요청에 대해 바로 반납을 처리하지 않고 대신 해당 트랜잭션 식별자 내의 반납 자원 리스트에 해당 반납 요청을 등록한다. 이렇게 등록된 자원 반납 요청은 해당 트랜잭션이 완료 될 때 한꺼번에 처리된다. 따라서 완료 되지 않은 트랜잭션이 반납한 자원을 다른 트랜잭션이 할당해 가는 것을 막을 수 있다.In the file system shown in FIG. 5, all resource returns in the transaction 100 do not process the return immediately for the return request, but instead register the corresponding return request in the return resource list in the corresponding transaction identifier. The registered resource return request is processed at the same time when the transaction is completed. This prevents other transactions from allocating resources returned by incomplete transactions.

도 8은 본 발명의 실시예에 따른 파일 시스템에서 잠금 교착이 발생하지 않음을 보이는 예시도를 도시한 것이다.8 is an exemplary view showing that lock deadlock does not occur in a file system according to an exemplary embodiment of the present invention.

도 5에 도시된 파일 시스템에서는 각 할당 그룹(500)에 접근할 때만 잠금을 획득하며, 해당 잠금을 다음 할당 그룹에 접근하기 전에 해제하므로 한 트랜잭션(100)는 할당 그룹(500)에 대해서는 한번에 하나의 잠금만을 획득하고 있으며 이로 인해 이들 잠금 간에 교착은 발생하지 않는다.In the file system illustrated in FIG. 5, a lock is acquired only when each allocation group 500 is accessed, and the lock is released before the next allocation group is accessed. Therefore, one transaction 100 is allocated to the allocation group 500 one at a time. Only locks are obtained, so no deadlock between these locks occurs.

도 9는 본 발명의 실시예에 따른 파일 시스템에서 트랜잭션 시작 방법의 흐름도를 도시한 것이다.9 illustrates a flowchart of a transaction initiation method in a file system according to an embodiment of the present invention.

도 5에 도시된 트랜잭션 관리기(200)가 트랜잭션 시작 요청을 받으면, 먼저 트랜잭션 관리기(200)는 트랜잭션 테이블(210)에서 여유 트랜잭션 식별자(220)을 할당 받는다(S301). 할당된 트랜잭션 식별자는 반납 자원 리스트, 할당 자원 리스트, 장착 버퍼 리스트를 추가로 포함하며 이들에 대한 초기화가 수행된다(S302~S304). 이 과정이 완료와 함께 트랜잭션은 수행 준비가 완료 된다.When the transaction manager 200 illustrated in FIG. 5 receives a transaction start request, first, the transaction manager 200 is allocated a free transaction identifier 220 from the transaction table 210 (S301). The allocated transaction identifier further includes a return resource list, an allocation resource list, and a mounting buffer list, and initialization thereof is performed (S302 to S304). With this process complete, the transaction is ready to run.

도 10은 본 발명의 실시예에 따른 파일 시스템에서 자원 할당 방법의 흐름도를 도시한 것이다.10 is a flowchart illustrating a resource allocation method in a file system according to an embodiment of the present invention.

도 5에 도시된 트랜잭션(100)으로부터 자원 관리기(300)가 특정 할당 그룹에 대해 자원 할당 요청을 받으면, 먼저 자원 관리기(300)는 해당 할당 그룹의 메타데이터 블록을 버퍼에 장착하고(S401), 장착된 버퍼 식별자를 트랜잭션 식별자 내의 장착 버퍼 리스트에 등록한다(S402). 자원 관리기(300)는 해당 버퍼에 대해 배타 잠금을 요청하고(S403), 장착된 메타데이터를 탐색 하여 여유 자원이 있는지를 검사하게 된다(S404).When the resource manager 300 receives a resource allocation request for a specific allocation group from the transaction 100 shown in FIG. 5, the resource manager 300 first loads the metadata block of the allocation group in a buffer (S401). The mounted buffer identifier is registered in the mounted buffer list in the transaction identifier (S402). The resource manager 300 requests an exclusive lock on the corresponding buffer (S403), and checks whether there is a free resource by searching the mounted metadata (S404).

만약 여유 자원이 있으면, 자원 관리기(300)는 해당 자원이 할당 되었음을 메타데이터에 표시하고(S405), 트랜잭션 식별자 내의 할당 자원 리스트에 등록하고(S406), 획득된 버퍼 잠금을 해제하게 된다(S407).If there are free resources, the resource manager 300 indicates in the metadata that the corresponding resources are allocated (S405), registers in the allocation resource list in the transaction identifier (S406), and releases the obtained buffer lock (S407). .

만약 여유 자원이 없으면, 자원 관리기(300)는 버퍼 잠금을 해제하고(S408), 장착된 버퍼를 해제하게 된다(S409).If there is no free resource, the resource manager 300 releases the buffer lock (S408) and releases the loaded buffer (S409).

도 11은 본 발명의 실시예에 따른 파일 시스템에서 자원 반납 방법의 흐름 도를 도시한 것이다.11 is a flowchart illustrating a resource return method in a file system according to an embodiment of the present invention.

도 5에 도시된 트랜잭션(100)으로부터 자원 관리기(300)가 특정 자원에 대해 반납 요청을 받으면, 자원 관리기(300)는 이 요청을 트랜잭션 식별자 내의 반납 자원 리스트에 등록 한 후, 반납 요청을 완료하게 된다(S501).When the resource manager 300 receives a return request for a specific resource from the transaction 100 shown in FIG. 5, the resource manager 300 registers the request in the return resource list in the transaction identifier and then completes the return request. It becomes (S501).

도 12는 본 발명의 실시예에 따른 파일 시스템에서 트랜잭션 완료 방법의 흐름도를 도시한 것이다.12 is a flowchart illustrating a transaction completion method in a file system according to an embodiment of the present invention.

도 5에 도시된 트랜잭션(100)으로부터 트랜잭션 관리기(200)가 완료 요청을 받으면, 트랜잭션 관리기(200)는 트랜잭션 식별자 내의 할당 자원 리스트를 폐기하고(S601), 반납 자원 리스트 내에 반납 요청이 있는지 검사하게 된다(S602).When the transaction manager 200 receives the completion request from the transaction 100 shown in FIG. 5, the transaction manager 200 discards the allocation resource list in the transaction identifier (S601) and checks whether there is a return request in the return resource list. (S602).

만약 존재 한다면, 트랜잭션 관리기(200)는 모든 반납 요청에 대해 반납 자원이 속하는 할당 그룹의 메타 데이터 블록을 버퍼에 장착하고(S603), 장착된 버퍼에 잠금을 획득하게 된다(S604). 트랜잭션 관리기(200)는 자원 반납을 메타데이터에 표시하며(S605), 해당 버퍼의 잠금을 해제하고(S606), 장착된 버퍼를 반납한다(S607). 더 이상 반납할 자원이 없으면, 트랜잭션 관리기(200)는 장착 버퍼 리스트에 등록된 모든 버퍼에 대해 버퍼 장착을 해제하고 완료한다(S608).If there is, the transaction manager 200 mounts the metadata block of the allocation group to which the return resource belongs to the buffer for all return requests (S603), and acquires a lock on the mounted buffer (S604). The transaction manager 200 displays the resource return in the metadata (S605), unlocks the corresponding buffer (S606), and returns the loaded buffer (S607). If there are no more resources to return, the transaction manager 200 releases the buffer for all the buffers registered in the mounting buffer list and completes (S608).

도 13은 본 발명의 실시예에 따른 파일 시스템에서 트랜잭션 철회 방법의 흐름도를 도시한 것이다.13 illustrates a flowchart of a transaction withdrawal method in a file system according to an embodiment of the present invention.

도 5에 도시된 트랜잭션(100)으로부터 트랜잭션 관리기(200)가 철회 요청을 받으면, 트랜잭션 관리기(200)는 트랜잭션 식별자 내의 반납 자원 리스트를 폐기하고(S701), 할당 자원 리스트 내에 할당된 자원이 있는지 검사하게 된다(S702).When the transaction manager 200 receives the withdrawal request from the transaction 100 shown in FIG. 5, the transaction manager 200 discards the return resource list in the transaction identifier (S701) and checks whether there is an allocated resource in the allocated resource list. It is made (S702).

만약 존재 한다면, 트랜잭션 관리기(200)는 모든 할당된 자원에 대해 그 자원이 속하는 할당 그룹의 메타 데이터 블록을 버퍼에 장착하고(S703), 장착된 버퍼에 잠금을 획득하게 된다(S704). 트랜잭션 관리기(200)는 자원 반납을 메타데이터에 표시하며(S705), 해당 버퍼의 잠금을 해제하고(S706), 장착된 버퍼를 반납한다(S707). 더 이상 할당된 자원이 없으면, 트랜잭션 관리기(200)는 장착 버퍼 리스트에 등록된 모든 버퍼에 대해 버퍼 장착을 해제하고 완료한다(S708).If there is, the transaction manager 200 mounts the metadata block of the allocation group to which the resource belongs to the buffer for all allocated resources (S703), and acquires a lock on the mounted buffer (S704). The transaction manager 200 displays the resource return in the metadata (S705), unlocks the corresponding buffer (S706), and returns the loaded buffer (S707). If there are no more resources allocated, the transaction manager 200 releases the buffer for all the buffers registered in the mounting buffer list and completes (S708).

이와 같은 본 발명은 개별 할당 그룹에 대한 잠금을 트랜잭션 완료 이전에 조기에 반납하여 잠금 할당 그룹간 잠금 교착이 근원적으로 발생하지 않아, 할당 그룹에 대한 접근 순서에 대한 제약이나 조건부 잠금 시도 및 이의 실패에 대한 처리 등으로 파일 시스템 구현이 복잡해 지는 문제를 해결할 수 있으며 특히 다중 프로세서 환경에서 병렬성을 극대화 시킬 수 있어 우수한 시간 지연 특성을 얻을 수 있는 효과가 있다.As such, the present invention returns locks on individual allocation groups early before the transaction is completed, so that lock deadlocks between lock allocation groups do not occur fundamentally. It can solve the problem of complicated file system implementation through processing, etc. In particular, the parallelism can be maximized in a multiprocessor environment, and thus, excellent time delay characteristics can be obtained.

또한 본 발명은 다수의 할당 그룹을 변경 하는 트랜잭션들이 존재할 경우 기존 방법에서는 이들간에 잠금 교착 가능성이 있기 때문에 이를 회피하기 위하여 다양한 회피 설계를 하여야 했던 문제를 근본적으로 제거하여, 특히 다중 프로세서 환경에서 운영되는 파일 시스템의 병렬성을 높이고 또한 잠금 교착으로 인한 회피 비용을 제거함으로써 파일 시스템의 구현을 단순화 시키고 시간 지연 특성을 향상시키는 효과를 가진다.In addition, the present invention fundamentally eliminates the problem of having to do a variety of avoidance design in order to avoid this, because there is a possibility of lock deadlock between the existing methods when there are transactions that change a large number of allocation groups, in particular operating in a multi-processor environment By increasing the parallelism of the file system and eliminating the avoidance cost due to lock deadlock, the file system is simplified and the time delay is improved.

Claims (6)

다수의 할당 그룹으로 분할된 메타데이타를 이용하여 디스크의 블록 자원을 할당 및 반납하는 방법에 있어서,In a method for allocating and returning block resources of a disk by using metadata divided into a plurality of allocation groups, 다수의 트랜잭션으로부터 트랜잭션 시작 요청에 대해 트랜잭션 테이블에서 하나의 트랜잭션 식별자를 할당하고, 이 식별자 내에 포함된 할당 자원 리스트, 반납 자원 리스트, 장착 버퍼 리스트를 초기화하는 트랜잭션 시작 처리 단계와;A transaction start processing step of allocating one transaction identifier in a transaction table for a transaction start request from a plurality of transactions, and initializing an allocation resource list, a return resource list, and a mounting buffer list included in the identifier; 상기 트랜잭션으로부터 특정 할당 그룹에 대한 자원 할당 요청에 대해 해당 할당 그룹으로부터 자원을 할당하고 할당된 자원의 식별자를 트랜잭션 테이블의 할당 자원 리스트에 등록하는 자원 할당 단계와;A resource allocation step of allocating a resource from the allocation group for a resource allocation request for a specific allocation group from the transaction and registering an identifier of the allocated resource in the allocation resource list of the transaction table; 상기 트랜잭션으로부터 요청된 특정 자원의 반납 요청에 대해 해당 자원의 식별자를 트랜잭션 테이블의 반납 자원 리스트에 등록하여 실제 자원 반납 절차를 트랜잭션 완료시까지 대기시키는 자원 반납 단계와;A resource return step of registering an identifier of a corresponding resource in a return resource list of a transaction table in response to a return request of a specific resource requested from the transaction, and waiting for an actual resource return procedure until the transaction is completed; 상기 트랜잭션으로부터 트랜잭션 완료 요청에 대해 할당 자원 리스트를 폐기하고, 반납 자원 리스트 내의 모든 자원을 반납하고, 장착 버퍼 리스트 내의 모든 버퍼를 해제한 후, 해당 트랜잭션 식별자를 반납하는 트랜잭션 완료 처리 단계와;A transaction completion processing step of discarding an allocation resource list for the transaction completion request from the transaction, returning all resources in the return resource list, releasing all buffers in the mounting buffer list, and returning the corresponding transaction identifier; 상기 트랜잭션으로부터 트랜잭션 철회 요청에 대해 할당 자원 리스트 내의 모든 자원을 반납하고, 반납 자원 리스트를 폐기하고, 장착 버퍼 리스트 내의 모든 버퍼를 해제한 후, 해당 트랜잭션 식별자를 반납하는 트랜잭션 철회 단계A transaction withdrawal step of returning all resources in the allocation resource list, discarding the return resource list, releasing all buffers in the mounting buffer list, and returning the corresponding transaction identifier for the transaction withdrawal request from the transaction. 를 포함하여 이루어지는 것을 특징으로 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법.Parallel resource allocation and return method in a journaling file system of a multi-processor environment comprising a. 삭제delete 제 1 항에 있어서, 상기 트랜잭션 완료 단계와 트랜잭션 철회 단계는,The method of claim 1, wherein the transaction completion step and transaction withdrawal step, 상기 장착 버퍼 리스트 내의 각각의 버퍼에 대해 장착을 해제하는 것을 특징으로 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법.And dismounting each buffer in the mount buffer list. 제 1 항에 있어서, 상기 트랜잭션 완료 단계는,The method of claim 1, wherein the transaction completion step, 반납 자원 리스트 내의 각각의 자원에 대해 그 자원이 속하는 할당 그룹의 메타 데이터를 버퍼에 장착 및 잠그는 제1 과정과;Mounting and locking the metadata of the allocation group to which the resource belongs to the buffer for each resource in the returned resource list; 자원 반납 사실을 메타 데이터에 기록하는 제2 과정과;A second step of recording the fact that the resource is returned in the metadata; 장착된 버퍼의 잠금을 풀고, 버퍼 장착을 해제하는 제3 과정으로 이루어지는 것을 특징으로 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법.And a third process of releasing the mounted buffer and releasing the buffer. The parallel resource allocation and return method in a journaling file system in a multiprocessor environment. 제 1 항에 있어서, 상기 트랜잭션 철회 단계는, The method of claim 1, wherein the transaction withdrawal step, 상기 할당 자원 리스트 내의 각각의 자원에 대해 그 자원이 속하는 할당 그룹의 메타 데이터를 버퍼에 장착 및 잠그는 제1 과정과;Mounting and locking metadata of a allocation group to which a resource belongs to a buffer for each resource in the allocation resource list; 할당된 자원을 반납하기 위해 메타 데이터를 변경하는 제2 과정과;Changing the metadata to return the allocated resources; 장착된 버퍼의 잠금을 풀고, 버퍼 장착을 해제하는 제3 과정으로 이루어지는 것을 특징으로 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법.And a third process of releasing the mounted buffer and releasing the buffer. The parallel resource allocation and return method in a journaling file system in a multiprocessor environment. 제 1 항에 있어서, 상기 자원 할당 단계는,The method of claim 1, wherein the resource allocation step, 상기 트랜잭션으로부터 요청된 특정 할당 그룹에 대한 자원 할당 요청에 대해 해당 할당 그룹의 메타 데이터를 버퍼에 장착 및 이를 잠그는 제1 과정과;A first step of mounting and locking metadata of a corresponding allocation group in a buffer in response to a resource allocation request for a specific allocation group requested from the transaction; 장착된 메타데이터를 탐색하여 여유 자원 존재 여부를 검사하는 제2 과정과;A second step of checking whether there is a spare resource by searching the mounted metadata; 여유 자원이 있을 경우 이를 메타 데이터 상에서 할당된 상태로 변경하고, 할당된 자원의 식별자를 트랜잭션 테이블의 할당 자원 리스트에 등록한 후 버퍼 장착 해제 없이 잠금만을 해제하는 제3 과정으로 이루어지는 것을 특징으로 하는 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원 할당 및 반납 방법.If there is a free resource, it is changed to the allocated state on the metadata, and registers the identifier of the allocated resource in the allocation resource list of the transaction table and then releases only the lock without dismounting the buffer. How to allocate and return parallel resources in a journaling file system in your environment.
KR1020030096972A 2003-12-24 2003-12-24 PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT KR100611739B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030096972A KR100611739B1 (en) 2003-12-24 2003-12-24 PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030096972A KR100611739B1 (en) 2003-12-24 2003-12-24 PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT

Publications (2)

Publication Number Publication Date
KR20050065202A KR20050065202A (en) 2005-06-29
KR100611739B1 true KR100611739B1 (en) 2006-08-11

Family

ID=37256728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096972A KR100611739B1 (en) 2003-12-24 2003-12-24 PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT

Country Status (1)

Country Link
KR (1) KR100611739B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170132873A (en) * 2015-04-01 2017-12-04 아브 이니티오 테크놀로지 엘엘시 Method for processing database transactions in a distributed computing system
US10552377B2 (en) 2016-05-26 2020-02-04 Research & Business Foundation Sungkyunkwan University Data discard method for journaling file system and memory management apparatus thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101669722B1 (en) * 2014-04-24 2016-10-26 한양대학교 산학협력단 Database management apparatus and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170132873A (en) * 2015-04-01 2017-12-04 아브 이니티오 테크놀로지 엘엘시 Method for processing database transactions in a distributed computing system
KR102103063B1 (en) 2015-04-01 2020-05-29 아브 이니티오 테크놀로지 엘엘시 How to process database transactions in a distributed computing system
US10552377B2 (en) 2016-05-26 2020-02-04 Research & Business Foundation Sungkyunkwan University Data discard method for journaling file system and memory management apparatus thereof

Also Published As

Publication number Publication date
KR20050065202A (en) 2005-06-29

Similar Documents

Publication Publication Date Title
Chen et al. {SpanDB}: A fast,{Cost-Effective}{LSM-tree} based {KV} store on hybrid storage
CN107077495B (en) High performance transactions in a database management system
US7831977B2 (en) Shared file system cache in a virtual machine or LPAR environment
US20040049636A1 (en) Technique for data transfer
US6185663B1 (en) Computer method and apparatus for file system block allocation with multiple redo
US8700585B2 (en) Optimistic locking method and system for committing transactions on a file system
US11386065B2 (en) Database concurrency control through hash-bucket latching
US20180336236A1 (en) Concurrent reads and inserts into a data structure without latching or waiting by readers
EP0490525A2 (en) Removal of data from a shared cache
Yuan et al. Bcc: Reducing false aborts in optimistic concurrency control with low cost for in-memory databases
US8499004B2 (en) File system with optimistic I/O operations on shared storage
US20190235933A1 (en) Index Structure Using Atomic Multiword Update Operations
US8161128B2 (en) Sharing of data across disjoint clusters
KR20120103715A (en) Mechanisms to accelerate transactions using buffered stores
US11880318B2 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
Ren et al. {CrossFS}: A Cross-layered {Direct-Access} File System
CN107408132B (en) Method and system for moving hierarchical data objects across multiple types of storage
Li et al. Leveraging NVMe SSDs for building a fast, cost-effective, LSM-tree-based KV store
US20150154117A1 (en) Providing record level sharing (rls) to individual catalogs
KR100611739B1 (en) PARALLEL RESOURCE Allocation AND freeing METHOD IN JOURNALING FILE SYSTEM OF MULTI-PROCESSOR ENVIRONMENT
Kim et al. {ScaleXFS}: Getting scalability of {XFS} back on the ring
US11216439B2 (en) Auto-expiring locks based on object stamping
US10776206B1 (en) Distributed transaction system
US20240126706A1 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
US20230004448A1 (en) Balanced winner assignment for deadlock resolution

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee