I'm using a single node Bigtable cluster for my sample application running on GKE. Autoscaling feature has been incorporated within the client code. Sometimes I experience slowness (>80ms) for the GET calls. In order to investigate it further, I need some clarity around the following Bigtable behaviour.
- I have cached the Bigtable
table
object to ensure faster GET calls. Is the table object persistent on GKE? I have learned that objects are not persistent on Cloud Function. Do we expect any similar behaviour on GKE? - I'm using service account authentication but how frequently auth tokens get refreshed? I have seen frequent refresh logs for gRPC Java client. I think Bigtable won't be able to serve the requests over this token refreshing period (4-5 seconds).
- What if client machine/instance doesn't scale enough? Will it cause slowness for GET calls?
- Bigtable client libraries use connection pooling. How frequently connections/channels close itself? I have learned that connections are closed after minutes of inactivity (>15 minutes or so).
- I'm planning to read only needed columns instead of entire row. This can be achieved by specifying the
rowkey
as well ascolumn qualifier filter
. Can I expect some performance improvement by not reading the entire row?