- 08 Jul, 2019 2 commits
-
-
Oran Agra authored
The implementation of the diskless replication was currently diskless only on the master side. The slave side was still storing the received rdb file to the disk before loading it back in and parsing it. This commit adds two modes to load rdb directly from socket: 1) when-empty 2) using "swapdb" the third mode of using diskless slave by flushdb is risky and currently not included. other changes: -------------- distinguish between aof configuration and state so that we can re-enable aof only when sync eventually succeeds (and not when exiting from readSyncBulkPayload after a failed attempt) also a CONFIG GET and INFO during rdb loading would have lied When loading rdb from the network, don't kill the server on short read (that can be a network error) Fix rdb check when performed on preamble AOF tests: run replication tests for diskless slave too make replication test a bit more aggressive Add test for diskless load swapdb
-
Angus Pearson authored
-
- 05 Jul, 2019 1 commit
-
-
antirez authored
-
- 03 Jul, 2019 2 commits
- 30 Jun, 2019 2 commits
- 13 Jun, 2019 1 commit
-
-
Angus Pearson authored
-
- 10 Jun, 2019 1 commit
-
-
Angus Pearson authored
and to keep OBJ_* enum to string canonicalization in one place.
-
- 06 May, 2019 7 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
Ubuntu authored
Now threads are stopped even when the connections drop immediately to zero, not allowing the networking code to detect the condition and stop the threads. serverCron() will handle that.
-
antirez authored
This is just an experiment for now, there are a couple of race conditions, mostly harmless for the performance gain experiment that this commit represents so far. The general idea here is to take Redis single threaded and instead fan-out on expansive kernel calls: write(2) in this case, but the same concept could be easily implemented for read(2) and protcol parsing. However just threading writes like in this commit, is enough to evaluate if the approach is sounding.
-
- 29 Apr, 2019 1 commit
-
-
zhaozhao.zz authored
-
- 24 Mar, 2019 1 commit
-
-
Oran Agra authored
when redis appends the blocked client reply list to the real client, it didn't bother to check if it is in fact the master client. so a slave executing that module command will send replies to the master, causing the master to send the slave error responses, which will mess up the replication offset (slave will advance it's replication offset, and the master does not)
-
- 21 Mar, 2019 2 commits
- 18 Mar, 2019 1 commit
-
-
Yossi Gottlieb authored
-
- 15 Mar, 2019 1 commit
-
-
Yossi Gottlieb authored
-
- 07 Mar, 2019 1 commit
-
-
Yuan Zhou authored
hashTypeTryObjectEncoding() is not used now
-
- 27 Feb, 2019 2 commits
-
-
vattezhang authored
-
vattezhang authored
-
- 25 Feb, 2019 1 commit
-
-
antirez authored
-
- 21 Feb, 2019 2 commits
- 13 Feb, 2019 1 commit
-
-
zhaozhao.zz authored
Adding another new filed categories at the end of command reply, it's easy to read and distinguish flags and categories, also compatible with old format.
-
- 12 Feb, 2019 2 commits
-
-
Guy Benoish authored
In some cases processMultibulkBuffer uses sdsMakeRoomFor to expand the querybuf, but later in some cases it uses that query buffer as is for an argv element (see "Optimization"), which means that the sds in argv may have a lot of wasted space, and then in case modules keep that argv RedisString inside their data structure, this space waste will remain for long (until restarted from rdb).
-
zhaozhao.zz authored
In mostly production environment, normal user's behavior should be limited. Now in redis ACL mechanism we can do it like that: user default on +@all ~* -@dangerous nopass user admin on +@all ~* >someSeriousPassword Then the default normal user can not execute dangerous commands like FLUSHALL/KEYS. But some admin commands are in dangerous category too like PSYNC, and the configurations above will forbid replica from sync with master. Finally I think we could add a new configuration for replication, it is masteruser option, like this: masteruser admin masterauth someSeriousPassword Then replica will try AUTH admin someSeriousPassword and get privilege to execute PSYNC. If masteruser is NULL, replica would AUTH with only masterauth like before.
-
- 07 Feb, 2019 1 commit
-
-
antirez authored
-
- 05 Feb, 2019 1 commit
-
-
antirez authored
-
- 04 Feb, 2019 4 commits
- 31 Jan, 2019 1 commit
-
-
antirez authored
-
- 23 Jan, 2019 2 commits