- 15 1月, 2013 1 次提交
-
-
由 antirez 提交于
Sometimes it is much simpler to debug complex Redis installations if it is possible to assign clients a name that is displayed in the CLIENT LIST output. This is the case, for example, for "leaked" connections. The ability to provide a name to the client makes it quite trivial to understand what is the part of the code implementing the client not releasing the resources appropriately. Behavior: CLIENT SETNAME: set a name for the client, or remove the current name if an empty name is set. CLIENT GETNAME: get the current name, or a nil. CLIENT LIST: now displays the client name if any. Thanks to Mark Gravell for pushing this idea forward.
-
- 19 11月, 2012 1 次提交
-
-
由 antirez 提交于
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.
-
- 09 11月, 2012 1 次提交
-
-
由 antirez 提交于
-
- 18 7月, 2012 2 次提交
-
-
由 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.
-
由 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.)
-
- 25 5月, 2012 1 次提交
-
-
由 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.
-
- 24 5月, 2012 1 次提交
-
-
由 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.
-
- 21 5月, 2012 1 次提交
-
-
由 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.
-
- 07 4月, 2012 1 次提交
-
-
由 antirez 提交于
-
- 27 3月, 2012 1 次提交
-
-
由 Premysl Hruby 提交于
-
- 25 3月, 2012 1 次提交
-
-
由 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).
-
- 14 3月, 2012 1 次提交
-
-
由 antirez 提交于
-
- 10 3月, 2012 1 次提交
-
-
由 antirez 提交于
Added a top-function comment to rioWriteHashIteratorCursor() to better specify what the function does. Not immediately clear from the name.
-
- 24 1月, 2012 1 次提交
-
-
由 antirez 提交于
-
- 23 1月, 2012 1 次提交
-
-
由 antirez 提交于
Implementation of the internals that make possible to terminate clients overcoming configured output buffer (soft and hard) limits.
-
- 17 1月, 2012 1 次提交
-
-
由 antirez 提交于
Track the length of the client pending output buffers (still to transfer) in a new field in the client structure.
-
- 03 1月, 2012 1 次提交
-
-
由 Pieter Noordhuis 提交于
-
- 22 12月, 2011 1 次提交
-
-
由 antirez 提交于
-
- 21 12月, 2011 6 次提交
- 16 12月, 2011 1 次提交
-
-
由 antirez 提交于
Fix: when aof_write_rewrite is true don't append on the AOF buffer but accumulate the differences for the rewrite.
-
- 15 12月, 2011 1 次提交
-
-
由 antirez 提交于
AOF fixes in the context of replicaiton (when AOF is used by slave) and CONFIG SET appendonly yes/no.
-
- 13 12月, 2011 5 次提交
- 12 11月, 2011 1 次提交
-
-
由 antirez 提交于
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().
-
- 11 11月, 2011 1 次提交
-
-
由 antirez 提交于
high resolution expires API modified to use separated commands. AOF transation to PEXPIREAT of all the expire-style commands fixed.
-
- 10 11月, 2011 1 次提交
-
-
由 antirez 提交于
-
- 09 11月, 2011 2 次提交
-
-
由 antirez 提交于
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.
-
由 antirez 提交于
-
- 26 10月, 2011 1 次提交
-
-
由 antirez 提交于
Clear the AOF rewrite scheduled flag once an AOF rewrite is triggered. Fix for issue #161, probably fixing 159 as well.
-
- 08 10月, 2011 1 次提交
-
-
由 antirez 提交于
Thanks to @ardsrk.
-
- 22 9月, 2011 1 次提交
-
-
由 antirez 提交于
rioInitWithFile nad rioInitWithBuffer functions now take a rio structure pointer to avoid copying a structure to return value to the caller.
-
- 19 9月, 2011 1 次提交
-
-
由 antirez 提交于
-