Skip to content

Releases: ydb-platform/ydb-dotnet-sdk

v0.31.0

24 Apr 16:38

Choose a tag to compare

  • Fixed bug Topic Writer: ignore UpdateTokenResponse while processing write acknowledgements to avoid NullReferenceException.

  • Breaking Change ADO.NET tracing: Renamed span ydb.ExecuteWithRetryydb.RunWithRetry and ydb.Retryydb.Try. The first attempt is now always wrapped in ydb.Try (previously the first attempt's child spans attached directly to ydb.RunWithRetry).

  • Feat ADO.NET tracing: Finalized span set. ActivitySource name: Ydb.Sdk. Enable via TracerProviderBuilder.AddYdb() from Ydb.Sdk.OpenTelemetry.

    Span Kind Description
    ydb.Driver.Initialize Internal Driver first initialization (discovery + auth handshake)
    ydb.CreateSession Client Session creation (gRPC CreateSession + AttachStream)
    ydb.RunWithRetry Internal Wraps the entire retry loop for a single ADO.NET operation
    ydb.Try Internal One span per attempt, including the first; child RPC spans attach here
    ydb.ExecuteQuery Client Individual YQL query execution
    ydb.Commit Client Transaction commit
    ydb.Rollback Client Transaction rollback

    ydb.RunWithRetry / ydb.Try lifecycle: ydb.RunWithRetry is the outer span for the whole operation; ydb.Try wraps each attempt including the first. Retry spans carry ydb.retry.backoff_ms. On non-retryable error or retries exhausted both ydb.Try and ydb.RunWithRetry receive error status. On cancellation error.type is set to the exception type full name.

    Tags propagated on RPC spans:

    Tag Description
    db.system.name Always "ydb"
    db.namespace YDB database path
    server.address / server.port Primary endpoint from connection string
    network.peer.address / network.peer.port Actual gRPC endpoint used for the call
    ydb.node.id / ydb.node.dc YDB node identity
    db.response.status_code YDB 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 exceptions

    W3C 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 PoolName connection string option. When set, reported as the ydb.query.session.pool.name metric 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 NodeShutdown and SessionShutdown hints (deprioritizes endpoint on node shutdown, marks session broken on shutdown hints).

Full Changelog: v0.30.0...v0.31.0

v0.30.0

27 Feb 14:38

Choose a tag to compare

  • Upgraded target framework from .NET 6/7 to .NET 8.

Full Changelog: v0.29.0...v0.30.0

v0.29.0

25 Feb 13:53

Choose a tag to compare

  • Feat ADO.NET: Added support for reading and writing JSON values as System.Text.Json.JsonDocument and System.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: IDriver no longer implements IDisposable (interface slated to mark internal).
  • Feat ADO.NET tracing: Added spans for QueryService operations:
    • ydb.CreateSession
    • ydb.ExecuteQuery
    • ydb.Commit
    • ydb.Rollback
  • Feat ADO.NET tracing: Added/propagated tags on spans:
    • db.system.name
    • db.namespace
    • server.address
    • server.port
    • network.peer.address
    • network.peer.port
    • db.response.status_code (for YdbException)
    • error.type
    • ydb.node.id
    • ydb.node.dc
  • Feat ADO.NET tracing: Added retry attempt span ydb.ExecuteWithRetry:
    • ydb.retry.attempt
    • ydb.retry.backoff_ms

Full Changelog: v0.28.0...v0.29.0

ef-v0.4.2

20 Feb 13:12

Choose a tag to compare

  • Fixed bug: json columns to string property mapping.

Full Changelog: v0.4.1...v0.4.2

ef-v0.4.1

13 Feb 12:46

Choose a tag to compare

  • Fixed bug: EF Code First now generates correct serial column types for key properties with ValueGeneratedOnAdd:
    • Int64 -> Bigserial
    • Int32 -> Serial
    • Int16 -> SmallSerial
  • Fixed bug: HasDefaultValue(...) / HasDefaultValueSql(...) no longer cause incorrect serial mapping for ValueGeneratedOnAdd columns.

Full Changelog: v0.4.0...v0.4.1

v0.28.0

20 Jan 08:31

Choose a tag to compare

  • Feat Reader/Writer: Added ConnectionString-based initialization.
  • Feat ADO.NET: Added support for SnapshotRW level isolation.
  • Feat: Added support for Yandex.Cloud metadata credentials (EnableMetadataCredentials) in YdbConnectionStringBuilder / connection string.
  • Feat: Added support for Yandex.Cloud service account key file (ServiceAccountKeyFilePath) in YdbConnectionStringBuilder / 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

24 Dec 16:22

Choose a tag to compare

  • 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

24 Dec 17:22

Choose a tag to compare

  • Upgraded ADO.NET provider version: 0.26.00.27.0.

Full Changelog: v0.3.0...v0.4.0

ef-v0.3.0

15 Dec 20:38

Choose a tag to compare

  • Added support for Microsoft.EntityFrameworkCore 10.0 on .NET 10.0.
  • Added ILike support.
  • Added support INSERT, UPDATE, DELETE batching 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

23 Nov 21:08

Choose a tag to compare

  • Feat ADO.NET: Added raw integer / long value support for extended-range DateTime types.
  • Feat ADO.NET: Support YdbStruct support.

Full Changelog: v0.25.2...v0.26.0