class_docstr: Implement a ketama compatible consistent hashing ring.
docstr: Generate a ketama compatible continuum/ring.
code: def _create_ring(self, nodes):
      """Generate a ketama compatible continuum/ring."""
      _weight_sum = 0
      for node_conf in self._nodes.values():
          _weight_sum += node_conf["weight"]
      self._weight_sum = _weight_sum
  
      _distribution = Counter()
      _keys = []
      _ring = {}
      for node_name, node_conf in self._nodes.items():
          for h in self._hashi_weight_generator(node_name, node_conf):
              _ring[h] = node_name
              insort(_keys, h)
              _distribution[node_name] += 1
      self._distribution = _distribution
      self._keys = _keys
      self._ring = _ring
  
file_path: mars/mars/lib/uhashring/ring_ketama.py
imports: from bisect import insort
  from collections import Counter
  from hashlib import md5
  from sys import version_info
label_desc: Use image node_id 5 for calling the KetamaRing obj's underlying member method code with example usage: obj._create_ring(nodes) without return types