antirez
7e63167d27
pqsort.c: remove the "switch to insertion sort" optimization.
...
It causes catastrophic performance for certain inputs.
Relevant NetBSD commit:
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdlib/qsort.c?rev=1.20&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
This fixes issue #968 .
2013-07-02 17:47:32 +02:00
Salvatore Sanfilippo
7d626d4975
Merge pull request #776 from charsyam/ziplist-bug
...
fix randstring bug in ziplist.c
2013-07-02 03:18:18 -07:00
antirez
1b10522a08
Only allow basenames for dbfilename and appendfilename.
...
This fixes issue #1094 .
2013-07-02 12:14:28 +02:00
antirez
6978aeb3bf
pathIsBaseName() added to utils.c
...
The function is used to test that the specified string looks like just
as the basename of a path, without any absolute or relative path.
2013-07-02 12:08:07 +02:00
antirez
0781ad6899
getAbsolutePath() moved into utils.c
2013-07-02 11:56:52 +02:00
antirez
de9a221749
CONFIG SET maxclients.
2013-06-28 17:08:03 +02:00
antirez
8e2d082066
ae.c event loop: API to resize the fd set size on the run.
2013-06-28 16:39:49 +02:00
antirez
3130670b97
Allow SHUTDOWN in loading state.
2013-06-27 12:18:29 +02:00
antirez
13585dd677
function renamed: popcount_binary -> redisPopcount.
2013-06-26 15:19:06 +02:00
Salvatore Sanfilippo
bae60ede1d
Merge pull request #1111 from yamt/netbsd3
...
netbsd support
2013-06-26 06:17:02 -07:00
antirez
8ca265cdb7
Don't disconnect pre PSYNC replication clients for timeout.
...
Clients using SYNC to replicate are older implementations, such as
redis-cli --slave, and are not designed to acknowledge the master with
REPLCONF ACK commands, so we don't have any feedback and should not
disconnect them on timeout.
2013-06-26 10:11:20 +02:00
antirez
d5f1e4b0b5
Test: add some AOF testing to EVALSHA replication test.
2013-06-25 15:49:07 +02:00
antirez
73d7955c6f
Flush the replication script cache after SCRIPT FLUSH.
2013-06-25 15:36:48 +02:00
antirez
882e36366f
Test: EVALSHA replication.
2013-06-25 15:35:48 +02:00
antirez
d1f2d0733c
Test: randomInt() behavior commented.
2013-06-25 15:32:37 +02:00
antirez
7e5be50cbf
Test: replication-3 test speedup in master-slave setup.
2013-06-25 15:13:14 +02:00
antirez
fb67468813
Force propagation of SCRIPT LOAD to AOF.
2013-06-25 12:49:56 +02:00
antirez
e27b136069
SCRIPT FLUSH comment minor pedantic improvement.
2013-06-25 10:56:59 +02:00
antirez
82ea1c6f5d
Move Replication Script Cache initialization in safer place.
...
It should be called just one time at startup and not every time the Lua
scripting engine is re-initialized, otherwise memory is leaked.
2013-06-24 19:27:49 +02:00
antirez
f0bf5fd8c7
Use the RSC to replicate EVALSHA unmodified.
...
This commit uses the Replication Script Cache in order to avoid
translating EVALSHA into EVAL whenever possible for both the AOF and
slaves.
2013-06-24 18:57:31 +02:00
antirez
94ec7db470
Replication of scripts as EVALSHA: sha1 caching implemented.
...
This code is only responsible to take an LRU-evicted fixed length cache
of SHA1 that we are sure all the slaves received.
In this commit only the implementation is provided, but the Redis core
does not use it to actually send EVALSHA to slaves when possible.
2013-06-24 10:26:04 +02:00
antirez
515a26bbc1
New API to force propagation.
...
The old REDIS_CMD_FORCE_REPLICATION flag was removed from the
implementation of Redis, now there is a new API to force specific
executions of a command to be propagated to AOF / Replication link:
void forceCommandPropagation(int flags);
The new API is also compatible with Lua scripting, so a script that will
execute commands that are forced to be propagated, will also be
propagated itself accordingly even if no change to data is operated.
As a side effect, this new design fixes the issue with scripts not able
to propagate PUBLISH to slaves (issue #873 ).
2013-06-21 12:07:53 +02:00
Salvatore Sanfilippo
b0c2cdd6a7
Merge pull request #1167 from badboy/patch-1
...
Initialize char* to NULL to remove compiler warning
2013-06-20 07:56:31 -07:00
Jan-Erik Rediger
5ac7ca9c94
Initialize char* to NULL to remove compiler warning
2013-06-20 17:53:35 +03:00
antirez
519c9e11d1
Allow PUBSUB NUMSUB without channels.
...
The result is an empty list but it is handy to call it programmatically.
2013-06-20 15:34:56 +02:00
antirez
455563faec
PUBSUB command implemented.
...
Currently it implements three subcommands:
PUBSUB CHANNELS [<pattern>] List channels with non-zero subscribers.
PUBSUB NUMSUB [channel_1 ...] List number of subscribers for channels.
PUBSUB NUMPAT Return number of subscribed patterns.
2013-06-20 15:32:00 +02:00
antirez
4c0f8c4e5a
Sentinel: parse new INFO replication output correctly.
...
Sentinel was not able to detect slaves when connected to a very recent
version of Redis master since a previos non-backward compatible change
to INFO broken the parsing of the slaves ip:port INFO output.
This fixes issue #1164
2013-06-20 10:23:23 +02:00
antirez
b02bb47e67
Test: regression test for #1163 .
2013-06-19 18:53:07 +02:00
antirez
f8ba3b5668
Fix comment typo in integration/aof.tcl.
2013-06-19 18:31:33 +02:00
antirez
d363299af3
Allow writes from scripts called by AOF loading in read-only slaves.
...
This fixes issue #1163
2013-06-19 18:25:03 +02:00
antirez
338cd4835d
Fix logStackTrace() when logging to stdout.
...
When the semantics changed from logfile = NULL to logfile = "" to log
into standard output, no proper change was made to logStackTrace() to
make it able to work with the new setup.
This commit fixes the issue.
2013-06-19 14:44:40 +02:00
antirez
9c2c878e45
Lua script errors format more unified.
...
lua_pcall error handler now formats errors in a way more similar to
luaPushError() so that errors generated in different contexts look alike.
2013-06-18 19:30:56 +02:00
antirez
51adc6e1bc
Lua scripting: improve error reporting.
...
When calling Lua scripts we try to report not just the error but
information about the code line causing the error.
2013-06-18 17:33:35 +02:00
Salvatore Sanfilippo
b96ba52cfa
Merge pull request #1124 from ioddly/fix-issue-1121
...
Try to report source of bad Lua API calls
2013-06-17 03:14:31 -07:00
Salvatore Sanfilippo
82d782d3b5
Merge pull request #819 from Keruspe/unstable
...
test-server: only listen to 127.0.0.1
2013-06-17 03:08:14 -07:00
Marc-Antoine Perennou
edd7eb9b7d
test-server: only listen to 127.0.0.1
...
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2013-06-12 22:49:32 +02:00
antirez
dfc98dccf4
Cluster: detect nodes address change.
2013-06-12 10:50:07 -07:00
antirez
d427373f01
clusterProcessPacket() comments improved for correctness.
2013-06-11 21:34:34 +02:00
antirez
cf71b82111
Binary safe dump of object content in redisLogObjectDebugInfo().
2013-06-04 15:53:53 +02:00
antirez
b6a2878aa5
CONFIG SET: accept slave-priority zero, it is valid.
2013-05-31 19:31:36 +02:00
antirez
ca35de1d1f
Test: avoid a false positive in min-slaves test.
2013-05-31 11:43:30 +02:00
antirez
434a86dbd8
Tests added for min-slaves feature.
2013-05-30 18:54:28 +02:00
antirez
915c06a96c
Refresh good slaves count after CONFIG SET min-slaves-...
...
This way just after the CONFIG SET enabling the min-slaves feature it is
possible to write to the database without delays.
2013-05-30 12:23:41 +02:00
antirez
88441bf18f
New INFO field "min_slaves_good_slaves".
...
When min-slaves-to-write feature is active, this field reports the
number of slaves considered good (online state, lag within the specified
range).
2013-05-30 12:18:31 +02:00
antirez
1a54d5963e
Refresh good slaves count when setting slave state as online.
2013-05-30 12:13:25 +02:00
antirez
d64d2e21c9
Make tests compatible with new INFO replication output.
2013-05-30 11:43:43 +02:00
antirez
2ec7875cbf
min-replicas-to-write: only deny write commands.
...
I guess I needed another coffee...
2013-05-30 11:30:09 +02:00
antirez
ed599d3aca
min-slaves-to-write: don't accept writes with less than N replicas.
...
This feature allows the user to specify the minimum number of
connected replicas having a lag less or equal than the specified
amount of seconds for writes to be accepted.
2013-05-30 11:30:04 +02:00
antirez
cbdb2153c5
min-slaves-to-write: initial description of the feature in redis.conf
2013-05-30 11:29:58 +02:00
antirez
888400ebd5
repl_offset field in INFO replication is now just offset.
2013-05-29 19:56:33 +02:00