]> git.saurik.com Git - redis.git/log
redis.git
12 years agoMerge pull request #496 from pietern/2.6-makeinstall
Salvatore Sanfilippo [Tue, 15 May 2012 09:18:03 +0000 (02:18 -0700)] 
Merge pull request #496 from pietern/2.6-makeinstall

Fix `install` target on OSX (see #495)

12 years agoMerge pull request #510 from pietern/2.6-eventport
Salvatore Sanfilippo [Tue, 15 May 2012 09:16:55 +0000 (02:16 -0700)] 
Merge pull request #510 from pietern/2.6-eventport

Support for Illumos event ports

12 years agoWhitespace
Pieter Noordhuis [Mon, 14 May 2012 18:06:34 +0000 (11:06 -0700)] 
Whitespace

12 years agouse port_getn instead of port_get
Dave Pacheco [Tue, 27 Mar 2012 03:41:58 +0000 (20:41 -0700)] 
use port_getn instead of port_get

12 years agofirst cut at event port support
Dave Pacheco [Tue, 27 Mar 2012 00:58:19 +0000 (17:58 -0700)] 
first cut at event port support

12 years agoAdded time.h include in redis-cli.
antirez [Mon, 14 May 2012 15:35:51 +0000 (17:35 +0200)] 
Added time.h include in redis-cli.

redis-cli.c uses the time() function to seed the PRNG, but time.h was
not included. This was not noticed since sys/time.h is included and was
enough in most systems (but not correct). With Ubuntu 12.04 GCC
generates a warning that made us aware of the issue.

12 years agoactiveExpireCycle(): better precision in max time used.
antirez [Mon, 14 May 2012 14:04:41 +0000 (16:04 +0200)] 
activeExpireCycle(): better precision in max time used.

activeExpireCycle() can consume no more than a few milliseconds per
iteration. This commit improves the precision of the check for the time
elapsed in two ways:

1) We check every 16 iterations instead of the main loop instead of 256.
2) We reset iterations at the start of the function and not every time
   we switch to the next database, so the check is correctly performed
   every 16 iterations.

12 years agoImpovements for: Redis timer, hashes rehashing, keys collection.
antirez [Sun, 13 May 2012 19:52:35 +0000 (21:52 +0200)] 
Impovements for: Redis timer, hashes rehashing, keys collection.

A previous commit introduced REDIS_HZ define that changes the frequency
of calls to the serverCron() Redis function. This commit improves
different related things:

1) Software watchdog: now the minimal period can be set according to
REDIS_HZ. The minimal period is two times the timer period, that is:

    (1000/REDIS_HZ)*2 milliseconds

2) The incremental rehashing is now performed in the expires dictionary
as well.

3) The activeExpireCycle() function was improved in different ways:

- Now it checks if it already used too much time using microseconds
  instead of milliseconds for better precision.
- The time limit is now calculated correctly, in the previous version
  the division was performed before of the multiplication resulting in
  a timelimit of 0 if HZ was big enough.
- Databases with less than 1% of buckets fill in the hash table are
  skipped, because getting random keys is too expensive in this
  condition.

4) tryResizeHashTables() is now called at every timer call, we need to
   match the number of calls we do to the expired keys colleciton cycle.

5) REDIS_HZ was raised to 100.

12 years agoRedis timer interrupt frequency configurable as REDIS_HZ.
antirez [Sun, 13 May 2012 14:40:29 +0000 (16:40 +0200)] 
Redis timer interrupt frequency configurable as REDIS_HZ.

Redis uses a function called serverCron() that is very similar to the
timer interrupt of an operating system. This function is used to handle
a number of asynchronous things, like active expired keys collection,
clients timeouts, update of statistics, things related to the cluster
and replication, triggering of BGSAVE and AOF rewrite process, and so
forth.

In the past the timer was called 1 time per second. At some point it was
raised to 10 times per second, but it still was fixed and could not be
changed even at compile time, because different functions called from
serverCron() assumed a given fixed frequency.

This commmit makes the frequency configurable, so that it is simpler to
pick a good tradeoff between overhead of this function (that is usually
very small) and the responsiveness of Redis during a few critical
circumstances where a lot of work is done inside the timer.

