- 
                Notifications
    You must be signed in to change notification settings 
- Fork 43
Makes health checks flexible so they don't tear down connections under heavy load #328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
            anarthal
  merged 41 commits into
  boostorg:develop
from
anarthal:feature/flexible-health-checks
  
      
      
   
  Oct 20, 2025 
      
    
  
     Merged
                    Changes from all commits
      Commits
    
    
            Show all changes
          
          
            41 commits
          
        
        Select commit
          Hold shift + click to select a range
      
      17dc0a9
              
                Rebase initial impl on develop
              
              
                anarthal c405188
              
                Use connection_state in the writer
              
              
                anarthal 18267e2
              
                writer timeouts in actions
              
              
                anarthal 4f0ada4
              
                Fix possible problems with no timeouts
              
              
                anarthal 3fd35fe
              
                make action a variant
              
              
                anarthal 0edc958
              
                Make timeout part of the read action
              
              
                anarthal 884799b
              
                Initial test
              
              
                anarthal 60d957e
              
                refactor
              
              
                anarthal e2fd373
              
                Fix reader tests
              
              
                anarthal b06c554
              
                test health checks disabled
              
              
                anarthal 80ddad9
              
                test read timeout
              
              
                anarthal d3da431
              
                Fix comment
              
              
                anarthal 9435195
              
                simplify writer
              
              
                anarthal 9ecbdb4
              
                Make writer tests build
              
              
                anarthal daa7903
              
                stronger writer_action interface
              
              
                anarthal 03f470d
              
                Make writer_action use offset
              
              
                anarthal 1d44ac4
              
                Fix writer tests
              
              
                anarthal 235ac67
              
                Fix a partial success problem
              
              
                anarthal 7df92f3
              
                short writes test
              
              
                anarthal 0a79bf1
              
                add const
              
              
                anarthal 1041496
              
                rework writer 1
              
              
                anarthal 75d9df9
              
                write_timeout error
              
              
                anarthal 9c5f965
              
                rework logging
              
              
                anarthal df7554d
              
                write timeout test
              
              
                anarthal 678f0c2
              
                ping success
              
              
                anarthal 87c4262
              
                ping error
              
              
                anarthal 843ae9e
              
                Docs
              
              
                anarthal b9a44b8
              
                Remove some health check disables in tests
              
              
                anarthal 5ddcdd5
              
                health checks disabled
              
              
                anarthal aaccbb4
              
                Remove unnecessary ping_resp
              
              
                anarthal e448731
              
                Use cancel_at
              
              
                anarthal b2c150d
              
                include cleanup
              
              
                anarthal 2af5702
              
                Move the write offset to the multiplexer
              
              
                anarthal a8a7a6a
              
                Fix multiplexer tests
              
              
                anarthal 65e729d
              
                short writes test
              
              
                anarthal a052493
              
                Remove unused multiplexer::is_writing
              
              
                anarthal e5ef3ff
              
                Fix exec_fsm tests
              
              
                anarthal b9ee182
              
                Fix writer fsm tests
              
              
                anarthal 3c24417
              
                Fix failing multiplexer tests
              
              
                anarthal 0028adf
              
                Remove unused function
              
              
                anarthal 0a0d5a6
              
                Missing includes
              
              
                anarthal File filter
Filter by extension
Conversations
          Failed to load comments.   
        
        
          
      Loading
        
  Jump to
        
          Jump to file
        
      
      
          Failed to load files.   
        
        
          
      Loading
        
  Diff view
Diff view
There are no files selected for viewing
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
      
      Oops, something went wrong.
        
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sidenote: When the user does not provide one id, I think we should format this to contain the id returned by the
HELLOcommand.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does it mean "does not provide one id" here? Leave
health_check_idto the default? Makehealth_check_idempty?The change is not trivial because it requires coordination between the setup task (which may not contain a HELLO at all) and the health checker.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean, if the user does not provide its own
health_check_idthe connection could set it to "Boost.Redis (conn-id)". At the moment we only set to "Boost.Redis".There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'd need to detect whether the setup request contains a hello, and then parse the response and update the ping ID. Do you think it's worth it?