1913 Commits

Author SHA1 Message Date
antirez
1dfe75a09b Redis 2.4.9 2.4.9 2012-03-18 22:14:28 +01:00
antirez
8122954b9a Memory test feature backported into 2.4. 2012-03-18 22:08:44 +01:00
antirez
f5f95b35d5 More memory tests implemented. Default number of iterations lowered to a more acceptable value of 50. 2012-03-18 22:00:08 +01:00
antirez
015dba6adb Fixed typo. 2012-03-18 22:00:04 +01:00
antirez
83f0c677f8 Number of iteration of --test-memory is now 300 (several minutes per gigabyte). Memtest86 and Memtester links are also displayed while running the test. 2012-03-18 21:59:59 +01:00
antirez
a7e66f8048 On crash suggest to give --test-memory a try. 2012-03-18 21:59:52 +01:00
antirez
ae92e6dc15 Memory test function now less boring thanks to screen-wide progress bar. 2012-03-18 21:58:40 +01:00
antirez
e306e99029 Hem... actual memtest.c file added. 2012-03-18 21:58:35 +01:00
antirez
9c3bc7529d First implementation of --test-memory. Still a work in progress. 2012-03-18 21:58:24 +01:00
antirez
7961d7ea0d redis-benchmark: backported the more capable version from the unstable branch (pipelining,run selected tests,fixes) 2012-02-26 11:41:44 +01:00
antirez
a3b580c0c5 The universe is 80 columns wide, accept it. 2012-02-22 17:23:13 +01:00
Brad Voth
660a1277be updated utils/install_server.sh to support chkconfig boxes (redhat/
centos) as well as debian/ubuntu
2012-02-22 17:23:07 +01:00
antirez
b805430a9e Fix for issue #306, thanks to tchajed (on github) for the pull request. The original patch was reworked a bit. 2012-02-22 16:09:01 +01:00
antirez
a8a3275566 Redis-cli should accept help command even if there is no connection to the server. 2012-02-22 15:16:26 +01:00
antirez
bd624d0fc3 Redis version 2.4.8 2.4.8 2012-02-22 14:23:43 +01:00
antirez
f1654434de zzlIsInRange() now is capable of handling empty sorted sets that may end inside the data set when loading very old RDB files produced by early-stage versions of Redis. 2012-02-22 09:52:39 +01:00
Salvatore Sanfilippo
9f50ce0d8d Merge pull request #346 from pietern/2.4-segv
Force SIGSEGV without HAVE_BACKTRACE (2.4)
2012-02-21 10:29:34 -08:00
Pieter Noordhuis
c39b869460 Solaris has backtrace(3) 2012-02-21 10:11:20 -08:00
Pieter Noordhuis
a0dc1e6969 Also force SIGSEGV without HAVE_BACKTRACE 2012-02-21 10:05:46 -08:00
antirez
246c4c2322 Fixed undefined behavior in *INCR style functions overflow detection. Sorry clang! 2012-02-21 18:25:49 +01:00
antirez
2b0d9c5ac6 Added an unstalbe-alike distclean target to 2.4 Makefile. 2012-02-21 10:16:00 +01:00
antirez
19fb7404a4 Fix 32bit build of hiredis 2012-02-21 10:12:02 +01:00
antirez
11f0a23caf Applied a few modifications to hiredis to tune it for speed (redis-benchmark) and ability to read more deeply nested replies (redis-cli). 2012-02-21 10:11:47 +01:00
antirez
6887744245 The hiredis lib shipped with Redis was updated to latest version. 2012-02-21 10:11:37 +01:00
antirez
68897a5bbe bzero -> memset 2012-02-21 10:07:06 +01:00
antirez
cf7d3f9d3d Merge branch '2.4-issue327' into 2.4 2012-02-20 17:30:35 +01:00
antirez
f0c3b249cb Issue #330 regression test. 2012-02-16 16:15:13 +01:00
antirez
da8bcd28a5 Now HINCRBY can detect overflows too. Fix for issue #330. 2012-02-16 16:09:25 +01:00
antirez
b3a86b8209 Fixed a few broken stuff introduced while merging issue #327 related code in 2.4 2012-02-15 15:30:29 +01:00
antirez
31f9f987ac more practical maxmemory+slaves hint in redis.conf 2012-02-15 15:26:23 +01:00
antirez
662f25e805 redis.conf updated with new maxmemory semantics 2012-02-15 15:26:19 +01:00
antirez
f27d38862d debugging messages removed from freeMemoryIfNeeded() 2012-02-15 15:26:14 +01:00
antirez
4de73b7e0f Fixes to c->reply_bytes computation, and debug messages to closely study the behavior of memory pressure + slaves + maxmemory + blocked slaves. 2012-02-15 15:26:08 +01:00
antirez
8b1829009b Precision of getClientOutputBufferMemoryUsage() greatily improved, see issue #327 for more information. 2012-02-15 15:24:36 +01:00
antirez
35a4761f1d freeMemoryIfNeeded() minor refactoring 2012-02-15 15:22:57 +01:00
antirez
5a7999e66a Also remove size of AOF buffers from used memory when doing the math for freeMemoryIfNeeded() 2012-02-15 15:20:46 +01:00
antirez
c63e1b83c4 This fixes issue #327, is a very complex fix (unfortunately), details:
1) sendReplyToClient() now no longer stops transferring data to a single
client in the case we are out of memory (maxmemory-wise).

