- 28 Mar, 2013 3 commits
- 27 Mar, 2013 4 commits
- 26 Mar, 2013 7 commits
-
-
antirez authored
The hope is that the new one is more readable.
-
antirez authored
Fixes issue #1024.
-
antirez authored
This commit fixes two corner cases for the TTL command. 1) When the key was already logically expired (expire time older than current time) the command returned -1 instead of -2. 2) When the key was existing and the expire was found to be exactly 0 (the key was just about to expire), the command reported -1 (that is, no expire) instead of a TTL of zero (that is, about to expire).
-
antirez authored
-
antirez authored
MULTI/EXEC is now propagated to the AOF / Slaves only once we encounter the first command that is not a read-only one inside the transaction. The old behavior was to always propagate an empty MULTI/EXEC block when the transaction was composed just of read only commands, or even completely empty. This created two problems: 1) It's a bandwidth waste in the replication link and a space waste inside the AOF file. 2) We used to always increment server.dirty to force the propagation of the EXEC command, resulting into triggering RDB saves more often than needed. Note: even read-only commands may also trigger writes that will be propagated, when we access a key that is found expired and Redis will synthesize a DEL operation. However there is no need for this to stay inside the transaction itself, but only to be ordered. So for instance something like: MULTI GET foo SET key zap EXEC May be propagated into: DEL foo MULTI SET key zap EXEC While the DEL is outside the transaction, the commands are delivered in the right order and it is not possible for other commands to be inserted between DEL and MULTI.
-
antirez authored
-
antirez authored
The behavior is the same, but the code is now cleaner and uses the proper interface instead of dealing directly with AOF/replication functions.
-
- 25 Mar, 2013 7 commits
- 22 Mar, 2013 7 commits
-
-
antirez authored
Redis-tools is a connection of tools no longer mantained that was intented as a way to economically make sense of Redis in the pre-vmware sponsorship era. However there was a nice redis-stat utility, this commit imports one of the functionalities of this tool here in redis-cli as it seems to be pretty useful. Usage: redis-cli --stat The output is similar to vmstat in the format, but with Redis specific stuff of course. From the point of view of the monitored instance, only INFO is used in order to grab data.
-
antirez authored
This is needed in order to colorize it as next step. We use conventions in output messages such as >>> This is an action *** This is a warning [ERR] This is an error [OK] That's fine And so forth, so that a color will be associated checking the first three chars.
-
antirez authored
Slot zero was hardcoded (!)
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
- 21 Mar, 2013 6 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
This way we are sure to destroy the slot->key map every time we destroy the DB, for instance when reloading a DB due to replication.
-
antirez authored
Open slots are slots found in importing or migrating slot when a cluster check is performed.
-
antirez authored
-
antirez authored
-
- 20 Mar, 2013 4 commits
-
-
antirez authored
This way we make sure every time a master is turned into a replica the flag will be cleared.
-
antirez authored
When a master turns into a slave after a failover event, make sure to clear the assigned slots before setting up the replication, as a slave should never claim slots in an explicit way, but just take over the master slots when replacing its master.
-
antirez authored
A slave node set this flag for itself when, after receiving authorization from the majority of nodes, it turns itself into a master. At the same time now this flag is tested by nodes receiving a PING message before reconfiguring after a failover event. This makes the system more robust: even if currently there is no way to manually turn a slave into a master it is possible that we'll have such a feature in the future, or that simply because of misconfiguration a node joins the cluster as master while others believe it's a slave. This alone is now no longer enough to trigger reconfiguration as other nodes will check for the PROMOTED flag. The PROMOTED flag is cleared every time the node is turned back into a replica of some other node.
-
antirez authored
Sender flags were not propagated for the sender, but only for nodes in the gossip section. This is odd and in the next commits we'll need to get updated flags for the sender node, so this commit adds a new field in the cluster messages header. The message header is the same size as we reused some free space that was marked as 'unused' because of alignment concerns.
-
- 19 Mar, 2013 2 commits
-
-
antirez authored
So when the failing master node is back in touch with the cluster, instead of remaining unused it is converted into a replica of the new master, ready to perform the fail over if the new master node will fail at some point. Note that as a side effect clients with stale configuration are now not an issue as well, as the node converted into a slave will not accept queries but will redirect clients accordingly.
-
antirez authored
The code handling a master that turns into a slave or the contrary was improved in order to avoid repeating the same operations. Also the readability and conceptual simplicity was improved.
-