1. 31 7月, 2012 2 次提交
    • S
      Truncate short write from the AOF · 4c0c1fff
      Saj Goonatilleke 提交于
      If Redis only manages to write out a partial buffer, the AOF file won't
      load back into Redis the next time it starts up.  It is better to
      discard the short write than waste time running redis-check-aof.
      4c0c1fff
    • S
      New in INFO: aof_last_bgrewrite_status · f00b0844
      Saj Goonatilleke 提交于
      Behaves like rdb_last_bgsave_status -- even down to reporting 'ok' when
      no rewrite has been done yet.  (You might want to check that
      aof_last_rewrite_time_sec is not -1.)
      f00b0844
  2. 25 5月, 2012 1 次提交
    • A
      Four new persistence fields in INFO. A few renamed. · 6b4d92e2
      antirez 提交于
      The 'persistence' section of INFO output now contains additional four
      fields related to RDB and AOF persistence:
      
       rdb_last_bgsave_time_sec       Duration of latest BGSAVE in sec.
       rdb_current_bgsave_time_sec    Duration of current BGSAVE in sec.
       aof_last_rewrite_time_sec      Duration of latest AOF rewrite in sec.
       aof_current_rewrite_time_sec   Duration of current AOF rewrite in sec.
      
      The 'current' fields are set to -1 if a BGSAVE / AOF rewrite is not in
      progress. The 'last' fileds are set to -1 if no previous BGSAVE / AOF
      rewrites were performed.
      
      Additionally a few fields in the persistence section were renamed for
      consistency:
      
       changes_since_last_save -> rdb_changes_since_last_save
       bgsave_in_progress -> rdb_bgsave_in_progress
       last_save_time -> rdb_last_save_time
       last_bgsave_status -> rdb_last_bgsave_status
       bgrewriteaof_in_progress -> aof_rewrite_in_progress
       bgrewriteaof_scheduled -> aof_rewrite_scheduled
      
      After the renaming, fields in the persistence section start with rdb_ or
      aof_ prefix depending on the persistence method they describe.
      The field 'loading' and related fields are not prefixed because they are
      unique for both the persistence methods.
      6b4d92e2
  3. 24 5月, 2012 1 次提交
    • A
      Allow an AOF rewrite buffer > 2GB (Fix for issue #504). · edb95253
      antirez 提交于
      During the AOF rewrite process, the parent process needs to accumulate
      the new writes in an in-memory buffer: when the child will terminate the
      AOF rewriting process this buffer (that ist the difference between the
      dataset when the rewrite was started, and the current dataset) is
      flushed to the new AOF file.
      
      We used to implement this buffer using an sds.c string, but sds.c has a
      2GB limit. Sometimes the dataset can be big enough, the amount of writes
      so high, and the rewrite process slow enough that we overflow the 2GB
      limit, causing a crash, documented on github by issue #504.
      
      In order to prevent this from happening, this commit introduces a new
      system to accumulate writes, implemented by a linked list of blocks of
      10 MB each, so that we also avoid paying the reallocation cost.
      
      Note that theoretically modern operating systems may implement realloc()
      simply as a remaping of the old pages, thus with very good performances,
      see for instance the mremap() syscall on Linux. However this is not
      always true, and jemalloc by default avoids doing this because there are
      issues with the current implementation of mremap().
      
      For this reason we are using a linked list of blocks instead of a single
      block that gets reallocated again and again.
      
      The changes in this commit lacks testing, that will be performed before
      merging into the unstable branch. This fix will not enter 2.4 because it
      is too invasive. However 2.4 will log a warning when the AOF rewrite
      buffer is near to the 2GB limit.
      edb95253
  4. 23 5月, 2012 1 次提交
    • A
      Use comments to split aof.c into sections. · 27fc5bf5
      antirez 提交于
      This makes the code more readable, it is still not the case to split the
      file itself into three different files, but the logical separation
      improves the readability especially since new commits are going to
      introduce an additional section.
      27fc5bf5
  5. 08 4月, 2012 1 次提交
  6. 28 3月, 2012 1 次提交
  7. 25 3月, 2012 1 次提交
    • A
      New INFO field aof_delayed_fsync introduced. · 81f32c7b
      antirez 提交于
      This new field counts all the times Redis is configured with AOF enabled and
      fsync policy 'everysec', but the previous fsync performed by the
      background thread was not able to complete within two seconds, forcing
      Redis to perform a write against the AOF file while the fsync is still
      in progress (likely a blocking operation).
      81f32c7b
  8. 14 3月, 2012 1 次提交
  9. 10 3月, 2012 1 次提交
  10. 24 1月, 2012 1 次提交
  11. 23 1月, 2012 1 次提交
  12. 17 1月, 2012 1 次提交
  13. 03 1月, 2012 1 次提交
  14. 22 12月, 2011 1 次提交
  15. 21 12月, 2011 6 次提交
  16. 16 12月, 2011 1 次提交
  17. 15 12月, 2011 1 次提交
  18. 13 12月, 2011 5 次提交
  19. 12 11月, 2011 1 次提交
  20. 11 11月, 2011 1 次提交
  21. 10 11月, 2011 1 次提交
  22. 09 11月, 2011 2 次提交
  23. 26 10月, 2011 1 次提交
  24. 08 10月, 2011 1 次提交
  25. 22 9月, 2011 1 次提交
  26. 19 9月, 2011 2 次提交
  27. 16 9月, 2011 2 次提交