 2021-13-07  Tyson Andre  <tysonandre775@hotmail.com>
    * twemproxy: version 0.5.0 release
	  Same as 0.5.0-RC1

 2021-06-07  Tyson Andre  <tysonandre775@hotmail.com>
    * twemproxy: version 0.5.0-RC1 release
	  Add 'tcpkeepalive' pool boolean config flag setting
	  to enable tcp keepalive (charsyam, manju)
	  Support redis bitpos command (clark kang)
	  Fix parsing of redis error response for error type with no space,
	  add tests (tyson, tom dalton)
	  Update integration tests, add C unit test suite for 'make check' (tyson)
	  Increase the maximum host length+port+identifier to 273
	  in ketama_update (李广博)
	  Always initialize file permissions field when listening on a unix domain
	  socket (tyson)
	  Use number of servers instead of number of points on the continuum when
	  sharding requests to backend services to improve sharding performance
	  and fix potential invalid memory access when all hosts were ejected
	  from a pool. (tyson)
	  Optimize performance of deletion of single redis keys (vincentve)
	  Don't fragment memcache/redis get commands when they only have a single
	  key (improves performance and error handling of single key case) (tyson)
	  Don't let requests hang when there is a dns error when processing a
	  fragmented request (e.g. multiget with multiple keys) (tyson)
	  Allow extra parameters for redis spop (charsyam)
	  Update documentation and README (various)
	  Fix memory leak bug for redis mset (deep011)
	  Support arbitrarily deep nested redis multi-bulk
	  responses (nested arrays) (qingping209, tyson)
	  Upgrade from libyaml 0.1.4 to 0.2.5 (tyson)
	  Fix compiler warnings about wrong conversion specifiers in format
	  strings for logging (tyson)
	  Log the async backend used and any debug options in the
	  '--help'/'--version' output.
	  Add support for many more new redis commands and updates to existing
	  redis commands (tyson)
	  Optimization: Skip hashing and choosing server index when a pool has
	  exactly one server (tyson)
	  Support memcache 'version' requests by proxying the request to a single
	  backend memcache server to fetch the server version. (tyson)
	  Make error messages for creating the stats server during startup clearer. (tyson)

 2015-22-06  Manju Rajashekhar  <manj@cs.stanford.edu>
    * twemproxy: version 0.4.1 release
      backend server hostnames are resolved lazily
      redis_auth is only valid for a redis pool
      getaddrinfo returns non-zero +ve value on error
      fix-hang-when-command-only (charsyam)
      fix bug crash when get command without key and whitespace (charsyam)
      mark server as failed on protocol level transiet failures like -OOM, -LOADING, etc
      implemented support for parsing fine grained redis error response
      remove redundant conditional judgement in rbtree deletion (leo ma)
      fix bug mset has invalid pair (charsyam)
      temp fix a core on kqueue (idning)
      support "touch" command for memcached (panmiaocai)
      fix redis parse rsp bug (charsyam)
      SORT command can take multiple arguments. So it should be part of redis_argn() and not redis_arg0()
      remove incorrect assert because client could send data after sending a quit request which must be discarded
      allow file permissions to be set for UNIX domain listening socket (ori liveneh)
      return error if formatted is greater than mbuf size by using nc_vsnprintf() in msg_prepend_format()
      fix req_make_reply on msg_get, mark it as response (idning)
      redis database select upon connect (arne claus)
      redis_auth (charsyam)
      allow null key(empty key) (idning)
      fix core on invalid mset like "mset a a a" (idning)

2014-18-10  idning <idning@gmail.com>
    * twemproxy: version 0.4.0 release
      mget improve (idning)
      many new commands supported: LEX, PFADD, PFMERGE, SORT, PING, QUIT, SCAN... (mattrobenolt, areina, idning)
      handle max open file limit(allenlz)
      add notice-log and use ms time in log(idning)
      fix bug in string_compare (andyqzb)
      fix deadlock in sighandler (idning)

2013-20-12  Manju Rajashekhar  <manj@cs.stanford.edu>
    * twemproxy: version 0.3.0 release
      SRANDMEMBER support for the optional count argument (mkhq)
      Handle case where server responds while the request is still being sent (jdi-tagged)
      event ports (solaris/smartos) support
      add timestamp when the server was ejected
      support for set ex/px/nx/xx for redis 2.6.12 and up (ypocat)
      kqueue (bsd) support (ferenyx)
      fix parsing redis response to accept integer reply (charsyam)

2013-23-04  Manju Rajashekhar  <manj@cs.stanford.edu>
    * twemproxy: version 0.2.4 release
      redis keys must be less than mbuf_data_size() in length (fifsky)
      Adds support for DUMP/RESTORE commands in Redis (remotezygote)
      Use of the weight value in the modula distribution (mezzatto)
      Add support to unix socket connections to servers (mezzatto)
      only check for duplicate server name and not 'host:port:weight' when 'name' is configured
      crc16 hash support added (mezzatto)

2013-31-01  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.2.3 release
      RPOPLPUSH, SDIFF, SDIFFSTORE, SINTER, SINTERSTORE, SMOVE, SUNION, SUNIONSTORE, ZINTERSTORE, and ZUNIONSTORE support (dcartoon)
      EVAL and EVALSHA support (ferenyx)
      exit 1 if configuration file is invalid (cofyc)
      return non-zero exit status when nutcracker cannot start for some reason
      use server names in stats (charsyam)
      Fix failure to resolve long FQDN name resolve (conmame)
      add support for hash tags

2012-18-10  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.2.2 release
      fix the off-by-one error when calculating redis key length

2012-12-10  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.2.1 release
      don't use buf in conf_add_server
      allow an optional instance name for consistent hashing (charsyam)
      add --stats-addr=S option
      add stats-bind-any -a option (charsyam)

2012-12-03  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.2.0 release
      add -D or --describe-stats command-line argument to print stats description
      redis support in twemproxy
      setup pre/post splitcopy and pre/post coalesce handlers in msg struct
      memcache pre_splitcopy, post_splitcopy, pre_coalesce and post_coalesce handlers
      every fragment of a msg vector keeps track of the first/last fragment, number of fragments and fragment owner
      set up msg parser handler for memcache connections
      refactor parsing code and create header file nc_proto.h
      stats_listen should use st->addr as the listening address string
      delete stats tracking memcache requests and responses; stats module no longer tracks protocol related stats

2012-10-27  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.1.20 release
      on msg_repair, msg->pos should point to nbuf->pos and not nbuf->last
      refactor memcache parsing code into proto directory
      add redis option to configuration file
      fix macro definition strXcmp error for big endian
      fix log_hexdump and loga_hexdump

2012-07-31  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.1.19 release
      close server connection on a stray response (yashh, bmatheny)

2012-06-19  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.1.18 release
      command line option to set mbuf chunk size

2012-05-09  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.1.17 release
      use _exit(0) instead of exit(0) when daemonizing
      use loga instead of log_stderr in nc_stacktrace

2012-02-09  Manju Rajashekhar  <manj@twitter.com>
    * twemproxy: version 0.1.16 release
      twemproxy (aka nutcracker) is a fast and lightweight proxy for memcached protocol.