An example of such a critical condition is mass-expire of a lot of keys
in the same second. Up to a given percentage of CPU time is used to
perform expired keys collection per expire cylce. Now changing the
REDIS_HZ macro it is possible to do less work but more times per second
in order to block the server for less time.

If this patch will work well in our tests it will enter Redis 2.6-final.

12 years agoComment improved so that the code goal is more clear. Thx to @agladysh.
antirez [Fri, 11 May 2012 20:33:28 +0000 (22:33 +0200)] 
Comment improved so that the code goal is more clear. Thx to @agladysh.

12 years agoMore incremental active expired keys collection process.
antirez [Fri, 11 May 2012 17:17:31 +0000 (19:17 +0200)] 
More incremental active expired keys collection process.

If a large amonut of keys are all expiring about at the same time, the
"active" expired keys collection cycle used to block as far as the
percentage of already expired keys was >= 25% of the total population of
keys with an expire set.

This could block the server even for many seconds in order to reclaim
memory ASAP. The new algorithm uses at max a small amount of
milliseconds per cycle, even if this means reclaiming the memory less
promptly it also means a more responsive server.

12 years agoIf the computer running the Redis test is slow, we revert to --clients 1 to avoid...
antirez [Fri, 11 May 2012 15:26:09 +0000 (17:26 +0200)] 
If the computer running the Redis test is slow, we revert to --clients 1 to avoid false positives.

12 years agoredis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SIGCONT are handle...
antirez [Fri, 11 May 2012 14:08:57 +0000 (16:08 +0200)] 
redis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SIGCONT are handled correctly.

12 years agoredis-cli pipe mode: handle EAGAIN while writing to socket.
antirez [Fri, 11 May 2012 08:45:12 +0000 (10:45 +0200)] 
redis-cli pipe mode: handle EAGAIN while writing to socket.

12 years agoredis-cli --pipe for mass import.
antirez [Sun, 6 May 2012 08:05:31 +0000 (10:05 +0200)] 
redis-cli --pipe for mass import.

12 years agoFix PREFIX typo in Makefile.
antirez [Wed, 9 May 2012 18:45:00 +0000 (20:45 +0200)] 
Fix PREFIX typo in Makefile.

12 years agoAllow PREFIX to be overrided in Makefile.
antirez [Wed, 9 May 2012 08:34:52 +0000 (10:34 +0200)] 
Allow PREFIX to be overrided in Makefile.

12 years agoFixed typo in RC3 release notes.
antirez [Sun, 6 May 2012 08:22:07 +0000 (10:22 +0200)] 
Fixed typo in RC3 release notes.

12 years agoMore complete release notes for 2.5.9
antirez [Sun, 6 May 2012 08:15:40 +0000 (10:15 +0200)] 
More complete release notes for 2.5.9

12 years agoRedis 2.5.9 (2.6 RC3).
antirez [Sun, 6 May 2012 08:11:54 +0000 (10:11 +0200)] 
Redis 2.5.9 (2.6 RC3).

12 years agoMerge pull request #500 from pietern/2.6-zipfix
Salvatore Sanfilippo [Sun, 6 May 2012 08:03:15 +0000 (01:03 -0700)] 
Merge pull request #500 from pietern/2.6-zipfix

Compare integers in ziplist regardless of encoding

12 years agoCompare integers in ziplist regardless of encoding
Pieter Noordhuis [Sat, 5 May 2012 00:26:24 +0000 (17:26 -0700)] 
Compare integers in ziplist regardless of encoding

Because of the introduction of new integer encoding types for ziplists
in the 2.6 tree, the same integer value may have a different encoding in
different versions of the ziplist implementation. This means that the
encoding can NOT be used as a fast path in comparing integers.

