antirez
79212927fb
Cluster: use the failure report API to reimplement failure detection.
...
The new system detects a failure only when there is quorum from masters.
2013-02-26 14:58:39 +01:00
antirez
6386d8ffc3
Set process name in ps output to make operations safer.
...
This commit allows Redis to set a process name that includes the binding
address and the port number in order to make operations simpler.
Redis children processes doing AOF rewrites or RDB saving change the
name into redis-aof-rewrite and redis-rdb-bgsave respectively.
This in general makes harder to kill the wrong process because of an
error and makes simpler to identify saving children.
This feature was suggested by Arnaud GRANAL in the Redis Google Group,
Arnaud also pointed me to the setproctitle.c implementation includeed in
this commit.
This feature should work on all the Linux, OSX, and all the three major
BSD systems.
2013-02-26 11:52:12 +01:00
antirez
7ae78905f9
Cluster: invert two functions declarations in more natural order.
2013-02-26 11:19:48 +01:00
antirez
3f8fa86902
Cluster: cleanup idle failure reports every time we remove one.
...
This is not very important as anyway when the function counting the
number of reports is called the cleanup is performed. However with this
change if only part of the nodes that reported the failure will report
the node is back ok, we'll cleanup the older entries ASAP. In complex
split net split scenarios, and when we are dealing with clusters having
nodes in the order of ~ 1000, this can save some CPU.
2013-02-26 11:15:18 +01:00
antirez
d4b7d73115
Cluster: new function clusterNodeDelFailureReport() for failure reports.
...
This is the missing part of the API that will be used to reimplement
failure detection of Cluster nodes.
2013-02-25 19:13:22 +01:00
Salvatore Sanfilippo
b00beac84e
Merge pull request #969 from serphen/unstable
...
Fix error "repl-backlog-size must be 1 or greater"
2013-02-25 09:38:15 -08:00
Arnaud Granal
4780c5313c
Fix error "repl-backlog-size must be 1 or greater"
...
The parameter repl-backlog-size is not parsed correctly in the configuration file. argv[0] is parsed instead of argv[1].
2013-02-25 19:25:48 +02:00
antirez
0b25267f52
Cluster: no limits for the count parameter of CLUSTER GETKEYSINSLOT.
...
Not sure why I set a limit to 1 million keys, there is no reason for
this artificial limit, and anyway this is s a stupid limit because it is
already high enough to create latency issues. So let's the users shoot
on their feet because maybe they just actually know what they are doing.
2013-02-25 12:41:13 +01:00
antirez
4b019d22cd
Cluster: validate slot number in CLUSTER COUNTKEYSINSLOT.
2013-02-25 12:40:32 +01:00
antirez
e1b0d246f9
Cluster: use O(log(N)) algo for countKeysInSlot().
2013-02-25 12:37:50 +01:00
antirez
5b1e7d3849
Cluster: new sub-command CLUSTER COUNTKEYSINSLOT.
...
The new sub-command uses the new countKeysInSlot() API and allows a
cluster client to get the number of keys for a given hashslot.
2013-02-25 12:04:31 +01:00
antirez
1f51d687dd
Cluster: verifyClusterConfigWithData() implemented.
2013-02-25 11:43:49 +01:00
antirez
1acb543576
A comment in main() clarified.
2013-02-25 11:40:21 +01:00
antirez
301f162a2d
Cluster: fix case for getKeysInSlot() and countKeysInSlot().
...
Redis functions start in low case. A few functions about cluster were
capitalized the wrong way.
2013-02-25 11:25:40 +01:00
antirez
a4b9ffec27
Cluster: use CountKeysInSlot() when we just need the count.
2013-02-25 11:23:04 +01:00
antirez
0b86a5e2d1
Cluster: added stub for verifyClusterConfigWithData().
...
See the top-comment for the function in this commit for details about
what the function is supposed to do.
2013-02-25 11:20:17 +01:00
antirez
9766072239
Cluster: added new API countKeysInSlot().
...
This is similar to getKeysInSlot() but just returns the number of keys
found in a given hash slot, without returning the keys.
2013-02-25 11:15:03 +01:00
0x20h
f246a6a11a
suppress external diff program when using git diff.
2013-02-24 18:17:46 +01:00
antirez
023a57a9d5
Cluster: if no previous config exists, create the myself node as master.
2013-02-22 19:24:01 +01:00
antirez
0c179977d8
Cluster: add cluster_size field in CLUSTER INFO output.
2013-02-22 19:20:38 +01:00
antirez
66cadd3ec9
Cluster: new state information, cluster size.
...
The definition of cluster size is: the number of known nodes in the
cluster that are masters and serving at least an hash slot.
2013-02-22 19:18:30 +01:00
antirez
6877d08470
Cluster: remove warning adding clusterNodeSetSlotBit() prototype.
2013-02-22 17:45:49 +01:00
antirez
f66a189d4d
Cluster: introduced a failure reports system.
...
A §Redis Cluster node used to mark a node as failing when itself
detected a failure for that node, and a single acknowledge was received
about the possible failure state.
The new API will be used in order to possible to require that N other
nodes have a PFAIL or FAIL state for a given node for a node to set it
as failing.
2013-02-22 17:43:35 +01:00
antirez
3a4bb6cee4
redis-trib: check that all the nodes agree about the slots configuration.
2013-02-22 12:25:16 +01:00
antirez
361e58008b
redis-trib: skeleton of coverage fix for "keys in multiple nodes" case.
2013-02-22 11:33:10 +01:00
antirez
d2d9422eba
redis-trib: handle slot coverage fix in the "no nodes with keys" case.
2013-02-22 10:23:53 +01:00
antirez
ff71171a8e
Cluster: fix case of slotToKey...() functions.
2013-02-22 10:16:21 +01:00
antirez
782e3ee485
Cluster: empty the internal sorted set mapping keys to slots on FLUSHDB/ALL.
2013-02-22 10:15:32 +01:00
antirez
f65afe7592
redis-trib: specify single node address when fixing coverage.
2013-02-22 10:05:07 +01:00
antirez
26ed0c0e48
redis-trib: ability to fix uncovered slots for the trivial case.
2013-02-21 18:10:06 +01:00
antirez
e1c77fb0c6
redis-trib: fixed typo in method name.
2013-02-21 16:58:27 +01:00
antirez
491bdb8d61
Cluster: more correct update of slots state when PONG is received.
2013-02-21 16:52:06 +01:00
antirez
e9c34fedfd
Call clusterUpdateState() after CLUSTER SETSLOT too.
2013-02-21 16:31:22 +01:00
antirez
4edf3759db
Aesthetic change to make a line more 80-cols friendly.
2013-02-21 16:24:48 +01:00
antirez
4d33e72fdb
redis-trib: move instance vars in the right class.
2013-02-21 13:06:59 +01:00
antirez
1544701d1d
redis-trib: some refactoring and skeleton of the "fix" command.
2013-02-21 13:00:41 +01:00
antirez
1455ba6e36
Cluster: clusterAddSlot() was not doing what stated in the comment.
2013-02-21 11:51:17 +01:00
antirez
0b0a8884fc
Cluster: always use cluster(Add|Del)Slot to modify the cluster slots table.
2013-02-21 11:44:58 +01:00
antirez
1e2a5d119c
Use RESTORE-ASKING for MIGRATE when in cluster mode.
2013-02-20 17:36:54 +01:00
antirez
a9624604ed
Cluster: new command flag forcing implicit ASKING.
...
Also using this new flag the RESTORE-ASKING command was implemented that
will be used by MIGRATE.
2013-02-20 17:28:35 +01:00
antirez
1de23b0795
Cluster: ASKING command fixed, state was not retained.
2013-02-20 17:07:52 +01:00
antirez
71d6ea6755
redis-trib: set the migrating slot in the correct way when resharding.
2013-02-20 15:29:53 +01:00
antirez
f6a8ba8de5
Cluster: I/O errors are now logged at DEBUG level.
2013-02-20 13:18:51 +01:00
antirez
fe4e3581f2
redis-trib: make a few comments 80-cols friendly.
2013-02-15 17:11:55 +01:00
antirez
cf24a53850
Cluster: specific error code for cluster down condition.
2013-02-15 16:53:24 +01:00
antirez
0e7225be93
Merge branch 'unstable' of github.com:antirez/redis into unstable
2013-02-15 16:45:04 +01:00
antirez
79f3570266
Cluster: sanity checks on the cluster bus message length.
2013-02-15 16:44:39 +01:00
antirez
6c4f5dd263
Removed useless newlines from hashTypeCurrentObject().
2013-02-15 13:12:55 +01:00
antirez
47838ff689
Cluster: make valgrind happy initializing all the bytes of the node IP.
2013-02-15 12:58:35 +01:00
antirez
8e84bccec9
Remove wrong decrRefCount() from getNodeByQuery().
...
This fixes issue #607 .
2013-02-15 11:57:53 +01:00