eleme / corvus

A fast and lightweight Redis Cluster Proxy for Redis 3.0
MIT License
789 stars 143 forks source link

Bump version to v0.2.6 #126

Closed doyoubi closed 7 years ago

doyoubi commented 7 years ago

This version mainly adds support for dynamic reconfiguration and more probes for addressing performance problem.

Configuration

Support CONFIG command. Usage:

CONFIG SET option value  # Dynamically setting option, only support `node`, `loglevel`, and `slowlog-log-slower-than` now.
CONFIG GET option
CONFIG REWRITE  # Update configuration file

Also, thanks to @jasonjoo2010, we can now specify config options in command line. Invoke corvus without any option for more details.

Slowlog Enhancement

An additional field total_latency is added in every slowlog entry. Now it contains:

For the multi-key commands(MGET, MSET, DEL, EXISTS), besides logging slowlog of the themselves, this version will also store its slowest sub-command (in terms of remote latency) with another id but the same total latency.

Count ASK & MOVED

The counts of ASK and MOVED received by corvus can be queried by INFO command.

SELECT Command

Reported by @tremez, some clients will send SELECT first before sending request which corvus doesn't support in previous versions.

Related Pull Requests

Some fixes for the bugs introduced by the new features are omitted.

Features

95 Add command config set node.

100 Support specifying configuration by command option.

102 Add total latency to slowlog and record the slowest sub command.

104 Add command config rewrite.

107 Add statistic for redirection.

109 Reload node map after changing 'node' in config.

115 Add support for SELECT command.

Bugs Fixes

103 Fix empty waiting_queue warning.

Note that this is a workaround. And server_timeout of corvus should be less than the client timeout of redis.

108 Don't clear 'remotes' field from 'INFO' command during updating slot map.