• DarrenJiang13's avatar
    Adds isolated netstats for replication. (#10062) · bb1de082
    DarrenJiang13 authored
    
    
    The amount of `server.stat_net_output_bytes/server.stat_net_input_bytes`
    is actually the sum of replication flow and users' data flow. 
    It may cause confusions like this:
    "Why does my server get such a large output_bytes while I am doing nothing? ". 
    
    After discussions and revisions, now here is the change about what this
    PR brings (final version before merge):
    - 2 server variables to count the network bytes during replication,
         including fullsync and propagate bytes.
         - `server.stat_net_repl_output_bytes`/`server.stat_net_repl_input_bytes`
    - 3 info fields to print the input and output of repl bytes and instantaneous
         value of total repl bytes.
         - `total_net_repl_input_bytes` / `total_net_repl_output_bytes`
         - `instantaneous_repl_total_kbps`
    - 1 new API `rioCheckType()` to check the type of rio. So we can use this
         to distinguish between diskless and diskbased replication
    - 2 new counting items to keep network statistics consistent between master
         and slave
        - rdb portion during diskless replica. in `rdbLoadProgressCallback()`
        - first line of the full sync payload. in `readSyncBulkPayload()`
    Co-authored-by: default avatarOran Agra <oran@redislabs.com>
    bb1de082
replication.c 163 KB