[go: up one dir, main page]

KR20020030223A - Logging and recovery method for supporting high performance transaction in main memory resident database system - Google Patents

Logging and recovery method for supporting high performance transaction in main memory resident database system Download PDF

Info

Publication number
KR20020030223A
KR20020030223A KR1020000060817A KR20000060817A KR20020030223A KR 20020030223 A KR20020030223 A KR 20020030223A KR 1020000060817 A KR1020000060817 A KR 1020000060817A KR 20000060817 A KR20000060817 A KR 20000060817A KR 20020030223 A KR20020030223 A KR 20020030223A
Authority
KR
South Korea
Prior art keywords
transaction
database
tuple
index
log record
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.)
Ceased
Application number
KR1020000060817A
Other languages
Korean (ko)
Inventor
김진호
권순철
Original Assignee
주식회사 알라딘소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 알라딘소프트 filed Critical 주식회사 알라딘소프트
Priority to KR1020000060817A priority Critical patent/KR20020030223A/en
Publication of KR20020030223A publication Critical patent/KR20020030223A/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법에 관한 것이다. 본 발명은, 트랜잭션 수행시 인덱스(35)에 대한 로그 레코드를 생성하지 않고 튜플에 대한 로그 레코드만을 생성하여 디스크(39)의 로그 파일(34)에 튜플 로그 레코드를 저장하는 트랜잭션 완료 단계; 트랜잭션 철회시 튜플의 경우 튜플의 로그 레코드를 이용하여 복구하고, 인덱스(35)의 경우 튜플 로그 레코드를 생성한 연산에 따라 튜플 로그 레코드를 이용하여 인덱스 값을 트랜잭션 시작 이전의 상태로 복구함으로써 튜플과 인덱스(35)의 일관성을 유지하는 트랜잭션 철회단계; 및 시스템 재시작시 튜플에 대한 로그 레코드로 데이터베이스(37)의 데이터(33)를 복구하여 튜플에 대한 일관성을 유지한 후 인덱스를 재구축하여 전체 데이터베이스의 일관성을 유지하는 시스템 재시작 단계를 포함하는 것을 특징으로 한다. 따라서, 본 발명에 의하면, 주기억장치 데이터베이스 시스템에서 디스크(39) 입출력을 줄여 빠른 트랜잭션 처리를 수행할 수 있으며, 트랜잭션 철회 및 데이터베이스 시스템의 오동작으로 시스템을 재시작할 경우 데이터베이스(37)의 일관성을 유지할 수 있다.The present invention relates to a logging and recovery method for supporting high performance transactions in a main memory database system. The present invention provides a transaction completion step of storing a tuple log record in a log file 34 of a disk 39 by generating only a log record for a tuple without generating a log record for an index 35 when performing a transaction; When a transaction is canceled, the tuple recovers using the log record of the tuple, and the index 35 restores the index value to the state before the start of the transaction by using the tuple log record according to the operation that generated the tuple log record. Withdrawing the transaction to maintain the consistency of the index 35; And a system restart step of restoring the data 33 of the database 37 as a log record for the tuple at the system restart to maintain the consistency of the tuple, and then rebuilding the index to maintain the consistency of the entire database. It is done. Therefore, according to the present invention, it is possible to perform fast transaction processing by reducing the disk 39 input and output in the main memory database system, it is possible to maintain the consistency of the database 37 when restarting the system due to the transaction withdrawal and malfunction of the database system have.

Description

주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법{Logging and recovery method for supporting high performance transaction in main memory resident database system}Logging and recovery method for supporting high performance transaction in main memory resident database system}

본 발명은 데이터베이스 시스템의 로깅 및 회복 방법에 관한 것으로, 특히 디스크 입출력을 줄여 빠른 트랜잭션 처리를 수행하는 것과 동시에, 트랜잭션 철회 및 데이터베이스 시스템의 오동작으로 시스템을 재시작할 경우 데이터베이스의 일관성을 유지할 수 있는 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법에 관한 것이다.The present invention relates to a method for logging and recovering a database system. In particular, a main memory device capable of performing a fast transaction processing by reducing disk I / O, and maintaining a database consistency when a system is restarted due to a transaction withdrawal and a malfunction of the database system. A logging and recovery method for supporting high performance transactions in a database system.

