Clase: Mongo::Server::RoundTripTimeCalculator Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/servidor/round_trip_time_calculator.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Desde:

  • 2.0.0

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#inicializarCalculadoraDeTiempoDeIdaYVuelta

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de RoundTripTimeCalculator.

Desde:

  • 2.0.0



32
33
34
35
36
37
38
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 32

def inicializar
  @last_round_trip_time = nulo
  @average_round_trip_time = nulo
  @minimum_round_trip_time = 0
  @lock = Mutex (exclusión mutua).Nuevo
  @rtts = []
end

Detalles de atributo de instancias

#average_round_trip_timeObject (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



40
41
42
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 40

def average_round_trip_time
  @average_round_trip_time
end

#last_round_trip_timeObject (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



40
41
42
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 40

def last_round_trip_time
  @last_round_trip_time
end

#minimum_round_trip_timeObject (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



40
41
42
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 40

def minimum_round_trip_time
  @minimum_round_trip_time
end

Detalles del método de instancia

#measureobjeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 42

def medir
  Inicio = Utils.monotonic_time
  begin
    rv = rendimiento
  rescate Error::SocketError, Error::SocketTimeoutError
    # Si encontramos un error de red, el viaje de ida y vuelta no es
    # completo y, por tanto, el RTT para ello no tiene sentido.
    propagar
  rescate Error, Error::AuthError => e
    # Para otros errores, RTT es válido.
  end
  last_rtt = Utils.monotonic_time - Inicio

  # Si el saludo falla, necesitamos devolver el tiempo de ida y vuelta más reciente
  # porque se utiliza en el evento de latido fallido de SDAM,
  # pero no debemos actualizar el tiempo de ida y vuelta registrado en el servidor.
  a menos que e
    @last_round_trip_time = last_rtt
    @lock.sincronizar hacer
      update_average_round_trip_time
      update_minimum_round_trip_time
    end
  end

  propagar e si e

  rv
end

#actualizar_tiempo_promedio_de_viaje_redondoObjeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



71
72
73
74
75
76
77
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 71

def update_average_round_trip_time
  @average_round_trip_time = si average_round_trip_time
                               (RTT_WEIGHT_FACTOR * last_round_trip_time) + ((1 - RTT_WEIGHT_FACTOR) * average_round_trip_time)
                             else
                               last_round_trip_time
                             end
end

#update_minimum_round_trip_timeobjeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



79
80
81
82
83
84
85
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 79

def update_minimum_round_trip_time
  @rtts.push(last_round_trip_time) a menos que last_round_trip_time.nil?
  @minimum_round_trip_time = 0 y  return si @rtts.Tamaño < MIN_SAMPLES

  @rtts.turno si @rtts.Tamaño > RTT_MUESTRAS_PARA_MÍNIMO
  @minimum_round_trip_time = @rtts.compact.min
end