SQL Server Distributed Cache Extensions suffering significant performance issues
- Dominant language
- C#
- Stars
- 38.4k
- Forks
- 10.9k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 276
Description
### Describe the bug
Serious performance issues when reading binary values, when using SQL Server Distributed Cache extension.
### To Reproduce
Using SQL Server Distributed Cache, persist a value with an arbitrary value of 15MB.
Access the data using the async read operations. Note this takes approximately 15 seconds in our environment.
### Expected behavior
This should take milliseconds.
### Additional context
I suspect this is caused by an open SQL Client bug mentioned below. Can you please verify if this is the case? Is there a work-around that can be implemented in DatabaseOperations until this is resolved?
https://github.com/dotnet/extensions/blob/master/src/Caching/SqlServer/src/DatabaseOperations.cs, line 229
value = reader.GetFieldValue(Columns.Indexes.CacheItemValueIndex);
Reading binary data asynchronously is extremely slow
https://github.com/dotnet/SqlClient/issues/593
It looks like the SqlClient team are suggesting people use the StreamAsync operation as a work-around?
One reasonably successful work-around we have tried is to increase the TDS Packet Size up to 32,767. What are your thoughts on this?
Contributor guide
Assessment
This issue has not been assessed yet.