12 years agoFix `install` target on OSX (see #495)
Pieter Noordhuis [Fri, 4 May 2012 18:54:06 +0000 (11:54 -0700)] 
Fix `install` target on OSX (see #495)

12 years agofix several bugs of init.d scripts
quiver [Fri, 4 May 2012 11:07:00 +0000 (20:07 +0900)] 
fix several bugs of init.d scripts

- PIDFILE environ variable was not properly retrieved
- chkconfig command failed

12 years agosyncio.c read / write functions reworked for correctness and performance.
antirez [Wed, 2 May 2012 20:41:50 +0000 (22:41 +0200)] 
syncio.c read / write functions reworked for correctness and performance.

The new implementation start reading / writing before blocking with
aeWait(), likely the descriptor can accept writes or has buffered data
inside and we can go faster, otherwise we get an error and wait.

This change has effects on speed but also on correctness: on socket
errors when we perform non blocking connect(2) write is performed ASAP
and the error is returned ASAP before waiting.

So the practical effect is that now a Redis slave is more available if it
can not connect to the master, previously the slave continued to block on
syncWrite() trying to send SYNC, and serving commands very slowly.

12 years agoRemove useless trailing space in SYNC command sent to master.
antirez [Wed, 2 May 2012 19:45:01 +0000 (21:45 +0200)] 
Remove useless trailing space in SYNC command sent to master.

12 years agoUse specific error if master is down and slave-serve-stale-data is set to no.
antirez [Wed, 2 May 2012 15:14:45 +0000 (17:14 +0200)] 
Use specific error if master is down and slave-serve-stale-data is set to no.

We used to reply -ERR ... message ..., now the reply is
instead -MASTERDOWN ... message ... so that it can be distinguished
easily by the other error conditions.

12 years agoAdd a note abotu read-only slaves in 2.6 release notes.
antirez [Wed, 2 May 2012 14:35:53 +0000 (16:35 +0200)] 
Add a note abotu read-only slaves in 2.6 release notes.

12 years agoRedis 2.5.8 (2.6.0 RC2).
antirez [Wed, 2 May 2012 10:16:53 +0000 (12:16 +0200)] 
Redis 2.5.8 (2.6.0 RC2).

12 years agoTest "Turning off AOF kills the background writing child if any" is now more reliable.
antirez [Wed, 2 May 2012 09:40:46 +0000 (11:40 +0200)] 
Test "Turning off AOF kills the background writing child if any" is now more reliable.

12 years agoMerge pull request #488 from pietern/2.6-safekeys
Salvatore Sanfilippo [Tue, 1 May 2012 08:50:25 +0000 (01:50 -0700)] 
Merge pull request #488 from pietern/2.6-safekeys

Use safe dictionary iterator from KEYS (fixes #487)

12 years agoUse safe dictionary iterator from KEYS
Pieter Noordhuis [Mon, 30 Apr 2012 17:16:20 +0000 (10:16 -0700)] 
Use safe dictionary iterator from KEYS

Every matched key in a KEYS call is checked for expiration. When the key
is set to expire, the call to `getExpire` will assert that the key also
exists in the main dictionary. This in turn causes a rehashing step to
be executed. Rehashing a dictionary when there is an iterator active may
result in the iterator emitting duplicate entries, or not emitting some
entries at all. By using a safe iterator, the rehash step is omitted.

12 years agoShow problem with 'keys' command with specific command sequence.
Harmen [Mon, 30 Apr 2012 15:57:12 +0000 (09:57 -0600)] 
Show problem with 'keys' command with specific command sequence.

12 years agoProperly wait the slave to sync with master in BRPOPLPUSH test.
antirez [Mon, 30 Apr 2012 08:55:03 +0000 (10:55 +0200)] 
Properly wait the slave to sync with master in BRPOPLPUSH test.

12 years agoA more lightweight implementation of issue 141 regression test.
antirez [Sat, 28 Apr 2012 13:39:00 +0000 (15:39 +0200)] 
A more lightweight implementation of issue 141 regression test.

12 years agoAdded "read-only slaves" in new features section of 2.6 release notes.
antirez [Fri, 27 Apr 2012 21:06:02 +0000 (23:06 +0200)] 
Added "read-only slaves" in new features section of 2.6 release notes.

12 years agoyet another typo fixed in release notes.
antirez [Fri, 27 Apr 2012 15:04:03 +0000 (17:04 +0200)] 
yet another typo fixed in release notes.

12 years agoFixed release notes typo
antirez [Fri, 27 Apr 2012 15:01:44 +0000 (17:01 +0200)] 
Fixed release notes typo

12 years agoRedis 2.5.7 (2.6 RC1)
antirez [Fri, 27 Apr 2012 14:40:07 +0000 (16:40 +0200)] 
Redis 2.5.7 (2.6 RC1)

12 years agomemtest.c fixed to actually use v1 and v2 in memtest_fill_value().
antirez [Fri, 27 Apr 2012 14:28:31 +0000 (16:28 +0200)] 
memtest.c fixed to actually use v1 and v2 in memtest_fill_value().

12 years agoRelease notes updated with the new 2.6 features.
antirez [Fri, 27 Apr 2012 14:07:42 +0000 (16:07 +0200)] 
Release notes updated with the new 2.6 features.

12 years agoredis-cli commands description in help.h updated.
antirez [Fri, 27 Apr 2012 13:57:17 +0000 (15:57 +0200)] 
redis-cli commands description in help.h updated.

12 years agoUpdate makefile dependencies.
antirez [Fri, 27 Apr 2012 13:56:16 +0000 (15:56 +0200)] 
Update makefile dependencies.

12 years agoSet LUA_MASKCOUNT hook more selectively. Fixes issue #480.
antirez [Fri, 27 Apr 2012 09:41:25 +0000 (11:41 +0200)] 
Set LUA_MASKCOUNT hook more selectively. Fixes issue #480.

An user reported a crash with Redis scripting (see issue #480 on
github), inspection of the kindly provided strack trace showed that
server.lua_caller was probably set to NULL. The stack trace also slowed
that the call to the hook was originating from a point where we just
used to set/get a few global variables in the Lua state.

What was happening is that we did not set the timeout hook selectively
only when the user script was called. Now we set it more selectively,
specifically only in the context of the lua_pcall() call, and make sure
to remove the hook when the call returns. Otherwise the hook can get
called in random contexts every time we do something with the Lua
state.

12 years agoRe-introduce -g -rdynamic -ggdb when linking, fixing strack traces.
antirez [Thu, 26 Apr 2012 14:53:11 +0000 (16:53 +0200)] 
Re-introduce -g -rdynamic -ggdb when linking, fixing strack traces.

A previous commit removed -g -rdynamic -ggdb as LDFLAGS, not allowing
Redis to produce a stack trace wth symbol names on crash.
This commit fixes the issue.

12 years agoProduce the stack trace in an async safe way.
antirez [Thu, 26 Apr 2012 14:04:53 +0000 (16:04 +0200)] 
Produce the stack trace in an async safe way.

12 years agoDon't use an alternative stack for SIGSEGV & co.
antirez [Thu, 26 Apr 2012 14:21:19 +0000 (16:21 +0200)] 
Don't use an alternative stack for SIGSEGV & co.

This commit reverts most of c575766202773c858be0870c20cd495b722927c3, in
order to use back main stack for signal handling.

The main reason is that otherwise it is completely pointless that we do
a lot of efforts to print the stack trace on crash, and the content of
the stack and registers as well. Using an alternate stack broken this
feature completely.

12 years agoRedis test: More reliable BRPOPLPUSH replication test.
antirez [Thu, 26 Apr 2012 09:25:13 +0000 (11:25 +0200)] 
Redis test: More reliable BRPOPLPUSH replication test.

Now it uses the new wait_for_condition testing primitive.
Also wait_for_condition implementation was fixed in this commit to properly
escape the expr command and its argument.

12 years agoRedis test: scripting EVALSHA replication test more reliable.
antirez [Thu, 26 Apr 2012 09:16:52 +0000 (11:16 +0200)] 
Redis test: scripting EVALSHA replication test more reliable.

A new primitive wait_for_condition was introduced in the scripting
engine that makes waiting for events simpler, so that it is simpler to
write tests that are more resistant to timing issues.

12 years agoSpelling: s/synchrnonization/synchronization
David Tran [Wed, 25 Apr 2012 19:21:56 +0000 (12:21 -0700)] 
Spelling: s/synchrnonization/synchronization

12 years agoExplicitly use bash for install_server.sh. Fixes issue #397
antirez [Tue, 24 Apr 2012 17:14:03 +0000 (19:14 +0200)] 
Explicitly use bash for install_server.sh. Fixes issue #397

12 years agoredis-check-dump now is RDB version 6 ready.
antirez [Tue, 24 Apr 2012 17:05:27 +0000 (19:05 +0200)] 
redis-check-dump now is RDB version 6 ready.

12 years agoSpurious debugging printf removed.
antirez [Tue, 24 Apr 2012 15:15:21 +0000 (17:15 +0200)] 
Spurious debugging printf removed.

12 years agoAdded two new encodings to ziplist.c
antirez [Tue, 24 Apr 2012 14:54:07 +0000 (16:54 +0200)] 
Added two new encodings to ziplist.c

1) One integer "immediate" encoding that can encode from 0 to 12 in the
encoding byte itself.
2) One 8 bit signed integer encoding that can encode 8 bit signed small
integers in a single byte.

The idea is to exploit all the not used bits we have around in a
backward compatible way.

12 years agordbLoad() should check REDIS_RDB_VERSION instead of hardcoded number.
antirez [Tue, 24 Apr 2012 10:53:30 +0000 (12:53 +0200)] 
rdbLoad() should check REDIS_RDB_VERSION instead of hardcoded number.

12 years agoziplist.c: added comments about the new 24 bit encoding.
antirez [Tue, 24 Apr 2012 10:51:59 +0000 (12:51 +0200)] 
ziplist.c: added comments about the new 24 bit encoding.

12 years agoAdd a 24bit integer to ziplists to save one byte for ints that can
Grisha Trubetskoy [Fri, 20 Apr 2012 14:38:42 +0000 (10:38 -0400)] 
Add a 24bit integer to ziplists to save one byte for ints that can
fit in 24 bits (thanks to antirez for catching and solving the two's compliment
bug).

Increment REDIS_RDB_VERSION to 6

12 years agoA few compiler warnings suppressed.
antirez [Tue, 24 Apr 2012 09:11:55 +0000 (11:11 +0200)] 
A few compiler warnings suppressed.

12 years agoFix and refactoring of code used to get registers on crash.
antirez [Tue, 24 Apr 2012 09:07:15 +0000 (11:07 +0200)] 
Fix and refactoring of code used to get registers on crash.

This fixes compilation on FreeBSD (and possibly other systems) by
not using ucontext_t at all if HAVE_BACKTRACE is not defined.
Also the ifdefs to get the registers are modified to explicitly test for the
operating system in the first level, and the arch in the second level
of nesting.

12 years agoZiplist encoding now tested with negative integers as well.
antirez [Mon, 23 Apr 2012 15:27:39 +0000 (17:27 +0200)] 
Ziplist encoding now tested with negative integers as well.

12 years agoNew time limit for protocol desync test set to 30 seconds to reduce false positives.
antirez [Mon, 23 Apr 2012 08:57:43 +0000 (10:57 +0200)] 
New time limit for protocol desync test set to 30 seconds to reduce false positives.

12 years agoRemove loadfile() access from the scripting engine.
antirez [Mon, 23 Apr 2012 08:43:24 +0000 (10:43 +0200)] 
Remove loadfile() access from the scripting engine.

12 years agoReplace unnecessary calls to echo and cat
Michael Schlenker [Tue, 17 Apr 2012 20:20:54 +0000 (22:20 +0200)] 
Replace unnecessary calls to echo and cat

Tcl's exec can send data to stdout itself, no need to call cat/echo for
that usually.

12 years agoEven inside #if 0 comments are comments.
antirez [Sat, 21 Apr 2012 19:49:21 +0000 (21:49 +0200)] 
Even inside #if 0 comments are comments.

12 years agoLimit memory used by big SLOWLOG entries.
antirez [Sat, 21 Apr 2012 17:20:03 +0000 (19:20 +0200)] 
Limit memory used by big SLOWLOG entries.

Two limits are added:

1) Up to SLOWLOG_ENTRY_MAX_ARGV arguments are logged.
2) Up to SLOWLOG_ENTRY_MAX_STRING bytes per argument are logged.
3) slowlog-max-len is set to 128 by default (was 1024).

