Commit Graph
1922 Commits
Author SHA1 Message Date
antirez 8e5e8f0eca lookupKeyByPattern() used by SORT GET/BY rewritten. Fixes issue #460.
lookupKeyByPattern() was implemented with a trick to speedup the lookup
process allocating two fake Redis obejcts on the stack. However now that
we propagate expires to the slave as DEL operations the lookup of the
key may result into a call to expireIfNeeded() having the stack
allocated object as argument, that may in turn use it to create the
protocol to send to the slave. But since this fake obejcts are
inherently read-only this is a problem.

As a side effect of this fix there are no longer size limits in the
pattern to be used with GET/BY option of SORT.

See https://github.com/antirez/redis/issues/460 for bug details.
2012-04-17 18:27:18 +02:00
jokea 7b4dc9b979 implement aeWait using poll(2). Fixes issue #267. 2012-04-06 11:49:40 +02:00
antirez 95c6a1a5b8 Structure field controlling the INFO field master_link_down_since_seconds initialized correctly to avoid strange INFO output at startup when a slave has yet to connect to its master. 2012-04-04 18:31:37 +02:00
antirez 1fa954a558 Redis 2.4.10 2.4.10 2012-03-30 13:07:18 +02:00
antirez 06665b7191 Useless GCC warning suppressed. 2012-03-30 13:02:08 +02:00
Salvatore Sanfilippo 3c38b0876e Merge pull request #417 from josephjang/e95ca1db21b2dbe82f39a3f7f6390cb5f58dafae
a memory leak with replication on two or more dbs including >= db10
2012-03-30 01:28:58 -07:00
Joseph Jang e95ca1db21 Fixed a memory leak with replication
occurs when two or more dbs are replicated and at least one of them is >db10
2012-03-30 02:17:21 +09:00
antirez 6938960b66 Fix for slaves chains. Force resync of slaves (simply disconnecting them) when SLAVEOF turns a master into a slave. 2012-03-29 09:31:39 +02:00
antirez 9a5cbf9f7e Memory addressing test implemented. 2012-03-19 14:03:00 +01:00
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