antirez
02796ba7a7
Cluster: sanity checks on the cluster bus message length.
2013-02-15 16:44:39 +01:00
antirez
6b9c661838
Cluster: make valgrind happy initializing all the bytes of the node IP.
2013-02-15 12:58:35 +01:00
antirez
7371d5e248
Remove wrong decrRefCount() from getNodeByQuery().
...
This fixes issue #607 .
2013-02-15 11:57:53 +01:00
antirez
20f52b5b78
Top comment for getNodeByQuery() improved.
2013-02-15 11:50:54 +01:00
antirez
e0e15bd06d
Cluster: with 16384 slots we need bigger buffers.
2013-02-14 15:36:33 +01:00
antirez
1649e509c3
Cluster: the cluster state structure is now heap allocated.
2013-02-14 13:20:56 +01:00
antirez
9dfd11c3da
Cluster: Initialize ip and port in createClusterNode().
2013-02-14 13:01:28 +01:00
antirez
ebd666db47
Cluster: from 4096 to 16384 hash slots.
2013-02-14 12:49:16 +01:00
antirez
b70b459b0e
TCP_NODELAY after SYNC: changes to the implementation.
2013-02-05 12:04:30 +01:00
guiquanz
9d09ce3981
Fixed many typos.
2013-01-19 10:59:44 +01:00
antirez
2feef47aa1
MIGRATE: retry one time on I/O error.
...
Now that we cache connections, a retry attempt makes sure that the
operation don't fail just because there is an existing connection error
on the socket, like the other end closing the connection.
Unfortunately this condition is not detectable using
getsockopt(SO_ERROR), so the only option left is to retry.
We don't retry on timeouts.
2012-11-14 11:30:24 +01:00
antirez
05705bc8bb
MIGRATE: fix default timeout to 1000 milliseconds.
...
When a timeout <= 0 is provided we set a default timeout of 1 second.
It was set to 1 millisecond for an error resulting from a recent change.
2012-11-12 18:54:35 +01:00
antirez
149b527a74
MIGRATE timeout should be in milliseconds.
...
While it is documented that the MIGRATE timeout is in milliseconds, it
was in seconds instead. This commit fixes the problem.
2012-11-12 14:01:02 +01:00
antirez
e23d281e48
MIGRATE TCP connections caching.
...
By caching TCP connections used by MIGRATE to chat with other Redis
instances a 5x performance improvement was measured with
redis-benchmark against small keys.
This can dramatically speedup cluster resharding and other processes
where an high load of MIGRATE commands are used.
2012-11-12 00:47:24 +01:00
antirez
4365e5b2d3
BSD license added to every C source and header file.
2012-11-08 18:31:32 +01:00
antirez
1237d71c4e
COPY and REPLACE options for MIGRATE.
...
With COPY now MIGRATE does not remove the key from the source instance.
With REPLACE it uses RESTORE REPLACE on the target host so that even if
the key already eixsts in the target instance it will be overwritten.
The options can be used together.
2012-11-07 15:32:27 +01:00
antirez
e5b5763f56
REPLACE option for RESTORE.
...
The REPLACE option deletes an existing key with the same name (if any)
and materializes the new one. The default behavior without RESTORE is to
return an error if a key already exists.
2012-11-07 10:57:23 +01:00
antirez
6fdc635447
Better Out of Memory handling.
...
The previous implementation of zmalloc.c was not able to handle out of
memory in an application-specific way. It just logged an error on
standard error, and aborted.
The result was that in the case of an actual out of memory in Redis
where malloc returned NULL (In Linux this actually happens under
specific overcommit policy settings and/or with no or little swap
configured) the error was not properly logged in the Redis log.
This commit fixes this problem, fixing issue #509 .
Now the out of memory is properly reported in the Redis log and a stack
trace is generated.
The approach used is to provide a configurable out of memory handler
to zmalloc (otherwise the default one logging the event on the
standard output is used).
2012-08-24 12:55:37 +02:00
antirez
21661d7acc
Fixed a bug in propagation of PUBLISH via the cluster bus.
...
This bug was spotted by clang on FreeBSD.
2012-04-24 11:28:10 +02:00
antirez
e54fe9a79f
A few compiler warnings suppressed.
2012-04-24 11:11:55 +02:00
antirez
a3fb7fd4f6
Minor MIGRATE implementation simplification about ttl handling.
2012-04-10 16:46:29 +02:00
antirez
46738646d4
dump/restore fixed to use the new crc64 API.
2012-04-09 12:33:57 +02:00
antirez
12e91892a0
Another fix for MIGRATE.
2012-04-03 15:10:42 +02:00
antirez
84e5684bca
Two fixed for MIGRATE: fix TTL propagation and fix transferring of data bigger than 64k.
2012-04-03 12:17:40 +02:00
antirez
31f2ecf436
MIGRATE now let the client distinguish I/O errors and timeouts from other erros.
2012-04-02 16:38:24 +02:00
antirez
f8ea19e539
DUMP/RESTORE now use CRC64 instead of truncated SHA1.
2012-04-02 13:10:39 +02:00
antirez
70d848e1fa
RESTORE ability to set a TTL fixed, bug introduced with millisecond expires.
2012-04-02 11:14:47 +02:00
antirez
a149ce6875
Prettify source code of create/verify DUMP payload.
2012-04-02 10:52:39 +02:00
antirez
bd04465931
DUMP / RESTORE: store RDB version in little endian.
2012-04-02 10:46:24 +02:00
antirez
4de6c9a055
New DUMP format includes RDB version and truncated SHA1 checksum.
2012-04-01 12:51:40 +02:00
antirez
44f508f1a8
clusterGetRandomName() generalized into getRandomHexChars() so that we can use it for the run_id field as well.
2012-03-08 10:08:44 +01:00
antirez
d329031fad
Fixed another possible bug in cluster.c found by clang --analyze.
2012-01-25 16:59:36 +01:00
antirez
6710ff24d0
Fixed a non critical bug signaled by clang static analyzer thanks to Mukund Sivaraman for reporting it: there was a not initialized field populating the cluster message header, but it is always fixed at later time before sending the packet.
2012-01-25 16:46:35 +01:00
antirez
c0ba9ebe13
dict.c API names modified to be more coincise and consistent.
2011-11-08 17:07:55 +01:00
antirez
f013f40003
Fixed a few warnings compiling on Linux.
2011-10-23 10:57:01 +02:00
antirez
73fac227a0
use signalModifiedKey to set the key as dirty in the context of WATCH for both MIGRATE and RESTORE.
2011-10-20 11:17:30 +02:00
antirez
6856c7b4d6
First implementation of the ASKING command. Semantics still to verify.
2011-10-17 17:35:23 +02:00
antirez
e0aab1fc79
MIGRATE +NOKEY error was missing the final CRLF causing a protocol error.
2011-10-17 16:44:08 +02:00
antirez
bfbc16ae83
Fixed a typo causing segfault on MIGRATE
2011-10-17 16:39:05 +02:00
antirez
2b9ce0192e
small comment added
2011-10-13 14:51:29 +02:00
antirez
d38ef52085
Redis Cluster: process node to node CLUSTERMSG_TYPE_PUBLISH messages and send it to the local clients.
2011-10-07 16:34:16 +02:00
antirez
c563ce463b
propagate PUBLISH messages using the redis cluster nodes bus. Still need to process the incoming packets of that type. Work in progress.
2011-10-07 15:37:34 +02:00
antirez
9465d83efd
A node can populate a slot if a message from a trusted slot is received claiming ownership of this slot, that is currently empty or served by a node in FAIL state. However this feature was broken since calling clusterAddSlot() was not enough as the slot bit is already set in the node that pong us. We need to directly alter the table. This commit fixes the issue.
2011-10-05 17:40:02 +02:00
antirez
ad7a86fbe0
just minor aesthetic changes to cluster.c
2011-10-05 16:02:45 +02:00
antirez
eab0e26e03
replaced redisAssert() with redisAssertWithInfo() in a shitload of places.
2011-10-04 18:43:03 +02:00
antirez
37d650032a
Rewrite MIGRATE as DEL for AOF/replication. Also increment the dirty counter to both force replication and persistence.
2011-10-03 15:51:10 +02:00
antirez
2a95c944ff
increment server.dirty in restore command to make sure it is replicated and increments the dirty count for persistence concerns.
2011-10-03 15:45:14 +02:00
antirez
66c146592a
when processing gossip packets make sure to also update the node bitmap when associating slots to nodes. Fixed simply using the appropriate helper function to add a slot.
2011-10-01 15:11:07 +02:00
antirez
d38d2fdfdc
Fixed two bugs in the CLUSTER SETSLOT ... NODE subcommand
2011-09-30 22:17:24 +02:00
antirez
c5954c1966
Clear the importing status from the slot if a CLUSTER SETSLOT command permanently assigns the slot to the importing node.
2011-09-30 19:20:56 +02:00