KR20050112632A - Page allocation method for supporting extents managed by bit maps in storage system - Google Patents

Page allocation method for supporting extents managed by bit maps in storage system Download PDF

Info

Publication number
KR20050112632A
KR20050112632A KR1020040037753A KR20040037753A KR20050112632A KR 20050112632 A KR20050112632 A KR 20050112632A KR 1020040037753 A KR1020040037753 A KR 1020040037753A KR 20040037753 A KR20040037753 A KR 20040037753A KR 20050112632 A KR20050112632 A KR 20050112632A
Authority
KR
South Korea
Prior art keywords
page
extent
allocating
extents
pages
Prior art date
Application number
KR1020040037753A
Other languages
Korean (ko)
Other versions
KR100617370B1 (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 KR1020040037753A priority Critical patent/KR100617370B1/en
Publication of KR20050112632A publication Critical patent/KR20050112632A/en
Application granted granted Critical
Publication of KR100617370B1 publication Critical patent/KR100617370B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (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

본 발명은 저장 시스템이 익스텐트를 지원하여 페이지를 할당하는데 있어서 익스텐트 테이블 등의 추가적인 자료 구조를 사용하지 않고, 비트 맵만을 이용하여 페이지를 할당하는 방법에 관한 것이다. 저장 시스템은 디스크 내의 저장 공간을 일정한 크기의 페이지 단위로 관리하고, 비트 맵을 이용하여 페이지의 사용 여부를 나타낸다. 익스텐트는 물리적으로 인접된 페이지들의 집합으로서, 연속적으로 액세스 될 가능성이 있는 데이터들을 같은 익스텐트 내에 저장함으로써 연속된 디스크 페이지들을 읽고 쓰는 경우 디스크의 탐색 시간을 줄여 시스템의 성능을 크게 높일 수 있다. 그 기술적 해결 수단은 파일의 첫 번째 페이지 할당 시에는 수열을 사용하여 파일의 첫 번째 페이지 위치를 볼륨 내에서 균일하게 분포시키고, 파일의 첫 번째 이외의 페이지 할당 시에는 nearPageId를 이용하여 가능한 연관된 페이지들이 같은 익스텐트에 존재하도록 한다. 이와 같은 방법으로 페이지를 할당하는 경우, 익스텐트 테이블 등의 추가적인 자료 구조는 사용되지 않고, 단지 페이지의 사용 여부를 알기 위해서 비트 맵만이 이용된다. nearPageId는 새로 할당될 페이지가 nearPageId가 나타내는 페이지와 가능한 인접한 위치에 존재하도록 알려주는 파라미터이다. The present invention relates to a method for allocating a page using only a bitmap without using an additional data structure such as an extent table in allocating pages by supporting a extent. The storage system manages the storage space on the disk in units of a certain sized page, and indicates whether a page is used using a bitmap. Extents are sets of physically contiguous pages. By storing data that is likely to be consecutively accessed in the same extent, extents can improve disk performance by reducing disk seek time when reading and writing consecutive disk pages. The technical solution is to use a sequence to allocate the first page of the file to distribute the file's first page position evenly within the volume, and to allocate pages other than the first page of the file using nearPageId To be in the same extent. When allocating pages in this way, no additional data structures, such as extent tables, are used, only a bitmap is used to know whether the pages are used. nearPageId is a parameter that indicates that the page to be newly allocated is as close as possible to the page indicated by the nearPageId.

Description

저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법{Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System} Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System}

본 발명은 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법에 관한 것으로, 특히 저장 시스템이 익스텐트를 지원하여 페이지를 할당하는데 있어서 익스텐트 테이블 등의 추가적인 자료 구조를 사용하지 않고, 비트 맵 만을 이용하여 페이지를 할당하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법에 관한 것이다. The present invention relates to a page allocation method for supporting an extent managed by a bitmap in a storage system. In particular, the storage system supports an extent and allocates a page without using an additional data structure such as an extent table. The present invention relates to a page allocation method supporting extents managed by a bitmap in a storage system for allocating a page using only a number.

근래 컴퓨터 기술 발전과 더불어 디지털 형태로 저장, 관리되는 데이터의 양이 기하급수적으로 증가하고 있다. 따라서 대용량의 데이터를 효율적으로 저장하고 관리할 수 있는 데이터베이스 시스템들이 여러 분야에서 필요하게 되었고 널리 사용되게 되었다. Recently, with the development of computer technology, the amount of data stored and managed in digital form is increasing exponentially. Therefore, database systems that can efficiently store and manage large amounts of data are needed in various fields and are widely used.

저장 시스템이란 데이터베이스 시스템의 하부 구조에 해당하는 소프트웨어의 일종으로, 데이터를 디스크에 저장하고 관리하는 기능, 트랜잭션 관리 기능, 동시성 제어 기능 및 파손 회복 기능을 담당한다. 저장 시스템은 데이터베이스 기술의 핵심 기술로서 데이터베이스 응용 프로그램의 성능에 직접적인 영향을 주는 중요한 역할을 한다. A storage system is a piece of software that is the infrastructure of a database system. It is responsible for storing and managing data on disk, transaction management, concurrency control, and crash recovery. Storage systems are the core technology of database technology and play an important role in directly affecting the performance of database applications.

저장 시스템은 디스크내의 저장 공간을 일정한 크기의 페이지 단위로 관리한다. 페이지는 디스크의 블록과 같은 의미로서 디스크의 입출력이 행해지는 최소 단위를 말한다. 여기서 최소 단위는 디스크 액세스가 페이지 크기의 정수 배에 대해서 이루어짐을 의미한다. The storage system manages the storage space on the disk in units of pages of constant size. A page is synonymous with a block of a disk, and means a minimum unit in which disk input / output is performed. The minimum unit here means that the disk access is made for an integer multiple of the page size.

볼륨 내의 페이지들의 사용 여부는 저장 시스템의 비트 맵에 의해서 관리된다. 비트 맵은 페이지 단위로 디스크에 저장되며, 연속된 여러 개의 페이지로 구성된다. 또한 비트 맵은 익스텐트 단위로 페이지들의 할당 여부를 관리한다. 비트 맵의 i번째 엔트리는 볼륨 내의 i번째 익스텐트에 속하는 페이지들의 사용 여부를 나타낸다. 그리고 i번째 엔트리에 속하는 각 비트는 i번째 익스텐트에 포함되는 각 페이지와 대응된다. 비트가 0인 경우는 이미 해당 페이지가 할당된 것을 의미하고, 1인 경우는 페이지가 아직 사용되고 있지 않은 것을 의미한다. 따라서 비트 맵의 i번째 엔트리가 110010110011인 경우에는 볼륨 내의 i번째 익스텐트가 12개의 페이지로 구성되며, i번째 익스텐트 내의 3, 4, 6, 9, 10 번째 페이지가 현재 사용중임을 나타낸다. The use of pages in the volume is managed by the bitmap of the storage system. Bitmaps are stored on disk in page units and consist of several consecutive pages. The bitmap also manages whether pages are allocated in extent units. The i th entry of the bitmap indicates whether pages belonging to the i th extent in the volume are used. Each bit belonging to the i th entry corresponds to each page included in the i th extent. A bit of 0 means that the page has already been allocated, and a 1 means that the page has not been used yet. Therefore, when the i-th entry of the bitmap is 110010110011, the i-th extent in the volume includes 12 pages, indicating that the 3rd, 4th, 6th, 9th, and 10th pages in the ith extent are currently in use.

익스텐트는 물리적으로 인접된 페이지들의 집합이다. 익스텐트는 연속적으로 액세스 할 가능성이 있는 데이터들을 같은 익스텐트 내에 밀집화함으로써, 순차적으로 액세스할 때 디스크의 탐색 시간을 줄이기 위하여 사용한다. 즉, 같은 익스텐트 내에 있는 두 페이지는 디스크 헤드의 움직임 없이 액세스가 가능하다는 점을 이용한 것이다. 디스크 헤더의 이동은 디스크 I/O 시간에 가장 큰 영향을 미치므로 논리적으로 관련이 있는 데이터는 같은 익스텐트 내에 저장함으로써 연속된 디스크 페이지들을 읽고 쓰는 경우, 시스템의 성능을 크게 높일 수 있다. An extent is a collection of physically contiguous pages. Extents are used to reduce disk seek time when sequentially accessing data by condensing data that is likely to be continuously accessed within the same extent. In other words, two pages within the same extent can be accessed without the movement of the disk head. The movement of disk headers has the greatest impact on disk I / O time, so that logically relevant data can be stored in the same extent, which can greatly improve system performance when reading and writing consecutive disk pages.

현재 익스텐트를 지원하는데 있어서 익스텐트 테이블 등의 자료 구조를 사용하는 여러 가지 익스텐트 관리 방법들이 제안되어 다수의 상용 데이터베이스 관리 시스템에서 널리 사용되고 있다. Currently, various extent management methods using data structures such as extent tables have been proposed to support extents and are widely used in many commercial database management systems.

그러나 기존의 방법들은 익스텐트 테이블 등의 추가적인 자료 구조를 볼륨에 저장하여 관리해야 한다는 문제점을 갖는다. 또한, 익스텐트 테이블 등의 추가적인 자료 구조를 일관성 있는 상태로 유지하기 위해서 이들 자료 구조에 대해서 파손 회복 기능을 사용해야 한다. 파손 회복 기능이란 컴퓨터 시스템에서 발생할 수 있는 여러 가지 오류에 의해 발생할 수 있는 데이터 일관성 손실을 막기 위한 기능이다. However, the existing methods have a problem in that additional data structures such as extent tables must be stored and managed on the volume. Also, in order to keep additional data structures, such as extent tables, in a consistent state, you must use crash recovery for these data structures. The crash recovery function is designed to prevent data consistency loss caused by various errors that may occur in a computer system.

이와 같이 기존의 방법들은 익스텐트를 지원하는데 있어서 익스텐트 테이블 등의 추가적인 자료 구조를 관리해야 하므로 너무 많은 노력이 요구된다는 문제점이 있었다. As such, the existing methods require too much effort because they need to manage additional data structures such as extent tables to support extents.

따라서, 본 발명의 목적은 상술한 문제점을 해결하기 위해, 익스텐트를 지원하여 페이지를 할당하는데 있어서 익스텐트 테이블 등의 추가적인 자료 구조를 사용하지 않고, 비트 맵만을 이용하여 페이지를 할당하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법을 제공하는데 있다. Accordingly, an object of the present invention is to solve the above-mentioned problem, in order to solve the above problem, in allocating a page by using an extent, a bitmap in a storage system that allocates a page using only a bitmap without using an additional data structure such as an extent table. It is to provide a page allocation method that supports extents managed by.

상기 목적을 달성하기 위한 본 발명의 특징은, 저장 시스템이 익스텐트를 지원하여 페이지를 할당하는데 있어서 익스텐트 테이블 등의 추가적인 자료 구조를 사용하지 않고, 비트 맵만을 사용하는데 있다. A feature of the present invention for achieving the above object is that the storage system supports only extents and uses bitmaps instead of using additional data structures such as extent tables in allocating pages.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징은, 파일의 첫 번째 페이지를 할당 할 때 수열을 사용하여 파일의 위치를 볼륨 내에 균일하게 분포시키는데 있다. An additional feature of the present invention for achieving the above object is to uniformly distribute the position of the file in the volume using a sequence when allocating the first page of the file.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징은, 파일의 첫 번째 이외의 페이지를 할당할 때 nearPageId를 이용하여 연관된 페이지들이 가능한 같은 익스텐트에 존재하도록 하는데 있다. nearPageId는 새로 할당될 페이지가 nearPageId가 나타내는 페이지와 가능한 인접한 위치에 존재하도록 알려주는 파라미터이다. An additional feature of the present invention for achieving the above object is that when assigning a page other than the first of the file, the associated pages are in the same extent as possible using the nearPageId. nearPageId is a parameter that indicates that the page to be newly allocated is as close as possible to the page indicated by the nearPageId.

상기 목적을 달성하기 위한 본 발명의 다른 특징은, 파일의 첫 번째 이외의 페이지를 할당할 때 새로 할당되는 익스텐트 수를 줄이기 위해서 nearPageId1 과 nearPageId2라는 2개의 파라미터를 이용하여 할당된 페이지 수가 적은 익스텐트가 가능한 많이 발생하지 않도록 하는데 있다. Another feature of the present invention for achieving the above object is that, in order to reduce the number of newly allocated extents when allocating a page other than the first page of the file, an extent with a small number of pages allocated using two parameters, nearPageId1 and nearPageId2 is possible. It doesn't happen much.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 설명한다. Hereinafter, with reference to the accompanying drawings will be described a preferred embodiment of the present invention.

우선, 본 발명에서 달성하고자 하는 기술적 요지를 간략히 설명하면, 저장 시스템에서 연속적으로 액세스 할 가능성이 있는 데이터들을 같은 익스텐트 내에 밀집화함으로써, 순차적으로 데이터들을 액세스할 수 있도록 하여 디스크의 탐색 시간을 줄이는 것은 매우 중요하다. 이를 위해서는 익스텐트의 관리가 필수적이다. 이를 위해서 기존의 방법들은 익스텐트 테이블 등의 추가적인 자료 구조를 사용하여 익스텐트를 관리함으로써, 연속적으로 액세스 할 가능성이 있는 데이터들을 같은 익스텐트 내에 위치시켰다. 그러나, 기존의 익스텐트 테이블 등의 추가적인 자료 구조를 가지는 방법은 익스텐트 테이블 등의 추가적인 자료 구조를 볼륨에 저장하고 관리해야 한다는 단점을 가지므로, 익스텐트를 지원하는 저장 시스템에 익스텐트 테이블 등의 추가적인 자료 구조 없이 비트 맵만을 이용하여 익스텐트를 효과적으로 관리하기 위한 방법이 필요하다. First, briefly describing the technical gist of the present invention, it is possible to reduce the seek time of a disk by allowing data to be accessed sequentially by condensing data likely to be continuously accessed in a storage system into the same extent. very important. To do this, management of extents is essential. To do this, existing methods use additional data structures, such as extent tables, to manage extents so that data that can be accessed continuously is placed in the same extent. However, the conventional method of having an additional data structure such as an extent table has the disadvantage of storing and managing an additional data structure such as an extent table on a volume, so that an additional data structure such as an extent table is not required in a storage system that supports an extent. There is a need for a method for effectively managing extents using only bitmaps.

상술한 바와 같은 필요성에 의해 제안된 본 발명에 따른 비트 맵을 이용하여 익스텐트를 지원하는 페이지 할당 방법은 첨부한 도 1에 도시되어 있다. A page allocation method for supporting extents using a bitmap according to the present invention proposed by the necessity as described above is shown in FIG. 1.

첨부한 도 1에 도시되어 있는 본 발명에 따른 비트 맵을 이용하여 익스텐트를 지원하는 페이지 할당 방법은 파일의 첫 번째 페이지를 할당하는 경우와 파일의 첫 번째 이외의 페이지를 할당하는 경우로 나누어진다. A page allocation method supporting extents using a bitmap according to the present invention shown in FIG. 1 is divided into a case of allocating a first page of a file and a case of allocating a page other than the first of a file.

즉, 페이지 할당 연산이 이루어지면(S101), 파일의 첫 번째 페이지 할당인가를 판별하여(S102), 파일의 첫 번째 페이지를 할당하는 경우에는, 파일의 위치를 볼륨 내에서 균일하게 분포시키기 위하여 다음의 수열을 이용하여 파일의 첫 번째 페이지를 할당한다(S103). 여기서 괄호는 수열의 규칙을 쉽게 이해시키기 위하여 나타낸 것이다. 아래의 수열을 구하기 위한 알고리즘은 첨부한 도 2에 나타나 있다. That is, when a page allocation operation is made (S101), it is determined whether the first page allocation of the file is performed (S102), and when the first page of the file is allocated, the next position is uniformly distributed in the volume. The first page of the file is allocated using the sequence of (S103). The parentheses are shown here for easy understanding of the rules of the sequence. An algorithm for obtaining the following sequence is shown in FIG. 2.

(1), (1/2), (3/4, 1/4), (7/8, 5/8, 3/8, 1/8), (15/16, 13/16, 11/16, 9/16, 7/16, 5/16, 3/16, 1/16), (31/32, .. , 1/32) (1), (1/2), (3/4, 1/4), (7/8, 5/8, 3/8, 1/8), (15/16, 13/16, 11/16 , 9/16, 7/16, 5/16, 3/16, 1/16), (31/32, .., 1/32)

위 수열을 이용하여 파일의 첫 번째 페이지를 할당하는 방법은 다음과 같다. 전체 볼륨의 크기를 1로 봤을 때 볼륨 내에서 위의 수열이 가리키는 위치에 존재하는 페이지가 속하는 익스텐트를 차례로 조사하여, 사용 중이 아닌 익스텐트, 다시 말하면 페이지가 하나도 할당되지 않은 익스텐트를 찾아 그 익스텐트의 첫 번째 페이지를 할당한다. 예를 들면 전체 볼륨이 총 100개의 익스텐트로 이루어진 경우, 먼저 100번째 익스텐트를 조사한다. 만약 100번째 익스텐트가 사용 중인 경우 50번째 익스텐트, 75번째 익스텐트, 25번째 익스텐트, .. 를 차례대로 조사한다. 만약 중간에 사용 중이 아닌 익스텐트를 찾게 되면 그 익스텐트의 첫 번째 페이지를 할당하고 파일의 첫번째 페이지를 찾는 알고리즘을 종료하게 된다. 이 때 익스텐트 내의 페이지의 사용 여부를 알기 위해서 비트 맵이 사용된다. The first page of the file is allocated using the sequence above. Given the size of the entire volume as 1, it examines the extents in the volume that belong to the location indicated by the sequence above, in order, looking for extents that are not in use, that is, extents with no pages allocated to it. Allocate the first page For example, if the total volume consists of a total of 100 extents, first examine the 100th extent. If the 100th extent is in use, then examine the 50th extent, the 75th extent, the 25th extent, and so on. If it finds an extent that is not in use, it allocates the first page of the extent and terminates the algorithm that finds the first page of the file. At this time, a bitmap is used to know whether the page in the extent is used.

파일의 첫 번째 페이지를 볼륨 내에서 균일하게 분포시키는 이유는 파일에 새로운 데이터가 추가되는 경우 새로 추가되는 테이타들이 각 파일의 인접한 비어 있는 페이지에 추가되도록 하기 위함이다. 이렇게 함으로써 동일한 파일에 속하는 페이지들을 액세스할 때 디스크 헤드의 움직임을 가능한 줄여 시스템의 성능을 높일 수 있다. The reason for distributing the first page of the file evenly within the volume is to ensure that when new data is added to the file, the newly added data is added to the adjacent empty pages of each file. This increases the performance of the system by reducing the movement of the disk head when accessing pages belonging to the same file.

한편, 상기 스텝 S102에서 파일의 첫 번째 페이지 할당이 아닐 경우, 즉 첫 번째 이외의 페이지를 할당하는 경우에는, nearPageId를 이용하여 연관된 페이지들이 가능한 같은 익스텐트에 존재하도록 한다. nearPageId는 새로 할당될 페이지가 nearPageId가 나타내는 페이지와 가능한 인접한 위치에 존재하도록 알려주는 파라미터이다. 파일의 첫 번째 이외의 페이지를 할당하기 위해서 nearPageId를 이용하여 할당 가능한 페이지를 찾기 위해서 볼륨 내의 익스텐트를 조사하는 순서는 다음과 같다. On the other hand, if the first page of the file is not allocated in step S102, that is, if a page other than the first is allocated, the associated pages are present in the same extent as possible using the nearPageId. nearPageId is a parameter that indicates that the page to be newly allocated is as close as possible to the page indicated by the nearPageId. The order of examining extents in a volume to find pages that can be allocated using nearPageId to allocate pages other than the first in the file is as follows:

첫 번째로 nearPageId가 속하는 익스텐트를 조사한다. nearPageId가 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾게 되면 그 페이지를 할당한 후 알고리즘을 종료한다(S104). First, examine the extent to which the nearPageId belongs. If a page that is not in use is found in the extent to which the nearPageId belongs, the algorithm is terminated after allocating the page (S104).

한편, 페이지 할당이 이루어지지 않았다고 판별되었을 경우에는(S105), 즉 nearPageId가 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾지 못한 경우에는 두 번째로 nearPageId의 오른쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당한 후 알고리즘을 종료한다(S106). On the other hand, if it is determined that page allocation has not been made (S105), that is, if a page that is not in use is not found in the extent to which the nearPageId belongs, the second right side of the nearPageId is examined in order, and the first of the unused extents is sequentially examined. After the page is allocated, the algorithm is terminated (S106).

한편, 페이지 할당이 이루어지지 않았다고 판별되었을 경우에는(S107), 즉 nearPageId의 오른쪽 익스텐트들 중에서 사용 중이 아닌 익스텐트를 찾지 못한 경우에는 마지막으로 nearPageId의 왼쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당한다(S108). 이 때, 익스텐트 내에서 사용 중이 아닌 페이지를 찾거나 사용 중이 아닌 익스텐트를 찾을 때 비트 맵이 사용된다. On the other hand, if it is determined that no page allocation has been made (S107), that is, if an unused extent is not found among the right extents of the nearPageId, the left extents of the nearPageId are sequentially examined, and the first of the unused extents is sequentially examined. The page is allocated (S108). At this point, the bitmap is used to find pages that are not in use within an extent or to find extents that are not in use.

그러나, nearPageId라는 파라미터를 이용하여 파일의 첫 번째 이외의 페이지를 할당하는 방법을 사용하는 경우 nearPageId가 속한 익스텐트에 빈 페이지가 없으면 새로운 익스텐트를 할당하게 되어 사용 중인 페이지 수가 적은 익스텐트가 많이 발생하게 되는 문제점이 있다. 이 수를 줄이기 위하여 페이지를 할당 받을 때 nearPageId1, nearPageId2와 같이 2개의 파라미터를 지정하게 한다. 여기서 nearPageId1과 nearPageId2는 서로 다른 익스텐트에 속하는 페이지의 식별자이다. However, when using the method of allocating a page other than the first in the file by using a parameter called nearPageId, if there is no empty page in the extent to which the nearPageId belongs, a new extent is allocated and a lot of extents with fewer pages are in use. There is this. To reduce this number, when assigning a page, two parameters should be specified: nearPageId1 and nearPageId2. Where nearPageId1 and nearPageId2 are identifiers of pages belonging to different extents.

사용 중인 페이지 수가 적은 익스텐트가 가능한 적게 할당되도록 하기 위해서 nearPageId1과 nearPageId2라는 2개의 파라미터를 사용하여 할당 가능한 페이지를 찾기 위해서 볼륨내의 익스텐트를 조사하는 순서는 도 3 에 도시되어 있다. The order of examining extents in a volume to find pages that can be allocated using two parameters, nearPageId1 and nearPageId2, to ensure that as few extents as possible are allocated, is shown in FIG.

페이지 할당 연산이 이루어지면(S301), 첫 번째로 nearPageId1이 속하는 익스텐트를 조사한다. nearPageId1이 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾게 되면 그 페이지를 할당한 후 알고리즘을 종료한다(S302). If a page allocation operation is made (S301), first, the extent to which nearPageId1 belongs is examined. If a page that is not in use is found in the extent to which nearPageId1 belongs, the algorithm is terminated after allocating the page (S302).

한편, 페이지 할당이 이루어지지 않았다고 판별되었을 경우에는(S303), nearPageId1이 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾지 못한 경우에는 두 번째로 nearPageId2가 속하는 익스텐트를 조사하여, 사용 중이 아닌 페이지를 찾게 되면 그 페이지를 할당한 후 알고리즘을 종료한다(S304). On the other hand, if it is determined that no page allocation has been made (S303), and if a page that is not in use is not found in the extent to which nearPageId1 belongs, the second time is examined by the extent to which nearPageId2 belongs, and when the page is not in use, the page is found. After allocating the algorithm, the algorithm ends (S304).

한편, 페이지 할당이 이루어지지 않았다고 판별되었을 경우에는(S305), 즉 nearPageId2가 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾지 못한 경우에는 세 번째로 nearPageId2의 오른쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당한 후 알고리즘을 종료한다(S306). On the other hand, if it is determined that the page allocation has not been made (S305), that is, if a page that is not in use is not found in the extent to which nearPageId2 belongs, then the right extents of nearPageId2 are examined in turn, and the first of the unused extents is sequentially examined. After the page is allocated, the algorithm is terminated (S306).

한편, 페이지 할당이 이루어지지 않았다고 판별되었을 경우에는(S307), 즉 nearPageId2의 오른쪽 익스텐트들 중에서 사용 중이 아닌 익스텐트를 찾지 못한 경우에는 마지막으로 nearPageId1의 왼쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당한다(S308). On the other hand, if it is determined that no page allocation has been made (S307), that is, if no unused extents are found among the right extents of nearPageId2, the left extents of nearPageId1 are examined one by one, and the first of the unused extents is sequentially examined. The page is allocated (S308).

nearPageId1과 nearPageId2를 구하는 것을 데이터 파일에 객체를 새로 삽입하는 경우를 예로 들어 설명하면 다음과 같다. 새로운 객체를 삽입하는 경우 클러스터링 인덱스를 사용하여 삽입되는 객체와 인접한 키 값을 갖는 객체를 찾는데, 그 객체가 존재하는 페이지가 nearPageId1이 된다. 그리고 nearPageId1이 속하는 익스텐트와 인접한 익스텐트의 첫 번째 페이지가 nearPageId2가 된다. For example, obtaining nearPageId1 and nearPageId2 by inserting a new object into the data file is as follows. When inserting a new object, the clustering index is used to find an object with a key value adjacent to the inserted object. The page on which the object exists becomes nearPageId1. And the first page of the extent to which the nearPageId1 belongs is the nearPageId2.

이와 같이 nearPageId1과 nearPageId2를 가지고 파일의 첫 번째 이외의 페이지를 할당하게 되면 nearPageId만을 사용하여 파일의 첫 번째 이외의 페이지를 할당하는 것에 비해서 할당된 페이지 수가 적은 익스텐트가 더 적게 할당된다. In this way, allocating a page other than the first page of the file with nearPageId1 and nearPageId2 allocates fewer extents than the page allocation using only the nearPageId.

본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의하여 많은 변형이 가능함은 명백할 것이다. The present invention is not limited to the above-described embodiments, and it will be apparent that many modifications are possible by those skilled in the art within the technical spirit of the present invention.

상술한 바와 같이, 본 발명에 따른 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법은 다음과 같은 장점을 얻을 수 있다. As described above, the page allocation method supporting the extent managed by the bitmap in the storage system according to the present invention can obtain the following advantages.

첫째, 익스텐트 테이블 등의 추가적인 자료 구조를 사용하지 않고 비트 맵만을 이용하여 익스텐트를 지원하도록 페이지를 할당할 수 있다. 따라서 익스텐트 테이블 등의 추가적인 자료 구조를 볼륨 내에 저장하고 관리하는데 필요한 오버헤드가 없다. First, pages can be allocated to support extents using only bitmaps, without using additional data structures such as extent tables. Therefore, there is no overhead for storing and managing additional data structures such as extent tables in the volume.

둘째, 파일의 위치를 볼륨 내에서 균일하게 분포시킬 수 있다. 본 발명의 파일의 첫 번째 페이지 할당 방법은 수열을 사용하여 쉽고 빠르게 파일의 위치를 볼륨 내에서 균일하게 분포시킬 수 있다. Second, the file's position can be distributed evenly within the volume. The first page allocation method of the file of the present invention can use the sequence to easily and quickly distribute the file's position uniformly within the volume.

셋째, 연관된 페이지들이 가능한 같은 익스텐트에 존재하도록 한다. 본 발명의 파일의 첫 번째 이외의 페이지 할당 방법은 nearPageId라는 파라미터를 이용하여 연관된 페이지들이 가능한 같은 익스텐트에 존재하도록 새로운 페이지를 할당할 수 있다. Third, make sure that the associated pages are in the same extent as possible. The page allocation method other than the first of the file of the present invention may allocate a new page so that the associated pages exist in the same extent as possible using a parameter called nearPageId.

넷째, 할당된 페이지 수가 적은 익스텐트가 많이 발생하게 되는 문제점이 발생하지 않아 디스크 사용률이 높아진다. 본 발명의 파일의 첫 번째 이외의 페이지 할당 시, nearPageId1 과 nearPageId2라는 2개의 파라미터를 사용하여 할당된 페이지 수가 적은 익스텐트가 가능한 많이 발생하지 않도록 할 수 있다. Fourth, there is no problem that many extents with a small number of allocated pages do not occur, resulting in high disk utilization. When allocating a page other than the first of the file of the present invention, two parameters, nearPageId1 and nearPageId2, can be used to prevent as many extents as possible from having a small number of allocated pages.

도 1은 본 발명에 따른 저장 시스템에서 파일의 페이지 할당 과정 흐름도, 1 is a flowchart of a page allocation process of a file in a storage system according to the present invention;

도 2는 본 발명에 따른 저장 시스템에서 파일의 첫 번째 페이지 할당 시, 파일의 위치를 볼륨 내에서 균일하게 분포시키기 위해서 사용되는 수열 생성 알고리즘, 2 is a sequence generation algorithm used to uniformly distribute the position of a file in a volume when allocating a first page of a file in a storage system according to the present invention;

도 3은 본 발명에 따른 저장 시스템에서 파일의 첫 번째 이외의 페이지 할당 시, 새로 할당되는 익스텐트 수를 줄이기 위한 개선 방안 수행 과정 흐름도이다. 3 is a flowchart illustrating a method for improving an operation for reducing the number of newly allocated extents when allocating a page other than the first page of a file in the storage system according to the present invention.

Claims (4)

익스텐트를 지원하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법에 있어서, In a page allocation method supporting an extent managed by a bitmap in a storage system that supports an extent, 익스텐트 테이블을 포함한 추가적인 자료 구조의 사용을 방지하기 위해, 파일의 위치를 볼륨 내에서 균일하게 분포시키기 위하여 특정수열을 이용하여 파일의 첫 번째 페이지를 할당함과 아울러 새로 할당될 페이지가 nearPageId가 나타내는 페이지와 가능한 인접한 위치에 존재하도록 알려주는 파라미터인 nearPageId를 이용하여 연관된 페이지들을 동일한 익스텐트에 할당하여 상기 첫 번째 페이지 이외의 페이지를 할당함으로써 페이지의 사용여부를 나타내는 비트 맵만을 이용하여 페이지를 할당하는 것을 특징으로 하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법. To prevent the use of additional data structures, including extent tables, the first page of the file is allocated using a specific sequence to distribute the file's position evenly within the volume, and the page to be newly allocated is the page indicated by the nearPageId. Allocate pages using only a bitmap that indicates whether a page is used by allocating pages other than the first page by allocating related pages to the same extent using a parameter nearPageId indicating that the parameter is to exist in the adjacent position with. A page allocation method that supports extents managed by bitmaps in a storage system. 제 1 항에 있어서, 상기 특정수열을 이용하여 파일의 첫 번째 페이지를 볼륨 내에서 균일하게 분포시켜 할당하는 방법은, 볼륨 내에서 상기 특정수열이 가리키는 위치에 존재하는 페이지가 속하는 익스텐트를 차례로 조사하여, 페이지가 하나도 할당되지 않은 익스텐트를 찾아 그 익스텐트의 첫 번째 페이지를 할당하는 것을 특징으로 하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법. The method of claim 1, wherein the first page of the file is uniformly distributed and allocated in the volume by using the specific sequence. The extent to which the page existing at the position indicated by the specific sequence in the volume belongs is sequentially determined. And allocating an extent to which no page is allocated and allocating the first page of the extent. 제 1 항에 있어서, 첫 번째 이외의 페이지를 할당하는 방법은, The method of claim 1, wherein the method of allocating a page other than the first one comprises: nearPageId가 속하는 익스텐트를 조사하여 nearPageId가 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾게 되면 그 페이지를 할당하는 제 1 단계; examining the extent to which the nearPageId belongs and finding a page that is not in use in the extent to which the nearPageId belongs; 상기 제 1 단계에서 페이지 할당이 이루어지지 않았다고 판별되었을 경우에 nearPageId의 오른쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당하는 제 2 단계; 및 A second step of sequentially examining right extents of nearPageId when allocating page allocation in the first step, and allocating a first page of an extent not in use; And 상기 제 2 단계에서 페이지 할당이 이루어지지 않았다고 판별되었을 경우에 nearPageId의 왼쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당하는 제 3 단계A third step of allocating the first page of the extent not in use by sequentially examining the left extents of the nearPageId when it is determined in the second step that no page allocation has been made; 로 진행하는 것을 특징으로 하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법. A page allocation method for supporting extents managed by a bitmap in a storage system, characterized in that proceeding to. 제 1 항 또는 제 3 항에 있어서, 상기 첫 번째 이외의 페이지를 할당 시, nearPageId가 속한 익스텐트에 빈 페이지가 없으면 새로운 익스텐트를 할당하게 되어 사용 중인 페이지 수가 적은 익스텐트가 많이 발생하게 되는 것을 방지하기 위해, 서로 다른 익스텐트에 속하는 페이지의 식별자인 nearPageId1과 nearPageId2를 지정하고, [4] The method of claim 1 or 3, wherein when allocating a page other than the first one, if there are no empty pages in the extent to which the nearPageId belongs, new extents are allocated to prevent the occurrence of many extents with a small number of pages in use. , Specify nearPageId1 and nearPageId2, the identifiers of pages belonging to different extents, nearPageId1이 속하는 익스텐트를 조사하여 nearPageId1이 속하는 익스텐트에서 사용 중이 아닌 페이지를 찾게 되면 그 페이지를 할당하는 제 4 단계; a fourth step of allocating the page if the page that is not in use is found in the extent to which nearPageId1 belongs by examining the extent to which nearPageId1 belongs; 상기 제 4 단계에서 페이지 할당이 이루어지지 않았다고 판별되었을 경우에 nearPageId2가 속하는 익스텐트를 조사하여, 사용 중이 아닌 페이지를 찾게 되면 그 페이지를 할당하는 제 5 단계; A fifth step of examining an extent to which nearPageId2 belongs when it is determined that the page allocation is not made in the fourth step, and allocating the page when a page that is not in use is found; 상기 제 5 단계에서 페이지 할당이 이루어지지 않았다고 판별되었을 경우에 nearPageId2의 오른쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당하는 제 6 단계: 및 A sixth step of allocating the first page of the extent not in use by sequentially examining the right extents of nearPageId2 when it is determined that the page allocation has not been made in the fifth step; and 상기 제 6 단계에서 페이지 할당이 이루어지지 않았다고 판별되었을 경우에 nearPageId1의 왼쪽 익스텐트들을 차례로 조사하여, 사용 중이 아닌 익스텐트의 첫 번째 페이지를 할당하는 제 7 단계In the sixth step, when it is determined that the page allocation is not made, the seventh step of allocating the first page of the extent not in use by sequentially examining the left extents of nearPageId1 is performed. 로 진행하는 것을 특징으로 하는 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법. A page allocation method for supporting extents managed by a bitmap in a storage system, characterized in that proceeding to.
KR1020040037753A 2004-05-27 2004-05-27 Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System KR100617370B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040037753A KR100617370B1 (en) 2004-05-27 2004-05-27 Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040037753A KR100617370B1 (en) 2004-05-27 2004-05-27 Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System

Publications (2)

Publication Number Publication Date
KR20050112632A true KR20050112632A (en) 2005-12-01
KR100617370B1 KR100617370B1 (en) 2006-08-29

Family

ID=37287491

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040037753A KR100617370B1 (en) 2004-05-27 2004-05-27 Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System

Country Status (1)

Country Link
KR (1) KR100617370B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100883651B1 (en) * 2006-05-18 2009-02-18 삼성전자주식회사 Method and apparatus for allocating free space of disc for a file to be written on the disc
US8473464B2 (en) 2009-01-30 2013-06-25 Samsung Electronics Co., Ltd. Method and device for data recovery using bit logging

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791325B1 (en) 2006-10-27 2008-01-03 삼성전자주식회사 Apparatus and method for managing nonvolatile memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10112166A (en) 1996-10-04 1998-04-28 Sony Corp Method and device for finalizing optical disk
KR100484942B1 (en) 2002-03-14 2005-04-25 한국전자통신연구원 Method for managing directories of large-scale file system
JP2005070950A (en) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd Program processing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100883651B1 (en) * 2006-05-18 2009-02-18 삼성전자주식회사 Method and apparatus for allocating free space of disc for a file to be written on the disc
US8473464B2 (en) 2009-01-30 2013-06-25 Samsung Electronics Co., Ltd. Method and device for data recovery using bit logging

Also Published As

Publication number Publication date
KR100617370B1 (en) 2006-08-29

Similar Documents

Publication Publication Date Title
US8621174B2 (en) Relocating data within a file system
US7900008B2 (en) Disk space allocation
US5784699A (en) Dynamic memory allocation in a computer using a bit map index
CN103019948B (en) The swap file using sequence continuously is operated the method and system of set exchange
CN107168657B (en) Virtual disk hierarchical cache design method based on distributed block storage
KR100599429B1 (en) Partition creating method and deleting method
US5426752A (en) Method for allocating real pages to virtual pages having different page sizes therefrom
CN110555001B (en) Data processing method, device, terminal and medium
EP2583181A2 (en) Hierarchical allocation for file system storage device
EP0032956A1 (en) Data processing system utilizing hierarchical memory
CN111522507B (en) Low-delay file system address space management method, system and medium
CN103399823A (en) Method, equipment and system for storing service data
CN110968269A (en) SCM and SSD-based key value storage system and read-write request processing method
US7496722B2 (en) Memory mapped page priorities
KR100907477B1 (en) Apparatus and method for managing index of data stored in flash memory
CN112784120B (en) KV memory database storage management method based on range fragmentation mode
US7032085B2 (en) Storage system with a data sort function
KR100617370B1 (en) Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System
US8001084B2 (en) Memory allocator for optimistic data access
CN114969189A (en) Method and device for determining connection in database connection pool
CN1333346C (en) Method for accessing files
KR100859989B1 (en) Apparatus for managing space information of flash memory and method of the same
CN113760171A (en) Metadata storage method and device
US10860558B2 (en) Techniques for managing index structures for database tables
CN117251101A (en) Writing method applied to mapping relation of memory and memory

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