Skip to content

Commit 55c1d0f

Browse files
authored
Merge branch 'master' into params-builder-update
2 parents ed54b80 + 4315955 commit 55c1d0f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+2954
-2031
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
11
* Added `TzDate`,`TzDateTime`,`TzTimestamp` support for `ydb.ParamsBuilder()`
2+
3+
## v3.58.2
4+
* Added `trace.Query.OnSessionBegin` event
5+
* Added `trace.Query.OnResult{New,NextPart,NextResultSet,Close}` events
6+
* Added `trace.Query.OnRow{Scan,ScanNamed,ScanStruct}` events
7+
8+
## v3.58.1
9+
* Dropped all deprecated callbacks and events from traces
10+
* Added `trace.Driver.OnConnStream{SendMsg,RecvMsg,CloseSend}` events
11+
* Added `trace.Query.OnSessionExecute` event
12+
13+
## v3.58.0
214
* Changed `List` constructor from `ydb.ParamsBuilder().List().Build().Build()` to `ydb.ParamsBuilder().BeginList().EndList().Build()`
315
* Changed `Set` constructor from `ydb.ParamsBuilder().Set().Build().Build()` to `ydb.ParamsBuilder().BeginSet().EndSet().Build()`
416
* Changed `Dict` constructor from `ydb.ParamsBuilder().Dict().Build().Build()` to `ydb.ParamsBuilder().BeginDict().EndDict().Build()`

