OSD
图解如下:
接下来我们看一下tp_osd_tp线程是如何处理分片中的请求,线程处理的核心函数是ShardedOpWQ::_process,其调用栈如下:
ShardedOpWQ::_process() |-OpQueue<>::dequeue() |-OSD::_look_up_pg() \-PGQueueable::run() \-PrimrayLogPG::do_request() \-PrimaryLogPG::do_op() \-PrimaryLogPG::execute_ctx() |-PrimaryLogPG::prepare_transaction() | \-PrimaryLogPG::do_osd_ops() \-PrimaryLogPG::issue_repop() \-ReplicatedBackend::submit_transaction() |-ReplicatedBackend::generate_transaction() |-ReplicatedBackend::issue_op() \-PrimaryLogPG::queue_transactions() \-ObjectStore::queue_transactions()