https://bugs.exim.org/show_bug.cgi?id=2248
Bug ID: 2248 Summary: Lightweight redis cluster redirect method Product: Exim Version: 4.90 Hardware: x86 OS: All Status: NEW Severity: wishlist Priority: medium Component: Lookups Assignee: ni...@exim.org Reporter: gra...@graemef.net CC: exim-dev@exim.org Created attachment 1072 --> https://bugs.exim.org/attachment.cgi?id=1072&action=edit DEFER rather than ERROR on redis cluster MOVED response. Patch against 4.90.1 lookups/redis.c Synopsis: DEFER rather than ERROR on redis cluster MOVED response. This is a "cheap" way of following 'MOVED' cluster redirect in Redis Cluster. When redis_servers is set to a list of > 1 element, and the Redis servers in that list are in cluster configuration (not describing that here), a query - whether a lookup or setting anything - against the first or subsequent server in the list can receive a response of the form: MOVED 7506 192.168.76.5:7002 i.e. MOVED [shard] [server]:[port] In order to not put full redis cluster client functionality into Exim, this patch turns the REDIS_REPLY_ERROR case of MOVED into a DEFER case instead, thus moving the query onto the next server in the list. Eventually, depending on the number of servers in the cluster, the lookup will land on the server with that shard and will then complete the lookup. NOTE: For a cluster of N elements, all N servers must be defined in redis_servers. This is soak testing on live traffic as I type and has generated no errors. -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##