Hi,
This
release contains multiple bug fixes and several improvements.
A
new configuration option has been added that forces the driver to perform DNS resolution of a contact point every time the driver attempts to connect to it. This should help users integrate their applications with Cassandra clusters that have nodes with dynamic IP addresses (like Kubernetes). The driver will also perform DNS resolution of the contact points if it detects a total connectivity loss, regardless of the configuration setting. For more information check out
CSHARP-819.
If you have already upgraded your Apache Cassandra nodes to 3.0.19 or 3.11.5, then you will find an additional benefit from upgrading to this new version of the driver due to
CSHARP-841. With
CASSANDRA-15013, Apache Cassandra applies backpressure using TCP flow control and, while the driver already handled this backpressure in the previous versions, it would be possible for a request to time out a long time after the configured driver side timeout. For more information check out
CSHARP-841.
This release, specifically the new version of the AppMetrics extension packages, also improves improves the HdrHistogram implementation used for the Timer metrics. Previously, the histogram would never reset itself which caused these metrics to stop being useful after some minutes or hours of uptime, i.e., you would stop seeing any meaningful difference in the reported values after some time. For more information see the
the API documentation on the new setting that was added in this new version of the AppMetrics extension (for both
unified and
DSE drivers) and/or the
JIRA ticket.
Finally, this release also bumps the versions of some dependencies in order to fix security vulnerabilities. For more information check out
CSHARP-862,
CSHARP-863 and
CSHARP-866.
See the full list of improvements and bug fixes contained in this release below.
DataStax C# Driver for Apache Cassandra 3.14.0
Features / Improvements
- [AppMetrics Extension] [CSHARP-851] - HistogramReservoir values should reset periodically (Timer metrics)
- [CSHARP-819] - Add option to keep contact points unresolved and always re-resolve when there’s total connectivity loss
- [CSHARP-841] - Gracefully handle TCP backpressure
- [CSHARP-806] - Drop support for .NET Standard 1.5 and bump net45 to net452
- [CSHARP-405] - Log exception when Cluster.Init() can not recover from
- [CSHARP-829] - Refine connection errors for connecting to cloud instance that may have been parked
- [CSHARP-846] - Implement EverywhereReplicationStrategy and LocalReplicationStrategy
- [CSHARP-850] - Host distance should be a computed aggregate of all configured LBPs
- [CSHARP-876] - The builder should fail fast when no credentials are provided for Astra clusters
- [CSHARP-862] - Update System.Net.Http to fix vulnerabilities
- [CSHARP-863] - Update System.Net.Security to fix vulnerabilities
Bug Fixes
- [CSHARP-696] - HostConnectionPool incorrectly logs reconnection message after warmup
- [CSHARP-697] - When socket.ConnectAsync() throws an error synchronously, SocketAsyncEventArgs is not disposed
- [CSHARP-710] - Mapper cannot deserialize IList properties
- [CSHARP-711] - Race condition: re-prepare on UP might not use the current keyspace
- [CSHARP-786] - Support NULL in collection serializer
- [CSHARP-798] - Handle prepared id mismatch when repreparing on the fly
- [CSHARP-801] - Exception on UDT => CLR mapping of collection property which has null value
- [CSHARP-816] - “Local datacenter is not specified” message is logged if user specifies it with the default execution profile
- [CSHARP-839] - Mapper and Linq2Cql causes re-prepare warnings in scenarios with high concurrency
- [CSHARP-845] - When socket.ConnectAsync returns synchronously, driver assumes that it is connected
- [CSHARP-875] - Duplicate contact points cause cluster initialization failure
- [CSHARP-877] - NodeMetric.DefaultNodeMetrics and SessionMetric.DefaultSessionMetrics contain null values
- [CSHARP-878] - ControlConnection attempts to connect to DOWN nodes
Documentation
- [CSHARP-489] - Use docfx or doxygen to generate API docs
- [CSHARP-847] - Doc: include a note about concurrent schema modifications
DataStax Enterprise C# Driver 2.10.1
Features / Improvements
- [AppMetrics Extension] [CSHARP-851] - HistogramReservoir values should reset periodically (Timer metrics)
- [CSHARP-862] - Update System.Net.Http to fix vulnerabilities
- [CSHARP-863] - Update System.Net.Security to fix vulnerabilities
Bug Fixes
- [CSHARP-696] - HostConnectionPool incorrectly logs reconnection message after warmup
- [CSHARP-697] - When socket.ConnectAsync() throws an error synchronously, SocketAsyncEventArgs is not disposed
- [CSHARP-710] - Mapper cannot deserialize IList properties
- [CSHARP-711] - Race condition: re-prepare on UP might not use the current keyspace
- [CSHARP-786] - Support NULL in collection serializer
- [CSHARP-798] - Handle prepared id mismatch when repreparing on the fly
- [CSHARP-801] - Exception on UDT => CLR mapping of collection property which has null value
- [CSHARP-816] - “Local datacenter is not specified” message is logged if user specifies it with the default execution profile
- [CSHARP-821] - Policies.NewDefaultLoadBalancingPolicy and Policies.DefaultLoadBalancingPolicy return the default OSS default
- [CSHARP-839] - Mapper and Linq2Cql causes re-prepare warnings in scenarios with high concurrency
- [CSHARP-845] - When socket.ConnectAsync returns synchronously, driver assumes that it is connected
- [CSHARP-875] - Duplicate contact points cause cluster initialization failure
- [CSHARP-877] - NodeMetric.DefaultNodeMetrics and SessionMetric.DefaultSessionMetrics contain null values
- [CSHARP-878] - ControlConnection attempts to connect to DOWN nodes
Documentation
- [CSHARP-489] - Use docfx or doxygen to generate API docs
- [CSHARP-847] - Doc: include a note about concurrent schema modifications
DataStax C# Graph Extension 2.1.0
Features / Improvements
- [CSHARP-865] - Graph extensions: Bump core driver dependency to 3.14.0
- [CSHARP-867] - Bump .NET Standard 1.5 to .NET Standard 2.0 on the Graph extension
- [CSHARP-866] - Update System.Net.WebSockets.Client to fix vulnerabilities