The implementation in ceilometer is very different to the Ironic one - are you saying the test you linked fails with Ironic, or that it fails with the ceilometer code today?
The Ironic hash_ring implementation uses a hash: def _get_partition(self, data): try: return (struct.unpack_from('>I', hashlib.md5(data).digest())[0] >> self.partition_shift) except TypeError: raise exception.Invalid( _("Invalid data supplied to HashRing.get_hosts.")) so I don't see the fixed size thing you're referring to. Could you point a little more specifically? Thanks! -Rob On 1 September 2014 19:48, Nejc Saje <ns...@redhat.com> wrote: > Hey guys, > > in Ceilometer we're using consistent hash rings to do workload > partitioning[1]. We've considered generalizing your hash ring implementation > and moving it up to oslo, but unfortunately your implementation is not > actually consistent, which is our requirement. > > Since you divide your ring into a number of equal sized partitions, instead > of hashing hosts onto the ring, when you add a new host, > an unbound amount of keys get re-mapped to different hosts (instead of the > 1/#nodes remapping guaranteed by hash ring). I've confirmed this with the > test in aforementioned patch[2]. > > If this is good enough for your use-case, great, otherwise we can get a > generalized hash ring implementation into oslo for use in both projects or > we can both use an external library[3]. > > Cheers, > Nejc > > [1] https://review.openstack.org/#/c/113549/ > [2] > https://review.openstack.org/#/c/113549/21/ceilometer/tests/test_utils.py > [3] https://pypi.python.org/pypi/hash_ring > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev -- Robert Collins <rbtcoll...@hp.com> Distinguished Technologist HP Converged Cloud _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev