File tree Expand file tree Collapse file tree 7 files changed +23
-7
lines changed Expand file tree Collapse file tree 7 files changed +23
-7
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ private void InitDefaultValues()
3838 _maxReceiveMessageSize = GrpcDefaultSettings . MaxReceiveMessageSize ;
3939 _disableDiscovery = GrpcDefaultSettings . DisableDiscovery ;
4040 _createSessionTimeout = SessionPoolDefaultSettings . CreateSessionTimeoutSeconds ;
41+ _disableServerBalancer = false ;
4142 }
4243
4344 public string Host
Original file line number Diff line number Diff line change 11using System . Reflection ;
22using System . Security . Cryptography . X509Certificates ;
33using Ydb . Sdk . Auth ;
4+ using Ydb . Sdk . Pool ;
45
56namespace Ydb . Sdk ;
67
@@ -26,7 +27,7 @@ public class DriverConfig
2627
2728 public int MaxSendMessageSize { get ; init ; } = GrpcDefaultSettings . MaxSendMessageSize ;
2829 public int MaxReceiveMessageSize { get ; init ; } = GrpcDefaultSettings . MaxReceiveMessageSize ;
29- public bool DisableServerBalancer { get ; init ; } = GrpcDefaultSettings . DisableServerBalancer ;
30+ public bool DisableServerBalancer { get ; init ; } = SessionPoolDefaultSettings . DisableServerBalancer ;
3031
3132 internal X509Certificate2Collection CustomServerCertificates { get ; } = new ( ) ;
3233 internal TimeSpan EndpointDiscoveryInterval = TimeSpan . FromMinutes ( 1 ) ;
Original file line number Diff line number Diff line change @@ -182,8 +182,7 @@ protected async ValueTask<CallOptions> GetCallOptions(GrpcRequestSettings settin
182182 meta . Add ( Metadata . RpcTraceIdHeader , settings . TraceId ) ;
183183 }
184184
185- if ( ! settings . List . Contains ( "session-balancer" ) )
186- {
185+ foreach ( var setting in settings . List ) {
187186 meta . Add ( Metadata . RpcClientCapabilitiesHeader , "session-balancer" ) ;
188187 }
189188
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ internal abstract class SessionPool<TSession> where TSession : SessionBase<TSess
1111 private readonly ConcurrentQueue < TSession > _idleSessions = new ( ) ;
1212 private readonly int _createSessionTimeoutMs ;
1313 private readonly int _size ;
14+ private protected readonly SessionPoolConfig Config ;
1415
1516 protected readonly ILogger < SessionPool < TSession > > Logger ;
1617
@@ -253,12 +254,15 @@ internal TS MakeGrpcRequestSettings<TS>(TS settings) where TS : GrpcRequestSetti
253254internal record SessionPoolConfig (
254255 int MaxSessionPool = SessionPoolDefaultSettings . MaxSessionPool ,
255256 int CreateSessionTimeout = SessionPoolDefaultSettings . CreateSessionTimeoutSeconds ,
256- bool DisposeDriver = false
257+ bool DisposeDriver = false ,
258+ bool DisableServerBalancer = SessionPoolDefaultSettings . DisableServerBalancer
257259) ;
258260
259261internal static class SessionPoolDefaultSettings
260262{
261263 internal const int MaxSessionPool = 100 ;
262264
263265 internal const int CreateSessionTimeoutSeconds = 5 ;
266+
267+ internal const bool DisableServerBalancer = false ;
264268}
Original file line number Diff line number Diff line change @@ -35,10 +35,20 @@ protected override async Task<Session> CreateSession(
3535 CancellationToken cancellationToken = default
3636 )
3737 {
38+ var requestSettings = new GrpcRequestSettings
39+ {
40+ CancellationToken = cancellationToken
41+ } ;
42+
43+ if ( ! Config . DisableServerBalancer )
44+ {
45+ requestSettings . List . Add ( "session-balancer" ) ;
46+ }
47+
3848 var response = await _driver . UnaryCall (
3949 QueryService . CreateSessionMethod ,
4050 CreateSessionRequest ,
41- new GrpcRequestSettings { CancellationToken = cancellationToken }
51+ requestSettings
4252 ) ;
4353
4454 Status . FromProto ( response . Status , response . Issues ) . EnsureSuccess ( ) ;
Original file line number Diff line number Diff line change 11using Microsoft . Extensions . Logging ;
22using Ydb . Sdk . Client ;
3+ using Ydb . Sdk . Pool ;
34
45namespace Ydb . Sdk . Services . Sessions ;
56
@@ -17,7 +18,7 @@ public SessionPoolConfig(uint? sizeLimit = null)
1718 public TimeSpan KeepAliveTimeout { get ; set ; } = TimeSpan . FromSeconds ( 1 ) ;
1819 public TimeSpan CreateSessionTimeout { get ; set ; } = TimeSpan . FromSeconds ( 1 ) ;
1920
20- public bool DisableServerBalancer { get ; set ; } = GrpcDefaultSettings . DisableServerBalancer ;
21+ public bool DisableServerBalancer { get ; set ; } = SessionPoolDefaultSettings . DisableServerBalancer ;
2122}
2223
2324public class GetSessionResponse < TSession > : ResponseWithResultBase < TSession > , IDisposable where TSession : SessionBase
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ private protected override async Task<GetSessionResponse> CreateSession()
2626 var createSessionSettings = new CreateSessionSettings
2727 {
2828 TransportTimeout = Config . CreateSessionTimeout ,
29- OperationTimeout = Config . CreateSessionTimeout ,
29+ OperationTimeout = Config . CreateSessionTimeout
3030 } ;
3131
3232 if ( ! Config . DisableServerBalancer )
You can’t perform that action at this time.
0 commit comments