Commit Graph
2920 Commits
Author SHA1 Message Date
Yossi Gottlieb 142a8099cb Add scripting persistence and better replication support. 2013-01-11 22:05:29 +02:00
Yossi Gottlieb b26163c2e8 Fix indent typo error. 2013-01-10 12:10:36 +02:00
Yossi Gottlieb 4f0d163822 Fix compilation issues due to unconfigured dependency libraries. 2013-01-10 12:09:46 +02:00
Yossi Gottlieb ee122a258d Fix first-time LUA compilation issues. 2013-01-10 11:58:33 +02:00
yoav 66b85387ea Added io checks when writing checksum into rdb.
Fixed rdb merge progress cacluation - ignored checksum bytes.
Renamed merge progress callback to have a more generic name so the callback can be used in other places.
2012-12-31 00:44:30 +02:00
yoav c617c37467 Ignore special db version key when merging rdb's. 2012-12-30 18:31:14 +02:00
Yossi Gottlieb 0edd38e5da Add minmemory-os configuration parameter. 2.6.7-1 2012-12-25 09:36:08 +02:00
yoav e43757277a Added slowlog complexity info details to README.Garantia 2012-12-24 18:17:46 +02:00
yoav 5be2606266 Merge tag '2.6.7' into garantia-2.6
Redis 2.6.7
2012-12-24 18:01:56 +02:00
yoav 70c31231a8 Fix warning in rdb-merger build. 2012-12-24 17:24:39 +02:00
yoav 877cd8d973 Delete auto-generated Makefile.dep on clean. 2012-12-24 17:22:56 +02:00
yoav fe6164283e Merge branch 'garantia-2.6' of https://github.com/GarantiaData/redis into garantia-2.6 2012-12-24 16:30:53 +02:00
yoav 5267a7fdbe Merge branch 'garantia-2.6' of https://github.com/GarantiaData/redis into garantia-2.6
Conflicts:
	src/Makefile
2012-12-24 16:23:41 +02:00
Yossi Gottlieb d80eace742 Fix large database replication problems. 2012-12-24 15:36:44 +02:00
yoav 9b01538b4f rdb merger utility for merging multiple rdb files into a single one 2012-12-23 18:48:45 +02:00
yoav 7fe98cfd59 rdb merger utility for merging multiple rdb files into a single one 2012-12-23 18:37:13 +02:00
Yossi Gottlieb 76d71fe4df Backward compatible RDB format for dbversion storage. 2012-12-23 16:54:32 +02:00
Yossi Gottlieb 1dac827634 Add optionally-include configuration directive. 2012-12-23 16:38:00 +02:00
Yossi Gottlieb 5430513dbb Add MONITOR TRUNCATED command. 2012-12-21 17:18:45 +02:00
Yossi Gottlieb a3435e8f07 Add HIDECONNECTION command. 2012-12-20 22:48:56 +02:00
Yossi Gottlieb cd0d292721 Single tree multi-architecture (32/64bit) builds. 2012-12-20 22:11:08 +02:00
Yossi Gottlieb f610ba52b1 Clean compiler warnings due to hits/miss stats. 2012-12-20 22:04:16 +02:00
Yossi Gottlieb 1b2213e88f Fix AOF problem introduced by hits/miss statistics. 2012-12-20 21:43:12 +02:00
Yossi Gottlieb 3039150ada Add aof_rewrites and rdb_saves statistics. 2012-12-20 12:59:42 +02:00
Yossi Gottlieb c11c998a6d Separate hits/miss statistics for read/write ops. 2012-12-20 12:43:30 +02:00
Yossi Gottlieb 0d8fef8a12 Add DRAIN command support.
DRAIN command provides a safe mechanism to synchronize masters and slaves
and guarnatee that slaves are up to date with the master's current state.
2012-12-20 00:05:56 +02:00
Yossi Gottlieb bd7a36ada0 SYNCNOW Command support.
The SYNCNOW command is used for conditional SYNC operation that succeeds only
if no other SYNC is in progress, thus providing a guarantee that the RDB
received is up-to-date at the time of the SYNCNOW command.
2012-12-19 22:41:48 +02:00
Yossi Gottlieb 4ea1bcc62b Set syncdbfilename off by default. 2012-12-19 08:14:24 +02:00
Yossi Gottlieb 17608d1c46 Add load-on-startup configuration parameter. 2012-12-19 08:11:32 +02:00
Yossi Gottlieb 07b10789b5 Add BGSAVETO and dedicated SYNC background saving mechanism. 2012-12-19 07:50:23 +02:00
Yossi Gottlieb 37426d1904 Create all temporary files in the same dir as the final file (and thus don't assume file names are local) 2012-12-18 18:37:23 +02:00
Yossi Gottlieb 30ff59e645 Conditional replication. 2012-12-18 17:06:32 +02:00
yoav 3aab06bcc7 Chunked loading of RDB to prevent redis from stalling reading very large keys. 2012-12-12 15:59:22 +02:00
yoav 2fe9915200 Fix: disabling aof on the fly may leave the redis server in inconsistent state. 2012-12-11 14:40:38 +02:00
yoav 29910ba0a1 Better handling of complexity info in slowlog during multi-exec. 2012-12-05 15:04:56 +02:00
antirez d9301f05e2 Redis 2.6.7 2.6.7 2012-12-03 12:53:09 +01:00
Brian J. McManus 6c9897f6cf Issue 804 Add Default-Start and Default-Stop LSB tags for RedHat startup and update-rc.d compatability. 2012-12-03 12:31:10 +01:00
antirez 984f6edf0a Memory leak fixed: release client's bpop->keys dictionary.
Refactoring performed after issue #801 resolution (see commit
2f87cf8b01) introduced a memory leak that
is fixed by this commit.

