hi Tommi, Thanks for your reply. by now i just get a very abstract understand on the codes. i just describe how the ceph work by my current understanding. in the client/fuse_ll.cc, there defines the client interface for file system operations. i.e. for write->ceph_ll_write, then it invoke client->ll_write which may finally invoke writex(). here seems it only write to the client buffer and mark it as dirty. and the real write to the osd happens when invoke ObjectCacher->flush() (in fact, i did not know when will this function be invoked, or if my understanding is correct), which will invoke the objecter->write_trunc(). inside this function it invoke op_submit which actually send out the write request to the OSD. is the above logic correct? i see there are four messengers client, cluster, messenger_hbin, messenger_hbout in the ceph_osd.cc. will one of the messengers responsible to handle the receiving request from client? i do not know how the OSD handle the received messages from client or mds. Thanks, Sheng On Tue, Nov 1, 2011 at 5:07 PM, Tommi Virtanen <tommi.virtanen@xxxxxxxxxxxxx> wrote: > On Tue, Nov 1, 2011 at 14:56, sheng qiu <herbert1984106@xxxxxxxxx> wrote: >> Thanks for your reply. i am sorry for bothering you frequently. >> i see there are several daemons to handle the requests. i.e. client >> to osd, can you tell me what exactly source file will handle >> write/read request from client to/from osd? >> i am not clear with the structure of the source codes. > > Ignoring file metadata and the interaction with MDS, you might get > going by reading src/osd/OSD.cc OSD::handle_op. > -- Sheng Qiu Texas A & M University Room 302 Wisenbaker email: herbert1984106@xxxxxxxxx College Station, TX 77843-3259 -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html