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

溫馨提示×

溫馨提示×

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

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

RGW S3 GC類有什么用

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

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

RGW S3 GC類的主要功能是提供垃圾收集器的功能。用于異步刪除對象。

一、RGW S3 GC核心類關系圖

RGW S3 GC類有什么用

二、RGW S3 GC核心數據類關系圖

RGW S3 GC類有什么用

三、RGW S3 GC主要處理函數解析。

1、RGWGC初始化操作。

RGWGC::initialize()

|__設置cct和store類對象

|__從配置文件中得到gc最大對象個數,即:rgw_gc_max_objs

|__根據gc最大對象個數生成obj_names數組且初始化該數組的內容為gc.0-rgw_gc_max_objs

2、RGWGC終止操作。

RGWGC::finalize()

|__刪除obj_names數組

3、添加chain。

RGWGC::add_chain()

|__cls_rgw_gc_set_entry()

     |__rgw_cls_gc_set_entry()

          |__gc_update_entry()

               |__gc_omap_get()

                    |__cls_cxx_map_get_val()          以名字為key,得到Ceph集群中已經保存的cls_rgw_gc_obj_info信息(CEPH_OSD_OP_OMAPGETVALSBYKEYS)

               |__get_time_key()                         得到time key

               |__gc_omap_remove()

                    |__cls_cxx_map_remove_key()     刪除指定time key的值(CEPH_OSD_OMAPRMKEYS)

               |__gc_omap_set()                        

                    |__cls_cxx_map_set_val()          以名字為key,設置cls_rgw_gc_obj_info信息到Ceph集群(CEPH_OSD_OP_OMAPSETVALS)

               |__get_time_key()                         得到time key

               |__gc_omap_set()                         以time為key,設置cls_rgw_gc_obj_info信息到Ceph集群(CEPH_OSD_OP_OMAPSETVALS)

4、發送chain。

RGWGC::send_chain()

|__RGWGC::add_chain()

|__RGWGC::tag_index()

|__RGWRados::gc_operate()

5、更新chain。

RGWGC::defer_chain()

|__cls_rgw_gc_defer_entry()

     |__rgw_cls_gc_defer_entry()

          |__gc_defer_entry()

               |__gc_omap_get()                    以名字為key,得到cls_rgw_gc_obj_info信息

               |__gc_update_entry()               以cls_rgw_gc_obj_info和更新的expiration_secs為參數,更新Ceph集群中的以名字和time為key的cls_rgw_gc_obj_info信息

|__RGWGC::tag_index()

|__RGWRados::gc_operate()

6、刪除chain。

RGWGC::remove()

|__cls_rgw_gc_remove()

     |__rgw_cls_gc_remove()

          |__gc_remove()

               |__gc_omap_get()                    以名字為key,得到cls_rgw_gc_obj_info信息

               |__get_time_key()                    得到time key

               |__gc_omap_remove()               刪除以time為key的cls_rgw_gc_obj_info信息

               |__gc_omap_remove()               刪除以名字為key的cls_rgw_gc_obj_info信息

|__RGWRados::gc_operate()

7、列出chain。

RGWGC::list()

|__cls_rgw_gc_list()

     |__rgw_cls_gc_list()

          |__gc_list_entries()

               |__gc_iterate_entries()

                    |__prepend_index_prefix()          得到以time為key的key

                    |__cls_cxx_map_get_vals()          得到以time為key的所有cls_rgw_gc_obj_info信息

                    |__gc_record_decode()                解析得到cls_rgw_gc_obj_info信息

                    |__gc_list_cb()                              將得到的cls_rgw_gc_obj_info信息插入到列表中

8、處理chain。

RGWGC::process()

|__cls_rgw_gc_list()                                   得到obj_names[i]對應的所有cls_rgw_gc_obj_info信息

|__遍歷cls_rgw_gc_obj_info信息中所有的cls_rgw_obj,調用cls_refcount_put()

     |__cls_rc_refcount_put()

          |__read_refcount()                         得到對象對應的引用計數

          |__obj_refcount::refs.erase()          減小對象的引用計數

          |__對于引用計數為零,則調用cls_cxx_remove()     從Ceph集群中刪除對象(CEPH_OSD_OP_DELETE)

          |__對于引用計數非零,則調用set_refcount()           更新對象的引用計數

9、RGWGC處理線程主函數。

RGWGC::GCWorker::entry()

|__RGWGC::process()

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

向AI問一下細節

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

rgw
AI

贵阳市| 建昌县| 科技| 清丰县| 濮阳县| 台中县| 阿拉善右旗| 长垣县| 乐陵市| 定襄县| 开封市| 洪洞县| 美姑县| 鸡泽县| 万源市| 湾仔区| 扬中市| 五指山市| 利津县| 黔西| 赤峰市| 商都县| 五常市| 洪江市| 江城| 长治县| 庄河市| 仙居县| 临海市| 上饶市| 长兴县| 龙海市| 伊春市| 浮山县| 伊金霍洛旗| 兴城市| 安宁市| 宜黄县| 仲巴县| 东阳市| 桂阳县|