The number of remaining arguments / bytes is logged in the entry
so that the user can understand better the nature of the logged command.

12 years agoredis.conf AOF section comments improved.
antirez [Thu, 19 Apr 2012 22:04:07 +0000 (00:04 +0200)] 
redis.conf AOF section comments improved.

12 years agoREADME now makes clear that our support for solaris derived systems is "best effort".
antirez [Sat, 21 Apr 2012 10:08:26 +0000 (12:08 +0200)] 
README now makes clear that our support for solaris derived systems is "best effort".

12 years agoNew tests related to scripts max execution time.
antirez [Thu, 19 Apr 2012 21:49:33 +0000 (23:49 +0200)] 
New tests related to scripts max execution time.

12 years agoSHUTDOWN NOSAVE now can stop a non returning script. Issue #466.
antirez [Thu, 19 Apr 2012 21:35:15 +0000 (23:35 +0200)] 
SHUTDOWN NOSAVE now can stop a non returning script. Issue #466.

12 years agoCurrenly not used code in dict.c commented out.
antirez [Wed, 18 Apr 2012 21:56:07 +0000 (23:56 +0200)] 
Currenly not used code in dict.c commented out.

12 years agoTests for scripting PRNG.
antirez [Wed, 18 Apr 2012 21:50:16 +0000 (23:50 +0200)] 
Tests for scripting PRNG.

