- 02 May, 2020 1 commit
-
-
zhenwei pi authored
Currently, there are several types of threads/child processes of a redis server. Sometimes we need deeply optimise the performance of redis, so we would like to isolate threads/processes. There were some discussion about cpu affinity cases in the issue: https://github.com/antirez/redis/issues/2863 So implement cpu affinity setting by redis.conf in this patch, then we can config server_cpulist/bio_cpulist/aof_rewrite_cpulist/ bgsave_cpulist by cpu list. Examples of cpulist in redis.conf: server_cpulist 0-7:2 means cpu affinity 0,2,4,6 bio_cpulist 1,3 means cpu affinity 1,3 aof_rewrite_cpulist 8-11 means cpu affinity 8,9,10,11 bgsave_cpulist 1,10-11 means cpu affinity 1,10,11 Test on linux/freebsd, both work fine. Signed-off-by:
zhenwei pi <pizhenwei@bytedance.com>
-
- 01 May, 2020 2 commits
-
-
antirez authored
Probably no performance changes, but the code should be trivial to read as in "No threading? Use the normal function and return".
- 30 Apr, 2020 7 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
Salvatore Sanfilippo authored
lazyfree & eviction: record latency generated by lazyfree eviction
-
antirez authored
-
antirez authored
-
zhaozhao.zz authored
1. add eviction-lazyfree monitor 2. put eviction-del & eviction-lazyfree into eviction-cycle that means eviction-cycle contains all the latency in the eviction cycle including del and lazyfree 3. use getMaxmemoryState to check if we can break in lazyfree-evict
-
- 29 Apr, 2020 7 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
Also improve the message to make clear that there is no *clear* owner, not that there is no owner at all.
-
antirez authored
-
antirez authored
-
srzhao authored
If client gets blocked again in `processUnblockedClients`, redis will not send `REPLCONF GETACK *` to slaves untill next eventloop, so the client will be blocked for 100ms by default(10hz) if no other file event fired. move server.get_ack_from_slaves sinppet after `processUnblockedClients`, so that both the first WAIT command that puts client in blocked context and the following WAIT command processed in processUnblockedClients would trigger redis-sever to send `REPLCONF GETACK *`, so that the eventloop would get `REPLCONG ACK <reploffset>` from slaves and unblocked ASAP.
-
- 28 Apr, 2020 11 commits
-
-
Salvatore Sanfilippo authored
XINFO STREAM FULL should have a default COUNT of 10
-
Guy Benoish authored
-
antirez authored
-
Salvatore Sanfilippo authored
Extend XINFO STREAM output
-
Guy Benoish authored
Introducing XINFO STREAM <key> FULL
-
Salvatore Sanfilippo authored
Fix not used marco in cluster.c
-
Salvatore Sanfilippo authored
Adds `BIN_PATH` to create-cluster
-
Salvatore Sanfilippo authored
hickup, re-fix dictEncObjKeyCompare
-
Oran Agra authored
come to think of it, in theory (not in practice), getDecodedObject can return the same original object with refcount incremented, so the pointer comparision in the previous commit was invalid. so now instead of checking the encoding, we explicitly check the refcount.
-
Salvatore Sanfilippo authored
fix loading race in psync2 tests
-
Oran Agra authored
-
- 27 Apr, 2020 7 commits
-
-
antirez authored
-
Salvatore Sanfilippo authored
allow dictFind using static robj
-
Oran Agra authored
since the recent addition of OBJ_STATIC_REFCOUNT and the assertion in incrRefCount it is now impossible to use dictFind using a static robj, because dictEncObjKeyCompare will call getDecodedObject which tries to increment the refcount just in order to decrement it later.
-
Salvatore Sanfilippo authored
Unstable crc
-
Salvatore Sanfilippo authored
optimize memory usage of deferred replies
-
Oran Agra authored
Now both master and replicas keep track of the last replication offset that contains meaningful data (ignoring the tailing pings), and both trim that tail from the replication backlog, and the offset with which they try to use for psync. the implication is that if someone missed some pings, or even have excessive pings that the promoted replica has, it'll still be able to psync (avoid full sync). the downside (which was already committed) is that replicas running old code may fail to psync, since the promoted replica trims pings form it's backlog. This commit adds a test that reproduces several cases of promotions and demotions with stale and non-stale pings Background: The mearningful offset on the master was added recently to solve a problem were the master is left all alone, injecting PINGs into it's backlog when no one is listening and then gets demoted and tries to replicate from a replica that didn't have any of the PINGs (or at least n...
-
antirez authored
-
- 25 Apr, 2020 3 commits
-
-
Madelyn Olson authored
-
Madelyn Olson authored
-
Madelyn Olson authored
-
- 24 Apr, 2020 2 commits
-
-
antirez authored
-
antirez authored
STRALGO should be a container for mostly read-only string algorithms in Redis. The algorithms should have two main characteristics: 1. They should be non trivial to compute, and often not part of programming language standard libraries. 2. They should be fast enough that it is a good idea to have optimized C implementations. Next thing I would love to see? A small strings compression algorithm.
-