Releases: eleme/corvus
v0.2.7
This version is mainly for:
- Crash fix in SLOWLOG #129
- Compatibility support for the new format of
CLUSTER NODES
, which makes corvus be able to work with Redis 4.0 now #124 . Note that corvus still does not support new commands introduced in redis 3.2 and redis 4.
Build
Download the corvus-0.2.7.tar.bz2
and run the following command.
$ tar xjf corvus-0.2.7.tar.bz2 && cd corvus-0.2.7
$ make deps && make
Then you can find corvus
binary in src/
v0.2.6
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:
- Entry id
- Timestamp
- Remote latency (from sending command to redis to receiving response from redis)
- Total latency (from receiving request from client to responding to client)
- Command details
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.
0.2.5.1
v0.2.5
#86 Randomly pick up the node used to update slots
#88 Fix duplicate client_eof caused by connection timeout
#87 Support slowlog command
#90 Add cluster name, pid, port to log
#91 Send slow command to statsd
#92 Use atomic operation to manipulate stats cumulation for safety
#93 Fix invalid resp in 'proxy info' command
#96 Amend response format of 'proxy info'
#94 Ignore command with error result in slowlog. Fix some bugs
v0.2.4
#82 Revert "Send slow command to statsd. Close #33"
#75 Removed beginning underscores from identifiers, resolves #37
#70 Send slow command to statsd. Close #33
#74 Remove unnecessary null pointer checks, closes #40
#73 Corvus==0.2.3 doesn't support redis 3.2.0 yet
#72 Use config read-strategy
to control read/write separation, closes #67
#71 Changed to compare keys in dict_index
for safety
#64 Replace CLUSTER SLOTS
with CLUSTER NODES
to get slot map
#68 Revert "Do not update slot map after server EOF"
#66 Implement command QUIT
, closes #65
#63 add support for TIME command
#59 Add option for separating read and write
#61 Do not update slot map after server EOF
v0.2.3
- #58 Make all statsd metrics incremental, resolves #51
- #57 Add archive script for release
- #56 Updated build instruction
- #55 Use jemalloc
- #54 Limit the length of server iov for reducing latency
- #52 Implement AUTH command
- #49 Disabled waiting for commands to finish in client_read
- #48 Stats shouldn't be reset by command
INFO
- #47 Refactored thread spawning
- #44 Removed mbuf_queue_get
- #42 Simplified signal handler, closes #39