Skip to content

LoasdBalancer: the affinity keys are not used when completing the delayed (interim) transports #2302

@zhangkun83

Description

@zhangkun83
InterimTransport {
  void closeWithRealTransports(Supplier<T> realTransports);
}

Although DelayedClientTransport saves the affinity keys for the delayed streams (in CallOptions), there is no way for it to pass those keys to Supplier<T>. This can be addressed by changing this method into:

TransportPicker<T> {
  T pickTransport(Attributes affinity);
}

InterimTransport {
  void closeWithTransportPicker(TransportPicker<T> picker);
}

Similarly:

DelayedClientTransport {
  void setTransportPicker(TransportPicker<T> picker);
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions