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

storage,nodedialer,kv,rpc: introduce connection class to separate system traffic #39172

Merged

Commits on Aug 6, 2019

  1. rpc,nodedialer: introduce ConnectionClass

    This commit the concept of a ConnectionClass. Each *Connection corresponds to a
    single ConnectionClass. This allows multiple connections to exist between each
    node while sharing remote clock monitoring, statistics, tracing, and
    interceptors.
    
    Release note: None
    ajwerner committed Aug 6, 2019
    Configuration menu
    Copy the full SHA
    5adcf56 View commit details
    Browse the repository at this point in the history
  2. rpc: add testing knobs to inject inteceptors

    Testing multiple connections requires being able to interfere with connections.
    Initial testing code used a TCP proxy to disrupt underlying communication.
    That approach was deemed to heavyweight and not particularly extensible.
    This approach allows tests to exercise a wide degree of control over rpc
    communication.
    
    Release note: None
    ajwerner committed Aug 6, 2019
    Configuration menu
    Copy the full SHA
    8ec2b83 View commit details
    Browse the repository at this point in the history
  3. kv: adopt rpc.ConnectionClass

    This commit extends the poorly abstracted TransportFactory interface to
    additionally capture connection class. It then utilizes this new property
    in the DistSender to separate traffic intended for critical system ranges
    from all other traffic.
    
    Release note: None
    ajwerner committed Aug 6, 2019
    Configuration menu
    Copy the full SHA
    041e5d3 View commit details
    Browse the repository at this point in the history
  4. storage: adopt rpc.ConnectionClass in raftTransport

    This commit adopts the ConnectionClass in the storage raftTransport to separate
    raft messages for system ranges from that of other ranges.
    
    Release note: None
    ajwerner committed Aug 6, 2019
    Configuration menu
    Copy the full SHA
    7dcf66d View commit details
    Browse the repository at this point in the history
  5. storage: add a unit test demonstrating the use of separate connections

    This adds a unit test that exercises the change to the raftTransport to
    use a separate connection for system traffic from regular traffic.
    
    Release note: None
    ajwerner committed Aug 6, 2019
    Configuration menu
    Copy the full SHA
    ecee66c View commit details
    Browse the repository at this point in the history