Skip to content

1.0 - Major breaking change

Compare
Choose a tag to compare
@3rd-Eden 3rd-Eden released this 07 Sep 17:25
· 70 commits to master since this release

New hash ring version

This 1.0 release contains a major breaking change for those of us who are using multiple servers with the memcached driver. The 1.0 release contains an updated hashring module which is now fully compatible with libketama and the python hash_ring module. Because of the changes within this module your keys will be requested on different servers as the hash ring now uses a better distribution. To switch between hashing algorithms you can set a compatiblity option. It's ketama by default but you can switch to hash_ring compatiblity by setting to hash_ring

The updated hashring module also fixes a memory leak that we had within memcached as key->server mapping is now cached with a LRU cache instead of just a plain object.

No more CHANGELOG

Also as you might have noticed, the CHANGELOG.md file has been deleted. All future releases and changes will be announced using the releases feature of Github. To see a full list of changes you can just compare the different versions as from now on, we will make sure that every release is automatically tagged (which is done automatically for us using the Github releases feature).

Death to domains

Domains have been source of pain, it's an experimental feature and in some cases lead to memory leaks and crashes of applications. We've decided to completely remove support for domains and believe that node should make it possible for users to implement this instead of library authors.

Future

So what is the future of this module. As some of you might have been noticing the commits and fixes in this module has been slacking to a point of being completely dead at times. My apologies for this but it's quite hard to maintain all your modules equally. If you wish to help maintaining or sponsor the maintenance, please reach out to me on twitter or send me an e-mail.

To keep this module moving forward I've decided to re-start my 1.0 branch which implements a new parser and reboot it as the future 2.0. The new parser will fix a lot of new line issues that this module has faced and dramatically improves the parsing speed. As this will touch all API's it should be considered that it will be a full rewrite of the module as it also allows me to clean up dead and horrible code.