给定将对象附加到对象存储并更新引用以指向新提交的用例,libgit2是否安全,其中safe被定义为以下结果之一:
关键是libgit2在什么点保证数据被刷新到磁盘。在更新ref之前,我们是否保证将对象数据库中的数据刷新到磁盘?
换句话说:在什么情况下可以更新ref,但对象存储没有持久化数据?
更新:我发现libgit2现在正在实现对fsync https://github.com/libgit2/libgit2/pull/4030的可选支持,这意味着在更新https://github.com/libgit2/libgit2/pull/4030之前,所有松散对象的写入(附加)都应该在磁盘上。
发布于 2017-02-13 13:33:53
没有人能保证,当你失去能量时,任何东西都会被写入磁盘。解决此问题的解决方案只有两种:禁用写入缓存或使用UPS。至少有一个电池来冲洗RAID控制器缓存。
https://stackoverflow.com/questions/42205268
复制相似问题