X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/1edbae86782835359dc0ce7250df627b41d147eb..bb039e853df6c2754885c5cfb82dc3f7ea7d25b5:/TODO diff --git a/TODO b/TODO index b7d139e9..7b5febcb 100644 --- a/TODO +++ b/TODO @@ -5,12 +5,14 @@ VERSION 2.2 TODO (Optimizations and latency) ============================================ * Support for syslog(3). -* Lower the CPU usage. -* Lower the RAM usage everywhere possible. -* Specially encoded Sets (like Hashes). * Implement an UDP interface for low-latency operations. -* What about a special coding that is about storing the "rdb" serialized format instead of the actual value? This can be used when we have LRU in order to super-compress data into memory, for data not accessed frequetly. It's a VM-alike strategy but fully in memory, may reduce the space to hold some dataset in an impressive way. Trivial to implement. -* Another idea: LRU does not need to be super precise right? Maybe it's a good idea to just put into the skiplist implementing the LRU just the pointer to the key without evne incr/decr business, nor the need to remove the pointer when the key is deleted. There is to think more about that. +* Use the same pointer of db->dict in db->expire hash table for keys. + 1) Set the keyptr hash table type key destructor to NULL. + 2) Don't copy the key in setExpire(), but instead lookup the same key + in the dict hash table, and use it. + 3) Make sure (and add comments about this) that when a key is deleted or + an expire is touched, the order is: delete the expire, delete the key. + 4) Make sure the SETEX command works well in all the cases. Add tests. VERSION 2.x TODO ================