This release includes
CSHARP-974
which
fixes a rare issue with the driver's Hashed Wheel Timer that could
cause the application to crash when a request timeout and cancellation happened at the same time. This is the same bug that we thought was fixed in the previous release (
CSHARP-954) but now we managed to consistently reproduce it so we are confident we have the correct fix this time. Check out the JIRA issue for more
details.
This release also includes several community contributions that focus on performance improvements:
- CSHARP-977 PR#568 - Reduce memory allocations on BeConverter by renting arrays from ArrayPool
- CSHARP-979 PR#569 - Improve data reading performance by inlining hot methods in RecyclableMemoryStream
- CSHARP-980 PR#570 - Improve data reading performance by avoiding using ThreadLocal<T> in the hot loop
There's also a new feature that was contributed by the community that brings LINQ support for the writetime() cql function:
CSHARP-986 PR#573
See the full list of improvements and bug fixes contained in this release below.
Bug fixes
- CSHARP-974 - Race condition in Hashed Wheel Timer causes unhandled exception
- CSHARP-981 - Memory leak - Diposed Sessions are still referenced by the Cassandra.Cluster that created them
- CSHARP-987 - Race condition in control connection reconnection
Improvement
- CSHARP-977 - Reduce memory allocations on BeConverter by renting arrays from ArrayPool
- CSHARP-979 - Improve data reading performance by inlining hot methods in RecyclableMemoryStream
- CSHARP-980 - Improve data reading performance by avoiding using ThreadLocal<T> in the hot loop
Features
- CSHARP-986 - LINQ support for writetime() function