После того, как рабочий узел Compute Engine записывает файлы в смонтированный локальный каталог gcsfuse и закрывает их, я хочу, чтобы синхронно сбрасывал данные в GCS , прежде чем он уведомит другие рабочие узлы что все файлы готовы. Это необходимо для обеспечения синхронизации между рабочими.
Q. Как попросить gcsfuse выполнить сквозную запись в GCS, а затем дождаться завершения?
Идеи:
- Запустить команду Linux
sync
?
- Размонтировать каталог, затем дождаться возврата этой команды
fusermount
? (Помимо времени записи, потребуется ли для демонтажа более секунды или двух, а затем перемонтировать для следующей рабочей задачи?)
- Заставить все программы в этой задаче вызвать
fsync()
для всех своих выходных файлов? Это было бы сложно.
- Написать дополнительный файл, затем
flush()
и fsync()
этот файл?