12 years agocr16.c removed from 2.6 branch, was not used.
antirez [Wed, 18 Apr 2012 21:41:00 +0000 (23:41 +0200)] 
cr16.c removed from 2.6 branch, was not used.

12 years agoredis-cli --bigkeys output modified to be simpler to read..
antirez [Wed, 18 Apr 2012 18:53:37 +0000 (20:53 +0200)] 
redis-cli --bigkeys output modified to be simpler to read..

12 years agoredis-cli --bigkeys
antirez [Wed, 18 Apr 2012 18:33:02 +0000 (20:33 +0200)] 
redis-cli --bigkeys

12 years agoTest SDIFF with first set empty.
antirez [Wed, 18 Apr 2012 16:13:31 +0000 (18:13 +0200)] 
Test SDIFF with first set empty.

12 years agoTest SINTER against same integer elements, but different set encoding.
antirez [Wed, 18 Apr 2012 16:10:48 +0000 (18:10 +0200)] 
Test SINTER against same integer elements, but different set encoding.

12 years agoTest SINTER with non existing key.
antirez [Wed, 18 Apr 2012 16:05:02 +0000 (18:05 +0200)] 
Test SINTER with non existing key.

12 years agoAdded an SMOVE test where src and dest key are the same.
antirez [Wed, 18 Apr 2012 16:00:12 +0000 (18:00 +0200)] 
Added an SMOVE test where src and dest key are the same.

