[ 
https://issues.apache.org/jira/browse/IGNITE-13378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-13378:
------------------------------------
    Description: 
.NET Thin Client was initially developed for Windows and .NET Framework. 
Benchmarks at that time proved that blocking socket IO was faster for 
single-threaded workload, and we developed a solution with a dedicated thread 
for response handling, and async APIs use blocking writes.

We may want to reconsider this design:
* Scalability is often more important than single-threaded performance
* .NET Core has many perf improvements over .NET Framework

Investigate async socket IO performance on .NET Core 3.x/5.x compared to the 
current approach on Windows and Linux and refactor ClientSocket accordingly to 
avoid any blocking and a dedicated thread usage.

*UPDATE:* Non-blocking async IO is implemented in Ignite 3.x .NET thin client, 
use it as a reference: 
https://github.com/apache/ignite-3/blob/main/modules/platforms/dotnet/Apache.Ignite/Internal/ClientSocket.cs


  was:
.NET Thin Client was initially developed for Windows and .NET Framework. 
Benchmarks at that time proved that blocking socket IO was faster for 
single-threaded workload, and we developed a solution with a dedicated thread 
for response handling, and async APIs use blocking writes.

We may want to reconsider this design:
* Scalability is often more important than single-threaded performance
* .NET Core has many perf improvements over .NET Framework

Investigate async socket IO performance on .NET Core 3.x/5.x compared to the 
current approach on Windows and Linux and refactor ClientSocket accordingly to 
avoid any blocking and a dedicated thread usage.



> .NET: Thin Client: Use non-blocking socket IO
> ---------------------------------------------
>
>                 Key: IGNITE-13378
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13378
>             Project: Ignite
>          Issue Type: Improvement
>          Components: platforms
>    Affects Versions: 2.4
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .NET
>
> .NET Thin Client was initially developed for Windows and .NET Framework. 
> Benchmarks at that time proved that blocking socket IO was faster for 
> single-threaded workload, and we developed a solution with a dedicated thread 
> for response handling, and async APIs use blocking writes.
> We may want to reconsider this design:
> * Scalability is often more important than single-threaded performance
> * .NET Core has many perf improvements over .NET Framework
> Investigate async socket IO performance on .NET Core 3.x/5.x compared to the 
> current approach on Windows and Linux and refactor ClientSocket accordingly 
> to avoid any blocking and a dedicated thread usage.
> *UPDATE:* Non-blocking async IO is implemented in Ignite 3.x .NET thin 
> client, use it as a reference: 
> https://github.com/apache/ignite-3/blob/main/modules/platforms/dotnet/Apache.Ignite/Internal/ClientSocket.cs



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to