Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NamedPipeTransportOptions.ListenerQueueCount property #46268

Closed
JamesNK opened this issue Jan 26, 2023 · 3 comments
Closed

Add NamedPipeTransportOptions.ListenerQueueCount property #46268

JamesNK opened this issue Jan 26, 2023 · 3 comments
Assignees
Labels
api-approved API was approved in API review, it can be implemented area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Milestone

Comments

@JamesNK
Copy link
Member

JamesNK commented Jan 26, 2023

Background and Motivation

There are performance benefits of multiple listen queues with named pipes. This property allows someone to customize the number.

Proposed API

namespace Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes;

public sealed class NamedPipeTransportOptions
{
+    public int ListenerQueueCount { get; set; } = Math.Min(Environment.ProcessorCount, 16);
}

Usage Examples

services.Configure<NamedPipeTransportOptions>(o =>
{
    o.ListenerQueueCount = 2;
});

Alternative Designs

Risks

@JamesNK JamesNK added area-runtime api-ready-for-review API is ready for formal API review - https://github.com/dotnet/apireviews labels Jan 26, 2023
@JamesNK JamesNK added this to the 8.0-preview2 milestone Jan 26, 2023
@ghost
Copy link

ghost commented Jan 26, 2023

Thank you for submitting this for API review. This will be reviewed by @dotnet/aspnet-api-review at the next meeting of the ASP.NET Core API Review group. Please ensure you take a look at the API review process documentation and ensure that:

  • The PR contains changes to the reference-assembly that describe the API change. Or, you have included a snippet of reference-assembly-style code that illustrates the API change.
  • The PR describes the impact to users, both positive (useful new APIs) and negative (breaking changes).
  • Someone is assigned to "champion" this change in the meeting, and they understand the impact and design of the change.

@halter73
Copy link
Member

API Review Notes

  • This is similar to SocketTransportOptions.IOQueueCount. Do we have any better naming suggestions? ListenerLoopCount? AcceptLoopCount? No.
  • Namespace looks good.

API Approved as proposed!

namespace Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes;

public sealed class NamedPipeTransportOptions
{
+    public int ListenerQueueCount { get; set; } = Math.Min(Environment.ProcessorCount, 16);
}

@halter73 halter73 added api-approved API was approved in API review, it can be implemented and removed api-ready-for-review API is ready for formal API review - https://github.com/dotnet/apireviews labels Jan 30, 2023
@mitchdenny mitchdenny modified the milestones: 8.0-preview2, 8.0-preview4 Mar 13, 2023
@adityamandaleeka
Copy link
Member

adityamandaleeka commented Mar 14, 2023

Looks like this was merged in preview 2 (#46259). Closing this issue.

@ghost ghost locked as resolved and limited conversation to collaborators Apr 13, 2023
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Aug 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
api-approved API was approved in API review, it can be implemented area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Projects
None yet
Development

No branches or pull requests

5 participants