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

#inicializarCalculadora de tiempo de ida y vuelta

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de RoundTripTimeCalculator.

Desde:

  • 2.0.0



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

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

Detalles de los atributos de instancia

#tiempo_promedio_de_ida_y_vueltaObjeto (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



43
44
45
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 43

def average_round_trip_time
  @tiempo_promedio_de_viaje_de_ida_y_vuelta
end

#last_round_trip_timeObject (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



42
43
44
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 42

def tiempo del último viaje de ida y vuelta
  @último_viaje_de_ida_y_vuelta
end

#minimum_round_trip_timeObject (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



44
45
46
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 44

def tiempo mínimo de ida y vuelta
  @minimum_round_trip_time
end

Detalles del método de instancia

#measureobjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 46

def medir
  Inicio = Utils.monotonic_time
  begin
    rv = rendimiento
  rescate Error::Error de socket, 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 => Excª
    # 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 Excª
    @último_viaje_de_ida_y_vuelta = last_rtt
    @lock.sincronizar hacer
      update_average_round_trip_time
      update_minimum_round_trip_time
    end
  end

  si Excª
    propagar Excª
  else
    rv
  end
end

#actualizar_tiempo_promedio_de_ida_y_vueltaObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



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

def update_average_round_trip_time
  @tiempo_promedio_de_viaje_de_ida_y_vuelta = si average_round_trip_time
    RTT_WEIGHT_FACTOR * tiempo del último viaje de ida y vuelta + (1 - RTT_WEIGHT_FACTOR) * average_round_trip_time
  else
    tiempo del último viaje de ida y vuelta
  end
end

#update_minimum_round_trip_timeobjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



85
86
87
88
89
90
91
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 85

def update_minimum_round_trip_time
  @rtts.push(tiempo del último viaje de ida y vuelta) a menos que tiempo del último viaje de ida y vuelta.nil?
  @minimum_round_trip_time = 0 y  return si @rtts.tamaño < MIN_SAMPLES

  @rtts.turno si @rtts.tamaño > MUESTRAS RTT PARA UN MÍNIMO
  @minimum_round_trip_time = @rtts.compact.min
end