일반적으로 디스크 기반의 범용 데이터베이스 시스템은, 레코드(record)인 튜플(tuple)의 삽입/삭제/변경(insert/delete/update) 연산을 하는 트랜잭션 처리시 테이블의 변경사항을 디스크에 기록하며, 테이블의 각 튜플을 효율적으로 검색하기 위하여 인덱스 데이터를 디스크에 유지하도록 되어 있다. 이러한 디스크 기반의 범용 데이터베이스 시스템은 트랜잭션 철회와 시스템 오동작으로 시스템을 재시작할 경우, 데이터베이스의 일관성(consistency)을 유지하기 위해 테이블과 인덱스의 변경에 대한 로그 레코드를 안전한 기억공간에 저장한다.In general, a disk-based general-purpose database system records changes in a table on disk during transaction processing of insert / delete / update operations of a tuple, which is a record. In order to efficiently search for each tuple, index data is kept on disk. When the system is restarted due to transaction withdrawal and system malfunction, such a disk-based general-purpose database system stores log records of changes to tables and indexes in a safe storage space in order to maintain database consistency.

그러나, 주기억장치 상주 데이터베이스 시스템은 모든 테이블을 주기억장치에 상주시켜 트랜잭션 처리로 인한 테이블의 변경 사항을 주기억장치에 기록하도록 되어 있으므로, 데이터베이스의 일관성을 유지하기 위해 로그 레코드를 디스크에 저장하는 것은 주기억장치 상주 데이터베이스 시스템에서 큰 오버헤드가 되며, 이로 인하여 트랜잭션 처리가 느려진다는 문제점이 있다.However, since the main memory resident database system resides all the tables in the main memory to record the changes of the table due to transaction processing in the main memory, it is necessary to store log records on disk to maintain the consistency of the database. There is a big overhead in the resident database system, which causes slow transaction processing.

본 발명은 종래 기술의 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 주기억장치 데이터베이스 시스템에서 빠른 트랜잭션 처리를 위해 처리 시간에서 가장 많은 비중을 차지하는 디스크 입출력을 줄이는 것과 동시에, 트랜잭션 철회 및 데이터베이스 시스템의 오동작으로 시스템을 재시작할 경우 데이터베이스의 일관성을 유지할 수 있는 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been proposed to solve the problems of the prior art, and an object of the present invention is to reduce the amount of disk input and output, which takes up the largest portion of the processing time, for fast transaction processing in the main memory database system, and at the same time reduce transaction and database systems. This is to provide logging and recovery method to support high performance transaction in main memory database system that can maintain database consistency when restarting the system due to malfunction.

도 1은 본 발명에 따른 트랜잭션 처리 흐름도.1 is a transaction processing flow diagram in accordance with the present invention.

도 2는 본 발명에 따른 시스템 재시작시 흐름도.2 is a flow chart upon system restart in accordance with the present invention.

도 3은 본 발명에 의한 트랜잭션 완료 블록도.3 is a transaction completion block diagram according to the present invention.

도 4는 본 발명에 의한 트랜잭션 철회 블록도.4 is a transaction withdrawal block diagram in accordance with the present invention.

도 5는 본 발명에 의한 시스템 재시작 블록도.5 is a system restart block diagram according to the present invention.

* 도면의 주요 부분에 대한 부호 설명 *Explanation of symbols on the main parts of the drawings

30 : 삽입될 튜플31 : 삭제될 튜플30: Tuple to be inserted 31: Tuple to be deleted

32 : 변경될 튜플33 : 데이터32: tuple to be changed 33: data

34 : 로그 파일35 : 인덱스34: log file 35: index

36 : 데이터베이스 백업 파일37 : 데이터베이스36: database backup file 37: database

38 : 주기억장치39 : 디스크38: main memory 39: disk

