Skip to content
  • Libing Song's avatar
    c722778c
    WL#6630 Semisync separate acks collector · c722778c
    Libing Song authored
    FEATURE
    =======
    Before this feature, acknowledgments were received in dump threads. After
    sending an acknowledgment request, dump threads needed to receive the
    acknowledgment immediately. So the following events were delayed and
    delaying time was depended on the network situation.
    
    All slave connections are based on TCP which is duplex. It means we
    can send binary events and receive acknowledgments simultaneously.
    In this way, binary events can be sent without delay.
    
    This worklog implement above feature.
    
    DESIGN
    ======
    * Start/Stop ack receive thread
      The thread is controlled automatically by semisync master.
    
      - It is started automatically when enabling semisync master through
        SET rpl_semi_sync_master_enabled = ON
    
      - It is stopped automatically when disabling semisync master through
        SET rpl_semi_sync_master_enabled = OFF
    
    * Show ack receive thread status to performance_schema.threads
    
      - Ack receive thread status can be showed through querying
        performance_schema.threads table, when semisync master is on(ack thread is
        up).
    
      - PROCESSLIST_STATE contents
        1. Waiting for semi-sync slave connection.
        2. Waiting for semi-sync ACK from slave.
        3. Reading semi-sync ACK from slave.
    c722778c
    WL#6630 Semisync separate acks collector
    Libing Song authored
    FEATURE
    =======
    Before this feature, acknowledgments were received in dump threads. After
    sending an acknowledgment request, dump threads needed to receive the
    acknowledgment immediately. So the following events were delayed and
    delaying time was depended on the network situation.
    
    All slave connections are based on TCP which is duplex. It means we
    can send binary events and receive acknowledgments simultaneously.
    In this way, binary events can be sent without delay.
    
    This worklog implement above feature.
    
    DESIGN
    ======
    * Start/Stop ack receive thread
      The thread is controlled automatically by semisync master.
    
      - It is started automatically when enabling semisync master through
        SET rpl_semi_sync_master_enabled = ON
    
      - It is stopped automatically when disabling semisync master through
        SET rpl_semi_sync_master_enabled = OFF
    
    * Show ack receive thread status to performance_schema.threads
    
      - Ack receive thread status can be showed through querying
        performance_schema.threads table, when semisync master is on(ack thread is
        up).
    
      - PROCESSLIST_STATE contents
        1. Waiting for semi-sync slave connection.
        2. Waiting for semi-sync ACK from slave.
        3. Reading semi-sync ACK from slave.
Loading