driver.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ func newConnectionFromOptions(ctx context.Context, opts ...Option) (_ *Driver, e
348348
for _, opt := range []Option{
349349
WithTraceDriver(log.Driver(d.logger, d.loggerDetails, d.loggerOpts...)), //nolint:contextcheck
350350
WithTraceTable(log.Table(d.logger, d.loggerDetails, d.loggerOpts...)), //nolint:contextcheck
351+
WithTraceQuery(log.Query(d.logger, d.loggerDetails, d.loggerOpts...)), //nolint:contextcheck
351352
WithTraceScripting(log.Scripting(d.logger, d.loggerDetails, d.loggerOpts...)), //nolint:contextcheck
352353
WithTraceScheme(log.Scheme(d.logger, d.loggerDetails, d.loggerOpts...)),
353354
WithTraceCoordination(log.Coordination(d.logger, d.loggerDetails, d.loggerOpts...)),

examples/go.mod

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ require (
99
github.com/prometheus/client_golang v1.13.0
1010
github.com/ydb-platform/gorm-driver v0.0.5
1111
github.com/ydb-platform/ydb-go-sdk-auth-environ v0.1.2
12-
github.com/ydb-platform/ydb-go-sdk-prometheus v0.11.10
13-
github.com/ydb-platform/ydb-go-sdk/v3 v3.47.3
12+
github.com/ydb-platform/ydb-go-sdk-prometheus/v2 v2.0.1
13+
github.com/ydb-platform/ydb-go-sdk/v3 v3.54.0
1414
github.com/ydb-platform/ydb-go-yc v0.10.1
1515
google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54
1616
gorm.io/driver/postgres v1.5.0
@@ -51,7 +51,6 @@ require (
5151
github.com/syndtr/goleveldb v1.0.0 // indirect
5252
github.com/yandex-cloud/go-genproto v0.0.0-20220815090733-4c139c0154e2 // indirect
5353
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240126124512-dbb0e1720dbf // indirect
54-
github.com/ydb-platform/ydb-go-sdk-metrics v0.16.3 // indirect
5554
github.com/ydb-platform/ydb-go-yc-metadata v0.5.4 // indirect
5655
golang.org/x/crypto v0.17.0 // indirect
5756
golang.org/x/mod v0.11.0 // indirect

examples/go.sum

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,7 +1100,6 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD
11001100
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
11011101
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
11021102
github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
1103-
github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
11041103
github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU=
11051104
github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ=
11061105
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
@@ -1202,10 +1201,8 @@ github.com/ydb-platform/ydb-go-genproto v0.0.0-20240126124512-dbb0e1720dbf h1:ck
12021201
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240126124512-dbb0e1720dbf/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I=
12031202
github.com/ydb-platform/ydb-go-sdk-auth-environ v0.1.2 h1:EYSI1kulnHb0H0zt3yOw4cRj4ABMSMGwNe43D+fX7e4=
12041203
github.com/ydb-platform/ydb-go-sdk-auth-environ v0.1.2/go.mod h1:Xfjce+VMU9yJVr1lj60yK2fFPWjB4jr/4cp3K7cjzi4=
1205-
github.com/ydb-platform/ydb-go-sdk-metrics v0.16.3 h1:30D5jErLAiGjchVG2D9JiCLbST5LpAiyS7DoUtHkWsU=
1206-
github.com/ydb-platform/ydb-go-sdk-metrics v0.16.3/go.mod h1:bqOjIBSt5LtA8fcTprRPGLvlQGkNlqBSRqnL+yZUJh4=
1207-
github.com/ydb-platform/ydb-go-sdk-prometheus v0.11.10 h1:eXRJ8nKGv5Dyz7qTDFraahyqlSmOf1/8JqUtlxGlA4o=
1208-
github.com/ydb-platform/ydb-go-sdk-prometheus v0.11.10/go.mod h1:7OffPa+OmsJgIP5G+2Cg5oP9+xB5UJSLm5AUpLxi5Uc=
1204+
github.com/ydb-platform/ydb-go-sdk-prometheus/v2 v2.0.1 h1:Lsir3AC2VQOTlp8UjZY9zQdCVfWvBNHT3hZn+jSGoo0=
1205+
github.com/ydb-platform/ydb-go-sdk-prometheus/v2 v2.0.1/go.mod h1:vofSH6XG0Cr04RV+V3fLp5apOhwDqj1kSoYD9/lmzmE=
12091206
github.com/ydb-platform/ydb-go-yc v0.8.3/go.mod h1:zUolAFGzJ5XG8uwiseTLr9Lapm7L7hdVdZgLSuv9FXE=
12101207
github.com/ydb-platform/ydb-go-yc v0.10.1 h1:9SBUpR94tzasEzqYSbBuuEp9mY/jV6xbwPMy3muvV7U=
12111208
github.com/ydb-platform/ydb-go-yc v0.10.1/go.mod h1:9HaZmOHUWy2MpJ4GZw9j9gR2I82/kb6H8fjsu8b2lxQ=

examples/serverless/url_shortener/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"github.com/prometheus/client_golang/prometheus"
2222
"github.com/prometheus/client_golang/prometheus/promhttp"
2323
environ "github.com/ydb-platform/ydb-go-sdk-auth-environ"
24-
ydbMetrics "github.com/ydb-platform/ydb-go-sdk-prometheus"
24+
ydbMetrics "github.com/ydb-platform/ydb-go-sdk-prometheus/v2"
2525
ydb "github.com/ydb-platform/ydb-go-sdk/v3"
2626
"github.com/ydb-platform/ydb-go-sdk/v3/table"
2727
"github.com/ydb-platform/ydb-go-sdk/v3/table/options"

internal/balancer/balancer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (b *Balancer) applyDiscoveredEndpoints(ctx context.Context, endpoints []end
180180
)
181181
defer func() {
182182
nodes, added, dropped := endpointsDiff(endpoints, previousConns)
183-
onDone(nodes, added, dropped, localDC, nil)
183+
onDone(nodes, added, dropped, localDC)
184184
}()
185185

186186
connections := endpointsToConnections(b.pool, endpoints)

internal/conn/conn.go

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ func (c *conn) NewStream(
391391
opts ...grpc.CallOption,
392392
) (_ grpc.ClientStream, err error) {
393393
var (
394-
streamRecv = trace.DriverOnConnNewStream(
394+
onDone = trace.DriverOnConnNewStream(
395395
c.config.Trace(), &ctx,
396396
stack.FunctionID(""),
397397
c.endpoint.Copy(), trace.Method(method),
@@ -402,18 +402,7 @@ func (c *conn) NewStream(
402402
)
403403

404404
defer func() {
405-
if err != nil {
406-
streamRecv(err)(err, c.GetState(), metadata.MD{})
407-
}
408-
}()
409-
410-
var cancel context.CancelFunc
411-
ctx, cancel = xcontext.WithCancel(ctx)
412-
413-
defer func() {
414-
if err != nil {
415-
cancel()
416-
}
405+
onDone(err, c.GetState())
417406
}()
418407

419408
cc, err = c.realConn(ctx)
@@ -454,15 +443,14 @@ func (c *conn) NewStream(
454443

455444
return &grpcClientStream{
456445
ClientStream: s,
446+
ctx: ctx,
457447
c: c,
458448
wrapping: useWrapping,
459449
traceID: traceID,
460450
sentMark: sentMark,
461451
onDone: func(ctx context.Context, md metadata.MD) {
462-
cancel()
463452
meta.CallTrailerCallback(ctx, md)
464453
},
465-
recv: streamRecv,
466454
}, nil
467455
}
468456

internal/conn/grpc_client_stream.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"google.golang.org/grpc"
1010
"google.golang.org/grpc/metadata"
1111

12+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stack"
1213
"github.com/ydb-platform/ydb-go-sdk/v3/internal/wrap"
1314
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
1415
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
@@ -17,15 +18,20 @@ import (
1718

1819
type grpcClientStream struct {
1920
grpc.ClientStream
21+
ctx context.Context
2022
c *conn
2123
wrapping bool
2224
traceID string
2325
sentMark *modificationMark
2426
onDone func(ctx context.Context, md metadata.MD)
25-
recv func(error) func(error, trace.ConnState, map[string][]string)
2627
}
2728

2829
func (s *grpcClientStream) CloseSend() (err error) {
30+
onDone := trace.DriverOnConnStreamCloseSend(s.c.config.Trace(), &s.ctx, stack.FunctionID(""))
31+
defer func() {
32+
onDone(err)
33+
}()
34+
2935
err = s.ClientStream.CloseSend()
3036

3137
if err != nil {
@@ -46,6 +52,11 @@ func (s *grpcClientStream) CloseSend() (err error) {
4652
}
4753

4854
func (s *grpcClientStream) SendMsg(m interface{}) (err error) {
55+
onDone := trace.DriverOnConnStreamSendMsg(s.c.config.Trace(), &s.ctx, stack.FunctionID(""))
56+
defer func() {
57+
onDone(err)
58+
}()
59+
4960
cancel := createPinger(s.c)
5061
defer cancel()
5162

@@ -77,15 +88,18 @@ func (s *grpcClientStream) SendMsg(m interface{}) (err error) {
7788
}
7889

7990
func (s *grpcClientStream) RecvMsg(m interface{}) (err error) {
91+
onDone := trace.DriverOnConnStreamRecvMsg(s.c.config.Trace(), &s.ctx, stack.FunctionID(""))
92+
defer func() {
93+
onDone(err)
94+
}()
95+
8096
cancel := createPinger(s.c)
8197
defer cancel()
8298

8399
defer func() {
84-
onDone := s.recv(xerrors.HideEOF(err))
85100
if err != nil {
86101
md := s.ClientStream.Trailer()
87-
onDone(xerrors.HideEOF(err), s.c.GetState(), md)
88-
s.onDone(s.ClientStream.Context(), md)
102+
s.onDone(s.ctx, md)
89103
}
90104
}()
91105

internal/conn/pool.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"time"
88

99
"google.golang.org/grpc"
10+
grpcCodes "google.golang.org/grpc/codes"
1011

1112
"github.com/ydb-platform/ydb-go-sdk/v3/internal/closer"
1213
"github.com/ydb-platform/ydb-go-sdk/v3/internal/endpoint"
@@ -79,6 +80,15 @@ func (p *Pool) Ban(ctx context.Context, cc Conn, cause error) {
7980
return
8081
}
8182

83+
if xerrors.IsTransportError(cause,
84+
grpcCodes.OK,
85+
grpcCodes.Canceled,
86+
grpcCodes.ResourceExhausted,
87+
grpcCodes.OutOfRange,
88+
) {
89+
return
90+
}
91+
8292
e := cc.Endpoint().Copy()
8393

8494
p.mtx.RLock()

internal/pool/pool.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ func (p *Pool[PT, T]) put(ctx context.Context, item PT) (err error) {
168168
}
169169

170170
func (p *Pool[PT, T]) produce(ctx context.Context) {
171+
ctx = xcontext.WithoutDeadline(ctx)
172+
171173
onDone := p.trace.OnProduce(&ProduceStartInfo{
172174
Context: &ctx,
173175
Call: stack.FunctionID(""),
@@ -177,7 +179,7 @@ func (p *Pool[PT, T]) produce(ctx context.Context) {
177179
onDone(&ProduceDoneInfo{})
178180
}()
179181

180-
p.spawn = make(chan PT, p.producersCount)
182+
p.spawn = make(chan PT, p.maxSize)
181183

182184
var wg, started sync.WaitGroup
183185
wg.Add(p.producersCount)
@@ -197,7 +199,7 @@ func (p *Pool[PT, T]) produce(ctx context.Context) {
197199
if msg != nil {
198200
p.idle <- msg
199201
} else {
200-
item, err := p.create(context.Background())
202+
item, err := p.create(ctx)
201203
if err == nil {
202204
p.idle <- item
203205
}

0 commit comments

Comments
 (0)