1. 29 Oct, 2014 4 commits
    • antirez's avatar
      Diskless replication: rio fdset target new supports buffering. · 9a521e6c
      antirez authored
      To perform a socket write() for each RDB rio API write call was
      extremely unefficient, so now rio has minimal buffering capabilities.
      Writes are accumulated into a buffer and only when a given limit is
      reacehd are actually wrote to the N slaves FDs.
      
      Trivia: rio lacked support for buffering since our targets were:
      
      1) Memory buffers.
      2) C standard I/O.
      
      Both were buffered already.
      9a521e6c
    • antirez's avatar
      rio.c fdset target: tolerate (and report) a subset of FDs in error. · 2ed67e4a
      antirez authored
      Fdset target is used when we want to write an RDB file directly to
      slave's sockets. In this setup as long as there is a single slave that
      is still receiving our payload, we want to continue sennding instead of
      aborting. However rio calls should abort of no FD is ok.
      
      Also we want the errors reported so that we can signal the parent who is
      ok and who is broken, so there is a new set integers with the state of
      each fd. Zero is ok, non-zero is the errno of the failure, if avaialble,
      or a generic EIO.
      2ed67e4a
    • antirez's avatar
      38dee9dc
    • antirez's avatar
      rio.c refactoring before adding a new target. · 5d295fea
      antirez authored
      5d295fea
  2. 22 Jan, 2014 1 commit
    • antirez's avatar
      Use fflush() before fsync() in rio.c. · 248e9165
      antirez authored
      Incremental flushing in rio.c is only used to avoid huge kernel buffers
      synched to slow disks creating big latency spikes, so this fix has no
      durability implications, however it is certainly more correct to make
      sure that the FILE buffers are flushed to the kernel before calling
      fsync on the file descriptor.
      
      Thanks to Li Shao Kai for reporting this issue in the Redis mailing
      list.
      248e9165
  3. 16 Jul, 2013 1 commit
  4. 24 Apr, 2013 1 commit
  5. 29 Nov, 2012 1 commit
    • antirez's avatar
      Introduced the Build ID in INFO and --version output. · 3b71404d
      antirez authored
      The idea is to be able to identify a build in a unique way, so for
      instance after a bug report we can recognize that the build is the one
      of a popular Linux distribution and perform the debugging in the same
      environment.
      3b71404d
  6. 08 Nov, 2012 1 commit
  7. 10 Apr, 2012 3 commits
  8. 23 Oct, 2011 1 commit
  9. 22 Sep, 2011 2 commits
  10. 13 May, 2011 1 commit