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 EventLoopSchedulerFactory #5289

Open
ikhoon opened this issue Nov 7, 2023 · 9 comments · May be fixed by #5323 or #5779
Open

Add EventLoopSchedulerFactory #5289

ikhoon opened this issue Nov 7, 2023 · 9 comments · May be fixed by #5323 or #5779

Comments

@ikhoon
Copy link
Contributor

ikhoon commented Nov 7, 2023

The current event loop scheduler factory only takes EventLoopGroup as a parameter which may not be enough to create a sophisticated EventLoopScheduler.

Let's provide a generalized factory interface so that implementations can create schedulers with more information.

@FunctionalInterface
public interface EventLoopSchedulerFactory {

    EventLoopScheduler newScheduler(EventLoopGroup eventLoopGroup,
                                    List<ToIntFunction<Endpoint>> maxNumEventLoopsFunctions,
                                    int maxNumEventLoopsPerEndpoint, int maxNumEventLoopsPerHttp1Endpoint,
                                    long idleTimeoutMillis);
}
@LaylaSilbernberg
Copy link

Hello! I am a junior java developer and this project seems very interesting. This seems like something I could help with. Is this issue still open and would it be alright if I contributed?

@ikhoon
Copy link
Contributor Author

ikhoon commented Dec 3, 2023

Hi, @LaylaSilbernberg. I'm happy if you can contribute to the feature.

@LaylaSilbernberg
Copy link

Excellent @ikhoon! I'll start on it today.

@ikhoon
Copy link
Contributor Author

ikhoon commented Jan 16, 2024

@LaylaSilbernberg Could you clean up the changes that contain many outputs which we should not check in?

@ikhoon ikhoon modified the milestones: 1.27.0, 1.28.0 Jan 16, 2024
@LaylaSilbernberg
Copy link

Yes, I just noticed that. Willdo.

@jrhee17 jrhee17 modified the milestones: 1.28.0, 1.29.0 Apr 8, 2024
@sjy982
Copy link
Contributor

sjy982 commented May 13, 2024

Is this issue over?

@LaylaSilbernberg
Copy link

Is this issue over?

I have provided a pull request with a solution and I am currently waiting on feedback for this final cleanup.

@sjy982
Copy link
Contributor

sjy982 commented May 13, 2024

Oh I see, thanks for the answer.

@minwoox
Copy link
Member

minwoox commented May 13, 2024

@LaylaSilbernberg My apologies for the oversight on your PR. I'll make sure to review it first thing tomorrow.

@minwoox minwoox modified the milestones: 1.29.0, 1.30.0 May 21, 2024
ikhoon added a commit to ikhoon/armeria that referenced this issue Jun 21, 2024
Motivation:

A load balancing strategy such as round robin can be used not only in
`EndpointSelector` but also elsewhere. For example, in the event loop
scheduler, requests can be distributed using round robin to determine
which event loop to use.

This PR is preliminary work to resolve line#5289 and line#5537
ikhoon added a commit to ikhoon/armeria that referenced this issue Jun 21, 2024
Motivation:

A load balancing strategy such as round robin can be used not only in
`EndpointSelector` but also elsewhere. For example, in the event loop
scheduler, requests can be distributed using round robin to determine
which event loop to use.

This PR is preliminary work to resolve line#5289 and line#5537
@ikhoon ikhoon linked a pull request Jun 21, 2024 that will close this issue
ikhoon added a commit to ikhoon/armeria that referenced this issue Jun 24, 2024
Motivation:

A load balancing strategy such as round robin can be used not only in
`EndpointSelector` but also elsewhere. For example, in the event loop
scheduler, requests can be distributed using round robin to determine
which event loop to use.

This PR is preliminary work to resolve line#5289 and line#5537
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants