Skip to content
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

socket_manager: add feature to share sockets with another server #150

Commits on Oct 22, 2024

  1. socket_manager: add feature to share sockets with another server

    Another process can take over UDP/TCP sockets without downtime.
    
        server = ServerEngine::SocketManager::Server.share_sockets_with_another_server(path)
    
    This starts a new server that shares all UDP/TCP sockets with
    the existing server.
    The old process should stop without removing the file for the
    socket after the new process starts.
    
    This allows us to replace both the server and the
    workers with new processes without socket downtime.
    (The existing live restart feature does not support network
    servers. We can restart workers without downtime, but there is
    no way to restart the network server without downtime.)
    
    ref: fluent/fluentd#4622
    
    Limitation: This feature would not work well if the process
    opens new TCP ports frequently.
    
    Signed-off-by: Daijiro Fukuda <[email protected]>
    Co-authored-by: Shizuo Fujita <[email protected]>
    daipom and Watson1978 committed Oct 22, 2024
    Configuration menu
    Copy the full SHA
    9a42d6b View commit details
    Browse the repository at this point in the history