Skip to content

Minimal System.IO.Pipelines integration to prepare for full-async work#1264

Merged
lukebakken merged 23 commits intorabbitmq:mainfrom
stebet:newpipeline
Mar 1, 2023
Merged

Minimal System.IO.Pipelines integration to prepare for full-async work#1264
lukebakken merged 23 commits intorabbitmq:mainfrom
stebet:newpipeline

Conversation

@stebet
Copy link
Contributor

@stebet stebet commented Oct 13, 2022

Proposed Changes

This introduces System.IO.Pipelines into the RabbitMQ Client. I decided to take the minimal step required to add it, as a way to break down PR number #1199 into more manageable parts.

This has no API changes, it still has the Channels for transmission buffering (to be changed later), but instead of reading/writing directly to a BufferedStream, we are now using Pipelines which handle the buffering and back-pressure.

This paves the way forward to slowly get rid of the Channels as well, and to create a fully and proper asynchronous code paths for sending/receiving data in a performance manner.

Types of Changes

  • Bug fix (non-breaking change which fixes issue #NNNN)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • Documentation improvements (corrections, new content, etc)
  • Cosmetic change (whitespace, formatting, etc)

Checklist

  • I have read the CONTRIBUTING.md document
  • I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq)
  • All tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • Any dependent changes have been merged and published in related repositories
@lukebakken
Copy link
Collaborator

Thanks, I'll review this coming week.

lukebakken
lukebakken previously approved these changes Oct 17, 2022
Copy link
Collaborator

@lukebakken lukebakken left a comment

Choose a reason for hiding this comment

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

This seems reasonable to me and tests pass, so 👍 . I'm going to wait on another review before merging.

@lukebakken lukebakken added this to the 7.0.0 milestone Oct 17, 2022
@lukebakken lukebakken self-assigned this Oct 17, 2022
Copy link
Member

@Zerpet Zerpet left a comment

Choose a reason for hiding this comment

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

These changes look good to me 👍 Tests pass and both test apps run without errors. Interestingly, CreateChannel test app seems to run 1 second faster (7.6s in main vs 6.5s) with these changes.

@lukebakken lukebakken self-requested a review February 3, 2023 21:32
lukebakken
lukebakken previously approved these changes Feb 3, 2023
Copy link
Collaborator

@danielmarbach danielmarbach left a comment

Choose a reason for hiding this comment

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

Slightly late to the party. Sorry!

@lukebakken
Copy link
Collaborator

Thanks @danielmarbach ... as you can see I'm working through your PR review comments. Thanks a MILLION.

@stebet
Copy link
Contributor Author

stebet commented Feb 8, 2023

Great to see traction here :) thanks @danielmarbach and @lukebakken. I've been less active lately while I'm transitioning into a new job as well as doing other OSS projects and public speaking, but the RabbitMQ client is always on my list of things to revisit :)

Zerpet
Zerpet previously approved these changes Feb 13, 2023
Copy link
Member

@Zerpet Zerpet 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 to me 👍 Let's give other reviewers some time to comment before we merge.

@stebet
Copy link
Contributor Author

stebet commented Feb 14, 2023

Looks good to me 👍 Let's give other reviewers some time to comment before we merge.

Like your profile pic! I used to work on EVE Online for CCP Games :)

@lukebakken
Copy link
Collaborator

I plan on merging this as soon as CI passes, FYI!

@lukebakken lukebakken merged commit 3c4d3aa into rabbitmq:main Mar 1, 2023
@lukebakken lukebakken deleted the newpipeline branch March 1, 2023 22:00
@lukebakken
Copy link
Collaborator

Thank you @stebet

@lukebakken lukebakken mentioned this pull request Mar 1, 2023
11 tasks
@stebet
Copy link
Contributor Author

stebet commented Mar 1, 2023

Thanks for picking up the remaining work @lukebakken. Hopefully the full-async work can begin soon :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

5 participants