상기한 목적을 달성하기 위하여, 본 발명은 데이터와 인덱스가 포함된 데이터베이스를 저장하는 주기억장치와, 로그 파일과 데이터베이스 백업파일이 저장되는 디스크를 구비한 데이터베이스 시스템에서 트랜잭션 처리를 수행하기 위한 로깅 및 회복 방법에 있어서, 트랜잭션 수행시 인덱스에 대한 로그 레코드를 생성하지 않고 튜플에 대한 로그 레코드만을 생성하여 디스크의 로그 파일에 튜플 로그 레코드를 저장하는 트랜잭션 완료 단계; 트랜잭션 철회시 튜플의 경우 튜플의 로그 레코드를 이용하여 복구하고, 인덱스의 경우 튜플 로그 레코드를 생성한 연산에 따라 튜플 로그 레코드를 이용하여 인덱스 값을 트랜잭션 시작 이전의 상태로 복구함으로써 튜플과 인덱스의 일관성을 유지하는 트랜잭션 철회단계; 및 시스템 재시작시 튜플에 대한 로그 레코드로 데이터베이스의 데이터를 복구하여 튜플에 대한 일관성을 유지한 후 인덱스를 재구축하여 전체 데이터베이스의 일관성을 유지하는 시스템 재시작 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention provides a logging and recovery for performing transaction processing in a database system having a main memory device for storing a database containing data and indexes, and a disk for storing log files and database backup files A method, comprising: a transaction completion step of storing a tuple log record in a log file on a disk by generating only a log record for a tuple without generating a log record for an index when a transaction is performed; When a transaction is canceled, the tuple recovers using the log record of the tuple, and the index restores the index value to the state before the start of the transaction by using the tuple log record according to the operation that generated the tuple log record. Withdrawing the transaction to maintain; And a system restart step of restoring the data of the database as log records for the tuple at system restart to maintain the consistency of the tuple, and then rebuilding the index to maintain the consistency of the entire database.

이하, 본 발명의 바람직한 실시예를 첨부 도면들을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 트랜잭션 처리 흐름도이다.1 is a flow diagram of a transaction processing in accordance with the present invention.

트랜잭션 시작시 데이터베이스(37) 테이블의 튜플을 삽입/삭제/변경(insert/delete/update) 연산을 하여(단계 S1) 주기억장치(38)의 데이터베이스(37)를 변경하고(단계 S2), 튜플에 대한 사전, 사후 로그 레코드(log record)를 생성하며(단계 S3), 인덱스(35)를 변경한다(단계 S4). 트랜잭션 종료를 체크하여(단계 S5) 종료가 아니면 단계 S1으로 되돌아가고 종료이면 트랜잭션 종료 상황이 완료(commit)인지 또는 철회(abort)인지 체크한다(단계 S6).At the start of the transaction, a database tuple of the main memory 38 is changed (step S2) by inserting / delete / update a tuple of the table of the database 37 (step S1). Create a pre- and post-log record (step S3) and change the index 35 (step S4). The transaction end is checked (step S5), if not, the process returns to step S1, and if it is terminated, it is checked whether the transaction termination situation is complete or abort (step S6).

트랜잭션 종료 상황이 완료이면 로그 레코드를 디스크(39)의 로그 파일(34)에 기록한다(단계 S14).If the transaction end situation is complete, a log record is recorded in the log file 34 of the disk 39 (step S14).

주기억상주 데이터베이스 관리 시스템(DBMS : Database Management System)은 주기억장치(메모리)에 모든 데이터를 유지하여 트랜잭션 처리를 메모리 연산만으로 처리할 수 있으므로 빠른 실시간 트랜잭션 처리를 지원한다. 그러나, 데이터베이스(37)의 일관성을 유지하기 위해 로그 레코드를 디스크(39)에 저장하는 디스크(39) 입출력이 발생되며, 이러한 디스크(39) 입출력이 많을수록 전체 데이타베이스 시스템의 성능(performance)이 저하되게 된다. 따라서, 고성능 트랜잭션 처리를 지원하기 위해서는 로그 레코드의 양을 줄여 디스크(39) 입출력의 양을 줄여야 한다.Main Memory Resident Database Management System (DBMS) maintains all data in main memory (memory) so that transaction processing can be processed only by memory operation, so it supports fast real-time transaction processing. However, in order to maintain the consistency of the database 37, disk 39 I / O, which stores log records on the disk 39, is generated, and the more such disk 39 I / O is, the lower the performance of the entire database system is. Will be. Therefore, in order to support high performance transaction processing, the amount of disk 39 input / output should be reduced by reducing the amount of log records.

