-
Notifications
You must be signed in to change notification settings - Fork 375
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
Bigtable latency spikes every hour due to grpc reconnects #4996
Comments
@coryan you seem like the most likely person to have insight on this, if not assign it back and i'll dig into it. |
A change similar to googleapis/java-bigtable#115 seems possible, but requires a number of changes:
Note that we should avoid calling
So, this is a valid feature request, I will put it in the backlog, no promises on when it will be done. |
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes googleapis#4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
This fixes #4996. This works, however it is not in its final form. Currently, background threads running `CompletionQueue` are created underhandedly, without users' control in every Bigtable `{Admin,InstanceAdmin,Data}Client`. The choice of the `{Admin,InstanceAdmin,Data}Client` rather than e.g. `Table` is consistent with Spanner and PubSub, where counterparts of those clients are called Connections. The next steps will contain removing the `CompletionQueue` from both the underlying clients and the user-facing API and instead providing `BackgroundThreads` to the ctors. I didn't decide to do this in chunks because otherwise it would either be confusing, which CompletionQueues are used or we'd have to duplicate the whole API to use the CompletionQueue provided in the ctors. More tests will be possible when `BackgroundThreadsFactory` will be passed in the `ClientOptions`
Is it possible to implement something similar to the ChannelPrimer in the Bigtable Java client to mitigate hourly spikes in latency due to underlying grpc connection shutdowns & reconnects
Java client reference: googleapis/java-bigtable#115
Related Github issue for Java client: googleapis/java-bigtable-hbase#1463
The text was updated successfully, but these errors were encountered: