Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-13378

.NET: Thin Client: Use non-blocking socket IO

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.4
    • None
    • platforms
    • Release Notes Required

    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

      Attachments

        Issue Links

          Activity

            People

              ptupitsyn Pavel Tupitsyn
              ptupitsyn Pavel Tupitsyn
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: