KR100617370B1 - 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 PDFInfo
- Publication number
- KR100617370B1 KR100617370B1 KR1020040037753A KR20040037753A KR100617370B1 KR 100617370 B1 KR100617370 B1 KR 100617370B1 KR 1020040037753 A KR1020040037753 A KR 1020040037753A KR 20040037753 A KR20040037753 A KR 20040037753A KR 100617370 B1 KR100617370 B1 KR 100617370B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- extent
- extents
- allocating
- pages
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing 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.
저장 시스템, 비트 맵, 익스텐트, 페이지 할당 Storage system, bitmap, extent, page allocation
Description
도 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.
본 발명은 저장 시스템에서 비트 맵에 의하여 관리되는 익스텐트를 지원하는 페이지 할당 방법에 관한 것으로, 특히 저장 시스템이 익스텐트를 지원하여 페이지를 할당하는데 있어서 익스텐트 테이블 등의 추가적인 자료 구조를 사용하지 않고, 비트 맵 만을 이용하여 페이지를 할당하는 저장 시스템에서 비트 맵에 의하여 관리되는 익 스텐트를 지원하는 페이지 할당 방법에 관한 것이다. 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 an extent managed by a bitmap in a storage system which allocates a page using only a map.
근래 컴퓨터 기술 발전과 더불어 디지털 형태로 저장, 관리되는 데이터의 양이 기하급수적으로 증가하고 있다. 따라서 대용량의 데이터를 효율적으로 저장하고 관리할 수 있는 데이터베이스 시스템들이 여러 분야에서 필요하게 되었고 널리 사용되게 되었다. 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.
Claims (4)
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 KR20050112632A (en) | 2005-12-01 |
KR100617370B1 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100791325B1 (en) | 2006-10-27 | 2008-01-03 | 삼성전자주식회사 | Apparatus and method for managing nonvolatile memory |
Families Citing this family (2)
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 |
KR101583716B1 (en) | 2009-01-30 | 2016-01-08 | 삼성전자주식회사 | Method and apparatus for recovering data using bit logging |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978336A (en) | 1996-10-04 | 1999-11-02 | Sony Corporation | Optical disk finalization method and optical disk finalization apparatus |
US20030177151A1 (en) | 2002-03-14 | 2003-09-18 | Yong Ju Lee | Method for managing directories of large-scale file system |
KR20050021241A (en) * | 2003-08-21 | 2005-03-07 | 산요덴키가부시키가이샤 | Program processing apparatus |
-
2004
- 2004-05-27 KR KR1020040037753A patent/KR100617370B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978336A (en) | 1996-10-04 | 1999-11-02 | Sony Corporation | Optical disk finalization method and optical disk finalization apparatus |
US20030177151A1 (en) | 2002-03-14 | 2003-09-18 | Yong Ju Lee | Method for managing directories of large-scale file system |
KR20050021241A (en) * | 2003-08-21 | 2005-03-07 | 산요덴키가부시키가이샤 | Program processing apparatus |
Non-Patent Citations (2)
Title |
---|
1020040037753 - 607207 |
1020040037753 - 607211 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100791325B1 (en) | 2006-10-27 | 2008-01-03 | 삼성전자주식회사 | Apparatus and method for managing nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
KR20050112632A (en) | 2005-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7900008B2 (en) | Disk space allocation | |
US8621174B2 (en) | Relocating data within a file system | |
US5784699A (en) | Dynamic memory allocation in a computer using a bit map index | |
US5426752A (en) | Method for allocating real pages to virtual pages having different page sizes therefrom | |
CN110555001B (en) | Data processing method, device, terminal and medium | |
CN110968269A (en) | SCM and SSD-based key value storage system and read-write request processing method | |
CN103399823A (en) | Method, equipment and system for storing service data | |
Amur et al. | Design of a write-optimized data store | |
CN111522507A (en) | Low-delay file system address space management method, system and medium | |
KR100907477B1 (en) | Apparatus and method for managing index of data stored in flash memory | |
CN111078143B (en) | Hybrid storage method and system for data layout and scheduling based on segment mapping | |
CN116107762A (en) | Memory allocation method, memory allocation device, electronic equipment and storage medium | |
US7032085B2 (en) | Storage system with a data sort function | |
KR100617370B1 (en) | Page Allocation Method for Supporting Extents Managed by Bit Maps in Storage System | |
CN104102735A (en) | File system optimizing method and file system optimizing device aiming at database files | |
CN111859038A (en) | Data heat degree statistical method and device for distributed storage system | |
US8001084B2 (en) | Memory allocator for optimistic data access | |
US20060242369A1 (en) | Memory mapped page priorities | |
CN115563123A (en) | Database and table dividing method for gene injection partition keys | |
US20100169322A1 (en) | Efficient access of bitmap array with huge usage variance along linear fashion, using pointers | |
CN112068948B (en) | Data hashing method, readable storage medium and electronic device | |
KR100859989B1 (en) | Apparatus for managing space information of flash memory and method of the same | |
CN113760171A (en) | Metadata storage method and device | |
CN112084141A (en) | Full-text retrieval system capacity expansion method, device, equipment and medium | |
CN116737664B (en) | Efficient index organization method of object-oriented embedded database |
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 |