KR101057468B1 - Buffer Consistency Management Method in Multiserver Database Management System Using Shared Disk Model - Google Patents
Buffer Consistency Management Method in Multiserver Database Management System Using Shared Disk Model Download PDFInfo
- Publication number
- KR101057468B1 KR101057468B1 KR1020090072483A KR20090072483A KR101057468B1 KR 101057468 B1 KR101057468 B1 KR 101057468B1 KR 1020090072483 A KR1020090072483 A KR 1020090072483A KR 20090072483 A KR20090072483 A KR 20090072483A KR 101057468 B1 KR101057468 B1 KR 101057468B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- info
- timestamp
- buffer
- volume
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 데이터베이스 관리시스템(database management system, DBMS)에서의 버퍼 일관성 관리방법에 관한 것으로서, 해결하고자 하는 기술적 과제는 버퍼 일관성 문제를 발생시키는 페이지만을 서버 프로세서의 버퍼에서 선택적으로 삭제함으로써, 불필요한 작업을 줄여 버퍼의 사용을 효율적으로 하고, 다수의 서버 프로세스의 버퍼들 간의 일관성을 유지할 수 있는 공유 디스크 모델을 사용하는 다중 서버 데이터베이스 관리 시스템과 이를 이용한 버퍼 일관성 관리 방법을 제공하는 데 있다. The present invention relates to a method of managing buffer consistency in a multi-server database management system (DBMS) using a shared-disk model. The technical problem to be solved is a page that causes a buffer consistency problem. Multiple server database management systems and buffers using a shared disk model that can be selectively deleted from the server processor's buffers, reducing the unnecessary work for efficient use of the buffers, and maintaining consistency among the buffers of multiple server processes. It is to provide a consistency management method.
이를 위해, 본 발명에 따른 공유 디스크 모델을 사용하는 다중 서버 DBMS에서 버퍼 일관성 관리방법은, 서버 프로세스가 트랜잭션 수행 중 버퍼 페이지를 디스크로 쓰기(write-out)하는 경우 수정한 버퍼 페이지에 대한 정보인 페이지 정보(page-info)를 서버 프로세스 내의 페이지 정보 리스트(page-info list)에 저장하는 트랜잭션 수행 단계와, 서버 프로세스가 트랜잭션 수행 중 볼륨 로크를 획득한 경우 일관성 볼륨(coherency volume) 내의 페이지 정보(page-info) 페이지를 읽어서 버퍼의 내용을 데이터베이스와 일치시키는 볼륨 로크 획득단계 및 트랜잭션 수행단계 또는 볼륨 로크 획득단계를 수행한 후 트랜잭션 종료시에 서버 프로세스의 페이지 정보 리스트(page-info list)에 저장되어 있는 수정된 페이지 정보(page-info)를 일관성 볼륨(coherency volume)에 저장하는 트랜잭션 종료단계를 포함하는 것을 특징으로 한다. To this end, in the multi-server DBMS using the shared disk model according to the present invention, the buffer consistency management method includes information on the modified buffer page when the server process writes out the buffer page to disk during a transaction. A transaction execution step of storing page information (page-info) in a page-info list in the server process, and page information in a coherency volume if the server process acquires a volume lock during transaction execution. page-info) is read and stored in the page-info list of the server process at the end of the transaction after the volume lock acquisition and transaction execution or volume lock acquisition steps that match the contents of the buffer with the database. Transactions that store modified page-info in a coherency volume Characterized in that it comprises a termination step.
다중 서버 데이터베이스 관리시스템(database management system, DBMS), 공유 디스크(Shared-disk), 버퍼, 일관성, 페이지 Multi-server database management system (DBMS), shared-disk, buffers, consistency, pages
Description
본 발명은 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 데이터베이스 관리시스템(database management system, DBMS)에서의 버퍼 일관성 관리방법에 관한 것이다. The present invention relates to a buffer consistency management method in a multi-server database management system (DBMS) using a shared-disk model.
오늘날 대부분의 기업들은 인터넷을 통해 데이터베이스를 액세스할 수 있도록 함으로써, 다양한 서비스를 온라인으로 제공하고 있다. 예를 들어 항공사의 데이터베이스에 저장되어 있는 비행 스케줄을 인터넷을 통하여 열람할 수 있고, 항공권을 예약하면 예약정보가 항공사의 데이터베이스에 저장된다. 이러한 서비스를 제공하기 위하여 웹 서버와 데이터베이스 관리시스템(database management system, 이하, DBMS)을 연동하여 사용하는데, 이때, 동시에 들어오는 수많은 사용자의 요청을 빠르게 처리하기 위해서는 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS를 사용해야 할 필요성이 있다. Most companies today offer a variety of services online by allowing their databases to be accessed over the Internet. For example, a flight schedule stored in the airline's database can be viewed through the Internet. When a ticket is booked, the reservation information is stored in the airline's database. In order to provide such a service, a web server and a database management system (DBMS) are used in conjunction with each other. In this case, a shared-disk model is used to quickly process a large number of incoming requests. There is a need to use a multi-server DBMS.
다중 서버 DBMS는, 도 1에 도시된 바와 같이, 서버 프로세스가 복수 개인 DBMS이다. 이때, 서버 프로세스들은 하나의 머신 또는 복수 개의 머신에서 동작하며, 다수개의 서버 프로세스들이 메모리와 디스크를 서로 공유하는지의 여부에 따라서 공유 메모리(Shared-memory), 비공유(Shared-nothing), 공유 디스크(Shared-disk) 모델로 나뉜다. As shown in Fig. 1, a multi-server DBMS is a DBMS having a plurality of server processes. At this time, the server processes operate on one machine or a plurality of machines, and shared-memory, shared-nothing, and shared disks (depending on whether or not the plurality of server processes share memory and disks with each other). Shared-disk) model.
공유 메모리(Shared-memory) 모델은, 도 2에 도시된 바와 같이, 모든 서버 프로세스들이 디스크와 메모리를 서로 공유한다. 따라서 디스크 액세스 횟수가 적고, 통신 비용이 적게 드는 반면에, 특정 서버 프로세스가 잘못된 연산을 수행하여 공유 메모리에 저장하면 모든 서버 프로세스가 이에 영향을 받기 때문에 안정성이 낮고, 다수의 머신으로의 확장이 어렵다는 단점이 있다. In the shared-memory model, as shown in FIG. 2, all server processes share a disk and a memory. Thus, while fewer disk accesses and lower communication costs, if a particular server process performs a wrong operation and stores it in shared memory, all server processes are affected, which makes it less reliable and difficult to scale to multiple machines. There are disadvantages.
비공유(Shared-nothing) 모델은, 도 3에 도시된 바와 같이, 각 서버 프로세스가 독립된 메모리와 디스크를 갖는다. 따라서 서버 프로세스 간에 공유하는 자원이 없으므로 다수의 머신으로의 확장이 용이하고, 특정 서버 프로세스가 잘못된 연산을 하여 메모리에 저장을 하더라도 다른 서버 프로세스의 메모리에 영향을 주지 않으므로 안정성이 높다. 하지만 공유하는 자원이 없기 때문에, 서버 프로세스들 간의 통신 비용과 특정 서버 프로세스가 수정한 내용에 대해 모든 디스크에 반영할 때 데이터베이스 갱신 비용이 비싸다는 단점이 있다. In the shared-nothing model, as shown in FIG. 3, each server process has a separate memory and disk. Therefore, there is no shared resource among server processes, so it is easy to expand to multiple machines, and even if a certain server process does a wrong operation and saves it in memory, it does not affect the memory of other server processes. However, since there is no shared resource, the cost of database update is high when the communication costs between server processes and the modifications made by a particular server process are reflected on all disks.
공유 디스크(Shared-disk) 모델은, 도 4에 도시된 바와 같이, 각 서버 프로세스가 독립된 메모리를 가지며 단지 디스크만을 서로 공유한다. 이때, 다수의 머신들 간의 디스크 공유를 위하여 네트워크 파일시스템(network file system, 이하, NFS) 또는 저장영역 네트워크(storage area network, 이하, SAN) 등의 방법이 사용된다. In the shared-disk model, as shown in Figure 4, each server process has independent memory and only shares disks with each other. At this time, a method such as a network file system (NFS) or a storage area network (SAN) is used to share disks among a plurality of machines.
공유 디스크(Shared-disk) 모델은, 비공유(Shared-nothing) 모델과 동일하게, 서버 프로세스들이 메모리를 공유하지 않으므로 안정성이 높고, 다수의 머신에서의 디스크 공유시 발생하는 오버헤드가 메모리 공유시 발생하는 오버헤드에 비하여 상대적으로 작기 때문에 공유 메모리(Shared-memory) 모델에 비하여 다수의 머신으로의 확장이 용이하다. The shared-disk model, like the shared-nothing model, is highly reliable because server processes do not share memory, and the overhead of sharing disks on multiple machines incurs memory sharing. Relatively small compared to the overhead, it is easy to scale to multiple machines compared to the shared-memory model.
웹 서비스에 사용되는 다중 서버 DBMS는 다음과 같은 조건을 만족시켜야 한다. 첫째, 웹 서비스는 사용자들에게 24시간 제공되어야 하므로 안정성이 높아야 한다. 둘째, 많은 사용자의 요청을 빠르게 처리하기 위해서는 서버 프로세스들이 다수의 머신에서 동작하는 것이 유리하므로 다수의 머신으로의 확장이 용이해야 한다. 셋째, 최근의 웹서비스들은 사용자에 의한 컨텐츠의 갱신을 지원하므로 데이터베이스의 갱신이 용이해야 한다.Multi-server DBMS used for web service must satisfy the following conditions. First, Web services must be available to users 24 hours a day, so they must be reliable. Second, in order to process many user requests quickly, it is advantageous for server processes to run on multiple machines, so it must be easy to scale to multiple machines. Third, the recent web services support the updating of contents by the user, so the updating of the database should be easy.
따라서, 다중 서버 DBMS의 세 가지 모델 중 공유 디스크(Shared-disk) 모델이 안정성과 확장성이 떨어지는 공유 메모리(Shared-memory) 모델이나, 데이터베이스 갱신비용이 많이 드는 비공유(Shared-nothing) 모델보다 웹서비스에 사용되기에 적합하다. Therefore, of the three models of multi-server DBMSs, the shared-disk model is less reliable and scalable than the shared-memory model, or the shared-nothing model, which requires expensive database updates. Suitable for use in services.
하지만 공유 디스크(Shared-disk) 모델은, 서버 프로세스들이 버퍼를 서로 공유하지 않기 때문에, 여러 서버 프로세스들이 동일한 페이지를 액세스하는 경우, 각 서버 프로세스마다 해당 페이지를 공용 디스크로부터 새로이 로드해야 하는 단점이 있다. However, the shared-disk model has a disadvantage in that, because server processes do not share buffers with each other, if multiple server processes access the same page, each server process needs to load a new page from the public disk. .
또한, 특정 서버 프로세스가 데이터베이스를 수정하더라도 다른 서버 프로세스들의 버퍼에는 수정된 내용이 반영되지 않기 때문에 다른 서버 프로세스들이 질의를 수행할 때, 수정되기 전의 내용에 대하여 질의가 수행되어 데이터베이스의 정확한 상태를 반영하지 못하는 버퍼 일관성 문제가 발생한다.Also, even if a specific server process modifies the database, the modified contents are not reflected in the buffers of other server processes. When other server processes query, the query is executed on the contents before the modification, reflecting the exact state of the database. There is a buffer consistency problem.
버퍼 일관성 문제는 도 5에 도시된 바와 같이, 데이터베이스 정보의 일관성 에 문제가 발생하는 것을 말하는데, 서버 프로세스 P1과 P2가 동일한 페이지 p를 읽은 경우 각 서버 프로세스는 페이지 p에 해당하는 버퍼 페이지를 각각의 메모리에 가지고 있게 된다. 이후에 서버 프로세스 P1이 페이지 p를 수정하면 서버 프로세스 P2가 가지는 버퍼 페이지 p의 내용은 데이터베이스 내의 페이지 p의 내용과 달라진다. 따라서, 프로세스 P2가 버퍼 페이지 p를 읽거나 수정하게 되면 데이터베이스의 일관성 문제가 발생하게 되는 것이다.As shown in FIG. 5, the buffer consistency problem indicates that there is a problem in the consistency of database information. When server processes P 1 and P 2 read the same page p, each server process reads a buffer page corresponding to page p. It is held in each memory. Subsequently, if server process P 1 modifies page p, the contents of buffer page p of server process P 2 differ from those of page p in the database. Thus, if process P 2 reads or modifies the buffer page p, it will cause a database consistency problem.
버퍼 일관성 문제를 해결하기 위해 데이터베이스의 모든 페이지들이 수정되었다는 가정 하에 서버 프로세스가 읽거나 쓰기를 하는 해당 페이지를 버퍼에서 모두 삭제하고, 수정된 페이지를 새로이 버퍼로 읽어 들이는 방법이 있지만, 페이지의 내용이 수정되지 않아서 버퍼 일관성 문제를 발생시키지 않는 페이지들까지도 버퍼에서 삭제하고 다시 데이터베이스에서 읽어 들이기 때문에 다중 서버 DBMS의 성능을 크게 저하하는 문제점이 있다.Assuming that all pages in the database have been modified to solve the buffer consistency problem, there are ways to delete all the pages that the server process reads or writes from the buffer and read the modified pages into the new buffer. Even if pages that are not modified and do not cause buffer consistency problems are deleted from the buffer and read back from the database, there is a problem that greatly reduces the performance of the multi-server DBMS.
본 발명은 상기한 바와 같은 과제를 해결하기 위해 안출된 것으로, 서버 프로세스가 데이터베이스의 페이지를 버퍼로 로드하거나 데이터베이스로 페이지를 저장하는 경우 다른 서버 프로세스에서 수정한 페이지 즉, 버퍼 일관성 문제를 발생시키는 페이지만을 서버 프로세서의 버퍼에서 선택적으로 삭제함으로써, 불필요한 작업을 줄여 버퍼의 사용을 효율적으로 하고, 다수의 서버 프로세스의 버퍼들 간의 일관성을 유지할 수 있는 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS와 이를 이용한 버퍼 일관성 관리방법을 제공하는데 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems. When a server process loads a page of a database into a buffer or stores a page in a database, a page modified by another server process, that is, a page that causes a buffer consistency problem, is generated. Multiple server DBMSs using a shared-disk model that selectively removes only from the server processor's buffers, thereby reducing unnecessary work and streamlining the use of buffers and maintaining consistency among the buffers of multiple server processes. And the purpose of this is to provide a buffer consistency management method using the same.
또한, 특정 서버 프로세서가 수정한 페이지에 대한 최소한의 정보와 적은 저장공간을 사용하여 버퍼 일관성 문제를 관리함으로써, 처리속도가 빨라져 다중 서버 DBMS의 성능을 향상시키는 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS와 이를 이용한 버퍼 일관성 관리방법을 제공하는데 그 목적이 있다. In addition, it uses a shared-disk model that manages buffer consistency by using minimal information and a small amount of storage for pages modified by a particular server processor, thereby increasing the performance of multi-server DBMSs. The purpose is to provide a multi-server DBMS and a buffer consistency management method using the same.
상기한 과제를 해결하기 위해, 본 발명에 따르면, 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 데이터베이스 관리시스템(database management system)에서 버퍼 일관성 관리방법에 있어서, 서버 프로세스가 트랜잭션 수행 중 버퍼 페이지를 디스크로 쓰기(write-out) 하는 경우, 수정한 버퍼 페이지에 대한 정보를 가지는 페이지 정보(page-info)를 상기 서버 프로세스 내의 페이지 정보 리스트(page-info list)에 저장하는 트랜잭션 수행단계와, 서버 프로세스가 트랜잭션 수행 중 볼륨 로크(volume lock)를 획득한 경우 상기 페이지 정보가 저장되는 일관성 볼륨(coherency volume) 내의 페이지 정보 페이지(page-info page)를 읽어 버퍼의 내용을 데이터베이스와 일치시키는 볼륨 로크 획득단계 및 상기 트랜잭션 수행 단계 또는 볼륨 로크 획득단계를 수행한 후 트랜잭션 종료시에 상기 서버 프로세스의 페이지 정보 리스트(page-info list)에 저장되어 있는 수정된 페이지 정보(page-info)들을 상기 일관성 볼륨(coherency volume)에 저장하는 트랜잭션 종료단계를 포함하는 것을 특징으로 하는 공유 디스크 모델을 사용하는 다중 서버 데이터베이스 관리시스템에서의 버퍼 일관성 관리방법이 제공된다. In order to solve the above problems, according to the present invention, in the buffer consistency management method in a multi-server database management system using a shared-disk model, the server process buffer page during the transaction Performing a transaction for storing page information (page-info) having information on the modified buffer page in a page-info list in the server process when writing to a disk; If the server process acquires a volume lock during the transaction, the volume lock reads the page-info page in the coherency volume where the page information is stored and matches the contents of the buffer with the database. At the end of the transaction after performing the acquisition step and the transaction execution step or volume lock acquisition step And a transaction termination step of storing the modified page information (page-info) stored in the page-info list of the existing server process in the coherency volume. A buffer consistency management method is provided in a multi-server database management system that uses.
여기서, 상기 서버 프로세스는, 가장 마지막으로 데이터베이스에 접근한 시점에 대한 정보를 나타내는 최근 접근 타임스탬프(last access timestamp)를 유지하고, 상기 일관성 볼륨(coherency volume) 내의 페이지 정보 페이지(page-info page)에 저장되는 각 페이지 정보(page-info)는, 수정된 페이지를 식별하기 위한 페이지 식별자(page ID) 및 해당 페이지가 수정된 시점을 표시하는 타임스탬프(timestamp)를 유지하며, 상기 일관성 볼륨(coherency volume)은, 상기 페이지 정보(page-info)의 타임스탬프(timestamp)나 상기 최근 접근 타임스탬프(last access timestamp)에 타임스탬프(timestamp) 값을 할당하기 위하여 사용되는 타임스탬프 카운터(timestamp counter)를 유지하는 것을 특징으로 한다. Here, the server process maintains a last access timestamp indicating information on when the database was last accessed, and a page-info page in the coherency volume. Each page information (page-info) stored in the web page maintains a page identifier (page ID) for identifying a modified page and a timestamp indicating when the page is modified, and the coherency volume is a timestamp counter used to assign a timestamp value to a timestamp of the page-info or the last access timestamp. It is characterized by maintaining.
또한, 상기 일관성 볼륨(coherency volume)에 저장되는 페이지 정보 페이지(page-info page)는 페이지 정보(page-info)들을 시스템에 기 설정된 크기(N)를 가지는 원형 리스트에 저장하는 것을 특징으로 한다. The page information page stored in the coherency volume may store page information in a circular list having a predetermined size N in the system.
또한, 상기 트랜잭션 종료단계는, 상기 일관성 볼륨(coherency volume)에서 타임스탬프 카운터(timestamp counter)를 읽는 읽기(read) 단계와, 상기 읽기(read) 단계 후 상기 서버 프로세스의 최근 접근 타임스탬프(last access timestamp)를 상기 읽기(read) 단계 수행 결과값으로 업데이트 하는 업데이트(update) 단계 및 상기 업데이트(update) 단계 후 상기 서버 프로세스의 페이지 정보 리스트(page-info list) 내의 모든 페이지 정보(page-info)들을 삭제하는 삭제(delete) 단계를 포함하여 구성되는 것을 특징으로 한다. The transaction ending step may include reading a timestamp counter from the coherency volume, and last access time stamp of the server process after the reading step. All page information (page-info) in the page-info list of the server process after an update step of updating a timestamp to a result of performing the read step and the update step. And a delete step of deleting them.
또한, 상기 트랜잭션이 수행된 후 종료될 때, 해당 트랜잭션에서 수행한 데이터베이스 갱신을 실제로 데이터베이스에 반영시키는 커밋(commit) 처리가 수행되는 경우, 상기 업데이트(update) 단계와 상기 삭제(delete) 단계 사이에, 상기 서버 프로세스의 페이지 정보 리스트(page-info list) 안에 있는 모든 페이지 정보(page-info)의 타임스탬프(timestamp)에 상기 업데이트(update) 단계에서 업데이트된 최근 접근 타임스탬프(last access timestamp)를 기록하는 쓰기(write) 단계 및 상기 서버 프로세스의 페이지 정보 리스트(page-info list)에 있는 페이지 정보(page-info)들을 일관성 볼륨(coherency volume) 내의 페이지 정보 페이지(page-info page)에 저장하고 타임스탬프 카운터(timestamp counter)를 1만큼 증가시키는 증가(increase) 단계를 더 수행하는 것을 특징으로 한다. In addition, when the transaction is terminated after the transaction is performed, if a commit process is performed to actually reflect the database update performed in the transaction to the database, between the update step and the delete step. The latest access timestamp updated in the update step is added to a timestamp of all page information in the page information list of the server process. Write page and write page-infos in the page-info list of the server process to a page-info page in a coherency volume And further increasing the timestamp counter by one.
또한, 상기 볼륨 로크 획득단계는, 상기 서버 프로세스의 최근 접근 타임스탬프(last access timestamp)와 상기 일관성 볼륨(coherency volume) 내의 페이지 정보 페이지(page-info page)에 저장된 상기 페이지 정보(page-info)들의 타임스탬프(timestamp)를 비교하여, 상기 최근 접근 타임스탬프(last access timestamp)보다 상기 페이지 정보(page-info)의 타임스탬프(timestamp)가 더 나중 시점인 경우, 해당 페이지 정보(page-info)가 가리키는 페이지를 버퍼에서 삭제하는 과정을 더 포함하는 것을 특징으로 한다. In addition, the volume lock acquiring step may include: the page information stored in a page-info page in a coherency volume and a last access timestamp of the server process. The timestamp of the page-info is compared to the last access timestamp, and if the timestamp of the page-info is later, the corresponding page information (page-info). And deleting the page pointed to by the buffer.
또한, 상기 볼륨 로크 획득단계에서 상기 일관성 볼륨(coherency volume)의 원형 리스트에 저장된 페이지 정보(page-info)들의 타임스탬프(timestamp)들 중 일부가 오버플로우(overflow)되는 경우를 해결하기 위해, 상기 타임스탬프(timestamp)의 최대값으로 타임스탬프(timestamp)의 표현형인 정수형의 최대표현값(Tmax)보다 작은 값(Ttimestamp_max)을 최대값으로 사용하고, 상기 페이지 정보(page-info)들의 타임스탬프(timestamp)들 중에서 오버플로우(overflow) 되는 타임스탬프(timestamp)에는 시스템에 기 설정된 일정한 값(Tadd)을 더하는 것을 특징으로 한다. In addition, in order to solve the case where some of timestamps of page-infos stored in the circular list of the coherency volume are overflowed in the volume lock obtaining step, the overflow occurs. The maximum value of the timestamp is used as the maximum value T timestamp_max smaller than the maximum expression value T max of the integer type that is the representation of the timestamp , and the time of the page-infos. The timestamp that overflows among the stamps is added to a predetermined value T add preset in the system.
또한, 상기 Ttimestamp_max는, 의 값을 가지고, 상기 Tadd는, 의 값을 가지는 것을 특징으로 한다. In addition, the T timestamp_max is, Has a value of T add , It characterized by having a value of.
또한, 상기 볼륨 로크 획득단계에서 상기 일관성 볼륨(coherency volume)의 원형 리스트에 저장된 일부 페이지 정보(page-info)가 새로이 저장된 페이지 정보(page-info)에 의해 덮어 쓰여지는 문제로 인해 상기 서버 프로세스의 최근 접근 타임스탬프(last access timestamp)가 상기 일관성 볼륨(coherency volume)의 원형 리스트의 첫 번째 페이지 정보(page-info)의 타임스탬프(timestamp) 보다 작은 경우, 상기 서버 프로세스는, 상기 버퍼에 있는 모든 페이지들을 상기 버퍼에서 삭제함으로써, 상기 버퍼에 있는 모든 페이지들을 데이터베이스와 일치시키는 것을 특징으로 한다. Further, in the volume lock obtaining step, some of the page information (page-info) stored in the circular list of the coherency volume is overwritten by the newly stored page information (page-info). If the last access timestamp is less than the timestamp of the first page-info of the circular list of the coherency volume, the server process is responsible for all of the buffers in the buffer. By deleting pages from the buffer, all pages in the buffer are matched with the database.
또한, 상기 볼륨 로크 획득단계에서 상기 일관성 볼륨(coherency volume)의 원형 리스트에 저장된 모든 페이지 정보(page-info)의 타임스탬프(timestamp)가 오버플로우(overflow)된 경우, 상기 서버 프로세스의 최근 접근 타임스탬프(last access timestamp)가 상기 원형 리스트의 마지막 페이지 정보(page-info)의 타임스탬프(timestamp)보다 크면, 상기 서버 프로세스는, 상기 버퍼에 있는 모든 페이지들을 상기 버퍼에서 삭제함으로써, 상기 버퍼에 있는 모든 페이지들을 데이터베이스와 일치시키는 것을 특징으로 한다. In addition, when the timestamp of all page information (page-info) stored in the circular list of the coherency volume overflows in the volume lock obtaining step, the most recent access time of the server process If the last access timestamp is greater than the timestamp of the page-info of the circular list, the server process deletes all pages in the buffer from the buffer, thereby removing the pages in the buffer. It is characterized by matching all pages to database.
삭제delete
상기한 바와 같이 본 발명에 따른 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS와 이를 이용한 버퍼 일관성 관리 방법에 의하면, 특정 서버 프로세서가 수정한 페이지에 대한 최소한의 정보만을 이용하고 제한된 크기의 저장 공간과 자료구조를 사용하여 버퍼 일관성 문제를 처리함으로써, 처리속도가 빨라져 다중 서버 DBMS의 성능을 향상시키는 효과가 있다. As described above, according to the multi-server DBMS using the shared-disk model according to the present invention and the buffer consistency management method using the same, only a minimum amount of information on pages modified by a specific server processor is used, By using the storage space and data structure to deal with the buffer consistency problem, the processing speed is increased to improve the performance of the multi-server DBMS.
또한, 서버 프로세스가 버퍼로 페이지를 로드하거나 데이터베이스로 페이지를 저장하는 버퍼 페이지를 읽고자 하는 경우 다른 서버 프로세스가 이미 수정한 페이지만을 서버 프로세서의 버퍼에서 선택적으로 삭제하여 버퍼 일관성 문제를 처리함으로써, 버퍼 일관성 문제를 일으키지 않는 버퍼 페이지까지 삭제하여 데이터베이스로부터 다시 읽어오는 불필요한 작업을 줄여 버퍼의 사용을 효율적으로 하고, 다수의 서버 프로세스의 버퍼들 간의 일관성을 유지할 수 있는 효과가 있다.In addition, when a server process attempts to read a buffer page that loads a page into the buffer or reads a page into the database, the server processes the buffer consistency problem by selectively deleting only pages that have already been modified by another server process from the server processor's buffer. By eliminating buffer pages that do not cause consistency problems, the unnecessary work of reloading from the database is reduced, which makes the use of the buffer more efficient and maintains consistency among the buffers of multiple server processes.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 우선, 도면들 중 동일한 구성요소 또는 부품들은 가능한 한 동일한 참조부호를 나타내고 있음에 유의해야 한다. 본 발명을 설명함에 있어서 관련된 공지기능 혹은 구성에 대한 구체적인 설명은 본 발명의 요지를 모호하게 하지 않기 위해 생략한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. First, it should be noted that the same components or parts in the drawings represent the same reference numerals as much as possible. In describing the present invention, detailed descriptions of related well-known functions or configurations are omitted in order not to obscure the gist of the present invention.
도 6은 본 발명을 적용하여 버퍼의 일관적인 관리가 가능하도록 구성된 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS를 나타내는 도면이며, 일관성 볼륨(coherency volume)에 포함된 타임스탬프 카운터(timestamp counter)는, 페이지 정보(page-info)의 타임스탬프(timestamp)나 최근 접근 타임스탬프(last access timestamp)에 타임스탬프(timestamp) 값을 할당하기 위하여 사용되는 자료 구조이다. FIG. 6 is a diagram illustrating a multi-server DBMS using a shared-disk model configured to enable consistent management of buffers according to the present invention, and includes a timestamp counter included in a coherency volume. A counter is a data structure used to assign a timestamp value to a timestamp or last access timestamp of page information.
공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS는, 도 6에 도시된 바와 같이, 기존의 시스템상 존재하는 복수 개의 서버 프로세스, 데이터베이스로 구성되며 여기에 본 발명의 특징적인 구성인 일관성 볼륨(coherency volume)이 추가적으로 포함된다. Multi-server DBMS using a shared-disk model, as shown in Figure 6, consists of a plurality of server processes, databases existing on the existing system, and here is a characteristic volume of the consistent configuration of the present invention (coherency volume) is additionally included.
이하 본 발명에 따른 버퍼 일관성 관리 방법을 상세히 설명한다.Hereinafter, a buffer consistency management method according to the present invention will be described in detail.
도 7은 본 발명에 따른 버퍼 일관성 관리 방법을 나타내는 블록도이고, 도 8은 본 발명에 따른 버퍼 일관성 관리 방법 중 서버 프르세스의 트랜 잭션 종료단계에서 수행되는 세부적 단계를 나타내는 블록도이다.7 is a block diagram illustrating a buffer consistency management method according to the present invention, and FIG. 8 is a block diagram showing detailed steps performed in a transaction termination step of a server process in the buffer consistency management method according to the present invention.
또한, 도 9는 본 발명에 따른 다중 서버 DBMS의 버퍼 일치 시점을 나타내는 예시도이고, 도 10은 본 발명에 따른 다중 서버 DBMS의 트랜잭션 종료 시 페이지 정보(page-info)들을 일관성 볼륨(coherency volume)에 저장하는 알고리즘을 나타내는 도면이다. 9 is an exemplary view showing a buffer matching time of a multi-server DBMS according to the present invention, Figure 10 is a coherency volume of page information (page-info) at the end of a transaction of the multi-server DBMS according to the present invention A diagram showing an algorithm to store in.
다중 서버 DBMS에서 버퍼 일관성 관리를 위해서는 서버 프로세스가 트랜잭션 수행 중 다른 서버 프로세스에서 수정된 페이지들을 버퍼에서 액세스하기 전에 버퍼 내의 해당 페이지들을 삭제하여 데이터베이스로부터 최신의(up-to-date) 페이지들을 새로이 버퍼로 읽어 들이도록 해야한다. 여기서, 이하에서는, 서버 프로세스가 다른 서버 프로세스에서 수정된 페이지들을 버퍼에서 삭제하는 것을 '버퍼 내용을 데이터베이스와 일치시킨다'고 표현한다. For buffer consistency management in a multi-server DBMS, the server process newly buffers up-to-date pages from the database by deleting those pages in the buffer before accessing the modified pages from other server processes in the buffer. Should be read as. Here, in the following description, the server process deletes pages modified in another server process from the buffer as 'matching the buffer contents with the database'.
버퍼 내용을 데이터베이스와 일치시키는 시점은 데이터베이스의 동시성 제어 모델과 밀접한 관계가 있는데, 이는 버퍼 일관성 문제가 다수의 서버 프로세스들이 수행되어 발생하기 때문이다. 버퍼 일관성 문제는 동시성 제어 모델에 따라 수행되 는 복수 개의 서버 프로세스에서 특정 시점에 발생하므로 이 시점을 찾아서 버퍼의 내용을 데이터베이스와 일치시켜 주어야 한다.The timing of matching the buffer contents with the database is closely related to the database's concurrency control model, because buffer consistency issues arise from the execution of multiple server processes. The buffer consistency problem occurs at a specific point in time in a plurality of server processes executed according to the concurrency control model, so it is necessary to find this point and match the contents of the buffer with the database.
본 발명에서는 동시성 제어 방법으로 로크 기반 방법(lock-based protocols)을 사용하는데, 로크 기반 방법에서 로크의 단위는 볼륨(volume)으로 한다. 볼륨(volume)은 하나 이상의 파일로 구성된 논리적인 저장 단위로 하나의 데이터베이스는 하나 이상의 볼륨으로 구성된다.In the present invention, lock-based protocols are used as the concurrency control method. In the lock-based method, the unit of lock is a volume. A volume is a logical storage unit consisting of one or more files. A database consists of one or more volumes.
볼륨 로크는 읽기 볼륨 로크와 쓰기 볼륨 로크의 두 가지 종류가 있는데, 읽기 볼륨 로크는 볼륨에 대하여 읽기 연산을 수행할 때 획득하는 로크로, 읽기 볼륨 로크와는 양립가능하고, 쓰기 볼륨 로크와는 양립하지 않는다. 따라서, 동일한 볼륨에 대하여 읽기 볼륨 로크를 가진 트랜잭션들은 동시에 수행될 수 있지만, 쓰기 볼륨 로크를 가진 트랜잭션과는 동시에 수행될 수 없다. There are two types of volume locks: read volume locks and write volume locks. A read volume lock is a lock that is acquired when a read operation is performed on a volume, which is compatible with the read volume lock and compatible with the write volume lock. I never do that. Thus, transactions with read volume locks on the same volume can be executed concurrently, but not with transactions with write volume locks.
쓰기 볼륨 로크는 볼륨에 대하여 쓰기 연산을 수행할 때 획득하는 로크로서 읽기 볼륨 로크, 쓰기 볼륨 로크와 모두 양립하지 않는다. 따라서, 쓰기 볼륨 로크를 가진 트랜잭션은 동일한 볼륨에 대한 읽기 볼륨 로크나 쓰기 볼륨 로크를 가진 트랜잭션과 동시에 수행될 수 없다.The write volume lock is a lock obtained when a write operation is performed on the volume. The write volume lock is not compatible with both the read volume lock and the write volume lock. Therefore, a transaction with a write volume lock cannot run concurrently with a transaction with a read volume lock or a write volume lock on the same volume.
이러한 동시성 제어 모델에서는 특정 서버 프로세스가 볼륨의 내용을 수정하고 트랜잭션을 종료한 이후, 다른 서버 프로세스가 동일한 볼륨을 액세스하는 순간에 버퍼 일관성 문제가 발생한다. 따라서, 버퍼 내용을 데이터베이스와 일치시키는 시점은 서버 프로세스가 특정 볼륨에 대한 쓰기 트랜잭션을 종료한 이후, 다른 서버 프로세스가 해당 볼륨을 액세스하기 이전이 되어야 한다. 이때, 다른 서버 프로 세스의 쓰기 트랜잭션 종료 시점은 알기 어렵기 때문에 볼륨을 액세스하기 직전인 볼륨 로크를 획득하는 시점에 버퍼 내용을 데이터베이스와 일치시켜야 한다.In this concurrency control model, after a server process modifies a volume's contents and terminates a transaction, buffer consistency issues arise when another server process accesses the same volume. Therefore, the time to match the contents of the buffer with the database must be after the server process has finished the write transaction for a particular volume, but before other server processes have access to that volume. At this time, since the end of the write transaction of another server process is difficult to know, the contents of the buffer should be matched with the database when the volume lock immediately before the volume is acquired.
본 발명에 따른 다중 서버 DBMS의 버퍼 일치 시점은 도 9에 도시된 바와 같이 예를 들 수 있다.A buffer matching time point of the multi-server DBMS according to the present invention may be given as shown in FIG. 9.
서버 프로세스 P1이 볼륨 V의 내용을 수정하고 트랜잭션을 종료한 후, 서버 프로세스 P2가 볼륨 V를 액세스할 때에 서버 프로세스 P2의 버퍼에 서버 프로세스 P1이 수정한 페이지에 해당하는 버퍼 페이지가 존재한다면 버퍼 일관성 문제가 발생한다. 이때, 서버 프로세스 P2는 볼륨 V를 액세스하기 전에 볼륨 V에 대한 볼륨 로크를 획득한다. 따라서, 볼륨 로크를 획득하는 시점에 버퍼 내용을 데이터베이스와 일치시켜야 한다. 만약 서버 프로세스 P2가 볼륨 로크를 획득하는 시점이 아닌 트랜잭션을 시작하는 시점에 버퍼 내용을 데이터베이스와 일치시킬 경우, 구간 i 동안에 서버 프로세스 P1이 수정한 내용이 서버 프로세스 P2의 버퍼에 반영되지 않으므로 버퍼 일관성 문제가 발생한다. After the server process P 1 a, modify the contents of the volume V, and end the transaction, when the server process P 2 can access the volume V buffer page corresponding to the page, the server processes P 1 changes to the buffer of the server process P 2 has If present, a buffer consistency problem will occur. At this time, server process P 2 obtains the volume lock for volume V before accessing volume V. Therefore, at the time of obtaining the volume lock, the contents of the buffer must be matched with the database. If server process P 2 matches the contents of the buffer with the database at the beginning of a transaction rather than at the point of acquiring a volume lock, modifications made by server process P 1 during interval i are not reflected in the buffer of server process P 2 . This results in buffer consistency problems.
본 발명에 따른 버퍼 일관성 관리 방법은 도 7에 도시된 바와 같은 과정으로 이루어진다.The buffer consistency management method according to the present invention comprises a process as shown in FIG.
각 서버 프로세스는 위 도 7에 도시된 바와 같은 작업을 수행하여야 하는데, 트랜잭션 수행단계는 서버 프로세스가 트랜잭션 수행 중 서버 프로세스의 버퍼에 로드한 버퍼 페이지들을 데이터베이스에 저장할 때, 버퍼 페이지들 중 수정한 페이지에 대한 정보인 페이지 정보(page-info)를 페이지 정보 리스트(page-info list)에 저장하는 과정이다. Each server process should perform a task as shown in FIG. A process of storing page information (page-info), which is information about, in a page information list.
이때, 페이지 정보(page-info)의 타임스탬프(timestamp)는 트랜잭션 종료 시에 서버 프로세스에게 할당될 최근 접근 타임스탬프(last access timestamp)를 저장하기 위하여 비워둔다. 이 과정을 트랜잭션 수행 중이 아닌 종료 시에 하는 이유는 하나의 트랜잭션에서 하나의 페이지를 여러번에 걸쳐서 수정하는 경우 페이지를 수정할 때마다 페이지 식별자를 페이지 정보 리스트(page-info list)에 기록하는 것이 비효율적이고, 수정된 페이지를 판별하는 오버헤드를 줄이기 위해서이다. At this time, the timestamp of the page information (page-info) is left blank to store the last access timestamp to be allocated to the server process at the end of the transaction. The reason for doing this at the end of a transaction rather than during a transaction is that if you modify a page multiple times in a transaction, it is inefficient to write the page identifier to the page-info list every time the page is modified. In order to reduce the overhead of determining modified pages.
또한, 도 7의 트랜잭션 종료 단계는 트랜잭션 종료시 서버 프로세스의 페이지 정보 리스트(page-info list)에 있는 페이지 정보(page-info)를 일관성 볼륨(coherency volume)에 저장하는 과정이며, 도 10은 트랜잭션 종료 시에 수행하는 작업을 나타내는 알고리즘이다. In addition, the transaction termination step of FIG. 7 is a process of storing the page information (page-info) in the page-info list of the server process in the coherency volume at the end of the transaction, FIG. An algorithm representing the work to be done at the city.
이를 보다 더 상세히 설명하면 트랜잭션 종료 단계는 도 8에 도시된 바와 같이 최대 5개의 단계로 이루어진다.In more detail, the transaction termination step may include up to five steps, as shown in FIG. 8.
읽기(read) 단계는, 일관성 볼륨(coherency volume)의 타임스탬프 카운터(timestamp counter) 값을 읽는 단계이고, 업데이트(update) 단계는 서버 프로세스의 최근 접근 타임스탬프(last access timestamp)의 값을 읽기(read) 단계에서 읽은 타임스탬프 카운터(timestamp counter) 값으로 업데이트 하는 단계이다. The read step reads the value of the timestamp counter of the coherency volume, and the update step reads the value of the last access timestamp of the server process. The step of updating the timestamp counter value read in the read step.
한편, 쓰기(write) 단계는 서버 프로세스의 페이지 정보 리스트(page-info list)에 저장되는 모든 페이지 정보(page-info)의 타임스탬프(timestamp) 값을 최근 접근 타임스탬프(last access timestamp) 값으로 업데이트하는 단계이며, 증가(increase) 단계는 페이지 정보 리스트(page-info list)의 페이지 정보(page-info)를 일관성 볼륨(coherency volume)의 페이지 정보 페이지(page-info page)에 저장하고, 타임스탬프 카운터(timestamp counter)의 값을 1만큼 증가시키는 단계이다. On the other hand, the write step is a timestamp value of all the page-info stored in the page-info list of the server process as the last access timestamp value. The step of updating, and the increase step stores the page information (page-info) of the page-info list to the page information page (coherency volume) of the page-info page, and time A step of increasing the value of the stamp counter by 1 is performed.
마지막으로 삭제(delete) 단계는 서버 프로세스의 페이지 정보 리스트(page-info list)의 모든 페이지 정보(page-info)를 삭제하는 단계이다. Finally, the delete step is to delete all page information (page-info) of the page information list (page-info list) of the server process.
이때, 쓰기(write) 단계와 증가(increase) 단계는, 트랜잭션이 수행된 후 종료될 때, 해당 트랜잭션에서 수행한 데이터베이스 갱신을 실제로 데이터베이스에 반영시키는 경우, 즉, 커밋(commit) 처리가 수행되는 경우에만 수행되고, 나머지 단계들은 어떤 경우에도 모두 수행된다. At this time, the write step and the increase step are performed when the transaction is terminated after the transaction is executed and when the database update performed by the transaction is actually reflected in the database, that is, when the commit process is performed. Is performed only in all cases and all other steps are performed in any case.
도 7의 볼륨 로크 획득 단계는 일관성 볼륨(coherency volume) 내의 페이지 정보 페이지(page-info page)에 접근하여 버퍼 내용을 데이터베이스와 일치시키는 단계이다. 이를 위해서 일관성 볼륨(coherency volume)의 원형 리스트를 뒤에서부터 탐색하며 서버 프로세스의 최근 접근 타임스탬프(last access timestamp)보다 타임스탬프(timestamp)가 큰 페이지 정보(page-info)를 찾아서 이에 해당하는 내용을 서버 프로세스에서 삭제한다. The volume lock obtaining step of FIG. 7 is a step of accessing a page-info page in a coherency volume and matching the buffer contents with a database. To do this, we search the circular list of coherency volumes from behind, find page-info that has a timestamp greater than the last access timestamp of the server process, and find the corresponding content. Delete from server process.
이때, 일관성 볼륨(coherency volume)의 원형 리스트를 뒤에서부터 스캔하는 이유는 스캔하는 범위를 줄이기 위해서이다. 즉, 페이지 정보 페이지(page-info page)의 페이지 정보(page-info)들이 타임스탬프(timestamp) 순서로 저장되어 있으므로 최근 접근 타임스탬프(last access timestamp) 값보다 타임스탬프(timestamp) 값이 큰 페이지 정보(page-info)까지만 스캔하여 삭제하면 된다. At this time, the reason for scanning the circular list of the coherency volume from behind is to reduce the scanning range. That is, a page having a timestamp value larger than a last access timestamp value because page-info pages of a page information page are stored in a timestamp order. You only need to scan and delete the page-info.
여러 서버 프로세스들이 일관성 볼륨(coherency volume)을 액세스하기 때문에 일관성 볼륨(coherency volume)에 대한 동시성 제어가 필요하다. 일관성 볼륨(coherency volume)은 트랜잭션 종료 시와 볼륨 로크 획득 시에 액세스되는데, 트랜잭션 종료 시에는 일관성 볼륨(coherency volume)을 업데이트하므로 일관성 볼륨(coherency volume)에 대한 쓰기 볼륨 로크를 획득하고, 볼륨 로크 획득 시에는 일관성 볼륨(coherency volume)을 읽기만 하면 되므로 일관성 볼륨(coherency volume)에 대한 읽기 볼륨 로크를 획득한다. Since multiple server processes access coherency volumes, concurrency control on coherency volumes is required. Coherency volumes are accessed at the end of a transaction and at the time of obtaining a volume lock. At the end of a transaction, a coherency volume is updated to obtain a write volume lock on the coherency volume and to obtain a volume lock. At this time, the read volume lock for the coherency volume is obtained because only the coherency volume needs to be read.
한편, 본 발명에서는 효율적인 버퍼 일관성 관리를 위하여 일관성 볼륨(coherency volume)에 제한된 개수(N)의 페이지 정보(page-info)만을 저장하고 제한된 크기의 정수형 타임스탬프(timestamp)를 사용함으로써, 원형 리스트의 랩 어라운드(wrap around)로 인한 문제, 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인한 문제, 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인해 원형 리스트의 랩 어라운드(wrap around)를 발견하지 못하는 문제가 발생할 수 있다. Meanwhile, the present invention stores only a limited number of page-infos in a coherency volume and uses an integer timestamp of limited size for efficient buffer consistency management. Problems caused by wrap around, problems caused by overflow of timestamp values of page-info stored in the prototype list, and information of page-info stored in the prototype list. An overflow of the timestamp value may cause a problem of not finding a wrap around of the prototype list.
상기와 같이 발생할 수 있는 문제들에 대한 예시와 이러한 문제들의 해결 방법에 대하여 설명한다.Examples of the problems that may occur as described above and how to solve these problems will be described.
우선, 설명을 위하여 사용되는 표기법들을 정의한다.First, we define the notations used for explanation.
tlast_access는 버퍼 내용을 데이터베이스와 일치시키는 작업을 수행 중인 서버 프로세스의 최근 접근 타임스탬프(last access timestamp) 값이고, thead는 일관성 볼륨(coherency volume)의 원형 리스트에 저장된 페이지 정보(page-info) 중에서 헤드(head), 즉, 첫 번째 페이지 정보(page-info)의 타임스탬프(timestamp) 값이며, ttail는 일관성 볼륨(coherency volume)의 원형 리스트에 저장된 페이지 정보(page-info) 중에서 테일(tail), 즉, 마지막 페이지 정보(page-info)의 타임스탬프(timestamp) 값이다. t last_access is the last access timestamp value of the server process that is performing the task of matching the contents of the buffer to the database, and t head is the page information stored in the circular list of coherency volumes. Is a timestamp value of a head, that is, a first page information (page-info), and t tail is a tail (page-info) stored in a circular list of coherency volumes. tail, that is, the timestamp value of the last page information (page-info).
또한, Tmax는 타임스탬프(timestamp)의 최대값이고, N은 일관성 볼륨(coherency volume)의 원형 리스트에 저장되는 페이지 정보(page-info)의 최대 개수이며, 시스템에서 설정된다. In addition, T max is a maximum value of a timestamp, N is a maximum number of page-infos stored in a circular list of coherency volumes, and is set in the system.
도 11은 본 발명에 따른 원형 리스트의 랩 어라운드(wrap around)로 인한 문제를 나타내는 예시도이고, 도 12는 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인한 문제를 나타내는 예시도이며, 도 13은 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인해 원형 리스트의 랩 어라운드(wrap around)를 발견하지 못하는 문제를 나타내는 예시도이다. 11 is an exemplary diagram illustrating a problem due to a wrap around of a prototype list according to the present invention, and FIG. 12 is a timestamp value of page-info stored in the prototype list according to the present invention. FIG. 13 is a diagram illustrating a problem due to an overflow of a circular list, and FIG. 13 is a circular list due to an overflow of a timestamp value of page-info stored in a circular list according to the present invention. This is an exemplary view showing a problem of not finding a wrap around.
또한, 도 14는 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(time stamp) 값의 오버플로우(overflow)로 인해 원형 리스트의랩 어라운드(wrap around)를 발견하지 못하는 문제를 해결하지 못하는 경우를 나타내는 예시도이고, 도 15는 본 발명에 따른 서버 프로세스가 볼륨 로크 획득 시 버퍼의 내용을 데이터베이스와 일치시키는 알고리즘을 나타내는 도면이다. In addition, FIG. 14 is a problem of not finding a wrap around of a prototype list due to an overflow of a time stamp value of page information stored in the prototype list according to the present invention. FIG. 15 is a diagram illustrating an algorithm for matching a content of a buffer with a database when a server process acquires a volume lock, according to an embodiment of the present invention.
삭제delete
일관성 볼륨(coherency volume)의 원형 리스트에서 일부 서버 프로세스에서 아직 데이터베이스와 일치시키지 못한 페이지 정보(page-info)가 새로 저장된 페이지 정보(page-info)에 의해서 덮어 쓰여질 수 있다. 이 경우, 일부 서버 프로세스는 덮어 쓰여진 페이지 정보(page-info)에 해당하는 버퍼 페이지를 데이터베이스와 일치시켜야함에도 불구하고 일치시키지 못하는 문제가 발생하는데, 이를 원형 리스트의 랩 어라운드(wrap around)로 인한 문제라고 정의한다. 일관성 볼륨(coherency volume)의 원형 리스트에는 최대 N개의 페이지 정보(page-info)만이 저장되는데 이처럼 페이지 정보(page-info)를 제한된 크기의 원형 리스트에 저장하기 때문에 발생한다. In a circular list of coherency volumes, page-info, which some server processes have not yet matched the database, may be overwritten by newly stored page-info. In this case, some server processes fail to match the buffer page corresponding to the overwritten page-info, even though the database must be matched, which is caused by the wrap around of the prototype list. It is defined as. Only a maximum of N page information (page-info) is stored in the circular list of the coherency volume. This occurs because the page information is stored in the circular list of limited size.
이하, 본 발명에 따른 페이지 정보 페이지(page-info page)의 원형 리스트의 랩 어라운드(wrap around)로 인한 문제를, 도 11에 도시된 예를 들어 설명한다. Hereinafter, the problem caused by the wrap around of the circular list of the page-info page according to the present invention will be described with reference to the example shown in FIG.
서버 프로세스 P1이 트랜잭션 T11을 수행한 후, 서버 프로세스 P2가 트랜잭션 T21을 수행하며 2개의 페이지를 수정하고, 트랜잭션 T22를 수행하며 N-1개의 페이지를 수정하였을 때, 트랜잭션 T21에서 수정한 페이지의 페이지 정보(page-info)인 <p2, 2>가 <pN+1, 3>에 의해서 덮어 쓰여진다. 이때, 시점 m2에서 서버 프로세스 P1의 tlast_access는 1이므로, 서버 프로세스 P1이 트랜잭션 T12를 수행하면서 페이지 정보(page-info) <p2, 2>에 해당하는 버퍼 페이지를 데이터베이스와 일치시켜야함에도 불구하고 일치시키지 못한다. After server process P 1 performs transaction T 11 , when server process P 2 performs transaction T 21 and modifies two pages, performs transaction T 22 and modifies N-1 pages, transaction T 21 <P 2 , 2>, the page-info of the page modified by, is overwritten by <p N + 1 , 3>. At this time, the t last_access server process P 1 at the time when m 2 is 1, so match the buffer page server process P 1 a that corresponds to the page information (page-info) <p 2 , 2> while performing the transaction T 12 and the database It should not match, though it must.
이는 서버 프로세스의 tlast_access가 원형 리스트의 thead보다 작은 경우 이러한 문제가 발생할 수 있는데, tlast_access 이후 최소 N개의 페이지가 수정된 것이므로 많은 수정으로 인해 대부분의 버퍼 페이지가 수정된 것으로 간주하고 서버 프로세스의 버퍼에 있는 모든 페이지들을 데이터베이스와 일치시켜서 해결한다.This can happen if the t last_access of the server process is smaller than the t head of the circular list. Since at least N pages have been modified since t last_access , many modifications assume that most of the buffer pages have been modified. Resolve all pages in the buffer by matching them with the database.
한편, 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값이 오버플로우(overflow) 되면, 일관성 볼륨(coherency volume)의 원형 리스트의 페이지 정보(page-info)들이 타임스탬프(timestamp) 순서로 정렬되지 않게 된다. 이 경우는 일관성 볼륨(coherency volume)의 원형 리스트 내에 페이지 정보(page info)들이 타임스탬프(timestamp) 순서로 정렬되어 있다는 가정에 어긋나기 때문에, 볼륨 로크 획득 시 버퍼 내용과 데이터베이스를 일치시키는 작업이 정상적으로 수행되지 않는 문제가 발생한다. 이러한 문제를 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인한 문제라고 정의한다. 이 문제는 타임스탬프(timestamp)로 사용되는 정수형이 나타낼 수 있는 값의 최대 크기(Tmax)가 존재하기 때문에 발생한다. Meanwhile, when a timestamp value of page information stored in the circular list overflows, page information of the circular list of the coherency volume is timestamped. ) Will not be sorted in order. In this case, it is contrary to the assumption that page infos are arranged in timestamp order in the circular list of coherency volumes, so matching the contents of the buffer with the database when obtaining volume locks is normal. A problem occurs that is not performed. This problem is defined as a problem due to an overflow of a timestamp value of page information stored in a circular list. This problem occurs because there is a maximum size (T max ) of values that can be represented by an integer type used as a timestamp.
이하, 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인한 문제를, 도 12에 도시된 예를 들어 설명한다. Hereinafter, the problem caused by the overflow of the timestamp value of the page information (page-info) stored in the circular list according to the present invention will be described with reference to the example shown in FIG.
페이지 정보(page-info) <pN-1, 0>, <pN-2, 1>은 페이지 정보(page-info) <pN-2, Tmax>보다 시간적으로 더 나중에 기록되었음에도 불구하고 타임스탬프(timestamp) 값이 0, 1로 Tmax보다 작다. Page-info <p N-1 , 0>, <p N-2 , 1> is recorded later in time than page-info <p N-2 , T max > The timestamp value is 0, 1, which is less than T max .
이때, 타임스탬프(timestamp) 값의 오버플로우(overflow) 여부를 판별하는 방법은 다음과 같다. 일관성 볼륨(coherency volume)의 원형 리스트를 테일(tail)에서부터 스캔하면서 각 페이지 정보(page-info)의 타임스탬프(timestamp) 값을 thead와 비교한다. 만약, 페이지 정보(page-info)의 타임스탬프(timestamp) 값이 thead보다 작으면, 해당 타임스탬프(timestamp)가 오버플로우(overflow) 되었다고 판단한다. At this time, a method of determining whether or not the timestamp value overflows is as follows. The timestamp value of each page-info is compared with t head while the circular list of coherency volumes is scanned from the tail. If the timestamp value of the page information (page-info) is smaller than t head , it is determined that the corresponding timestamp has overflowed.
이 문제를 해결하기 위하여 타임스탬프(timestamp)의 최대값으로 Tmax를 사용하지 않고, 그보다 작은 값 를 사용한다. 그리고,오버플로우(oveflow)된 타임스탬프(timestamp)들에는 일정한 값 를 더하여 tlast_access와 비교한다. 이때, Ttimestamp_max와 Tadd는 다음 세 가지 조건을 만족시키는 값이다. 첫째, 타임스탬프(timestamp)의 최대값에 Tadd를 더한 값이 오버플로우(overflow) 되지 않아야 한다. 이를 위해서 Ttimestamp_max + Tadd가 Tmax보다 작아야 한다. 둘째, 타임스탬프(timestamp)의 최소값(=0)에 Tadd를 더한 값이 어떠한 타임스탬프(timestamp) 값보다 커야 한다. 셋째, 타임스탬프(timestamp) 값이 자주 오버플로우(overflow) 되는 것을 방지하기 위해서 Ttimestamp_max를 최대화시켜야 한다. To solve this problem, do not use T max as the maximum value of the timestamp, but smaller than that. Use And a constant value for overflowed timestamps. Add to compare t last_access . At this time, T timestamp_max and T add satisfy the following three conditions. First, the maximum value of the timestamp plus T add should not overflow. To do this, T timestamp_max + T add must be smaller than T max . Second, the minimum value of timestamp (= 0) plus T add must be greater than any timestamp value. Third, T timestamp_max should be maximized to prevent the timestamp value from overflowing frequently.
본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인해, 원형 리스트의 랩 어라운드(wrap around)를 발견하지 못하는 문제를 도 13과 도 14로 각각 설명한다. FIG. 13 and FIG. 13 do not find a wrap around of the prototype list due to an overflow of a timestamp value of page information stored in the prototype list according to the present invention. Each is explained by 14.
도 13의 경우, 서버 프로세스 P1이 트랜잭션 T11을 수행한 후, 서버 프로세스 P2가 트랜잭션 T21, T22를 수행하며 N보다 많은 수의 페이지 정보(page-info)를 일관성 볼륨(coherency volume)의 원형 리스트에 저장한다. 시점 m에서 서버 프로세스 P1이 T12를 수행하면서 서버 프로세스 P2에서 수정된 모든 페이지들에 대한 버퍼 페이지를 데이터베이스와 일치시켜야 하는데, 서버 프로세스 P1의 tlast_access가 원형 리스트 내의 어떠한 페이지 정보(page-info)의 타임스탬프(timestamp) 값보다 크기 때문에 버퍼 내용을 데이터베이스와 일치시키지 못한다. In the case of FIG. 13, after server process P 1 performs transaction T 11 , server process P 2 performs transactions T 21 and T 22 and outputs a coherency volume of more than N page-info. In the prototype list. To be the server process P 1 at the time point m to match the buffer page for every page while performing T 12 modified on the server process P 2 with the database, the server process P 1 a t last_access any page information in the circular list (page -info) does not match the contents of the buffer because it is larger than the timestamp value.
서버 프로세스의 tlast_access가 일관성 볼륨(coherency volume)의 원형 리스트의 모든 페이지 정보(page-info)들의 타임스탬프(timestamp) 값보다 큰 경우 이러한 문제가 발생한 것이다. 이러한 문제가 발생한 경우에는 원형 리스트의 랩 어라운드(wrap around)로 인한 문제에서와 마찬가지로 모든 버퍼 페이지들을 데이터베이스와 일치시킨다. This problem occurs when t last_access of the server process is larger than the timestamp value of all the page- infos of the circular list of the coherency volume. If this problem occurs, match all the buffer pages to the database as in the case of the wrap around of the prototype list.
그러나, 이러한 방법은 오버플로우(overflow)된 타임스탬프(timestamp) 값이 오버플로우(overflow)되지 않은 tlast_access만큼 커지는 경우를 처리하지 못한다. 도 14는 이러한 경우를 나타내는 예시도이다. However, this method does not handle the case where the overflowed timestamp value becomes as large as t last_access that does not overflow. 14 is an exemplary view illustrating such a case.
도 14에서, 서버 프로세스 P1이 트랜잭션 T11을 수행한 후 서버 프로세스 P2가 개의 트랜잭션을 수행하였다면, 이때 저장되는 페이지 정보(page-info)들의 타임스탬프(timestamp) 값은 오버플로우(overflow)된 후 다시 이 된다. 시점 m에서 서버 프로세스 P1이 T12를 수행하면서 서버 프로세스 P2에서 수정된 모든 페이지들에 대한 버퍼 페이지를 데이터베이스와 일치시켜야 하는데, 서버 프로세스 P1의 tlast_access가 ttail과 같은 값을 갖기 때문에 버퍼 내용을 데이터베이스와 일치시키지 못한다. In Figure 14, after the server process P 1 performs the transaction server process P 2 is T 11 If the number of transactions is executed, the timestamp value of the page-infos stored at this time overflows and then again. Becomes At time m, server process P 1 performs T 12 and must match the buffer page for all pages modified in server process P 2 with the database, because t last_access of server process P 1 has the same value as t tail. The contents of the buffer do not match the database.
그러나, 도 14와 같은 경우는 실제 응용 프로그램에서는 일어날 가능성이 없다. 타임스탬프(timestamp)로서 4byte의 정수형을 사용할 경우, 초당 5.4개의 트랜잭션이 수행되는 환경에서, 이러한 문제가 발생하기 위해서는 특정 서버 프로세스가 약 12.6년 동안 트랜잭션을 수행하지 않다가 다시 트랜잭션을 수행해야 한다. 참고로 초당 5.4개의 트랜잭션이 수행되면 1년에 약 1억 7천만 개의 트랜잭션이 수행되는데, 이는 2006년 한국증권선물거래소의 거래 건수인 1억 7천만 건과 동일하다. 따라서, 이 문제는 실제 환경에서는 일어나지 않는 것으로 간주한다. However, such a case as in FIG. 14 is unlikely to occur in an actual application. If you use an integer of 4 bytes as a timestamp, in an environment where 5.4 transactions per second are executed, this problem requires that a specific server process not perform a transaction for about 12.6 years before performing another transaction. For reference, if 5.4 transactions per second are executed, about 170 million transactions are executed per year, which is equivalent to the 170 million transactions of the Korea Stock Exchange. Therefore, this problem is considered not to occur in a real environment.
지금까지 설명한 문제들을 tlast_access, thead, ttail의 크기 관계를 이용하여 다음과 같이 분류할 수 있다.The problems described so far can be categorized as follows using the size relationship of t last_access , t head , and t tail .
즉, (thead <= tlast_access <= ttail)인 경우는 정상적인 경우이고, In other words, (t head <= t last_access <= t tail ) is normal.
(thead > ttail)인 경우는 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인한 문제가 발생하는 경우이며, (tlast_access < thead <= ttail)인 경우는 원형 리스트의 랩 어라운드(wrap around)로 인한 문제가 발생하는 경우이다. 또한, (thead <= ttail < tlast_access) 인 경우는 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인하여 원형 리스트의 랩 어라운드(wrap around)를 발견하지 못하는 문제가 발생하는 경우이다. If (t head > t tail ), the problem occurs due to overflow of timestamp value of page-info stored in the circular list, and (t last_access <t head < = t tail ) is a problem caused by wrap around of the circular list. In addition, when (t head <= t tail <t last_access ), the wrap around of the prototype list is wrapped around due to the overflow of the timestamp value of the page-info stored in the prototype list. This is the case when you don't find).
위와 같이 경우를 나누고, 각각의 경우에 대해서 상기한 도면 및 설명과 같이 작업을 수행하는 경우 위에서 설명한 문제들을 해결할 수 있다.The above-described problems can be solved by dividing the cases as described above and performing the operation as described above with respect to each case.
도 15는 본 발명에 따른 서버 프로세스가 볼륨 로크 획득 시 버퍼의 내용을 데이터베이스와 일치시키는 알고리즘을 나타내는 도이다.15 is a diagram illustrating an algorithm for matching a content of a buffer with a database when a server process acquires a volume lock according to the present invention.
공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS를 사용하여 본 발명에서 제시한 버퍼 일관성 관리 방법과 종래의(naive) 방법의 성능을 비교한다. Using a multi-server DBMS using a shared-disk model, the performance of the buffer consistency management method proposed by the present invention and the conventional method are compared.
여기서 종래의 방법은 볼륨 로크를 획득할 때마다 해당 볼륨 내에 있는 페이지들을 버퍼에서 무효화시키는 방법이다. DBMS로는 오디세우스 DBMS(Whang, K. Lee, M., Lee, J., Kim, M., and Han, W., "Odysseus: a High-Performance ORDBMS Tightly-Coupled with IR Features," In Proc. 21st Int'l Conf. on Data Engineering (ICDE), pp. 1104-1105, Demonstration Paper, Apr. 2005.7.)를 사용하고, 성능 평가의 기준으로는 트랜잭션 당 평균 I/O 연산 횟수를 사용한다. 데이터로서는 TPC-C(Transaction Processing Performance Council (TPC), TPC BenchmarkTM C Standard Specification, Revision 5.9, June 2007.)에 정의된 데이터베이스와 트랜잭션을 사용한다. Here, the conventional method is to invalidate the pages in the volume in the buffer each time a volume lock is obtained. As DBMS, Odysseus: a High-Performance ORDBMS Tightly-Coupled with IR Features, "In Proc. 21st (Whang, K. Lee, M., Lee, J., Kim, M., and Han, W.). Int'l Conf. On Data Engineering (ICDE), pp. 1104-1105, Demonstration Paper, Apr. 2005.7. The data uses the databases and transactions defined in the Transaction Processing Performance Council (TPC), the TPC Benchmark C Standard Specification, Revision 5.9, June 2007.
본 실험에서는 데이터베이스의 크기가 790MB이고 버퍼의 크기가 80MB일 때, 프로세스의 개수를 2~32개로 증가시키며 이에 따른 성능 변화를 측정한다. 도 16은 본 발명과 종래의 방법의 각각의 실험 결과로, 본 발명에 의한 방법이 종래의 방법에 비해 1.2~2.9배 정도 성능이 향상되었음을 보여준다. 이때, 본 발명에서 서버 프로세스 개수가 증가함에 따라 I/O 연산의 횟수가 증가하는 이유는 다른 서버 프로세스에서 수정된 페이지의 개수가 증가하므로 버퍼 일관성 관리를 위하여 버퍼에서 무효화되는 페이지 개수가 증가하기 때문이다. In this experiment, when the database size is 790MB and the buffer size is 80MB, the number of processes is increased from 2 to 32 and the performance change is measured accordingly. FIG. 16 shows the results of the experiments of the present invention and the conventional method, and the method according to the present invention is improved by 1.2 to 2.9 times as compared to the conventional method. In this case, the number of I / O operations increases as the number of server processes increases, since the number of pages modified by other server processes increases, so the number of pages invalidated in the buffer increases for buffer consistency management. to be.
이상과 같이 본 발명에 따른 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS와 이를 이용한 버퍼 일관성 관리방법을 예시한 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다. As described above with reference to the drawings illustrating a multi-server DBMS using a shared-disk model according to the present invention and a buffer consistency management method using the same, but by the embodiments and drawings disclosed herein The invention is not limited, and of course, various modifications may be made by those skilled in the art within the technical scope of the present invention.
도 1은 다중 서버 DBMS를 나타내는 도면이다. 1 is a diagram illustrating a multi-server DBMS.
도 2는 공유 메모리(Share-memory) 모델을 사용하는 다중 서버 DBMS를 나타내는 도면이다. 2 is a diagram illustrating a multi-server DBMS using a shared-memory model.
도 3은 비공유(Share-nothing) 모델을 사용하는 다중 서버 DBMS를 나타내는 도면이다. 3 is a diagram illustrating a multi-server DBMS using a share-nothing model.
도 4는 공유 디스크(Share-disk) 모델을 사용하는 다중 서버 DBMS를 나타내는 도면이다. 4 is a diagram illustrating a multi-server DBMS using a share-disk model.
도 5는 다중 서버 DBMS에서의 버퍼 일관성 문제를 나타내는 예시도이다. 5 is an exemplary diagram illustrating a buffer consistency problem in a multi-server DBMS.
도 6은 본 발명에 따른 공유 디스크(Shared-disk) 모델을 사용하는 다중 서버 DBMS를 나타내는 도면이다. 6 is a diagram illustrating a multi-server DBMS using a shared-disk model according to the present invention.
도 7은 본 발명에 따른 버퍼 일관성 관리 방법을 나타내는 블록도이다. 7 is a block diagram illustrating a buffer consistency management method according to the present invention.
도 8은 본 발명에 따른 버퍼 일관성 관리 방법 중 제 2 과정을 나타내는 블록도이다. 8 is a block diagram illustrating a second process of the buffer consistency management method according to the present invention.
도 9는 본 발명에 따른 다중 서버 DBMS의 버퍼 일치 시점을 나타내는 예시도이다. 9 is an exemplary view showing a buffer matching time of a multi-server DBMS according to the present invention.
도 10은 본 발명에 따른 다중 서버 DBMS의 트랜잭션 종료 시 페이지 정보(page-info)들을 일관성 볼륨(coherency volume)에 저장하는 알고리즘을 나타내는 도면이다. 10 is a diagram illustrating an algorithm for storing page information (page-info) in a coherency volume at the end of a transaction of a multi-server DBMS according to the present invention.
도 11은 본 발명에 따른 원형 리스트의 랩 어라운드(wrap around)로 인한 문제를 나타내는 예시도이다. 11 is an exemplary diagram illustrating a problem due to wrap around of a circular list according to the present invention.
도 12는 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인한 문제를 나타내는 예시도이다. FIG. 12 is an exemplary diagram illustrating a problem due to overflow of a timestamp value of page information (page-info) stored in a circular list according to the present invention.
도 13은 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인해 원형 리스트의 랩 어라운드(wrap around)를 발견하지 못하는 문제를 나타내는 예시도 1이다. FIG. 13 illustrates an example in which a wrap around of a prototype list is not found due to an overflow of a timestamp value of page information stored in the prototype list according to the present invention. 1.
도 14는 본 발명에 따른 원형 리스트에 저장된 페이지 정보(page-info)의 타임스탬프(timestamp) 값의 오버플로우(overflow)로 인해 원형 리스트의 랩 어라운드(wrap around)를 발견하지 못하는 문제를 나타내는 예시도 2이다. FIG. 14 illustrates an example in which a wrap around of a prototype list is not found due to an overflow of a timestamp value of page-info stored in the prototype list according to the present invention. 2.
도 15는 본 발명에 따른 서버 프로세스가 볼륨 로크 획득 시 버퍼의 내용을 데이터베이스와 일치시키는 알고리즘을 나타내는 도면이다. 15 is a diagram illustrating an algorithm for matching a content of a buffer with a database when a server process acquires a volume lock according to the present invention.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020090072483A KR101057468B1 (en) | 2009-08-06 | 2009-08-06 | Buffer Consistency Management Method in Multiserver Database Management System Using Shared Disk Model |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020090072483A KR101057468B1 (en) | 2009-08-06 | 2009-08-06 | Buffer Consistency Management Method in Multiserver Database Management System Using Shared Disk Model |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20110014889A KR20110014889A (en) | 2011-02-14 |
| KR101057468B1 true KR101057468B1 (en) | 2011-08-17 |
Family
ID=43773878
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020090072483A Expired - Fee Related KR101057468B1 (en) | 2009-08-06 | 2009-08-06 | Buffer Consistency Management Method in Multiserver Database Management System Using Shared Disk Model |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR101057468B1 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100507781B1 (en) | 2002-12-24 | 2005-08-17 | 한국전자통신연구원 | Buffer fix procedure supporting both detection-based and avoidance-based cache coherency control scheme in a multisystem shared disk environment |
-
2009
- 2009-08-06 KR KR1020090072483A patent/KR101057468B1/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100507781B1 (en) | 2002-12-24 | 2005-08-17 | 한국전자통신연구원 | Buffer fix procedure supporting both detection-based and avoidance-based cache coherency control scheme in a multisystem shared disk environment |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20110014889A (en) | 2011-02-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11080260B2 (en) | Concurrent reads and inserts into a data structure without latching or waiting by readers | |
| US10831779B2 (en) | Seamless data migration across databases | |
| US9155320B2 (en) | Prefix-based leaf node storage for database system | |
| US20180081933A1 (en) | Granular buffering of metadata changes for journaling file systems | |
| US20130185337A1 (en) | Memory allocation buffer for reduction of heap fragmentation | |
| US8095678B2 (en) | Data processing | |
| US11886401B2 (en) | Database key compression | |
| CN104580437A (en) | Cloud storage client and high-efficiency data access method thereof | |
| CN107463447A (en) | B + tree management method based on remote direct nonvolatile memory access | |
| US20150363446A1 (en) | System and Method for Indexing Streams Containing Unstructured Text Data | |
| US8176087B2 (en) | Data processing | |
| CN117009361A (en) | A two-stage lock-free parallel log playback method and device | |
| CN112334891B (en) | Centralized storage for search servers | |
| CN114138840A (en) | Data query method, device, equipment and storage medium | |
| US20170316042A1 (en) | Index page with latch-free access | |
| US11586353B2 (en) | Optimized access to high-speed storage device | |
| CN107133334A (en) | Method of data synchronization based on high bandwidth storage system | |
| US10073874B1 (en) | Updating inverted indices | |
| KR101057468B1 (en) | Buffer Consistency Management Method in Multiserver Database Management System Using Shared Disk Model | |
| CN120723777A (en) | Concurrent access control and data processing method, device, storage medium and program product | |
| CN111444179B (en) | Data processing method, device, storage medium and server | |
| CN116627345A (en) | High-performance KV caching method and device applied to massive value key value pairs | |
| CN116909485A (en) | Data write-back method and device, electronic equipment and computer readable storage medium | |
| CN118132598B (en) | Database data processing method and device based on multi-level cache | |
| CN120407625B (en) | Caching method, system, device, equipment and medium for metadata in database |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20140724 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20150811 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20150811 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |







