Re: [PATCH] ceph: add buffered/direct exclusionary locking for reads and writes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 6 Aug 2019, Jeff Layton wrote:
> On Tue, 2019-08-06 at 03:27 +0000, Sage Weil wrote:
> > On Mon, 5 Aug 2019, Jeff Layton wrote:
> > > xfstest generic/451 intermittently fails. The test does O_DIRECT writes
> > > to a file, and then reads back the result using buffered I/O, while
> > > running a separate set of tasks that are also doing buffered reads.
> > > 
> > > The client will invalidate the cache prior to a direct write, but it's
> > > easy for one of the other readers' replies to race in and reinstantiate
> > > the invalidated range with stale data.
> > 
> > Maybe a silly question, but: what if the write path did the invalidation 
> > after the write instead of before?  Then any racing read will see the new 
> > data on disk.
> > 
> 
> I tried that originally. It reduces the race window somewhat, but it's
> still present since a reply to a concurrent read can get in just after
> the invalidation occurs. You really do have to serialize them to fix
> this, AFAICT.

I've always assumed that viewing the ordering for concurrent operations as 
non-deterministic is the only sane approach.  If the read initiates before 
the write completes you have no obligation to reflect the result of the 
write.

Is that what you're trying to do?

sage



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux