When system time changes back, the timer will not worker properly hence some core functionality of redis will stop working(e.g. replication, bgsave, etc). See issue #633 for details. The patch saves the previous time and when a system clock skew is detected, it will force expire all timers. Modiifed by @antirez: the previous time was moved into the eventLoop structure to make sure the library is still thread safe as long as you use different event loops into different threads (otherwise you need some synchronization). More comments added about the reasoning at the base of the patch, that's worth reporting here: /* If the system clock is moved to the future, and then set back to the * right value, time events may be delayed in a random way. Often this * means that scheduled operations will not be performed soon enough. * * Here we try to detect system clock skews, and force all the time * events to be processed ASAP when this happens: the idea is that * processing events earlier is less dangerous than delaying them * indefinitely, and practice suggests it is. */
patch by Mukund Sivaraman, modified by me to make it simpler and to use my coding style).
…the name of consistency...
loop is never destroyed in Redis). Thanks to @anydot for noticing it.
networking related stuff moved into networking.c moved more code more work on layout of source code SDS instantaneuos memory saving. By Pieter and Salvatore at VMware ;) cleanly compiling again after the first split, now splitting it in more C files moving more things around... work in progress split replication code splitting more Sets split Hash split replication split even more splitting more splitting minor change