Estou escrevendo meu próprio armazenamento de dados diretamente sobre um dispositivo de bloco. Para garantir a durabilidade, quero sincronizar com o disco. Mas é o seguinte: quero sincronizar apenas parte dele.
Estou mantendo um diário para recuperação de falhas e escrevo minhas alterações futuras no diário antes de aplicá-las ao local real no disco. Em seguida, quero garantir que as alterações do diário sejam gravadas no disco e só então fazer as alterações reais no restante do disco (que não me importo com o fsync, até que eu verifique meu diário).
Eu poderia simplesmente sincronizar todo o dispositivo de bloco, mas isso força muitas coisas que não são urgentes a serem escritas.
Eu pensei em duas opções, mas estou surpreso que não haja nenhuma chamada fsync(2) parcial e ninguém pedindo pelo que encontrei.