- 31 Mar, 2015 1 commit
-
-
Oran Agra authored
master was closing the connection if the RDB transfer took long time. and also sent PINGs to the slave before it got the initial ACK, in which case the slave wouldn't be able to find the EOF marker.
-
- 02 Mar, 2015 1 commit
-
-
Oran Agra authored
-
- 04 Feb, 2015 1 commit
-
-
antirez authored
-
- 11 Dec, 2014 2 commits
-
-
antirez authored
A few code style changes + consistent format: not nice for humans but better for parsers.
-
Matt Stancliff authored
Instead of manually checking for strchr(n,':') everywhere, we can use our new centralized IP formatting functions.
-
- 03 Dec, 2014 1 commit
-
-
antirez authored
Track bandwidth used by clients and replication (but diskless replication is not tracked since the actual transfer happens in the child process). This includes a refactoring that makes tracking new instantaneous metrics simpler.
-
- 11 Nov, 2014 2 commits
-
-
antirez authored
RDB EOF detection was relying on the final part of the RDB transfer to be a magic 40 bytes EOF marker. However as the slave is put online immediately, and because of sockets timeouts, the replication stream is actually contiguous with the RDB file. This means that to detect the EOF correctly we should either: 1) Scan all the stream searching for the mark. Sucks CPU-wise. 2) Start to send the replication stream only after an acknowledge. 3) Implement a proper chunked encoding. For now solution "2" was picked, so the master does not start to send ASAP the stream of commands in the case of diskless replication. We wait for the first REPLCONF ACK command from the slave, that certifies us that the slave correctly loaded the RDB file and is ready to get more data.
-
antirez authored
-
- 29 Oct, 2014 2 commits
-
-
Matt Stancliff authored
Same as the original bind fixes (we just missed these the first time around). This helps Redis not automatically send connections from the first IP on an interface if we are bound to a specific IP address (e.g. with multiple IP aliases on one interface, you want to send from _your_ IP, not from the first IP on the interface).
-
antirez authored
This caused BGSAVE to be triggered a second time without any need when we switch from socket to disk target via the command CONFIG SET repl-diskless-sync no and there is already a slave waiting for the BGSAVE to start. Also comments clarified about what is happening.
-
- 27 Oct, 2014 4 commits
- 24 Oct, 2014 1 commit
-
-
antirez authored
-
- 17 Oct, 2014 6 commits
-
-
antirez authored
-
antirez authored
While the socket is set in blocking mode, we still can get short writes writing to a socket.
-
antirez authored
This is useful for normal replication in order to refresh the slave when we are persisting on disk, but for diskless replication the child is already receiving data while in WAIT_BGSAVE_END state.
-
antirez authored
-
antirez authored
-
antirez authored
-
- 16 Oct, 2014 5 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
If we turn from diskless to disk-based replication via CONFIG SET, we need a way to start a BGSAVE if there are slaves alerady waiting for a BGSAVE to start. Normally with disk-based replication we do it as soon as the previous child exits, but when there is a configuration change via CONFIG SET, we may have slaves in WAIT_BGSAVE_START state without an RDB background process currently active.
-
antirez authored
-
antirez authored
-
- 15 Oct, 2014 1 commit
-
-
antirez authored
-
- 14 Oct, 2014 1 commit
-
-
antirez authored
-
- 10 Oct, 2014 1 commit
-
-
antirez authored
-
- 29 Sep, 2014 2 commits
-
-
Aaron Rutkovsky authored
Closes #1513
-
Jan-Erik Rediger authored
Closes #1537
-
- 26 Jun, 2014 1 commit
-
-
antirez authored
-
- 21 Jun, 2014 1 commit
-
-
antirez authored
-
- 07 Jun, 2014 2 commits
- 28 Apr, 2014 1 commit
-
-
antirez authored
This commit adds peer ID caching in the client structure plus an API change and the use of sdsMakeRoomFor() in order to improve the reallocation pattern to generate the CLIENT LIST output. Both the changes account for a very significant speedup.
-
- 05 Feb, 2014 1 commit
-
-
antirez authored
Sometime an osx master with a Linux server over a slow link caused a strange error where osx called the writable function for the socket but actually apparently there was no room in the socket buffer to accept the write: write(2) call returned an EAGAIN error, that was not checked, so we considered write(2) == 0 always as a connection reset, which was unfortunate since the bulk transfer has to start again. Also more errors are logged with the WARNING level in the same code path now.
-
- 29 Jan, 2014 1 commit
-
-
antirez authored
Return the number of slaves for the same master having a better replication offset of the current slave, that is, the slave "rank" used to pick a delay before the request for election.
-
- 17 Jan, 2014 1 commit
-
-
antirez authored
When an instance is potentially set to replicate with another master, it is conceptually disconnected forever, since we have no old copy of the dataset for this master in memory.
-
- 08 Jan, 2014 1 commit
-
-
antirez authored
Masters not understanding REPLCONF ACK will reply with errors to our requests causing a number of possible issues. This commit detects a global replication offest set to -1 at the end of the replication, and marks the client representing the master with the REDIS_PRE_PSYNC flag. Note that this flag was called REDIS_PRE_PSYNC_SLAVE but now it is just REDIS_PRE_PSYNC as it is used for both slaves and masters starting with this commit. This commit fixes issue #1488.
-