The availability of large, relatively inexpensive main memories coupled with the demand for faster response time for real-time database systems brought to the main memory database systems. Since database operations are mostly I/O bounded, elimination of disk access delays can contribute to substantial improvement in transaction response time. However, the migration of data from disk to main memory introduces the critical problem associated with the recovery mechanism. The recovery mechanism must guarantee transaction atomicity and durability in the face of system failures.
In this paper, our recovery scheme uses non-volatile main memory to hold an inmemory log so that the log write to disk can be delayed. This stable log buffer can be considered as a reliable disk output queue for log data. Our recovery scheme uses a separate recovery processor to perform logging, checkpointing, recovery from failures, and two checkpoint bit maps for constructing a transaction-consistent checkpoint. Our recovery scheme allows transactions to begin processing as soon as their data is restored. Transactions do not have to wait for the entire database to be reloaded Our recovery scheme will also be beneficial in the event of a partial main memory failure.
최근 하드웨어 기술의 발달로 주기억 장치의 집적도가 높아지고 가격이 하락하여 대용량의 주기억 장치를 사용할 수 있게 되었고, 실시간 처리 데이타베이스 시스템을 위한 보다 빠른 응답 시간의 요구는 주기억 장치 데이타베이스 시스템이라는 새로운 분야를 제시하게 되었다. 데이타베이스에 관한 연산은 대부분 CPU 의존형이 아니고 기억 장치 의존형이므로, 디스크 접근 지연 시간을 제거한다는 것은 트랙잭션 응답 시간에 직접적인 성능 향상을 가져올 수 있는 것이다. 그러나 주기억 장치 데이타베이스 시스템에서는 데이타의 변경이 주기억 장치 내에서만 이루어지므로, 고장이 발생하는 경우 초기에 적재된 이후의 수행된 트랙잭션들의 결과를 상실하게 된다. 따라서 주기억 장치 데이타베이스 시스템의 회복 기법은 시스템 고장이 발생할 경우에도 트랙잭션의 원자성과 지속성을 반드시 유지 하여야 하므로 종전의 디스크 데이타베이스 시스템에서보다 더 큰 비중을 차지한다고 볼 수 있다.
따라서, 본 논문에서는 주기억 장치 데이타베이스 시스템을 위한 회복 기법을 제안한다. 제안된 회복 기법에서는 뱃터리 예비 전원이 공급되는 안정된 주기억 장치를 로그 버퍼로서 사용 하였으며, 별도의 회복 프로세서를 두어 로깅, 검사점 수행과 고장들로 부터의 회복을 전담하게 하여 데이타 프로세서로 하여금 CPU 부담을 덜어 주도록 하였다. 주기억 장치 데이타베이스 환경에 적합한 검사점 수행 기법인 TCC(Transaction-Consistent Checkpoint) 기법을 안정된 주기억 장치에 있는 검사점 수행 비트 맵을 사용하여 구현하였으며, 보관 데이타베이스에 자료 구조와 I/O 효율성이 고려된 디스크 인터리빙 방식을 사용하였다. 제안된 회복 기법에서는 보관 데이타베이스 전체가 주기억 장치로 재적재될때 까지를 기다릴 필요가 없으며, 필요한 데이타들이 적재되는 즉시 트랙잭션의 수행이 가능하다.