도 3은 본 발명에 의한 트랜잭션 완료 블록도이다. 도 3에 도시한 바와 같이, 트랜잭션이 완료되었을 때 튜플에 대한 사전, 사후 로그 레코드만을 디스크(39)의 로그 파일(34)에 저장하고, 인덱스(35)에 대한 로그 레코드는 로그 파일(34)에 저장하지 않는다. 따라서, 전체 로그 레코드의 양을 줄여 디스크(39)입출력의 양을 줄일 수 있게 되어 고성능 트랜잭션 처리를 지원할 수 있게 된다.3 is a transaction completion block diagram according to the present invention. As shown in Fig. 3, when the transaction is completed, only the pre and post log records for the tuples are stored in the log file 34 of the disk 39, and the log records for the index 35 are the log file 34. Do not save on. Therefore, it is possible to reduce the amount of disk 39 input and output by reducing the total amount of log records to support high performance transaction processing.

상기 단계 S6에서 트랜잭션 종료 상황이 철회이면 적용해야할 로그 레코드가 트랜잭션 시작 로그 레코드인지를 체크하여(단계 S7) 트랜잭션 시작 로그 레코드이면 로그 레코드들을 디스크(39)의 로그 파일(34)에 기록하고(단계 S14), 아니면 로그 레코드를 이용하여 데이터베이스(37)의 튜플을 트랜잭션 시작 이전 상태로 복구한다(단계 S8). 그 다음, 튜플 로그 레코드를 생성한 연산의 타입을 체크하여(단계 S9), 삭제 연산이면 사전 로그 레코드를 이용하여 인덱스 삽입 연산을 하고(단계 S10), 삽입 연산이면 사후 로그 레코드를 이용하여 인덱스 삭제 연산을 하고(단계 S11), 변경 연산이면 사후 로그 레코드를 이용하여 인덱스 삭제 연산을 수행(단계 S12)한 후 사전 로그 레코드를 이용하여 인덱스 삽입 연산을 수행(단계 S13)함으로써 데이터베이스(37)의 인덱스(35)를 트랜잭션 시작 이전 상태로 복구한다.In the step S6, if the transaction termination situation is withdrawn, it is checked whether the log record to be applied is a transaction start log record (step S7), and if the transaction start log record, the log records are written to the log file 34 of the disk 39 (step S7). S14), or restore the tuple of the database 37 to a state before the start of the transaction by using the log record (step S8). Then, the type of the operation that generated the tuple log record is checked (step S9). If the delete operation is performed, the index insert operation is performed using the pre-log record (step S10). If the insert operation is performed, the index is deleted using the post log record. The index of the database 37 by performing an index delete operation using a post log record (step S12) and performing an index insert operation using a pre log record (step S13). Restore (35) to the state before the start of the transaction.

상기 단계(S8~S13)에 의하여 데이터베이스(37)의 튜플과 인덱스(35)를 트랜잭션 시작 이전 상태로 복구시킨 후 단계 S7로 되돌아간다.In step S8 to step S13, the tuples and indexes 35 of the database 37 are restored to the state before the start of the transaction, and the process returns to the step S7.

도 4는 본 발명에 의한 트랜잭션 철회 블록도이다. 도 4에 도시된 바와 같이, 튜플에 대한 로그 레코드를 이용하여 튜플과 인덱스 모두를 복구할 수 있다. 따라서, 전체 로그 레코드의 양을 줄여 디스크(39) 입출력의 양을 줄일 수 있게 되어 고성능 트랜잭션 처리를 지원할 수 있게 된다.4 is a transaction withdrawal block diagram according to the present invention. As shown in FIG. 4, both the tuple and the index can be recovered using the log record for the tuple. Therefore, it is possible to reduce the amount of disk 39 input and output by reducing the total amount of log records to support high performance transaction processing.

도 2는 본 발명에 따른 시스템 재시작시 흐름도이다.2 is a flow chart upon system restart in accordance with the present invention.

시스템 오동작으로 인하여 시스템을 재시작할 경우, 디스크(39)에 저장되어 있는 데이터베이스 백업 파일(36)에서 데이터베이스(37)를 주기억장치(38)에 로딩하고(단계 S17), 디스크(39)의 로그 파일(34)에 저장되어 있는 튜플에 대한 로그 레코드로 데이터베이스(37)의 데이터(33)를 복구한다(단계 S18). 이 때, 완료된 트랜잭션에 대한 로그 레코드는 주기억장치(38)의 데이터베이스(37)에 적용하지만, 철회 및 연산이 끝나지 않은 트랜잭션에 대한 로그 레코드는 적용하지 않는다.When the system is restarted due to a system malfunction, the database 37 is loaded into the main memory 38 from the database backup file 36 stored in the disk 39 (step S17), and the log file of the disk 39 is stored. The data 33 of the database 37 is restored to a log record for the tuple stored in 34 (step S18). At this time, the log record for the completed transaction is applied to the database 37 of the main memory 38, but the log record for the transaction that is not withdrawn and the operation is not applied.

