Skip to content

bigtable: Large increase in memory when Direct Access is enabled #13753

Description

@adamroyjones

Client

bigtable

Environment

Statically-linked binaries (go1.25.6 on amd64) running in GKE.

Code and Dependencies

We're using cloud.google.com/go/bigtable@v1.41.0.

If it's needed, I can see about producing something minimal to reproduce things in our GKE clusters.

Expected behavior

We expected memory use to be roughly unchanged by switching Direct Access on (CBT_ENABLE_DIRECTPATH: "true").

Actual behavior

Memory use increased substantially after switching Direct Access on (CBT_ENABLE_DIRECTPATH: "true") (with credit to @philpearl for noticing this).

The graph below shows one service's memory use. The step increase (~2026-01-07 1400 UTC) and decrease (~2026-02-02 1720 UTC) correspond to setting the environment variable and leaving it unset, respectively.

This kind of change affects all of the services that we have that use Bigtable. We've some sampling profiles that suggest that much of the issue is deep in some gRPC code around resolving clusters (e.g., google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go); if more details are needed, we can look to provide them.

I would expect that this would be easy to reproduce.

Screenshots

Image

Additional context

None—but we like Direct Access enough to leave it on, so thank you for introducing it!

Metadata

Metadata

Assignees

Labels

api: bigtableIssues related to the Bigtable API.triage meI really want to be triaged.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions