• Itamar Haber's avatar
    Add stream consumer group lag tracking and reporting (#9127) · c81c7f51
    Itamar Haber authored
    Adds the ability to track the lag of a consumer group (CG), that is, the number
    of entries yet-to-be-delivered from the stream.
    
    The proposed constant-time solution is in the spirit of "best-effort."
    
    Partially addresses #8737.
    
    ## Description of approach
    
    We add a new "entries_added" property to the stream. This starts at 0 for a new
    stream and is incremented by 1 with every `XADD`.  It is essentially an all-time
    counter of the entries added to the stream.
    
    Given the stream's length and this counter value, we can trivially find the logical
    "entries_added" counter of the first ID if and only if the stream is contiguous.
    A fragmented stream contains one or more tombstones generated by `XDEL`s.
    The new "xdel_max_id" stream property tracks the latest tombstone.
    
    The CG also tracks its last delivered ID's as an "entries_read" counter and
    increments it independently when delivering new messages, unless the this
    read counter is inv...
    c81c7f51
xgroup-create.json 2.04 KB