Opened 8 years ago

Closed 6 years ago

#128 closed enhancement (fixed)

Sharding support in memcache

Reported by: Michaël de Groot Owned by: somebody
Priority: minor Milestone:
Component: nginx-module Version: 1.0.x
Keywords: memcache Cc:
uname -a: Linux web1 2.6.26-1-amd64
nginx -V: nginx version: nginx/1.0.14
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6

Description

I have a membase / couchbase cluster running with 3 nodes. I use it to serve images. I moved it to membase for scalability, it easily brings new nodes online, rebalances the data troughout all the nodes.

I noticed 2 things:

  1. the nginx config does support multiple servers, but only as fallback.
  2. If you configure a fallback when the key doesn't exists, it requests it from both servers even if the key does exist

I would like to submit a feature request that nginx automatically requests the data at the correct membase shard. More information can be found here: http://www.couchbase.com/develop

Thanks!

Change History (1)

comment:1 by Maxim Dounin, 6 years ago

Resolution: fixed
sensitive: 0
Status: newclosed

Recently introduced hash balancer is compatible with the traditional memcached client hashing (as originally implemented in Cache::Memcached perl module), as well as with at least one known consistent hashing algorithm.

As for automatic couchbase support, there are no plans to implement this as of now.

Note: See TracTickets for help on using tickets.