재구축해야할 인덱스(35)가 있는지를 체크하여(단계 S19) 없으면 재시작을 종료하고, 있으면 테이블에 대한 인덱스(35)를 재구축한다(단계 S20).It is checked whether there is an index 35 to be rebuilt (step S19), and if not, restarting is finished. If so, the index 35 for the table is rebuilt (step S20).

도 5는 본 발명에 의한 시스템 재시작 블록도이다.5 is a system restart block diagram according to the present invention.

도 5에 도시된 바와 같이, 종래의 데이터베이스에서는 인덱스와 튜플을 함께 주기억장치에 로딩하여 데이터베이스를 복구하지만, 본 발명에서는 디스크(39)의 로그 파일(34)에 저장되어 있는 튜플에 대한 로그 레코드만으로 데이터베이스(37)의 데이터(33)를 복구할 수 있다. 따라서, 디스크(39) 입출력의 양을 줄일 수 있게 되어 데이터베이스 시스템 재시작을 신속하게 수행할 수 있다.As shown in FIG. 5, in the conventional database, the database is restored by loading the index and the tuple together into the main memory, but in the present invention, only the log records for the tuple stored in the log file 34 of the disk 39 are used. The data 33 of the database 37 can be recovered. Therefore, the amount of disk 39 input / output can be reduced, so that the database system restart can be performed quickly.

이렇게 트랜잭션 완료, 트랜잭션 철회, 시스템 재시작시 튜플 로그 레코드를 이용하여 튜플과 인덱스에 대한 일관성을 유지할 수 있는 것과 동시에, 주기억장치 데이터베이스 시스템에서 로그 레코드를 저장하는 디스크(39) 입출력의 양을 줄일 수 있으므로 전체 데이터베이스 시스템의 성능을 향상시켜 고성능 실시간 트랜잭션 처리 서비스를 제공할 수 있다.In this way, tuple log records can be used for transaction completion, transaction withdrawal, and system restart to maintain consistency for tuples and indexes, and reduce the amount of disk 39 I / O that stores log records in the main memory database system. It can improve the performance of the entire database system to provide high performance real time transaction processing services.

상술한 바와 같이, 본 발명의 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법에 의하면, 주기억장치 데이터베이스시스템에서 디스크(39) 입출력을 줄여 빠른 트랜잭션 처리를 수행할 수 있으며, 트랜잭션 철회 및 데이터베이스 시스템의 오동작으로 시스템을 재시작할 경우 데이터베이스(37)의 일관성을 유지할 수 있는 효과가 있다.As described above, according to the logging and recovery method for supporting a high-performance transaction in the main memory database system of the present invention, it is possible to perform fast transaction processing by reducing the disk 39 input and output in the main memory database system, transaction withdrawal and When the system is restarted due to a malfunction of the database system, there is an effect of maintaining the consistency of the database 37.

Claims (5)

