v0.21.0
- ADO.NET: Added
MinPoolSizesetting to keep a minimum number of sessions ready in the PoolingSessionSource. - ADO.NET: Added
SessionIdleTimeoutto remove idle sessions from the PoolingSessionSource automatically. - ADO.NET: Made
PoolingSessionSourcefaster and more reliable by using a lock-free LIFO stack. - ADO.NET: Added
BeginBulkUpsertImportfor batch upsert operations with transaction checks and integration tests. - Optimization: On BadSession, do not invoke the
DeleteSession()method. - Canceling AttachStream after calling the
DeleteSessionmethod. - Fixed bug: fixed issue where session was not deleted (
ClientTransportTimeout). - Fixed bug: Grpc.Core.StatusCode.Cancelled was mapped to server's Canceled status.
- ADO.NET: PoolingSessionSource 2.0 based on Npgsql pooling algorithm.
- Added new ADO.NET options:
MinSessionPool: The minimum connection pool size.SessionIdleTimeout: The time (in seconds) to wait before closing idle session in the pool if the count of all sessions exceedsMinSessionPool.SessionPruningInterval: How many seconds the pool waits before attempting to prune idle sessions (seeSessionIdleTimeout).
- Fixed bug
Reader: unhandled exception inTryReadRequestBytes(long bytes). - Handle
YdbExceptiononDeleteSession. - Do not invoke
DeleteSessionif the session is not active. YdbException: Added cancellation token propagation support inCommitAsyncandRollbackAsync.- Deleted legacy exceptions: Driver.TransportException, StatusUnsuccessfulException and InitializationFailureException.
- Fixed bug: Unhandled exception System.Net.Http.HttpIOException has now been converted to YdbException (grpc-dotnet issue).
- Added 'x-ydb-client-pid' header to any RPC calls.
- Added DisableServerBalancer option to ADO.NET session creation; default false.
Full Changelog: v0.20.1...v0.21.0