]> git.saurik.com Git - redis.git/blobdiff - TODO
fixed a few bugs in DS store, now it's somewhat about able to reply to 'GET foo'...
[redis.git] / TODO
diff --git a/TODO b/TODO
index 7d91a10331937c9a4b39e5006113e8c77c599a12..9e6b0561b3b4c3bcb67f9c6eb54cd84f68a35015 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,36 +1,44 @@
-BETA 8 TODO
-- keys expire
-- sunion ssub
-- write integers in a special way on disk (and on memory?)
-- compact types for disk storing of short strings (no 4 bytes overhead!)
-- network layer stresser in test in demo
-- maxclients directive
-- check 'server.dirty' everywere
-- replication tests
-- command line client. If the last argument of a bulk command is missing get it from stdin. Example:
-    $ echo "bar" | redis-client SET foo
-    $ redis-client SET foo bar
-    $ redis-client GET foo
-    bar
-    $
-- Make Redis aware of the memory it is using thanks to getrusage() and report this info with the INFO command.
-- INFO command: clients, slave/master, requests/second in the last N seconds, memory usage, uptime, dirty, lastsave
-
-FUTURE
-
-ROLLBACK command:
-
-    ROLLBACK UNSET x
-    SET x 10
-    EXPIRE x 3600
-    COMMIT
-
-    (multiple rollbacks are allowed)
-
-    or alternatively
-
-    TRANSACTION SET x 1000
-    TRANSACTION EXPIRE x 1000
-    COMMIT
-
-    but this sucks since there is no way to check the error message.
+Redis TODO
+----------
+
+WARNING: are you a possible Redis contributor?
+         Before implementing what is listed what is listed in this file
+         please drop a message in the Redis google group or chat with
+         antirez or pietern on irc.freenode.org #redis to check if the work
+         is already in progress and if the feature is still interesting for
+         us, and *how* exactly this can be implemented to have good changes
+         of a merge. Otherwise it is probably wasted work! Thank you
+
+VM TODO
+=======
+
+* Use multiple open FDs against the VM file, one for thread.
+* Check what happens performance-wise if instead of creating threads again and again the same threads are reused forever. Note: this requires a way to disable this clients in the child, but waiting for empty new jobs queue can be enough.
+* mmap the swap file.
+* Use just a single IO Job to swap out a key, and add a mutex so that pages in the page table can be marked as used and scanned from the thread itself.
+
+REPLICATION
+===========
+
+* PING between master and slave from time to time, so we can subject the
+master-slave link to timeout, and detect when the connection is gone even
+if the socket is still up.
+
+OPTIMIZATIONS
+=============
+
+* SORT: Don't copy the list into a vector when BY argument is constant.
+* Write the hash table size of every db in the dump, so that Redis can resize the hash table just one time when loading a big DB.
+* Read-only mode for slaves.
+
+KNOWN BUGS
+==========
+
+* What happens in the following scenario:
+    1) We are reading an AOF file.
+    2) SETEX FOO 5 BAR
+    3) APPEND FOO ZAP
+    What happens if between 1 and 2 for some reason (system under huge load
+    or alike) too many time passes? We should prevent expires while the
+    AOF is loading.
+