- 07 Aug, 2015 1 commit
-
-
antirez authored
-
- 06 Aug, 2015 3 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
Add the concept of slaves capabilities to Redis, the slave now presents to the Redis master with a set of capabilities in the form: REPLCONF capa SOMECAPA capa OTHERCAPA ... This has the effect of setting slave->slave_capa with the corresponding SLAVE_CAPA macros that the master can test later to understand if it the slave will understand certain formats and protocols of the replication process. This makes it much simpler to introduce new replication capabilities in the future in a way that don't break old slaves or masters. This patch was designed and implemented together with Oran Agra (@oranagra).
-
- 05 Aug, 2015 11 commits
-
-
antirez authored
Our function to read a line with a timeout handles newlines as requests to refresh the timeout, however the code kept subtracting the buffer size left every time a newline was received, for a bug in the loop logic. Fixed by this commit.
-
antirez authored
For PINGs we use the period configured by the user, but for the newlines of slaves waiting for an RDB to be created (including slaves waiting for the FULLRESYNC reply) we need to ping with frequency of 1 second, since the timeout is fixed and needs to be refreshed.
-
antirez authored
-
antirez authored
-
antirez authored
In previous commits we moved the FULLRESYNC to the moment we start the BGSAVE, so that the offset we provide is the right one. However this also means that we need to re-emit the SELECT statement every time a new slave starts to accumulate the changes. To obtian this effect in a more clean way, the function that sends the FULLRESYNC reply was overloaded with a more important role of also doing this and chanigng the slave state. So it was renamed to replicationSetupSlaveForFullResync() to better reflect what it does now.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
This commit attempts to fix a bug involving PSYNC and diskless replication (currently experimental) found by Yuval Inbar from Redis Labs and that was later found to have even more far reaching effects (the bug also exists when diskstore is off). The gist of the bug is that, a Redis master replies with +FULLRESYNC to a PSYNC attempt that fails and requires a full resynchronization. However, the baseline offset sent along with FULLRESYNC was always the current master replication offset. This is not ok, because there are many reasosn that may delay the RDB file creation. And... guess what, the master offset we communicate must be the one of the time the RDB was created. So for example: 1) When the BGSAVE for replication is delayed since there is one already but is not good for replication. 2) When the BGSAVE is not needed as we attach one currently ongoing. 3) When because of diskless replication the BGSAVE is delayed. In all the above cases the PSYNC reply is wrong and the slave may reconnect later claiming to need a wrong offset: this may cause data curruption later.
-
antirez authored
Thanks to Oran Agra from Redis Labs for providing this patch.
-
- 17 Jul, 2015 2 commits
-
-
Salvatore Sanfilippo authored
bugfix: errno might change before logging
-
Salvatore Sanfilippo authored
Fix: aof_delayed_fsync is not reset, fixes #2677
-
- 16 Jul, 2015 1 commit
-
-
Tom Kiemes authored
aof_delayed_fsync was not set to 0 when calling CONFIG RESETSTAT
-
- 13 Jul, 2015 1 commit
-
-
Yongyue Sun authored
Signed-off-by:
Yongyue Sun <abioy.sun@gmail.com>
-
- 04 Jun, 2015 2 commits
- 03 Jun, 2015 3 commits
-
-
Ben Murphy authored
-
Ben Murphy authored
-
antirez authored
-
- 25 May, 2015 1 commit
-
-
therealbill authored
This new command triggers a config flush to save the in-memory config to disk. This is useful for cases of a configuration management system or a package manager wiping out your sentinel config while the process is still running - and has not yet been restarted. It can also be useful for scripting a backup and migrate or clone of a running sentinel.
-
- 19 May, 2015 2 commits
- 15 May, 2015 3 commits
-
-
antirez authored
-
Glenn Nethercutt authored
uphold the smove contract to return 0 when the element is not a member of the source set, even if source=dest
-
Jungtaek Lim authored
-
- 05 May, 2015 2 commits
- 04 May, 2015 8 commits
-
-
FuGangqiang authored
-
FuGangqiang authored
-
FuGangqiang authored
-
Itamar Haber authored
-
therealbill authored
Originally, only the +slave event which occurs when a slave is reconfigured during sentinelResetMasterAndChangeAddress triggers a flush of the config to disk. However, newly discovered slaves don't apparently trigger this flush but do trigger the +slave event issuance. So if you start up a sentinel, add a master, then add a slave to the master (as a way to reproduce it) you'll see the +slave event issued, but the sentinel config won't be updated with the known-slave entry. This change makes sentinel do the flush of the config if a new slave is deteted in sentinelRefreshInstanceInfo.
-
antirez authored
To rewrite the config in the loop that adds slaves back after a master reset, in order to handle switching to another master, is useless: it just adds latency since there is an fsync call in the inner loop, without providing any additional guarantee, but the contrary, since if after the first loop iteration the server crashes we end with just a single slave entry losing all the other informations. It is wiser to rewrite the config at the end when the full new state is configured.
-
Yossi Gottlieb authored
limit.
-
clark.kang authored
-