이를 Ceph에 구현한다면...
하나의 파일이 여러 클라이언트에 의해 열려, 여러 쓰기 작업 또는 읽기와 쓰기가 혼합된 작업이 수행될 경우, MDS는 이전에 부여했던 읽기 캐싱과 쓰기 버퍼링 capability를 회수. 이를 통해 해당 파일의 클라이언트 I/O 작업이 동기식(synchronous)으로 처리되도록 강제.
이 방식에서는 각 애플리케이션의 읽기 또는 쓰기 작업이 OSD로부터 승인을 받을 때까지 대기하며, 업데이트 직렬화와 동기화의 부담은 해당 오브젝트를 저장하는 OSD로 전가됩니다.
쓰기 작업이 여러 오브젝트 경계를 넘는 경우, 클라이언트는 영향을 받는 오브젝트에 대해 해당 OSD로부터 배타적 잠금(exclusive lock)을 획득하고, 쓰기 작업을 즉시 제출한 후 잠금을 해제하여 원하는 직렬화(serialization)를 달성할 수 잉슴. 대규모 쓰기 작업에서도 동일하게 오브젝트 잠금을 사용하여, 데이터를 Asynchronous flush하면서 latency을 완화.
synchronous i/o(POSIX의 엄격한 동기화 요구)는 자체적으로 일관성을 관리하는 HPC와 같은 응용에 대해 불필요한 성능 저하를 유발
Ceph는 이러한 hpc 응용에 대한 consistency relaxation을 지원
O_LAZY 플래그 : 파일을 열 때 사용되는 새로운 플래그로, 일관성(coherency) 요구를 완화(relax)할 수 있도록 허용합니다.