Skip to content

neorados/cls: FIFO client#49976

Closed
adamemerson wants to merge 3319 commits intoceph:wip-coro-after-reeffrom
adamemerson:wip-neorados-cls-fifo
Closed

neorados/cls: FIFO client#49976
adamemerson wants to merge 3319 commits intoceph:wip-coro-after-reeffrom
adamemerson:wip-neorados-cls-fifo

Conversation

@adamemerson
Copy link
Contributor

@adamemerson adamemerson commented Feb 2, 2023

NeoRADOS CLS FIFO client.

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

@adamemerson adamemerson requested a review from a team as a code owner February 3, 2023 17:51
@github-actions
Copy link

github-actions bot commented Feb 3, 2023

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

Copy link
Contributor

@cbodley cbodley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good in general but hard to review in detail. we'll need to do some multisite workload testing to verify this, and that will depend on further async refactoring

@adamemerson
Copy link
Contributor Author

I'm going to do another pass, especially since we now have only one version of everything, and thread the Error Injector through, so I can test the error paths, and if that works, I'll make a version integrated into RGW that we can do workload tests against.

@adamemerson adamemerson requested a review from a team as a code owner February 14, 2023 19:06
@adamemerson adamemerson force-pushed the wip-neorados-cls-fifo branch from d8bd864 to 456f6fb Compare February 14, 2023 19:49
@github-actions
Copy link

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@adamemerson adamemerson force-pushed the wip-coro-after-reef branch from 88c6d6d to 3edbc3f Compare March 3, 2023 20:54
@adamemerson adamemerson force-pushed the wip-coro-after-reef branch from 3edbc3f to cb02065 Compare March 20, 2023 22:09
@adamemerson adamemerson force-pushed the wip-coro-after-reef branch from cb02065 to c9fd0c5 Compare April 4, 2023 18:14
@adamemerson adamemerson force-pushed the wip-neorados-cls-fifo branch from 456f6fb to e7601f4 Compare April 17, 2023 19:07
@github-actions github-actions bot added this to the reef milestone Apr 17, 2023
@adamemerson adamemerson force-pushed the wip-neorados-cls-fifo branch 2 times, most recently from a7838d9 to 024be9e Compare April 28, 2023 18:27
@adamemerson adamemerson force-pushed the wip-neorados-cls-fifo branch from 024be9e to c5920d7 Compare May 22, 2023 17:42
adamemerson and others added 30 commits February 27, 2024 12:44
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
…utines

Signed-off-by: Casey Bodley <cbodley@redhat.com>
We should not be using std::list everywhere, and this is an excellent
time to switch.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
in the initial design of co_throttle described in
ceph#49720, the cancel_on_error option only
applied to errors from awaitable<error_code> but not to exceptions from
awaitable<void> coroutines

with the decision to use exceptions as the default method of error
handling in rgw multisite, this design choice no longer makes sense.
i've removed the error_code overloads entirely, and changed the
exception handling logic to match the previous behavior for error codes

the unit tests were rewritten with co_waiter instead of timers to make
them deterministic and faster. co_waiter's cancellation behavior
exposed some issues where the cancellation signal could cause the
completions to recurse, so on_complete() was restructured to tolerate
that

Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Adam Emerson <aemerson@redhat.com>
Signed-off-by: Adam Emerson <aemerson@redhat.com>
Signed-off-by: Adam Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Since we're plumbing the driver around and it's where our neorados
handle lives.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Rewrite all of `RGWDataChangesLog` and supporting classes to use
non-blocking, C++20 coroutines.

Make interfaces for `optional_yield` and `librados::AioCompletion`.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.