91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MDSTableClient類有什么用

發布時間:2021-12-18 16:57:26 來源:億速云 閱讀:139 作者:小新 欄目:云計算

小編給大家分享一下MDSTableClient類有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

MDSTableClient類用于和MDSTableServer通信,向MDSTableServer類發送消息以及從MDSTableServer類接收消息回復

MDSTableClient::handle_request()          client端總路由調度函數,根據消息的操作類型不同,調用不同的handle_*()函數進行處理

|__TABLESERVER_OP_QUERY_REPLY

     |__handle_query_result()

|__TABLESERVER_OP_AGREE

     |__對于回復在pending_prepare數組中

          |__設置pending_prepare[reqid].ptid = tid

          |__設置pending_prepare[reqid].pbl = m->bl

          |__刪除pending_prepare[reqid]

          |__設置prepared_update[tid] = reqid

     |__對于回復在prepared_update數組中

          |__重復回復

     |__對于回復在pending_commit數組中

     |__對于回復不再上述數組中

          |__創建MMDSTableRequest類消息(TABLESERVER_OP_ROLLBACK)

          |__mds->send_message_mds()               將消息發送給Server

|__TABLESERVER_OP_ACK

     |__對于回復在pending_commit數組中

          |__刪除pending_commit[tid]->pending_commit_tids[table]

          |__刪除pending_commit[tid]

          |__mds->mdlog->start_submit_entry()

|__TABLESERVER_OP_SERVER_READY

     |__設置server_ready = true

     |__resend_queries()

     |__resend_prepares()

     |__resend_commits()

MDSTableClient::_logged_ack()          對于TABLESERVER_OP_ACK操作寫log的回調函數

|__對于ack_waiters[tid]

     |__mds->queue_waiters(ack_waiters[tid])

     |__清除ack_waiters[tid]

MDSTableClient::_prepare()

|__對于tableserver未準備好,則將prepare消息插入到waiting_for_reqid數組中

|__獲取reqid = ++last_reqid

|__填充pending_prepare[reqid]數組

|__若tableserver準備好

     |__創建MMDSTableRequest類消息(TABLESERVER_OP_PREPARE)

     |__mds->send_message_mds()          發送消息到tableserver

MDSTableClient::commit()

|__刪除prepared_update[tid]

|__設置pending_commit[tid] = ls

|__若tableserver準備好

     |__創建MMDSTableRequest類消息(TABLESERVER_OP_COMMIT)

     |__mds->send_message_mds()          發送消息到tableserver

MDSTableClient::got_journaled_agree()

|__pending_commit[tid] = ls

MDSTableClient::got_journaled_ack()

|__刪除pending_commit[tid]

MDSTableClient::resend_prepares()

|__遍歷waiting_for_reqid數組

     |__將該數組中的內容復制到pending_prepare[++last_reqid]

     |__刪除waiting_for_reqid數組對應的項

|__遍歷pending_prepare數組

     |__創建MMDSTableRequest類消息(TABLESERVER_OP_PREPARE)

     |__mds->send_message_mds()          將類消息發送給tableserver

MDSTableClient::resend_commits()

|__遍歷pending_commit數組

     |__創建MMDSTableRequest類消息(TABLESERVER_OP_COMMIT)

     |__mds->send_message_mds()          將類消息發送給tableserver

MDSTableClient::handle_mds_failure()

|__設置server_ready = false

SnapClient類繼承于MDSTableClient類,實際上SnapClient就是封裝了一些處理函數,SnapClient具體操作函數說明如下:

SnapClient::prepare_create()

|__設置op = TABLE_OP_CREATE

|__將op/dirino/name/stamp序列化到bufferlist中

|__MDSTableClient::_prepare()

SnapClient::prepare_create_realm()

|__設置op = TABLE_OP_CREATE

|__將op/ino序列化到bufferlist中

|__MDSTableClient::_prepare()

SnapClient::prepare_destroy()

|__設置op = TABLE_OP_DESTROY

|__將op/ino/snapid序列化到bufferlist中

|__MDSTableClient::_prepare()

SnapClient::prepare_update()

|__設置op = TABLE_OP_UPDATE

|__將op/ino/snapid/name/stamp序列化到bufferlist中

|__MDSTableClient::_prepare()

SnapClient和MDSTableClient的對應關系如下圖所示:

MDSTableClient類有什么用

以上是“MDSTableClient類有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绵竹市| 绥江县| 乡城县| 涞源县| 肥东县| 邹城市| 通城县| 东明县| 通榆县| 溆浦县| 东山县| 乌拉特中旗| 怀柔区| 攀枝花市| 郓城县| 建昌县| 北京市| 乌恰县| 宁乡县| 灌阳县| 合江县| 宁陵县| 静宁县| 新竹市| 普陀区| 布拖县| 万州区| 屏东市| 富蕴县| 衡水市| 娄烦县| 乌审旗| 东乡| 津南区| 祁连县| 凤山市| 隆子县| 永登县| 炉霍县| 扬州市| 昌平区|