2) in processCommand() the idea of we being out of memory is no longer
the naive zmalloc_used_memory() > server.maxmemory. To say if we can
accept or not write queries is up to the return value of
freeMemoryIfNeeded(), that has full control about that.

3) freeMemoryIfNeeded() now does its math without considering output
buffers size. But at the same time it can't let the output buffers to
put us too much outside the max memory limit, so at the same time it
makes sure there is enough effort into delivering the output buffers to
the slaves, calling the write handler directly.

This three changes are the result of many tests, I found (partially
empirically) that is the best way to address the problem, but maybe
we'll find better solutions in the future.
2012-02-15 15:20:20 +01:00
antirez
05755f5c40 Initial version of c->reply_bytes implementation backported from unstable to 2.4, in order to apply issue 327 patches. 2012-02-15 15:20:05 +01:00
antirez
02b984c219 redis-check-aof is now large files safe also on 32 bit systems. 2012-02-14 19:57:31 +01:00
antirez
01b302aba4 add -f flag to cp when installing, otherwise stopping the server is
needed when installing a new Redis version. Thanks to Scott Kevill.
Fixes issue #335.
2012-02-14 16:15:42 +01:00
antirez
bad380bdb5 Redis 2.4.7 2.4.7 2012-02-02 15:29:24 +01:00
antirez
0b73cbb69f sds.c no longe pre-allocate more than 1MB of free space ahead. This fixes issue #252. 2012-02-02 12:40:44 +01:00
antirez
1cd0cdd523 Set a 3.5 GB maxmemory limit with noeviction policy if a 32 bit instance without user-provided memory limits is detected. 2012-02-02 10:17:21 +01:00
antirez
f373061563 Added a server.arch_bits field instead of computing it at runtime for INFO. 2012-02-02 10:02:40 +01:00
antirez
29b3794231 Only incremnet stats for key miss/hit when the key is semantically accessed in read-only. 2012-02-02 09:51:11 +01:00
Salvatore Sanfilippo
58bfbd1fa4 Merge pull request #296 from pietern/2.4-expirefix
Don't expire keys when loading an RDB after a SYNC
2012-01-16 01:18:41 -08:00
Pieter Noordhuis
aa794ac06d Don't expire keys when loading an RDB after a SYNC
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.
2012-01-13 18:03:33 -08:00
antirez
8b8261edc3 Possible fix for false positives in issue 141 regression test 2012-01-12 16:24:41 +01:00
antirez
fbfe656236 On crash print information about the current client (if any), command vector, and object associated to first argument assuming it is a key. 2012-01-12 16:16:23 +01:00
antirez
e1849b6456 Redis 2.4.6 2.4.6 2012-01-11 20:30:55 +01:00