Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-7061

Under heavy load and many threads the C++ Native client may open lots of connections

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.11.0
    • native client
    • None

    Description

      Under heavy load and many threads (>30) the C++ Native client tends to open a lot of connections which, if the idleTimeout is not relatively small, could provoke client port exhaustion.

      The reason for this uncontrolled creation of connections is the implementation of the thread managing connections (ThinClientPoolDM::cleanStaleConnections()) that, in order to determine which connections to close due to timeout or load conditioning, gets all the connections from the pool for some time. Threads requiring a connection when this operation is fired, will create new connections while the maximum is not reached.

      The proposed solution consists of changing the implementation of the cleanStaleConnections so that it does not get all the connections from the pool at some point but instead, takes one at a time in order to determine if it should close it.

      Attachments

        Issue Links

          Activity

            People

              alberto.gomez Alberto Gomez
              alberto.gomez Alberto Gomez
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 50m
                  50m