• Moti Cohen's avatar
    HFE to support AOF and replicas (#13285) · 33fc0fbf
    Moti Cohen authored
    * For replica sake, rewrite commands `H*EXPIRE*` , `HSETF`, `HGETF` to
    have absolute unix time in msec.
    * On active-expiration of field, propagate HDEL to replica
    (`propagateHashFieldDeletion()`)
    * On lazy-expiration, propagate HDEL to replica (`hashTypeGetValue()`
    now calls `hashTypeDelete()`. It also takes care to call
    `propagateHashFieldDeletion()`).
    * Fix `H*EXPIRE*` command such that if it gets flag `LT` and it doesn’t
    have any expiration on the field then it will considered as valid
    condition.
    
    Note, replicas doesn’t make any active expiration, and should avoid lazy
    expiration. On `hashTypeGetValue()` it doesn't check expiration (As long
    as the master didn’t request to delete the field, it is valid)
    
    TODO: 
    * Attach `dbid` to HASH metadata. See
    [here](https://github.com/redis/redis/pull/13209#discussion_r1593385850
    
    )
    
    ---------
    Co-authored-by: default avatardebing.sun <debing.sun@redis.com>
    33fc0fbf
module.c 565 KB