I simply forgot to free the new allocated dictionary in the client
structure trusting the output of "make test" on OSX.

However due to changes in the "leaks" utility the test was no longer
testing memory leaks. This problem was also fixed.

Fortunately the CI test running at ci.redis.io spotted the bug in the
valgrind run.

The leak never ended into a stable release.
2012-12-03 12:17:56 +01:00
antirez a2b3fff235 Test: fixed osx "leaks" support in test.
Due to changes in recent releases of osx leaks utility, the osx leak
detection no longer worked. Now it is fixed in a way that should be
backward compatible.
2012-12-03 12:17:52 +01:00
antirez 54b08c86a6 Blocking POP: use a dictionary to store keys clinet side.
To store the keys we block for during a blocking pop operation, in the
case the client is blocked for more data to arrive, we used a simple
linear array of redis objects, in the blockingState structure:

    robj **keys;
    int count;

However in order to fix issue #801 we also use a dictionary in order to
avoid to end in the blocked clients queue for the same key multiple
times with the same client.

The dictionary was only temporary, just to avoid duplicates, but since
we create / destroy it there is no point in doing this duplicated work,
so this commit simply use a dictionary as the main structure to store
the keys we are blocked for. So instead of the previous fields we now
just have:

    dict *keys;

This simplifies the code and reduces the work done by the server during
a blocking POP operation.
2012-12-02 20:36:18 +01:00
antirez 6bdcd50b56 Test: regression for issue #801. 2012-12-01 23:07:09 +01:00
antirez cac49a9031 Client should not block multiple times on the same key.
Sending a command like:

BLPOP foo foo foo foo 0

Resulted into a crash before this commit since the client ended being
inserted in the waiting list for this key multiple times.
This resulted into the function handleClientsBlockedOnLists() to fail
because we have code like that:

    if (de) {
        list *clients = dictGetVal(de);
        int numclients = listLength(clients);

        while(numclients--) {
            listNode *clientnode = listFirst(clients);

            /* server clients here... */
        }
    }

The code to serve clients used to remove the served client from the
waiting list, so if a client is blocking multiple times, eventually the
call to listFirst() will return NULL or worse will access random memory
since the list may no longer exist as it is removed by the function
unblockClientWaitingData() if there are no more clients waiting for this
list.

To avoid making the rest of the implementation more complex, this commit
modifies blockForKeys() so that a client will be put just a single time
into the waiting list for a given key.

Since it is Saturday, I hope this fixes issue #801.
2012-12-01 12:26:07 +01:00
yoav 5c7b48e39a Make slowlog test pass after modifying the slowlog format. 2012-11-29 20:14:09 +02:00
yoav 30f23412b7 Add command complexity info to the slow log. 2012-11-29 19:56:24 +02:00
antirez ed70955510 Make an EXEC test more latency proof. 2012-11-29 16:12:26 +01:00
antirez b41f4e5a48 Redis 2.6.6 2.6.6 2012-11-28 18:53:09 +01:00
antirez 21b26915ce Jemalloc updated to version 3.2.0. 2012-11-28 18:42:41 +01:00
antirez 3ccfb5a4d6 Redis 2.6.5 2.6.5 2012-11-22 17:03:27 +01:00
antirez 9120275dc9 EVALSHA is now case insensitive.
EVALSHA used to crash if the SHA1 was not lowercase (Issue #783).
Fixed using a case insensitive dictionary type for the sha -> script
map used for replication of scripts.
2012-11-22 15:51:01 +01:00
antirez de00a5a092 Fix integer overflow in zunionInterGenericCommand().
This fixes issue #761.
2012-11-22 15:28:45 +01:00