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

Standalone view server #3417

Open
wants to merge 2 commits into
base: v5-fog-debug
Choose a base branch
from
Open

Conversation

eranrund
Copy link
Contributor

We'd like to debug some latency issues with the new fog router, and one of the things that we want to try is to run a standalone view server and see how it performs (e.g. to skip the router stuff).

I believe the change in this PR allows a view store server/shard to directly serve view queries, so in theory we should be able to run a single instance of it and direct clients to that instead of the router.

Copy link
Collaborator

@nick-mobilecoin nick-mobilecoin left a comment

Choose a reason for hiding this comment

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

The standalone service looks good. More or less the 4.1 version of fog service.

However I have some higher level questions:

  1. Is this meant to be a one off debug? Or is this meant to stay in the release and also be added to the mainline? Mainly curious if release/v5.0 should be the actual destination.
  2. Kind of part of 1, will we always want the standalone service to be present in the production line.
       let server_builder = grpcio::ServerBuilder::new(env)
            .register_service(store_fog_view_service)
            .register_service(standalone_fog_view_service) // Do we want this to persist past the release?
            .register_service(health_service);

@eranrund
Copy link
Contributor Author

The standalone service looks good. More or less the 4.1 version of fog service.

However I have some higher level questions:

1. Is this meant to be a one off debug?  Or is this meant to stay in the release and also be added to the mainline? Mainly curious if `release/v5.0` should be the actual destination.

2. Kind of part of 1, will we always want the standalone service to be present in the production line.
       let server_builder = grpcio::ServerBuilder::new(env)
            .register_service(store_fog_view_service)
            .register_service(standalone_fog_view_service) // Do we want this to persist past the release?
            .register_service(health_service);

It seems like a useful thing for me to have. We put all of our GRPC services in front of a k8 ingress controller and that lets us choose which paths are routed to the service, so its easy to not expose the standalone endpoint. And down the line we could retire it once things have stabilized.

@nick-mobilecoin nick-mobilecoin self-requested a review July 19, 2023 17:13
@eranrund
Copy link
Contributor Author

We can probably hold on merging this until @joekottke gets it deployed and we see if we learn anything interesting (or at least get a confirmation that it works)

@eranrund eranrund changed the base branch from release/v5.0 to v5-fog-debug July 19, 2023 17:25
@eranrund
Copy link
Contributor Author

I changed the base to a new branch (v5-fog-debug) that is based on release/v5. We'll do the debug work there and once we wrap it up we can decide what needs to be kept and what can be discarded.

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.

None yet

3 participants