Corvus Versions Save

A fast and lightweight Redis Cluster Proxy for Redis 3.0

v0.2.7

6 years ago

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

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:

  • 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.

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

7 years ago

#98 Fix dead loop

v0.2.5

7 years ago

#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

7 years ago

#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

7 years ago
  • #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

v0.2.2

8 years ago

v0.2.1

8 years ago

v0.2.0

8 years ago

v0.1.1

8 years ago