12 years agoNew hash fuzzing test.
antirez [Wed, 18 Apr 2012 15:56:17 +0000 (17:56 +0200)] 
New hash fuzzing test.

12 years agoDocument mostly dead code in RPOPLPUSH implementation.
antirez [Wed, 18 Apr 2012 15:38:02 +0000 (17:38 +0200)] 
Document mostly dead code in RPOPLPUSH implementation.

12 years agoExplicit RPOP/LPOP tests.
antirez [Wed, 18 Apr 2012 15:32:48 +0000 (17:32 +0200)] 
Explicit RPOP/LPOP tests.

12 years agoTest LINSERT syntax error.
antirez [Wed, 18 Apr 2012 15:22:14 +0000 (17:22 +0200)] 
Test LINSERT syntax error.

12 years agoTest LINDEX out of range index.
antirez [Wed, 18 Apr 2012 15:17:53 +0000 (17:17 +0200)] 
Test LINDEX out of range index.

12 years agoMerge pull request #455 from pietern/2.6-mkopts
Salvatore Sanfilippo [Wed, 18 Apr 2012 14:26:36 +0000 (07:26 -0700)] 
Merge pull request #455 from pietern/2.6-mkopts

Persist Makefile flags (2.6)

12 years agoMarginally cleaner lookupKeyByPattern() implementation.
antirez [Wed, 18 Apr 2012 09:37:14 +0000 (11:37 +0200)] 
Marginally cleaner lookupKeyByPattern() implementation.

