본문 바로가기

crash consistent

크래프톤 정글 week09, day71 - Journaling(저널링), Protection(보호) & Isolation(격리), 시스템 콜 순항 중 Journaling(저널링) 파일 시스템이나 데이터베이스에서 데이터의 변경 사항을 안전하게 관리하기 위해 사용하는 Crash Consistent에 대한 기술 중 하나 이 접근 방식에서는 데이터를 실제로 수정하기 전에, 모든 변경 사항을 ‘저널’이라고 하는 별도의 공간에 기록하며, 이 정보를 이용해 시스템이 충돌한 후에도 데이터를 안전하게 복구할 수 있다. 저널링의 주요 구성 요소 저널(Journal) 변경 사항이나 트랜잭션의 로그가 기록되는 공간 데이터를 수정하기 전에 예비 기록을 하는 곳으로, 시스템 충돌 시 복구의 근거가 된다. 메타데이터(Metadata) 파일의 이름, 크기, 위치 등 파일에 대한 정보를 수정할 때, 이 메타데이터 변경 사항도 저널에 기록된다. 데이터(Data) 사용자 또는 응용 프.. 더보기
크래프톤 정글 week09, day70 - fsync(), Crash Consistent, 시스템 콜 구현 에러 해결 fsync() 프로그램이 파일 시스템에 데이터를 안전하게 저장하도록 보장하는 데 사용되는 시스템 호출 중 하나이다. 이 함수는 특정 파일의 변경 사항이 디스크에 완전히 쓰여지도록 하여, 시스템 충돌이나 전원 문제 등 예기치 않은 상황에서도 데이터의 손실을 방지하는데 중요한 역할을 한다. fsync()의 작동 원리 호출과 실행 프로그램이 fsync() 함수를 호출하면, 해당 함수는 인자로 받은 파일 디스크립터가 가리키는 파일에 대한 모든 미완성 I/O 작업(입력/출력 작업)을 완료시킨다. 데이터 및 메타 데이터의 동기화 fsync()는 파일의 데이터 뿐만 아니라 메타 데이터(예 : 파일의 수정시간)까지 디스크에 쓰도록 보장한다. 이는 파일 시스템의 일관성을 유지하는 데 중요하다. 성공 및 실패 작업이 성공.. 더보기