亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

安龙县| 栖霞市| 社会| 三明市| 五莲县| 囊谦县| 宜良县| 昌都县| 吴川市| 山东省| 邢台市| 从江县| 崇明县| 定结县| 土默特右旗| 贺兰县| 新郑市| 五寨县| 安顺市| 法库县| 西华县| 陇西县| 台湾省| 伊吾县| 昔阳县| 鄂托克前旗| 六安市| 黑山县| 绥滨县| 车险| 五莲县| 文成县| 昆山市| 西贡区| 盐亭县| 万山特区| 郯城县| 读书| 临澧县| 安平县| 湟中县|