- 05 Mar, 2014 13 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
This commit sets the failover timeout to 30 seconds instead of the 180 seconds default, and allows to reconfigure multiple slaves at the same time. This makes tests less sensible to timing, with the result that there are less false positives due to normal behaviors that require time to succeed or to be retried. However the long term solution is probably some way in order to detect when a test failed because of timing issues (for example split brain during leader election) and retry it.
-
antirez authored
Sentinel needs to avoid split brain conditions due to multiple sentinels trying to get voted at the exact same time. So far some desynchronization was provided by fluctuating server.hz, that is the frequency of the timer function call. However the desynchonization provided in this way was not enough when using many Sentinel instances, especially when a large quorum value is used in order to force a greater degree of agreement (more than N/2+1). It was verified that it was likely to trigger a split brain condition, forcing the system to try again after a timeout. Usually the system will succeed after a few retries, but this is not optimal. This commit desynchronizes instances in a more effective way to make it likely that the first attempt will be successful.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
- 27 Feb, 2014 6 commits
-
-
antirez authored
-
antirez authored
With the new behavior it is possible to specify just the start in the range (the end will be assumed to be the first byte), or it is possible to specify both start and end. This is useful to change the behavior of the command when looking for zeros inside a string. 1) If the user specifies both start and end, and no 0 is found inside the range, the command returns -1. 2) If instead no range is specified, or just the start is given, even if in the actual string no 0 bit is found, the command returns the first bit on the right after the end of the string. So for example if the string stored at key foo is "\xff\xff": BITPOS foo (returns 16) BITPOS foo 0 -1 (returns -1) BITPOS foo 0 (returns 16) The idea is that when no end is given the user is just looking for the first bit that is zero and can be set to 1 with SETBIT, as it is "available". Instead when a specific range is given, we just look for a zero within the boundaries of the range.
-
antirez authored
It appears to work but more stress testing, and both unit tests and fuzzy testing, is needed in order to ensure the implementation is sane.
-
antirez authored
-
antirez authored
It was verified in practice that this test is able to stress much more the implementation by introducing errors that were only trivially to detect with different offsets but impossible to detect starting always at zero and counting bits the full length of the string.
-
antirez authored
-
- 25 Feb, 2014 21 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
The computation is just something to take the CPU busy, no need to use a specific type. Since stdint.h was not included this prevented compilation on certain systems.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
michael-grunder authored
This commit changes the findBigKeys() function in redis-cli.c to use the new SCAN command for iterating the keyspace, rather than RANDOMKEY. Because we can know when we're done using SCAN, it will exit after exhausting the keyspace.
-
antirez authored
-
antirez authored
An unit can abort in the middle for an error. The next unit should not assume that the instances are in a clean state, and must restart what was left killed.
-
antirez authored
Sentinel tests are designed to be dependent on the previous tests in the same unit, so usually we can't continue with the next test in the same unit if a previous test failed.
-
antirez authored
The test was previously performed by removing the master from the Sentinel monitored masters. The test with the Sentinels crashed is more similar to real-world partitions / failures.
-
antirez authored
Also kill_instance was modified to warn when a test will try to kill the same instance multiple times for error.
-
antirez authored
The area a number of mandatory tests to craete a stable setup for testing that is not too sensitive to timing issues. All those tests moved to includes/init-tests, and marked as (init).
-
antirez authored
-
antirez authored
The new common initialization code used to start a new unit already set the timeout to 2000 milliseconds.
-
antirez authored
-
antirez authored
Now that we have a runtime configuration system, it is very important to be able to log how the Sentinel configuration changes over time because of API calls.
-
antirez authored
-
antirez authored
-