From: Gandalf C. <gan...@gm...> - 2018-05-20 20:22:05
|
Il giorno dom 20 mag 2018 alle ore 22:09 Marin Bernard <li...@ol...> ha scritto: > The chunkserver acknowledges the write while the data are still pending > commit to disk. If the server dies meanwhile, the data are lost. Even if client asked for O_DIRECT or fsync explicitely ? If yes, this would break the POSIX compatibility, I think. > However, if goal is >= 2 (as it should always be), at least one more > copy of the data must already be present on another chunkserver before > the acknowledgment is sent. Not really. if goal >= 2, the ack is sent if another chunkserver has commited to the cache, so you are acknowledging when all goal copies are wrote to the cache, not to the disk. This woud be ok in normal condition (like any writes made by any software), but if client is asking for O_DIRECT, the acknoledge *must* be sent *after* data is stored on disk. |