diff options
author | Samuel Just <sjust@redhat.com> | 2020-03-13 01:12:01 +0100 |
---|---|---|
committer | Samuel Just <sjust@redhat.com> | 2020-05-20 06:59:04 +0200 |
commit | be4093a61e66e81fb32aafc54e39a655d3259d2a (patch) | |
tree | e89e2a52402c05efe32996101b38aa3de9dea1ee /doc/dev/osd_internals/refcount.rst | |
parent | doc: break deduplication.rst int several files (diff) | |
download | ceph-be4093a61e66e81fb32aafc54e39a655d3259d2a.tar.xz ceph-be4093a61e66e81fb32aafc54e39a655d3259d2a.zip |
doc: add more information for manifest tiering
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Diffstat (limited to '')
-rw-r--r-- | doc/dev/osd_internals/refcount.rst | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/doc/dev/osd_internals/refcount.rst b/doc/dev/osd_internals/refcount.rst new file mode 100644 index 00000000000..4d75ae01949 --- /dev/null +++ b/doc/dev/osd_internals/refcount.rst @@ -0,0 +1,45 @@ +======== +Refcount +======== + + +Introduction +============ + +Dedupliation, as described in ../deduplication.rst, needs a way to +maintain a target pool of deduplicated chunks with atomic ref +refcounting. To that end, there exists an osd object class +refcount responsible for using the object class machinery to +maintain refcounts on deduped chunks and ultimately remove them +as the refcount hits 0. + +Class Interface +=============== + +See cls/refcount/cls_refcount_client* + +* cls_refcount_get + + Atomically increments the refcount with specified tag :: + + void cls_refcount_get(librados::ObjectWriteOperation& op, const string& tag, bool implicit_ref = false); + +* cls_refcount_put + + Atomically decrements the refcount specified by passed tag :: + + void cls_refcount_put(librados::ObjectWriteOperation& op, const string& tag, bool implicit_ref = false); + +* cls_refcount_Set + + Atomically sets the set of refcounts with passed list of tags :: + + void cls_refcount_set(librados::ObjectWriteOperation& op, list<string>& refs); + +* cls_refcount_read + + Dumps the current set of ref tags for the object :: + + int cls_refcount_read(librados::IoCtx& io_ctx, string& oid, list<string> *refs, bool implicit_ref = false); + + |