초록
본 논문은 데이터베이스 관리시스템이 데이터베이스를 저장할 디스크 공간을 직접 관리하는 환경에서 데이터베이스 파일들의 삭제를 위해 미처리 연산을 정확하고 효율적으로 수행하는 기법을 제시한다. 미처리 연산의 수행과 관련하여 회복시에 회복 프로세스는 완료가 결정되었으나 아직 종료하지 않은 미종료 트랜잭션들의 아직 수행되지 않은 미처리 연산들을 식별하고 이들을 완전히 수행할 수 있어야 한다. 본 논문의 기본아이디어는 로그 파일에 기록된 로그레코드들을 분석함으로써 회복 프로세스가 그 연산들을 식별할 수 있게 하는 것이다. 이 기법은 ARIES의 트랜잭션, 퍼지 검사점, 그리고 회복의 수행을 확장한 것으로서 다음의 방법을 사용한다. 첫째, 회복시에 미종료 트랜잭션들을 식별하기 위하여, 각 트랜잭션은 트랜잭션의 완료와 미처리 연산 수행의 시작을 함께 나타내는 미처리연산수행시작('pa-start') 로그레코드를 기록한 후에 미처리 연산을 수행하며, 그리고 나서 트랜잭션 종료 로그레코드를 기록한다. 둘째. 회복시에 미종료 트랜잭션들의 미처리 연산 리스트를 복구하기 위하여, 각 트랜잭션은 미처리 연산수행시작 로그레코드에 그 트랜잭션의 미처리 연산 리스트를 수록하며 퍼지 검사점은 검사점종료 로그레코드에 완료가 결정된 트랜잭션의 미처리 연산 리스트를 수록한다. 셋째, 회복시에 다음에 수행할 미처리 연산을 식별하기 위하여, 각 트랜잭션은 미처리 연산을 수행하면서 변경하는 각 페이지에 대하여 그 페이지에 대한 재수행 정보를 기록하는 로그레코드에 다음에 수행할 미처리 연산의 식별 정보를 함께 수록한다.
In the environment that database management systems manage disk spaces for storing databases directly, this paper proposes a correct and efficient scheme of performing pending actions for the removal of database files. As for performing pending actions, upon performing recovery, the recovery process must identify unperformed pending actions of not-yet-terminated transactions and then perform those actions completely. Making the recovery process identify those actions through the analysis of log records in the log file is the basic idea of this paper. This scheme, as an extension of the execution of transactions, fuzzy checkpoint, and recovery of ARIES, uses the following methods: First, to identify not-yet-terminated transactions during recovery, transactions perform pending actions after writing 'pa_start'log records that signify both the commit of transactions and the start of executing pending actions, and then write 'eng'log records. Second, to restore pending-actions-lists of not-yet-terminated transactions during recovery, each transaction records its pending-actions-list in 'pa_start'log record and the checkpoint process records pending-actions-lists of transactions that are decided to be committed in 'end_chkpt'log record. Third, to identify the next pending action to perform during recovery, whenever a page is updated during the execution of pending actions, transactions record the information that identifies the next pending action to perform in the log record that has the redo information against the page.