Sha256: 7e7dcf821f0a23af243a757b0d143f288221ddb271986c250222927c035ed675

Contents?: true

Size: 501 Bytes

Versions: 4

Compression:

Stored size: 501 Bytes

Contents

require 'digest/md5'

module MixedGauge
  class Routing
    # @param [ClusterConfig] cluster_config
    def initialize(cluster_config)
      @cluster_config = cluster_config
    end

    # @param [String] dist_key
    # @return [String] connection name
    def route(key)
      slot = hash_f(key) % @cluster_config.slot_count
      @cluster_config.fetch(slot)
    end

    # @param [String] key
    # @return [Integer]
    def hash_f(key)
      MixedGauge.config.hash_proc.call(key)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mixed_gauge-0.2.0 lib/mixed_gauge/routing.rb
mixed_gauge-0.1.4 lib/mixed_gauge/routing.rb
mixed_gauge-0.1.3 lib/mixed_gauge/routing.rb
mixed_gauge-0.1.2 lib/mixed_gauge/routing.rb