just fieldobj itself as sentinel of the fact a field object is used or
not, instead of using the filed length, that may be confusing both for
people and for the compiler emitting a warning.

12 years agoMore robust maxclients test.
antirez [Wed, 18 Apr 2012 09:34:18 +0000 (11:34 +0200)] 
More robust maxclients test.

12 years agoTwo small fixes to maxclients handling.
antirez [Wed, 18 Apr 2012 09:31:24 +0000 (11:31 +0200)] 
Two small fixes to maxclients handling.

1) Don't accept maxclients set to < 0
2) Allow maxclients < 1024, it is useful for testing.

12 years agoAdded test for SORT corner case: pattern ending with just "->".
antirez [Tue, 17 Apr 2012 14:28:50 +0000 (16:28 +0200)] 
Added test for SORT corner case: pattern ending with just "->".

12 years agolookupKeyByPattern() used by SORT GET/BY rewritten. Fixes issue #460.
antirez [Tue, 17 Apr 2012 11:05:09 +0000 (13:05 +0200)] 
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.

12 years agoLess false positives in maxclients test, hopefully.
antirez [Tue, 17 Apr 2012 08:04:42 +0000 (10:04 +0200)] 
Less false positives in maxclients test, hopefully.

12 years agoPersist `make` settings and trigger rebuild if anything changes
Pieter Noordhuis [Sat, 14 Apr 2012 00:50:38 +0000 (17:50 -0700)] 
Persist `make` settings and trigger rebuild if anything changes

12 years agoDon't set flags recursively
Pieter Noordhuis [Sat, 14 Apr 2012 00:46:28 +0000 (17:46 -0700)] 
Don't set flags recursively

12 years agoRemove unused LIBS variable
Pieter Noordhuis [Sat, 14 Apr 2012 00:44:34 +0000 (17:44 -0700)] 
Remove unused LIBS variable

12 years agoFirst set defaults, then do composition
Pieter Noordhuis [Sat, 14 Apr 2012 00:43:06 +0000 (17:43 -0700)] 
First set defaults, then do composition

12 years agoQuestion mark assignment is not needed
Pieter Noordhuis [Sat, 14 Apr 2012 00:41:40 +0000 (17:41 -0700)] 
Question mark assignment is not needed

12 years agoIgnore gcov/lcov artifacts
Pieter Noordhuis [Sat, 14 Apr 2012 00:38:29 +0000 (17:38 -0700)] 
Ignore gcov/lcov artifacts

12 years agoThe lcov target shouldn't clean
Pieter Noordhuis [Sat, 14 Apr 2012 00:38:12 +0000 (17:38 -0700)] 
The lcov target shouldn't clean

This is not needed because every change in compiler/linker flags
triggers a cleanup.

12 years agoRename ADD_*FLAGS -> REDIS_*FLAGS, REDIS_*FLAGS -> FINAL_*FLAGS
Pieter Noordhuis [Sat, 14 Apr 2012 00:34:31 +0000 (17:34 -0700)] 
Rename ADD_*FLAGS -> REDIS_*FLAGS, REDIS_*FLAGS -> FINAL_*FLAGS

This reflects that REDIS_*FLAGS will only be used for compilation of
Redis and not for its dependencies. Similarly, that FINAL_*FLAGS are
composed of other variables and holds the options that are finally
passed to the compiler and linker.

12 years agoNew test for scripting engine: DECR_IF_GT.
antirez [Fri, 13 Apr 2012 13:23:32 +0000 (15:23 +0200)] 
New test for scripting engine: DECR_IF_GT.

12 years agoEVAL errors are more clear now.
antirez [Fri, 13 Apr 2012 13:12:16 +0000 (15:12 +0200)] 
EVAL errors are more clear now.