1. 15 May, 2020 1 commit
    • antirez's avatar
      Cache master without checking of deferred close flags. · 1a7cd2c0
      antirez authored
      The context is issue #7205: since the introduction of threaded I/O we close
      clients asynchronously by default from readQueryFromClient(). So we
      should no longer prevent the caching of the master client, to later
      PSYNC incrementally, if such flags are set. However we also don't want
      the master client to be cached with such flags (would be closed
      immediately after being restored). And yet we want a way to understand
      if a master was closed because of a protocol error, and in that case
      prevent the caching.
      1a7cd2c0
  2. 14 May, 2020 4 commits
  3. 12 May, 2020 2 commits
  4. 11 May, 2020 1 commit
    • Oran Agra's avatar
      fix redis 6.0 not freeing closed connections during loading. · 905e28ee
      Oran Agra authored
      This bug was introduced by a recent change in which readQueryFromClient
      is using freeClientAsync, and despite the fact that now
      freeClientsInAsyncFreeQueue is in beforeSleep, that's not enough since
      it's not called during loading in processEventsWhileBlocked.
      furthermore, afterSleep was called in that case but beforeSleep wasn't.
      
      This bug also caused slowness sine the level-triggered mode of epoll
      kept signaling these connections as readable causing us to keep doing
      connRead again and again for ll of these, which keep accumulating.
      
      now both before and after sleep are called, but not all of their actions
      are performed during loading, some are only reserved for the main loop.
      
      fixes issue #7215
      905e28ee
  5. 10 May, 2020 1 commit
  6. 09 May, 2020 3 commits
    • antirez's avatar
      Cluster: clarify we always resolve the sender. · 4387ba6a
      antirez authored
      4387ba6a
    • antirez's avatar
      Cluster: refactor ping/data delay handling. · 79de9d6c
      antirez authored
      79de9d6c
    • antirez's avatar
      Cluster: introduce data_received field. · 00a3bc43
      antirez authored
      We want to send pings and pongs at specific intervals, since our packets
      also contain information about the configuration of the cluster and are
      used for gossip. However since our cluster bus is used in a mixed way
      for data (such as Pub/Sub or modules cluster messages) and metadata,
      sometimes a very busy channel may delay the reception of pong packets.
      So after discussing it in #7216, this commit introduces a new field that
      is not exposed in the cluster, is only an internal information about
      the last time we received any data from a given node: we use this field
      in order to avoid detecting failures, claiming data reception of new
      data from the node is a proof of liveness.
      00a3bc43
  7. 06 May, 2020 2 commits
  8. 05 May, 2020 8 commits
  9. 04 May, 2020 6 commits
  10. 03 May, 2020 1 commit
  11. 02 May, 2020 4 commits
    • hwware's avatar
    • zhenwei pi's avatar
      Support setcpuaffinity on linux/bsd · 1a0deab2
      zhenwei pi authored
      Currently, there are several types of threads/child processes of a
      redis server. Sometimes we need deeply optimise the performance of
      redis, so we would like to isolate threads/processes.
      
      There were some discussion about cpu affinity cases in the issue:
      https://github.com/antirez/redis/issues/2863
      
      
      
      So implement cpu affinity setting by redis.conf in this patch, then
      we can config server_cpulist/bio_cpulist/aof_rewrite_cpulist/
      bgsave_cpulist by cpu list.
      
      Examples of cpulist in redis.conf:
      server_cpulist 0-7:2      means cpu affinity 0,2,4,6
      bio_cpulist 1,3           means cpu affinity 1,3
      aof_rewrite_cpulist 8-11  means cpu affinity 8,9,10,11
      bgsave_cpulist 1,10-11    means cpu affinity 1,10,11
      
      Test on linux/freebsd, both work fine.
      Signed-off-by: default avatarzhenwei pi <pizhenwei@bytedance.com>
      1a0deab2
    • Oran Agra's avatar
      optimize memory usage of deferred replies - fixed · 6726b3c2
      Oran Agra authored
      When deffered reply is added the previous reply node cannot be used so
      all the extra space we allocated in it is wasted. in case someone uses
      deffered replies in a loop, each time adding a small reply, each of
      these reply nodes (the small string reply) would have consumed a 16k
      block.
      now when we add anther diferred reply node, we trim the unused portion
      of the previous reply block.
      
      see #7123
      
      cherry picked from commit fb732f7a
      with fix to handle a crash with LIBC allocator, which apparently can
      return the same pointer despite changing it's size.
      i.e. shrinking an allocation of 16k into 56 bytes without changing the
      pointer.
      6726b3c2
    • Benjamin Sergeant's avatar
      Update redis-cli.c · 93021da2
      Benjamin Sergeant authored
      93021da2
  12. 01 May, 2020 3 commits
  13. 30 Apr, 2020 4 commits