[Lustre-discuss] buffering
burlen
burlen.loring at gmail.com
Thu Aug 12 13:52:08 PDT 2010
Andreas Dilger wrote:
> On 2010-08-11, at 23:36, burlen wrote:
>
>> I am interested in how write()s are buffered in Lustre on the cleint,
>> server, and network in between. Specifically I'd like to understand what
>> happens during writes when large number of clients are making large
>> writes to all of the OSTs on an OSS, and the buffers are inadequate to
>> handle the outgoing/incoming data.
>>
>
> Lustre doesn't buffer dirty pages on the OSS, only on the client. The clients are granted a "reserve" of space in each OST filesystem to ensure there is enough free space for any cached writes that they do.
>
>
Thanks for your answer.
If I understand the way write() typically works on Linux, during a large
write(), too large to be buffered in the page cache, once the page cache
is full dirty pages would be flushed to disk. the data transfer would
block at that point until the dirty pages are written to disk, whence
the data transfer would resume into the resulting free pages. But in
Lustre I assume that once the client's page cache is full, the dirty
pages are sent over the network to the OSS where they are written to
disk. In that case, does the network layer effectively act like a
buffer? So that the client may resume the data transfer into the page
cache before the former set dirty pages actually hit the disk? Or does
the data transfer block until dirty pages actually reach the disk?
Thanks
Burlen
More information about the lustre-discuss
mailing list