conf
"rgw_gc_max_objs": "32", //gc process 个数
"rgw_gc_obj_min_wait": "7200", //对象记录到gc omap里7200秒后可删除
"rgw_gc_processor_max_time": "3600", //gc process运行一次最多执行3600s
"rgw_gc_processor_period": "3600", //间隔3600s对32个gc process依次启动一次
gc omap
1.删除一个object
2.分段上传取消了,需要删除残留数据
3.上传一个已存在的文件,旧数据需要删除
以上3种情况都会在gc omap里增加一条带有过期时间(7200s)的条目
gc processor
在无人为干扰下,每3600s会依次启动32个gc process来遍历gc omap里已过期需要删除的对象,删除对象并把对象条目从gc omap里删除。
radosgw-admin gc process
执行radosgw-admin gc process 命令将依次调用以下函数:
rgw_admin.cc
rgw_rados.cc
rgw_gc.cc
一共发起32个gc processor,一个rgw同时可有32个正在工作的gc processor
一个gc processor若运行超过3600s会退出
gc processor只会从gc omap里读出已经超时(7200s)可删除的条目进行删除,删除成功后把条目从gc omap里删除,未过期的条目不处理。
rgw_gc.cc