mirror of
https://github.com/ceph/ceph
synced 2025-01-11 05:29:51 +00:00
8abce157f1
* administrators * allocated * allowed * approximate * authenticate * availability * average * behavior * binaries * bootstrap * bootstrapping * capacity * cephadm * clients * combining * command * committed * comparison * compiled * consequences * continues * convenience * cookie * crypto * dashboard * deduplication * defaults * delivered * deployment * describe * directory * documentation * dynamic * elimination * entries * expectancy * explicit * explicitly * exporter * github * hard * healthcheck * heartbeat * heavily * http * indices * infrastructure * inherit * layout * lexically * likelihood * logarithmic * manually * metadata * minimization * minimize * object * of * operation * opportunities * overwrite * prioritized * recipe * records * requirements * restructured * running * scalability * second * select * significant * specify * subscription * supported * synonym * throttle * unpinning * upgraded * value * version * which * with Plus some line wrapping and additional edits... Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
46 lines
1.2 KiB
ReStructuredText
46 lines
1.2 KiB
ReStructuredText
========
|
|
Refcount
|
|
========
|
|
|
|
|
|
Introduction
|
|
============
|
|
|
|
Deduplication, 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);
|
|
|
|
|