나는 블록 장치 위에 직접 데이터 저장소를 작성했습니다. 내구성을 보장하기 위해 디스크에 동기화하고 싶습니다. 하지만 문제는 이렇습니다. 일부만 동기화하고 싶습니다.
나는 충돌 복구를 위해 로그를 유지하고 디스크의 실제 위치에 적용하기 전에 향후 변경 사항을 로그에 기록합니다. 그런 다음 나머지 디스크에 실제 변경 사항이 적용되기 전에 로그 변경 사항이 디스크에 기록되었는지 확인하고 싶습니다(로그를 확인할 때까지는 fsync에 관심이 없습니다).
전체 블록 장치를 간단히 동기화할 수 있지만 그렇게 하면 긴급하지 않은 많은 항목을 기록해야 합니다.
두 가지 옵션을 생각했지만 부분적인 fsync(2) 호출이 없다는 사실에 놀랐고, 내가 찾은 바에 따르면 이를 요청하는 사람이 아무도 없었습니다.