- 06 Mar, 2013 12 commits
-
-
Gengliang Wang authored
(original commit message edited)
-
antirez authored
A new server.orig_commands table was added to the server structure, this contains a copy of the commant table unaffected by rename-command statements in redis.conf. A new API lookupCommandOrOriginal() was added that checks both tables, new first, old later, so that rewriteClientCommandVector() and friends can lookup commands with their new or original name in order to fix the client->cmd pointer when the argument vector is renamed. This fixes the segfault of issue #986, but does not fix a wider range of problems resulting from renaming commands that actually operate on data and are registered into the AOF file or propagated to slaves... That is command renaming should be handled with care.
-
antirez authored
-
antirez authored
Usually this does not happens since we trim for " \t\r\n", but if there are other chars that return true with isspace(), we may end with an empty argv. Better to handle the condition in an explicit way.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
This makes programs not checking the return value for NULL much safer since with this change: 1) It is still possible to iterate the zero-length result without crashes. 2) sdssplitargs_free will work against NULL and 0 count.
-
antirez authored
An empty input string also resulted into the function returning NULL making it harder for the caller to distinguish between error and empty string without checking the original input string length.
-
charsyam authored
-
antirez authored
While Redis is loading the AOF or RDB file in memory only a subset of commands are allowed. This commit adds AUTH to this subset.
-
- 05 Mar, 2013 9 commits
-
-
antirez authored
-
antirez authored
If we have a master in FAIL state that's reachable again, and apparently no one is going to serve its slots, clear the FAIL flag and let the cluster continue with its operations again.
-
antirez authored
This is the unix time at which we set the FAIL flag for the node. It is only valid if FAIL is set. The idea is to use it in order to make the cluster more robust, for instance in order to revert a FAIL state if it is long-standing but still slots are assigned to this node, that is, no one is going to fix these slots apparently.
-
antirez authored
Usually we redirect clients to the right hash slot, however we don't want to do that with our master, we want just to mirror it.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
Usually we try to send just 1 ping every second, however when we detect we are going to have unreliable failure detection because we can't ping some node in time, send an additional ping. This should only happen with very large clusters or when the the node timeout is set to a very low value.
-
antirez authored
-
- 04 Mar, 2013 10 commits
-
-
antirez authored
If we are a cluster node the DB content will not match our configured slots. Don't do the check at all.
-
antirez authored
There are pathological cases where the line can be even longer a single node may contain all the slots in importing/migrating state.
-
antirez authored
-
antirez authored
-
antirez authored
We now have replicationSetMaster() and replicationUnsetMaster() that can be called in other contexts (for instance Redis Cluster).
-
antirez authored
-
charsyam authored
adding check error code
-
antirez authored
This should improve things in two ways: 1) Prevent timeouts caused by the execution of long commands. 2) Improve detection of real connection errors. This is mostly effective only on Linux because of the bogus default keepalive settings. In Linux we have OS-specific calls to set the keepalive interval to reasonable values.
-
Salvatore Sanfilippo authored
suppress external diff program when using git diff.
-
Stam He authored
-
- 28 Feb, 2013 7 commits
-
-
antirez authored
As stated in the comment this is usually due to a resharding in progress so the client should be still redirected to the old node that will handle the redirection elsewhere.
-
antirez authored
The new code makes sure that the node slots bitmap is always consistent with the cluster->slots array.
-
antirez authored
-
antirez authored
-
antirez authored
Before a relatively slow popcount() operation was needed every time we needed to get the number of slots served by a given cluster node. Now we just need to check an integer that is taken in sync with the bitmap.
-
antirez authored
-
antirez authored
-
- 27 Feb, 2013 2 commits