summaryrefslogtreecommitdiff
path: root/TODO
blob: 145ec5243e93a72686067cb180441b583d06f27f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Redis TODO
----------

WARNING: are you a possible Redis contributor?
         Before implementing 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


CLUSTER
=======

* Implement rehashing and cluster check in redis-trib.
* Reimplement MIGRATE / RESTORE to use just in memory buffers (no disk at
  all). This will require touching a lot of the RDB stuff around, but we may
  hand with faster persistence for RDB.
* Implement the slave nodes semantics and election.
* Allow redis-trib to create a cluster-wide snapshot (using SYNC).
* Allow redis-trib to restore a cluster-wide snapshot (implement UPLOAD?).

SCRIPTING
=========

* SCRIPT FLUSH or alike to start a fresh interpreter?

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.
* Redis big lists as linked lists of small ziplists?
  Possibly a simple heuristic that join near nodes when some node gets smaller than the low_level, and split it into two if gets bigger than high_level.

KNOWN BUGS
==========

* #519: Slave may have expired keys that were never read in the master (so a DEL
  is not sent in the replication channel) but are already expired since
  a lot of time. Maybe after a given delay that is undoubtably greater than
  the replication link latency we should expire this key on the slave on
  access?