通常,如果两个应用程序向磁盘的同一位置(lba)发送两个写入请求,则应用程序或文件系统将为其添加锁定,因此一次只能处理一个请求。
但现在有一个难题。可能有多个写入请求应写入同一位置,但应用程序不处理锁定。没有文件系统,因为数据直接写入原始磁盘。我能做的是修改存储系统的代码。现在情况非常复杂。假设有两个请求,A和B.那么最后相应lba中的数据可能是三个结果中的一个:
在我看来,结果1& 2是可以接受的,但结果3是不可接受的。但有人不这么认为。你的意见怎么样?
答案 0 :(得分:1)
我同意它应该是一个或全部都不是。这可以通过使用一种形式的存储系统管理器很容易地完成,并以足够大的块写入管理器。管理器可以在内部进行适当的锁定,这样一次只能写一个请求中的一个块,并且不会出现重叠。