Commits

Author Commit Message Labels Comments Date
Pieter Noordhuis
Whitespace
Dave Pacheco
use port_getn instead of port_get
Dave Pacheco
first cut at event port support
antirez
Added time.h include in redis-cli. redis-cli.c uses the time() function to seed the PRNG, but time.h was not included. This was not noticed since sys/time.h is included and was enough in most systems (but not correct). With Ubuntu 12.04 GCC generates a warning that made us aware of the issue.
antirez
activeExpireCycle(): better precision in max time used. activeExpireCycle() can consume no more than a few milliseconds per iteration. This commit improves the precision of the check for the time elapsed in two ways: 1) We check every 16 iterations instead of the main loop instead of 256. 2) We reset iterations at the start of the function and not every time we switch to the next database, so the check is correctly performed every 16 iterations.
antirez
Impovements for: Redis timer, hashes rehashing, keys collection. A previous commit introduced REDIS_HZ define that changes the frequency of calls to the serverCron() Redis function. This commit improves different related things: 1) Software watchdog: now the minimal period can be set according to REDIS_HZ. The minimal period is two times the timer period, that is: (1000/REDIS_HZ)*2 milliseconds 2) The incremental rehashing is now performed in the expires…
antirez
Redis timer interrupt frequency configurable as REDIS_HZ. Redis uses a function called serverCron() that is very similar to the timer interrupt of an operating system. This function is used to handle a number of asynchronous things, like active expired keys collection, clients timeouts, update of statistics, things related to the cluster and replication, triggering of BGSAVE and AOF rewrite process, and so forth. In the past the timer was called 1 time …
antirez
Added time.h include in redis-cli. redis-cli.c uses the time() function to seed the PRNG, but time.h was not included. This was not noticed since sys/time.h is included and was enough in most systems (but not correct). With Ubuntu 12.04 GCC generates a warning that made us aware of the issue.
antirez
activeExpireCycle(): better precision in max time used. activeExpireCycle() can consume no more than a few milliseconds per iteration. This commit improves the precision of the check for the time elapsed in two ways: 1) We check every 16 iterations instead of the main loop instead of 256. 2) We reset iterations at the start of the function and not every time we switch to the next database, so the check is correctly performed every 16 iterations.
antirez
Impovements for: Redis timer, hashes rehashing, keys collection. A previous commit introduced REDIS_HZ define that changes the frequency of calls to the serverCron() Redis function. This commit improves different related things: 1) Software watchdog: now the minimal period can be set according to REDIS_HZ. The minimal period is two times the timer period, that is: (1000/REDIS_HZ)*2 milliseconds 2) The incremental rehashing is now performed in the expires…
antirez
Redis timer interrupt frequency configurable as REDIS_HZ. Redis uses a function called serverCron() that is very similar to the timer interrupt of an operating system. This function is used to handle a number of asynchronous things, like active expired keys collection, clients timeouts, update of statistics, things related to the cluster and replication, triggering of BGSAVE and AOF rewrite process, and so forth. In the past the timer was called 1 time …
antirez
Add an implementation of mstime() to 2.4. Commit 9419eb0 back ported a better expired keys collection algorithm that is more incremental but for it to compile and work we need an implementation of the mstime() function that was missing in 2.4.
antirez
redis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SIGCONT are handled correctly.
antirez
redis-cli pipe mode: handle EAGAIN while writing to socket.
antirez
redis-cli --pipe for mass import.
antirez
If the computer running the Redis test is slow, we revert to --clients 1 to avoid false positives.
antirez
Comment improved so that the code goal is more clear. Thx to @agladysh.
antirez
More incremental active expired keys collection process. If a large amonut of keys are all expiring about at the same time, the "active" expired keys collection cycle used to block as far as the percentage of already expired keys was >= 25% of the total population of keys with an expire set. This could block the server even for many seconds in order to reclaim memory ASAP. The new algorithm uses at max a small amount of milliseconds per cycle, even if …
antirez
Comment improved so that the code goal is more clear. Thx to @agladysh.
antirez
More incremental active expired keys collection process. If a large amonut of keys are all expiring about at the same time, the "active" expired keys collection cycle used to block as far as the percentage of already expired keys was >= 25% of the total population of keys with an expire set. This could block the server even for many seconds in order to reclaim memory ASAP. The new algorithm uses at max a small amount of milliseconds per cycle, even if …
antirez
If the computer running the Redis test is slow, we revert to --clients 1 to avoid false positives.
antirez
redis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SIGCONT are handled correctly.
antirez
redis-cli pipe mode: handle EAGAIN while writing to socket.
antirez
redis-cli --pipe for mass import.
antirez
Comment improved so that the code goal is more clear. Thx to @agladysh.
antirez
More incremental active expired keys collection process. If a large amonut of keys are all expiring about at the same time, the "active" expired keys collection cycle used to block as far as the percentage of already expired keys was >= 25% of the total population of keys with an expire set. This could block the server even for many seconds in order to reclaim memory ASAP. The new algorithm uses at max a small amount of milliseconds per cycle, even if …
antirez
If the computer running the Redis test is slow, we revert to --clients 1 to avoid false positives.
antirez
redis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SIGCONT are handled correctly.
antirez
memtest.c: integer overflow fixed.
antirez
Macros ULONG_ONEZERO / ULONG_ZEROONE were inverted in #ifdef to test 32/64 bit arch.
  1. Prev
  2. Next