데이터(33)와 인덱스(35)가 포함된 데이터베이스(37)를 저장하는 주기억장치(38)와, 로그 파일(34)과 데이터베이스 백업파일(36)이 저장되는 디스크(39)를 구비한 데이터베이스 시스템에서 트랜잭션 처리를 수행하기 위한 로깅 및 회복 방법에 있어서,A database system having a main memory 38 for storing a database 37 including data 33 and an index 35 and a disk 39 for storing a log file 34 and a database backup file 36. In the logging and recovery method for performing transaction processing in 트랜잭션 수행시 인덱스(35)에 대한 로그 레코드를 생성하지 않고 튜플에 대한 로그 레코드만을 생성하여 디스크(39)의 로그 파일(34)에 튜플 로그 레코드를 저장하는 트랜잭션 완료 단계;A transaction completion step of generating a log record for the tuple without storing a log record for the index 35 when the transaction is performed, and storing the tuple log record in the log file 34 of the disk 39; 트랜잭션 철회시 튜플의 경우 튜플의 로그 레코드를 이용하여 복구하고, 인덱스(35)의 경우 튜플 로그 레코드를 생성한 연산에 따라 튜플 로그 레코드를 이용하여 인덱스 값을 트랜잭션 시작 이전의 상태로 복구함으로써 튜플과 인덱스(35)의 일관성을 유지하는 트랜잭션 철회단계; 및When a transaction is canceled, the tuple recovers using the log record of the tuple, and the index 35 restores the index value to the state before the start of the transaction by using the tuple log record according to the operation that generated the tuple log record. Withdrawing the transaction to maintain the consistency of the index 35; And 시스템 재시작시 튜플에 대한 로그 레코드로 데이터베이스(37)의 데이터(33)를 복구하여 튜플에 대한 일관성을 유지한 후 인덱스를 재구축하여 전체 데이터베이스의 일관성을 유지하는 시스템 재시작 단계를 포함하는 것을 특징으로 하는 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법.And a system restart step of restoring the data 33 of the database 37 as a log record for the tuple upon system restart to maintain the consistency of the tuple, and then rebuilding the index to maintain the consistency of the entire database. Logging and recovery methods to support high performance transactions in main memory database systems. 제 1항에 있어서, 상기 트랜잭션 완료 단계는,The method of claim 1, wherein the transaction completion step, 트랜잭션 시작시 데이터베이스(37) 테이블의 튜플을 삽입/삭제/변경 연산을 하는 단계(S1);Inserting / deleting / modifying a tuple of the database 37 table at the start of a transaction (S1); 주기억장치(38)의 데이터베이스(37)를 변경하는 단계(S2);Changing the database 37 of the main memory 38 (S2); 튜플에 대한 사전, 사후 로그 레코드를 생성하는 단계(S3);Generating a pre- and post-log record for the tuple (S3); 인덱스(35)를 변경하는 단계(S4);Changing the index 35 (S4); 트랜잭션 종료를 체크하는 단계(S5);Checking a transaction termination (S5); 트랜잭션이 종료되지 않았으면 단계 S1으로 되돌아가고 종료되었으면 트랜잭션 종료상황이 완료인지 또는 철회인지 체크하는 단계(S6); 및If the transaction has not ended, returning to step S1 and checking if the transaction ended is complete or withdrawn (S6); And 상기 트랜잭션 종료 상황이 완료일 때 상기 튜플 로그 레코드를 디스크(39)의 로그 파일(34)에 기록하는 단계(S14)로 이루어져 있는 것을 특징으로 하는 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법.Logging and recovery to support high performance transactions in the main memory database system, characterized in that the step of recording the tuple log record in the log file 34 of the disk 39 when the transaction termination situation is complete (S14). Way. 제 2항에 있어서, 상기 트랜잭션 철회 단계는,The method of claim 2, wherein the transaction withdrawal step, 상기 단계 S6에서 트랜잭션 종료 상황이 철회이면 적용해야할 로그 레코드가 트랜잭션 시작 로그 레코드인지를 체크하는 단계(S7);Checking whether the log record to be applied is a transaction start log record (S7) when the transaction termination situation is withdrawn in step S6; 트랜잭션 시작 로그 레코드이면 로그 레코드들을 디스크(39)의 로그 파일(34)에 기록하고(단계 S14), 트랜잭션 시작 로그 레코드가 아니면 로그 레코드를 이용하여 데이터베이스(37)의 튜플을 트랜잭션 시작 이전 상태로 복구하는 단계(S8);If it is a transaction start log record, log records are written to the log file 34 of disk 39 (step S14), and if it is not a transaction start log record, the tuples of the database 37 are restored to the state before the transaction start using the log record. Step S8; 튜플 로그 레코드를 생성한 연산의 타입을 체크하여(S9), 튜플 로그 레코드를 생성한 연산의 타입이 삭제 연산이면 인덱스 삽입 연산을 하고(S10), 삽입 연산이면 인덱스 삭제 연산을 하고(S11), 변경 연산이면 인덱스 삭제 연산을 수행(S12)한 후 인덱스 삽입 연산을 수행(S13)하여 데이터베이스(37)의 인덱스(35)를 트랜잭션 시작 이전 상태로 복구하는 단계로 이루어져 있는 것을 특징으로 하는 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법.By checking the type of the operation that generated the tuple log record (S9), if the type of the operation that generated the tuple log record is a delete operation, the index insert operation (S10), if the insert operation (S11), In the case of a change operation, after performing an index delete operation (S12) and then performing an index insert operation (S13), the main memory database is configured to recover the index 35 of the database 37 to a state before the start of a transaction. Logging and recovery methods to support high performance transactions on the system. 제 1항에 있어서, 상기 시스템 재시작 단계는,The method of claim 1, wherein the system restarting step, 디스크(39)에 저장되어 있는 데이터베이스 백업 파일(36)에서 데이터베이스(37)를 주기억장치(38)에 로딩하는 단계(S17);Loading the database 37 into the main memory 38 from the database backup file 36 stored in the disk 39 (S17); 디스크(39)의 로그 파일(34)에 저장되어 있는 튜플에 대한 로그 레코드로 데이터베이스(37)의 데이터(33)를 복구하는 단계(S18);Recovering the data 33 of the database 37 to log records for the tuples stored in the log file 34 of the disk 39 (S18); 재구축해야할 인덱스가 있는지를 체크하는 단계(S19); 및Checking whether there is an index to be rebuilt (S19); And 재구축해야할 인덱스가 없으면 재시작을 종료하고, 있으면 테이블에 대한 인덱스(35)를 재구축하는 단계(S20)로 이루어져 있는 것을 특징으로 하는 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을 지원하기 위한 로깅 및 회복 방법.If there is no index to be rebuilt, the restart is terminated, and if there is a logging and recovery method for supporting high performance transactions in the main memory database system comprising the step (S20) of rebuilding the index (35) for the table. 데이터(33)와 인덱스(35)가 포함된 데이터베이스(37)를 저장하는 주기억장치(38)와, 로그 파일(34)과 데이터베이스 백업파일(36)이 저장되는 디스크(39)를 구비한 데이터베이스 시스템에 있어서,A database system having a main memory 38 for storing a database 37 including data 33 and an index 35 and a disk 39 for storing a log file 34 and a database backup file 36. To 트랜잭션 완료, 트랜잭션 철회, 시스템 재시작시 튜플 로그 레코드를 이용하여 데이터베이스에 대한 일관성을 유지하는 것과 동시에 로그 레코드가 저장된 디스크(39) 입출력의 양을 줄일 수 있는 프로그램을 컴퓨터에 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable record that records a program on the computer that can reduce the amount of disk I / O that the log record is stored on while maintaining consistency with the database by using tuple log records at transaction completion, transaction withdrawal, and system restart. media.
KR1020000060817A 2000-10-16 2000-10-16 Logging and recovery method for supporting high performance transaction in main memory resident database system Ceased KR20020030223A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000060817A KR20020030223A (en) 2000-10-16 2000-10-16 Logging and recovery method for supporting high performance transaction in main memory resident database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000060817A KR20020030223A (en) 2000-10-16 2000-10-16 Logging and recovery method for supporting high performance transaction in main memory resident database system

