Skip to content

Commit c506190

Browse files
authored
xds: Reuse filter interceptors across RPCs
This moves the interceptor creation from the ConfigSelector to the resource update handling. The code structure changes will make adding support for filter lifecycles (for RLQS) a bit easier. The filter lifecycles will allow filters to share state across interceptors, and constructing all the interceptors on a single thread will mean filters wouldn't need to be thread-safe (but their interceptors would be thread-safe).
1 parent 90aefb2 commit c506190

File tree

7 files changed

+136
-82
lines changed

7 files changed

+136
-82
lines changed

xds/src/main/java/io/grpc/xds/FaultFilter.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import io.grpc.Deadline;
3838
import io.grpc.ForwardingClientCall;
3939
import io.grpc.ForwardingClientCallListener.SimpleForwardingClientCallListener;
40-
import io.grpc.LoadBalancer.PickSubchannelArgs;
4140
import io.grpc.Metadata;
4241
import io.grpc.MethodDescriptor;
4342
import io.grpc.Status;
@@ -183,7 +182,7 @@ public ConfigOrError<FaultConfig> parseFilterConfigOverride(Message rawProtoMess
183182
@Nullable
184183
@Override
185184
public ClientInterceptor buildClientInterceptor(
186-
FilterConfig config, @Nullable FilterConfig overrideConfig, PickSubchannelArgs args,
185+
FilterConfig config, @Nullable FilterConfig overrideConfig,
187186
final ScheduledExecutorService scheduler) {
188187
checkNotNull(config, "config");
189188
if (overrideConfig != null) {

xds/src/main/java/io/grpc/xds/Filter.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.google.common.base.MoreObjects;
2020
import com.google.protobuf.Message;
2121
import io.grpc.ClientInterceptor;
22-
import io.grpc.LoadBalancer.PickSubchannelArgs;
2322
import io.grpc.ServerInterceptor;
2423
import java.util.Objects;
2524
import java.util.concurrent.ScheduledExecutorService;
@@ -59,7 +58,7 @@ interface FilterConfig {
5958
interface ClientInterceptorBuilder {
6059
@Nullable
6160
ClientInterceptor buildClientInterceptor(
62-
FilterConfig config, @Nullable FilterConfig overrideConfig, PickSubchannelArgs args,
61+
FilterConfig config, @Nullable FilterConfig overrideConfig,
6362
ScheduledExecutorService scheduler);
6463
}
6564

xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import io.grpc.ClientCall;
3232
import io.grpc.ClientInterceptor;
3333
import io.grpc.CompositeCallCredentials;
34-
import io.grpc.LoadBalancer.PickSubchannelArgs;
3534
import io.grpc.Metadata;
3635
import io.grpc.MethodDescriptor;
3736
import io.grpc.Status;
@@ -97,8 +96,7 @@ public ConfigOrError<? extends FilterConfig> parseFilterConfigOverride(Message r
9796
@Nullable
9897
@Override
9998
public ClientInterceptor buildClientInterceptor(FilterConfig config,
100-
@Nullable FilterConfig overrideConfig, PickSubchannelArgs args,
101-
ScheduledExecutorService scheduler) {
99+
@Nullable FilterConfig overrideConfig, ScheduledExecutorService scheduler) {
102100

103101
ComputeEngineCredentials credentials = ComputeEngineCredentials.create();
104102
LruCache<String, CallCredentials> callCredentialsCache =

xds/src/main/java/io/grpc/xds/RouterFilter.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.google.protobuf.Message;
2020
import io.grpc.ClientInterceptor;
21-
import io.grpc.LoadBalancer.PickSubchannelArgs;
2221
import io.grpc.ServerInterceptor;
2322
import io.grpc.xds.Filter.ClientInterceptorBuilder;
2423
import io.grpc.xds.Filter.ServerInterceptorBuilder;
@@ -64,7 +63,7 @@ public ConfigOrError<? extends FilterConfig> parseFilterConfigOverride(Message r
6463
@Nullable
6564
@Override
6665
public ClientInterceptor buildClientInterceptor(
67-
FilterConfig config, @Nullable FilterConfig overrideConfig, PickSubchannelArgs args,
66+
FilterConfig config, @Nullable FilterConfig overrideConfig,
6867
ScheduledExecutorService scheduler) {
6968
return null;
7069
}

0 commit comments

Comments
 (0)