Skip to content

Go: Phase 2 client-side caching - ServerAssisted field and ClientTrackingInfo#5966

Open
affonsov wants to merge 4 commits into
mainfrom
affonsov/csc-phase2-go
Open

Go: Phase 2 client-side caching - ServerAssisted field and ClientTrackingInfo#5966
affonsov wants to merge 4 commits into
mainfrom
affonsov/csc-phase2-go

Conversation

@affonsov
Copy link
Copy Markdown
Collaborator

@affonsov affonsov commented May 15, 2026

Summary

Adds ServerAssisted field to Go ClientSideCache config and ClientTrackingInfo() diagnostic command.

Issue link

This Pull Request is linked to issue: Implement client-side caching Phase 2: server-assisted invalidation via CLIENT TRACKING
Closes #5961

Features / Behaviour Changes

  • ServerAssisted bool field + WithServerAssisted() fluent builder in ClientSideCache
  • ClientTrackingInfo() on baseClient - available on both Client and ClusterClient
  • ClientTrackingInfoWithOptions() cluster override on ClusterClient for routing to specific nodes
  • ClientTrackingInfo() in BaseBatch

Implementation

  • config/ClientSideCache.go: ServerAssisted field, WithServerAssisted() builder, serialized in toProtobuf()
  • base_client.go: ClientTrackingInfo() - routes to a single node, consistent with CLIENT INFO behavior
  • glide_cluster_client.go: ClientTrackingInfoWithOptions() with RouteOptions - use AllNodes to get tracking info from all cluster connections
  • response_handlers.go: handleMapOfStringAnyMapResponse for multi-node cluster response

Limitations

  • ServerAssisted: true requires RESP3 protocol (enforced by glide-core)
  • In cluster mode, the no-arg variant routes to a single random node; use RouteOptions to query all nodes

Testing

Checklist

  • This Pull Request is related to one issue.
  • Commit message has a detailed description of what changed and why.
  • Tests are added or updated.
  • CHANGELOG.md and documentation files are updated.
  • Linters have been run and Prettier has been run.
  • Destination branch is correct - main or release
  • Create merge commit if merging release branch into main, squash otherwise.

@affonsov affonsov force-pushed the affonsov/client-side-caching-phase2 branch from 25224b0 to 125fbf9 Compare May 16, 2026 02:25
@affonsov affonsov force-pushed the affonsov/csc-phase2-go branch 5 times, most recently from ab0961c to daf632a Compare May 16, 2026 03:07
@affonsov affonsov force-pushed the affonsov/client-side-caching-phase2 branch from ab9540f to d9f2c3d Compare May 27, 2026 00:08
Base automatically changed from affonsov/client-side-caching-phase2 to main May 27, 2026 02:23
affonsov added 3 commits May 28, 2026 01:08
… caching

Signed-off-by: affonsov <67347924+affonsov@users.noreply.github.com>
…kingInfo

Signed-off-by: affonsov <67347924+affonsov@users.noreply.github.com>
…ckingInfo

Signed-off-by: affonsov <67347924+affonsov@users.noreply.github.com>
@affonsov affonsov force-pushed the affonsov/csc-phase2-go branch from daf632a to c1c67a0 Compare May 28, 2026 01:17
Signed-off-by: affonsov <67347924+affonsov@users.noreply.github.com>
@affonsov affonsov marked this pull request as ready for review May 28, 2026 07:59
@affonsov affonsov requested a review from a team as a code owner May 28, 2026 07:59
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.

1 participant