Publications (1)

Publication Number Publication Date
KR20020030223A true KR20020030223A (en) 2002-04-24

Family

ID=19693751

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000060817A Ceased KR20020030223A (en) 2000-10-16 2000-10-16 Logging and recovery method for supporting high performance transaction in main memory resident database system

Country Status (1)

Country Link
KR (1) KR20020030223A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056540A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 File destroy and recovery method against system failures in a database management system
KR100678926B1 (en) * 2006-01-05 2007-02-06 삼성전자주식회사 Log Information Management System and Method
CN100433011C (en) * 2006-01-17 2008-11-12 中兴通讯股份有限公司 Under embedded environment, method for protecting consistency of memory database
US7849060B2 (en) 2006-01-10 2010-12-07 Samsung Electronics Co., Ltd. System and method for managing log information for transaction
KR20110046118A (en) * 2009-10-28 2011-05-04 삼성전자주식회사 Adaptive Logging Device and Method
CN102279885A (en) * 2011-08-16 2011-12-14 中兴通讯股份有限公司 Method and device for operating data by memory database
CN102810050A (en) * 2011-05-31 2012-12-05 深圳市金蝶友商电子商务服务有限公司 Log data writing method and log system
CN103699548A (en) * 2012-09-27 2014-04-02 阿里巴巴集团控股有限公司 Method and equipment for recovering database data by using logs
US10394797B2 (en) 2016-03-10 2019-08-27 TmaxData Co., Ltd. Method and computing apparatus for managing main memory database

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100198805B1 (en) * 1996-11-22 1999-06-15 정선종 A method to prevent dangling transaction occurrence using transaction table initialization technique in analysis stage
EP0981093A2 (en) * 1998-07-31 2000-02-23 Motorola, Inc. Method and apparatus for performing transactions in a data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100198805B1 (en) * 1996-11-22 1999-06-15 정선종 A method to prevent dangling transaction occurrence using transaction table initialization technique in analysis stage
EP0981093A2 (en) * 1998-07-31 2000-02-23 Motorola, Inc. Method and apparatus for performing transactions in a data processing system
JP2000285068A (en) * 1998-07-31 2000-10-13 Motorola Inc Method and device for executing data transaction in data processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
(pp12,13, 1998.12.28) *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056540A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 File destroy and recovery method against system failures in a database management system
KR100678926B1 (en) * 2006-01-05 2007-02-06 삼성전자주식회사 Log Information Management System and Method
US7849060B2 (en) 2006-01-10 2010-12-07 Samsung Electronics Co., Ltd. System and method for managing log information for transaction
CN100433011C (en) * 2006-01-17 2008-11-12 中兴通讯股份有限公司 Under embedded environment, method for protecting consistency of memory database
KR20110046118A (en) * 2009-10-28 2011-05-04 삼성전자주식회사 Adaptive Logging Device and Method
US8296270B2 (en) 2009-10-28 2012-10-23 Samsung Electronics Co., Ltd. Adaptive logging apparatus and method
CN102810050A (en) * 2011-05-31 2012-12-05 深圳市金蝶友商电子商务服务有限公司 Log data writing method and log system
CN102279885A (en) * 2011-08-16 2011-12-14 中兴通讯股份有限公司 Method and device for operating data by memory database
CN103699548A (en) * 2012-09-27 2014-04-02 阿里巴巴集团控股有限公司 Method and equipment for recovering database data by using logs
CN103699548B (en) * 2012-09-27 2016-12-21 阿里巴巴集团控股有限公司 A kind of method and apparatus being recovered database data by usage log
US10394797B2 (en) 2016-03-10 2019-08-27 TmaxData Co., Ltd. Method and computing apparatus for managing main memory database

