Eu tenho um dispositivo de placa única que executa o Debian 10 em um pedaço de flash. O UBIFS é usado e é dividido em dois volumes: um ro roots e um rw /var. Descobri que, em condições de ciclo de energia/redefinição, posso acabar com arquivos de 0 byte. Eu mantenho minhas "configurações" em /var/opt/myApp. Alterar a opção de montagem de /var para incluir sync
parece fazer com que esses incidentes desapareçam.
Eu sei que o conselho usual é que o assíncrono é preferível à sincronização, mas geralmente é ressalvado com "geralmente, mas nem sempre" com pouca explicação sobre quais podem ser as exceções.
A solução alternativa seria modificar todo e qualquer site de chamadas onde eu escrevo dados no disco, para não apenas liberar o fechamento do arquivo, mas também sincronizar (faço muito disso com python). Por uma questão de codificação/completude, a montagem sync
parecia menos trabalhosa e evitou que eu perdesse a adição dos guardas de sincronização em alguns lugares, pois é universal.
Além disso, permito que o dispositivo salve dados em pen drives USB. Acho que devo montar essa sincronização também, para reduzir a perda quando eles são retirados logo após os dados serem gravados neles.
Esta é uma configuração excepcionalmente adequada para justificar o uso sync
? Ou devo usar a solução alternativa?