- 07 Nov, 2013 1 commit
-
-
antirez authored
Thanks to @PhoneLi for reporting.
-
- 27 Aug, 2013 1 commit
-
-
antirez authored
-
- 20 Aug, 2013 1 commit
-
-
antirez authored
-
- 02 Apr, 2013 1 commit
-
-
antirez authored
When a BGSAVE fails, Redis used to flood itself trying to BGSAVE at every next cron call, that is either 10 or 100 times per second depending on configuration and server version. This commit does not allow a new automatic BGSAVE attempt to be performed before a few seconds delay (currently 5). This avoids both the auto-flood problem and filling the disk with logs at a serious rate. The five seconds limit, considering a log entry of 200 bytes, will use less than 4 MB of disk space per day that is reasonable, the sysadmin should notice before of catastrofic events especially since by default Redis will stop serving write queries after the first failed BGSAVE. This fixes issue #849
-
- 13 Mar, 2013 2 commits
-
-
antirez authored
-
Damian Janowski authored
This fixes cases where the RDB file does exist but can't be accessed for any reason. For instance, when the Redis process doesn't have enough permissions on the file.
-
- 19 Jan, 2013 2 commits
-
-
antirez authored
This commit fixes issue #875 that was caused by the following events: 1) There is an active child doing BGSAVE. 2) flushall is called (or any other condition that makes Redis killing the saving child process). 3) An error is sensed by Redis as the child exited with an error (killed by a singal), that stops accepting write commands until a BGSAVE happens to be executed with success. Whitelisting SIGUSR1 and making sure Redis always uses this signal in order to kill its own children fixes the issue.
-
guiquanz authored
-
- 20 Nov, 2012 1 commit
-
-
antirez authored
Finally Redis is able to report the amount of memory used by copy-on-write while saving an RDB or writing an AOF file in background. Note that this information is currently only logged (at NOTICE level) and not shown in INFO because this is less trivial (but surely doable with some minor form of interprocess communication). The reason we can't capture this information on the parent before we call wait3() is that the Linux kernel will release the child memory ASAP, and only retain the minimal state for the process that is useful to report the child termination to the parent. The COW size is obtained by summing all the Private_Dirty fields found in the "smap" file inside the proc filesystem for the process. All this is Linux specific and is not available on other systems.
-
- 08 Nov, 2012 1 commit
-
-
antirez authored
-
- 24 Oct, 2012 1 commit
-
-
antirez authored
-
- 27 Sep, 2012 1 commit
-
-
Erik Dubbelboer authored
-
- 02 Jun, 2012 1 commit
-
-
antirez authored
Improved comments to make clear that rdbLoadType() just loads a general TYPE in the context of RDB that can be an object type or an expire type, end-of-file, and so forth. While rdbLoadObjectType() enforces that the type is a valid Object Type otherwise it returns -1.
-
- 25 May, 2012 1 commit
-
-
antirez authored
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.
-
- 24 Apr, 2012 1 commit
-
-
antirez authored
-
- 10 Apr, 2012 4 commits
- 08 Apr, 2012 1 commit
-
-
antirez authored
-
- 07 Apr, 2012 1 commit
-
-
antirez authored
Removed dead code: function rdbSaveTime() is no longer used since RDB now saves expires in milliseconds.
-
- 02 Apr, 2012 1 commit
-
-
antirez authored
-
- 23 Mar, 2012 1 commit
-
-
antirez authored
-
- 13 Mar, 2012 2 commits
-
-
antirez authored
RDB hashes loading, fixed another bug in the loading of HT-encoded hashes: when the hash entry is too big for ziplist, add the field, then convert. The code used to break before the new entry was inserted, resulting into missing fields in the loaded Hash object.
-
antirez authored
RDB hashes loading fixed removing the assertion that failed every time an HT-encoded hash was loaded.
-
- 10 Mar, 2012 1 commit
-
-
antirez authored
RDB version is no 4, because small hashes are now encoded as ziplists, so older versions of Redis will not understand this format.
-
- 07 Mar, 2012 1 commit
-
-
antirez authored
Redis now refuses accepting write queries if RDB persistence is configured, but RDB snapshots can't be generated for some reason. The status of the latest background save operation is now exposed in the INFO output as well. This fixes issue #90.
-
- 16 Feb, 2012 1 commit
-
-
Pieter Noordhuis authored
The cron is responsible for expiring keys. When keys are expired at load time, it is possible that the snapshot of a master node gets modified. This can in turn lead to inconsistencies in the data set. A more concrete example of this behavior follows. A user reported a slave that would show an monotonically increase input buffer length, shortly after completing a SYNC. Also, `INFO` output showed a single blocked client, which could only be the master link. Investigation showed that indeed the `BRPOP` command was fed by the master. This command can only end up in the stream of write operations when it did NOT block, and effectively executed `RPOP`. However, when the key involved in the `BRPOP` is expired BEFORE the command is executed, the client executing it will block. The client in this case, is the master link.
-
- 25 Jan, 2012 1 commit
-
-
Pieter Noordhuis authored
-
- 03 Jan, 2012 1 commit
-
-
Pieter Noordhuis authored
-
- 21 Dec, 2011 2 commits
- 12 Nov, 2011 1 commit
-
-
antirez authored
Fixed issues with expire introduced with latest millisecond resolution feature. Many time_t were not converted to long long, and one time() call was not replaced with mstime().
-
- 09 Nov, 2011 3 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
Initial support for key expire times with millisecond resolution. RDB version is now 3, new opcoded added for high resolution times. Redis is still able to correctly load RDB version 2. Tests passing but still a work in progress. API to specify milliseconds expires still missing, but the precision of normal expires is now already improved and working.
-
- 08 Nov, 2011 1 commit
-
-
antirez authored
-
- 23 Oct, 2011 1 commit
-
-
antirez authored
A past commit removed the inclusion of redis.h from rdb.c, completely breaking 32 bit builds under Linux.
-
- 14 Oct, 2011 1 commit
-
-
antirez authored
Ref: issue #103
-
- 04 Oct, 2011 1 commit
-
-
antirez authored
-