Skip to content

rgw: add RGWDedup integration tests#6

Open
yangdaegon wants to merge 9 commits intoreleasefrom
integrationtest
Open

rgw: add RGWDedup integration tests#6
yangdaegon wants to merge 9 commits intoreleasefrom
integrationtest

Conversation

@yangdaegon
Copy link
Member

@yangdaegon yangdaegon commented Aug 22, 2023

This PR adds RGWDedup integration tests cods.

Contribution Guidelines

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands
  • jenkins retest this please
  • jenkins test classic perf
  • jenkins test crimson perf
  • jenkins test signed
  • jenkins test make check
  • jenkins test make check arm64
  • jenkins test submodules
  • jenkins test dashboard
  • jenkins test dashboard cephadm
  • jenkins test api
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox
  • jenkins test windows

ssdohammer-sl and others added 9 commits August 21, 2023 04:40
This commit adds codes of RGWDedup and RGWDedupManager.
RGWDedup is a function that enables deduplication into RGW layer.
 - RGWDedup: an instance that controlls RGWDedupManager during its lifecycle
 - DedupManager: a thread that manages whole deduplication routine

Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
RGWFPManager is a component of RGWDedup that stores chunks information.

Signed-off-by: daegon.yang <daegon.yang@samsung.com>
Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
RGWDedupWorker does chunking RADOS objects and stores chunks' fingerprints in FPManager.
If the fingerprint is already stored in the FPManager, chunk dedup is performed.

This commit implements RGWDedupWorker's dedup logic.

Signed-off-by: daegon.yang <daegon.yang@samsung.com>
Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
RGWChunkScrubWorker finds reference mismatches between metadata objects and chunk objects and fix them.
It compares all the chunk objects’ references and referenced metadata objects’ chunk information.
During scrub processing, if any reference mismatch is found, the workers fix it.

Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
Signed-off-by: daegon.yang <daegon.yang@samsung.com>
In an environment where multiple-RGW daemons are running in a zone,
RGWDedup also supports to operate in a scalable manner.

Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
Signed-off-by: daegon.yang <daegon.yang@samsung.com>
Too many references in a chunk object causes chunk related operation slow.
This commit constrains chunk dedup if the number of references of the chunk object
exceeds max_chunk_ref_size.

Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
When a cls_cas_references_chunk() is called on a chunked metadata object,
it makes the object's chunks be promoted in maybe_handle_manifest_detail().
It happens, for instance, while doing a chunk scrub job.

However, this operation doesn't need to get evicted data.
It only needs metadata information that already exists in metadata object.
To prevent this object promotion, this commit adds an exception handling for this.

Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
Signed-off-by: daegon.yang <daegon.yang@samsung.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants