Re: [ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread Dong Wu
what i know is that librbd use applied callback, here is the code: in send_write() calls librados::Rados::aio_create_completion, parameter rados_req_cb is cb_safe, and cb_complete is NULL, the cb_safe is just applied callback. void AbstractWrite::send_write() { ldout(m_ictx->cct, 20) <<

Re: [ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread Dong Wu
there are two callbacks: committed and applied, committed means write to all replica's journal, applied means write to all replica's file system. so when applied callback return to client, it means data can be read. 2015-12-31 10:15 GMT+08:00 min fang : > Hi, as my

Re: [ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread min fang
thanks, so ceph can guarantee after write commit call back, read IO can get the new written data, right? 2015-12-31 10:55 GMT+08:00 Zhi Zhang : > If the data has not been written to filestore, as you mentioned, it is > still in journal, your following read op will be

Re: [ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread Zhi Zhang
If the data has not been written to filestore, as you mentioned, it is still in journal, your following read op will be blocked until the data is written to filestore. This is because when writing this data, the related object context will hold ondisk_write_lock. This lock will be released in a

Re: [ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread min fang
yes, the question here is, librbd use the committed callback, as my understanding, when this callback returned, librbd write will be looked as completed. So I can issue a read IO even if the data is not readable. In this case, i would like to know what data will be returned for the read IO?

[ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread min fang
Hi, as my understanding, write IO will committed data to journal firstly, then give a safe callback to ceph client. So it is possible that data still in journal when I send a read IO to the same area. So what data will be returned if the new data still in journal? Thanks.

Re: [ceph-users] Read IO to object while new data still in journal

2015-12-30 Thread Zhi Zhang
Regards, Zhi Zhang (David) Contact: zhang.david2...@gmail.com zhangz.da...@outlook.com On Thu, Dec 31, 2015 at 11:08 AM, min fang wrote: > thanks, so ceph can guarantee after write commit call back, read IO can get > the new written data, right? yep :-)