src/Cluster/Distributor/HashRing.php
private function initialize()
    {
        if ($this->isInitialized()) {
            return;
        }

        if (!$this->nodes) {
            throw new EmptyRingException('Cannot initialize an empty hashring.');
        }

        $this->ring = array();
        $totalWeight = $this->computeTotalWeight();
        $nodesCount = count($this->nodes);

        foreach ($this->nodes as $node) {
            $weightRatio = $node['weight'] / $totalWeight;
            $this->addNodeToRing($this->ring, $node, $nodesCount, $this->replicas, $weightRatio);
        }

        ksort($this->ring, SORT_NUMERIC);
        $this->ringKeys = array_keys($this->ring);
        $this->ringKeysCount = count($this->ringKeys);
    }
private function initialize()
    {
        if ($this->isInitialized()) {
            return;
        }

        if (!$this->nodes) {
            throw new EmptyRingException('Cannot initialize an empty hashring.');
        }

        $this->ring = array();
        $totalWeight = $this->computeTotalWeight();
        $nodesCount = count($this->nodes);

        foreach ($this->nodes as $node) {
            $weightRatio = $node['weight'] / $totalWeight;
            $this->addNodeToRing($this->ring, $node, $nodesCount, $this->replicas, $weightRatio);
        }

        ksort($this->ring, SORT_NUMERIC);
        $this->ringKeys = array_keys($this->ring);
        $this->ringKeysCount = count($this->ringKeys);
    }
private function initialize ( ) { if ( $ this -> isInitialized ( ) ) { return ; } if ( ! $ this -> nodes ) { throw new EmptyRingException ( 'Cannot initialize an empty hashring.' ) ; } $ this -> ring = array ( ) ; $ totalWeight = $ this -> computeTotalWeight ( ) ; $ nodesCount = count ( $ this -> nodes ) ; foreach ( $ this -> nodes as $ node ) { $ weightRatio = $ node [ 'weight' ] / $ totalWeight ; $ this -> addNodeToRing ( $ this -> ring , $ node , $ nodesCount , $ this -> replicas , $ weightRatio ) ; } ksort ( $ this -> ring , SORT_NUMERIC ) ; $ this -> ringKeys = array_keys ( $ this -> ring ) ; $ this -> ringKeysCount = count ( $ this -> ringKeys ) ; }
Initializes the distributor.
Initializes the distributor .