code: def _ConstructPartitions(self, collection_links, partitions_per_node):
          
          collections_node_count = len(collection_links)
          partitions = [partition._Partition() for _ in xrange(0, partitions_per_node * collections_node_count)]
  
          index = 0
          for collection_node in collection_links:
              hash_value = self.hash_generator.ComputeHash(self._GetBytes(collection_node))
              for _ in xrange(0, partitions_per_node):
                  partitions[index] = partition._Partition(hash_value, collection_node)
                  index += 1
                  hash_value = self.hash_generator.ComputeHash(hash_value)
  
          partitions.sort()
          return partitions
docs: Constructs the partitions in the consistent ring by assigning them to collection nodes
          using the hashing algorithm and then finally sorting the partitions based on the hash value.