5459 Commits

Author SHA1 Message Date
antirez
9fc48ed151 DEBUG RESTART/CRASH-AND-RECOVER [delay] implemented. 2015-10-13 11:12:25 +02:00
antirez
5b7bd883e6 Server: restartServer() API.
This new function is able to restart the server "in place". The current
Redis process executes the same executable it was executed with, using
the same arguments and configuration file.
2015-10-13 11:02:35 +02:00
antirez
33dedde038 Cluster: redis-trib fix, coverage for migrating=1 case.
Kinda related to #2770.
2015-10-09 16:15:58 +02:00
antirez
6a3e201234 Test: basic lazyfree unit test. 2015-10-09 09:47:17 +02:00
antirez
c3dbfc8825 Test: fix attach_to_replication_stream to handle newlines. 2015-10-07 22:32:24 +02:00
antirez
246b02eebe Fix extractLongLatOrReply() sanity check conditionals.
the check for lat/long valid ranges were performed inside the for loop,
two times instead of one, and the first time when the second element of
the array, xy[1], was yet not populated. This resulted into issue #2799.

Close issue #2799.
2015-10-07 22:27:18 +02:00
antirez
61cceef3a3 Jemalloc configure script fixed to work nested.
Now way to make unmodified Jemalloc configure to work when the jemalloc
source tree is inside a subdirectory of a different git repository.

