如何等待gcsfuse写入(刷新)到GCS存储桶中?

时间:2019-06-11 17:16:20

标签: google-cloud-storage google-compute-engine gcsfuse

在Compute Engine工作程序节点将文件写入已安装的 gcsfuse 本地目录并关闭它们之后,我希望它将数据同步刷新到GCS ,然后再通知其他工作节点上所有文件都准备好了。这是为了确保工作人员之间的同步。

。如何让gcsfuse直写到GCS,然后等待其完成?

想法:

  • 运行Linux sync命令吗?
  • 卸载目录,然后等待该fusermount命令返回? (除了直写时间,还要花一两秒多的时间来卸载然后重新安装以执行下一个工作任务吗?)
  • 在此任务调用fsync()中的所有程序的所有输出文件上都进行?那将是具有挑战性的。
  • 写一个附加文件,然后flush()fsync()那个文件?

1 个答案:

答案 0 :(得分:2)

看看gcsfuse semantics

  

可以打开Inode进行写入。修改反映   立即通过本地进程读取相同的inode   机器使用相同的文件系统。成功执行fsync或   成功关闭后,保证索引节点的内容具有   如果该对象的   代数和元代数仍与来源匹配   inode的生成。 (如果有的话,他们可能没有   同时没有其他演员的修改。)没有   确保本地修改是否在GCS中得到反映   在写入之后,但在同步或关闭之前。

因此,如果您的工作人员在写完文件后关闭了文件,则后续的依存关系应该一致地看到它们。