Releases: ydb-platform/ydb-dotnet-sdk
v0.31.0
-
Fixed bug Topic Writer: ignore
UpdateTokenResponsewhile processing write acknowledgements to avoidNullReferenceException. -
Breaking Change ADO.NET tracing: Renamed span
ydb.ExecuteWithRetry→ydb.RunWithRetryandydb.Retry→ydb.Try. The first attempt is now always wrapped inydb.Try(previously the first attempt's child spans attached directly toydb.RunWithRetry). -
Feat ADO.NET tracing: Finalized span set. ActivitySource name:
Ydb.Sdk. Enable viaTracerProviderBuilder.AddYdb()fromYdb.Sdk.OpenTelemetry.Span Kind Description ydb.Driver.InitializeInternal Driver first initialization (discovery + auth handshake) ydb.CreateSessionClient Session creation (gRPC CreateSession + AttachStream) ydb.RunWithRetryInternal Wraps the entire retry loop for a single ADO.NET operation ydb.TryInternal One span per attempt, including the first; child RPC spans attach here ydb.ExecuteQueryClient Individual YQL query execution ydb.CommitClient Transaction commit ydb.RollbackClient Transaction rollback ydb.RunWithRetry/ydb.Trylifecycle:ydb.RunWithRetryis the outer span for the whole operation;ydb.Trywraps each attempt including the first. Retry spans carryydb.retry.backoff_ms. On non-retryable error or retries exhausted bothydb.Tryandydb.RunWithRetryreceive error status. On cancellationerror.typeis set to the exception type full name.Tags propagated on RPC spans:
Tag Description db.system.nameAlways "ydb"db.namespaceYDB database path server.address/server.portPrimary endpoint from connection string network.peer.address/network.peer.portActual gRPC endpoint used for the call ydb.node.id/ydb.node.dcYDB node identity db.response.status_codeYDB status code (on YdbException)error.type"transport_error"for client transport codes,"ydb_error"for database errors, or the full exception type name for other exceptionsW3C trace context (
traceparent) is automatically propagated to YDB server so server-side traces link to client spans.
Feat ADO.NET metrics (beta): Added OpenTelemetry metrics. Meter name: Ydb.Sdk. Enable via MeterProviderBuilder.AddYdb() from Ydb.Sdk.OpenTelemetry.
| Metric | Kind | Unit | Tags | Description |
|---|---|---|---|---|
ydb.client.operation.duration |
Histogram | s |
database, endpoint, operation.name |
Latency of each actual ExecuteQuery / Commit / Rollback attempt |
ydb.client.operation.failed |
Counter | {operation} |
database, endpoint, operation.name, status_code |
Unsuccessful operation attempts |
ydb.query.session.count |
ObservableGauge | {session} |
ydb.query.session.pool.name, ydb.query.session.state |
Current pool session counts |
ydb.query.session.create_time |
Histogram | s |
ydb.query.session.pool.name |
Session creation cost (CreateSession + first AttachStream message) |
ydb.query.session.pending_requests |
Counter | {request} |
ydb.query.session.pool.name |
Increments when a caller starts waiting; use rate for wait pressure |
ydb.query.session.timeouts |
Counter | {timeout} |
ydb.query.session.pool.name |
Session acquisition timeouts |
ydb.query.session.max |
ObservableGauge | {session} |
ydb.query.session.pool.name |
Configured MaxPoolSize |
ydb.query.session.min |
ObservableGauge | {session} |
ydb.query.session.pool.name |
Configured MinPoolSize |
- Feat ADO.NET metrics: Added
PoolNameconnection string option. When set, reported as theydb.query.session.pool.namemetric attribute; defaults to the full connection string. - Fixed bug:
EndpointPool.PessimizeEndpoint/ routing used node id only; in serverless mode (nodeId == 0) pessimization and sticky session routing did not work correctly — pessimization and pool lookup are now keyed by gRPC endpoint (http(s)://host:port). - Feat: Session attach stream handles
NodeShutdownandSessionShutdownhints (deprioritizes endpoint on node shutdown, marks session broken on shutdown hints).
Full Changelog: v0.30.0...v0.31.0
v0.30.0
- Upgraded target framework from .NET 6/7 to .NET 8.
Full Changelog: v0.29.0...v0.30.0
v0.29.0
- Feat ADO.NET: Added support for reading and writing JSON values as
System.Text.Json.JsonDocumentandSystem.Text.Json.JsonElement(for YdbDbType.Json/JsonDocument). - Fixed bug: NPE in Writer.DisposeAsync().
- Fixed bug: Driver ownership lifecycle is now synchronized to prevent race conditions.
- Breaking Change:
IDriverno longer implementsIDisposable(interface slated to mark internal). - Feat ADO.NET tracing: Added spans for
QueryServiceoperations:ydb.CreateSessionydb.ExecuteQueryydb.Commitydb.Rollback
- Feat ADO.NET tracing: Added/propagated tags on spans:
db.system.namedb.namespaceserver.addressserver.portnetwork.peer.addressnetwork.peer.portdb.response.status_code(forYdbException)error.typeydb.node.idydb.node.dc
- Feat ADO.NET tracing: Added retry attempt span
ydb.ExecuteWithRetry:ydb.retry.attemptydb.retry.backoff_ms
Full Changelog: v0.28.0...v0.29.0
ef-v0.4.2
- Fixed bug: json columns to string property mapping.
Full Changelog: v0.4.1...v0.4.2
ef-v0.4.1
- Fixed bug: EF Code First now generates correct serial column types for key properties with
ValueGeneratedOnAdd:Int64->BigserialInt32->SerialInt16->SmallSerial
- Fixed bug:
HasDefaultValue(...)/HasDefaultValueSql(...)no longer cause incorrect serial mapping forValueGeneratedOnAddcolumns.
Full Changelog: v0.4.0...v0.4.1
v0.28.0
- Feat Reader/Writer: Added ConnectionString-based initialization.
- Feat ADO.NET: Added support for
SnapshotRWlevel isolation. - Feat: Added support for Yandex.Cloud metadata credentials (
EnableMetadataCredentials) inYdbConnectionStringBuilder/ connection string. - Feat: Added support for Yandex.Cloud service account key file (
ServiceAccountKeyFilePath) inYdbConnectionStringBuilder/ connection string. - Feat: Added validation for mutually exclusive authentication properties (
User,CredentialsProvider,ServiceAccountKeyFilePath,EnableMetadataCredentials).
Full Changelog: v0.27.0...v0.28.0
v0.27.0
- Feat ADO.NET: Support control plane methods in YdbDataSource:
DescribeTable: Returns information about the specified table (metadata).CreateTable: Creates new table.CopyTable: Creates a copy of the specified table.CopyTables: Creates a consistent copy of the specified tables.RenameTables: Renames multiple tables in a single operation.DropTable: Drops (deletes) a table.
- Dev: Discovery endpoints use
System.Threading.Timer.
Full Changelog: v0.26.0...v0.27.0
ef-v0.4.0
- Upgraded ADO.NET provider version:
0.26.0→0.27.0.
Full Changelog: v0.3.0...v0.4.0
ef-v0.3.0
- Added support for
Microsoft.EntityFrameworkCore10.0 on .NET 10.0. - Added
ILikesupport. - Added support
INSERT,UPDATE,DELETEbatching for EF Core SaveChanges operations. - Fixed bug: DateTime.UtcNow generating invalid SQL in ExecuteUpdate (#555).
Full Changelog: v0.2.0...v0.3.0
v0.26.0
- Feat ADO.NET: Added raw integer / long value support for extended-range
DateTimetypes. - Feat ADO.NET: Support
YdbStructsupport.
Full Changelog: v0.25.2...v0.26.0