Similar Documents

Publication Publication Date Title
US7933927B2 (en) Method and apparatus for building index of source data
US10235375B1 (en) Persistent file system objects for management of databases
EP2590086B1 (en) Columnar database using virtual file data objects
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
US8868512B2 (en) Logging scheme for column-oriented in-memory databases
US9218377B2 (en) Failure recovery and error correction techniques for data loading in information warehouses
CN110727548B (en) Continuous data protection method and device based on database DML synchronization
US10810092B2 (en) Checkpoints for document store
US20130198139A1 (en) Durability implementation plan in an in-memory database system
US20110302136A1 (en) Recoverable execution
US9471622B2 (en) SCM-conscious transactional key-value store
EP2590078A2 (en) Shadow paging based log segment directory
US7225206B2 (en) System and method for reorganizing stored data
CA2652115A1 (en) Apparatus and method for read consistency in a log mining system
US7406489B2 (en) Apparatus, system and method for persistently storing data in a data synchronization process
KR20020030223A (en) Logging and recovery method for supporting high performance transaction in main memory resident database system
CN109101368B (en) Data processing method and device
US6792435B1 (en) Method and apparatus for recovering the definitions of dropped database objects
CN116820839A (en) Full-memory database persistence backup method and system based on data lake table format
CN115576494A (en) Data storage method and computing device
CN115658391A (en) Backup recovery method of WAL mechanism based on QianBase MPP database
KR100243113B1 (en) How to ensure atomicity of esquel-level update operations in database management systems
CN112612648B (en) SQL Server database recovery method, terminal equipment and storage medium
WO2024198010A1 (en) Concurrency control method and apparatus for column-oriented storage database
CN118626311A (en) A data recovery method and device for time series database

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20001016

PA0201 Request for examination
N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20010906

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20030428

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20030725

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20030428

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20030731

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20030428

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I