Problem signaled here:
http://www.canonware.com/pipermail/jemalloc-discuss/2015-October/001174.html
2015-10-07 09:17:06 +02:00
antirez
e7e83e86f2 Jemalloc updated to 4.0.3. 2015-10-06 16:55:37 +02:00
antirez
fe49700cf5 Added a README into deps on dependencies and how to upgrade. 2015-10-06 10:56:16 +02:00
antirez
dc5b467b17 Regression test for GEORADIUS COUNT arity check. 2015-10-06 09:27:29 +02:00
antirez
ea9586b9e0 Fix GEORADIUS COUNT option arity checks. 2015-10-06 09:25:28 +02:00
antirez
97df261503 Lazyfree options documented in the example redis.conf. 2015-10-05 12:24:16 +02:00
antirez
6432b8a4d1 Lazyfree options implemented in the configuration. 2015-10-05 12:11:27 +02:00
antirez
27ec5105eb Lazyfree: cond vars to enabled/disable it based on DEL context. 2015-10-02 15:27:57 +02:00
antirez
714b06d5fa Fixed a bug in the emptyDb() new implementation. 2015-10-01 13:02:26 +02:00
antirez
93da3c7874 FLUSHDB and FLUSHALL ASYNC option implemented. 2015-10-01 13:02:26 +02:00
antirez
da103b45ed Lazyfree: pending objects count in INFO output. 2015-10-01 13:02:26 +02:00
antirez
cf03e071ea Lazyfree: ability to free whole DBs in background. 2015-10-01 13:02:26 +02:00
antirez
062f789407 Lazyfree: keep count of objects to free. 2015-10-01 13:02:25 +02:00
antirez
8668aa6196 zmalloc.c converted to use atomicvar.h. 2015-10-01 13:02:25 +02:00
antirez
2ff5fef11b Atomic vars implemented in a more general way.
We have them into zmalloc.c, but this is going to replace that
implementation, so that it's possible to use the same idea everywhere
inside the code base.
2015-10-01 13:02:25 +02:00
antirez
7babd6e184 Lazyfree: incremental removed, only threaded survived. 2015-10-01 13:02:25 +02:00
antirez
fbc46738f4 Threaded lazyfree WIP #1. 2015-10-01 13:02:25 +02:00
antirez
9295b586b4 bio.c: new API bioWaitStepOfType(). 2015-10-01 13:02:25 +02:00
antirez
d8afd9bc95 Test: stack_logging var should be initialized to 0. 2015-10-01 13:02:25 +02:00
antirez
cc71d239bd Hash new implementation memleaks fixed. 2015-10-01 13:02:25 +02:00
antirez
cd94476e0b Lazyfree: Hash converted to use plain SDS WIP 5. 2015-10-01 13:02:25 +02:00
antirez
cdfd6a2607 Test: support for stack logging for OSX malloc/leaks. 2015-10-01 13:02:25 +02:00
antirez
5eb85d8fe7 Lazyfree: Hash converted to use plain SDS WIP 4. 2015-10-01 13:02:25 +02:00
antirez
b4da37e32e Lazyfree: Hash converted to use plain SDS WIP 3. 2015-10-01 13:02:24 +02:00
antirez
5ae12b50d1 Lazyfree: Hash converted to use plain SDS WIP 2. 2015-10-01 13:02:24 +02:00
antirez
5fd01e29d9 Lazyfree: Hash converted to use plain SDS WIP 1. 2015-10-01 13:02:24 +02:00
antirez
d3b2c3f2f8 DEBUG DIGEST Set type memory leak fixed. 2015-10-01 13:02:24 +02:00
antirez
4ef4617c44 SORT memory leak fixed. 2015-10-01 13:02:24 +02:00
antirez
c4175281f6 Lazyfree: Sorted sets convereted to plain SDS. (several commits squashed) 2015-10-01 13:02:24 +02:00
antirez
062bf5ce19 Lazyfree: Convert Sets to use plains SDS (several commits squashed). 2015-10-01 13:02:24 +02:00
antirez
ac508699de Lazyfree: client output buffers no longer use Redis Objects. 2015-10-01 13:02:24 +02:00
antirez
ca8d13bd90 Lazyfree: a first implementation of non blocking DEL. 2015-10-01 13:00:19 +02:00
antirez
3b47d3f11d Call writeToClient() directly instead of the write handler. 2015-09-30 17:41:52 +02:00
antirez
0810ed570e Fix processEventsWhileBlocked() to handle PENDING_WRITE clients.
After the introduction of the list with clients with pending writes, to
process clients incrementally outside of the event loop we also need to
process the pending writes list.
2015-09-30 17:23:44 +02:00
antirez
af182a200f Refactoring: unlinkClient() added to lower freeClient() complexity. 2015-09-30 17:10:03 +02:00
antirez
8268ed723a Refactoring: new function to test if client has pending output. 2015-09-30 16:41:48 +02:00
antirez
5fad6cea15 Reverse list of clients with pending writes.
May potentially improve locality... not exactly clear if this makes a
difference or not. But for sure is harmless.
2015-09-30 16:29:42 +02:00
antirez
eaa5b8d9bc writeToClient(): don't remove write handler if not needed. 2015-09-30 16:29:42 +02:00
antirez
2fe94ee816 handleClientsWithPendingWrites(): detect dead clients. 2015-09-30 16:29:42 +02:00
antirez
7a7b8bc244 Move handleClientsWithPendingWrites() in networking.c. 2015-09-30 16:29:42 +02:00
antirez
e5121eba31 Avoid installing the client write handler when possible. 2015-09-30 16:29:41 +02:00
antirez
d638d3de00 redis-cli pipe mode: don't stay in the write loop forever.
The code was broken and resulted in redis-cli --pipe to, most of the
times, writing everything received in the standard input to the Redis
connection socket without ever reading back the replies, until all the
content to write was written.

This means that Redis had to accumulate all the output in the output
buffers of the client, consuming a lot of memory.

Fixed thanks to the original report of anomalies in the behavior
provided by Twitter user @fsaintjacques.
2015-09-30 16:24:21 +02:00
antirez
c0eb960fc1 Mark version of unstable branch in an unique way. 2015-09-29 17:30:24 +02:00
antirez
2a014229f0 Test: fix false positive in HSTRLEN test.
HINCRBY* tests later used the value "tmp" that was sometimes generated
by the random key generation function. The result was ovewriting what
Tcl expected to be inside Redis with another value, causing the next
HSTRLEN test to fail.
2015-09-15 09:37:30 +02:00