Clase: Mongo::Server::RoundTripTimeCalculator Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Servidor::Calculadora de tiempo de ida y vuelta
- Definido en:
- lib/mongo/server/calculadora_de_tiempo_de_ida_y_vuelta.rb
Overview
Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Colapso delresumen de atributos de instancia
- #average_round_trip_time ⇒ Objeto solo lectura privada
- #último_tiempo_de_ida_y_vuelta ⇒ Objeto solo lectura privada
- #tiempo_mínimo_de_ida_y_vuelta ⇒ Objeto solo lectura privada
Colapso del resumen del método de instancia
-
#inicializar ⇒ Calculadora de tiempo de ida y vuelta
constructor
privada
Una nueva instancia de RoundTripTimeCalculator.
- #medida ⇒ Objeto privada
- #actualizar_tiempo_promedio_de_ida_y_vuelta ⇒ Objeto privada
- #actualizar_tiempo_mínimo_de_ida_y_vuelta ⇒ Objeto privada
Detalles del constructor
#inicializar ⇒ Calculadora 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.
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 @tiempo mínimo de ida y vuelta = 0 @cerrar = Mutex.Nuevo @rtts = [] end |
Detalles de los atributos de instancia
#tiempo_promedio_de_ida_y_vuelta ⇒ Objeto (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.
43 44 45 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 43 def tiempo promedio de ida y vuelta @tiempo_promedio_de_viaje_de_ida_y_vuelta end |
#last_round_trip_time ⇒ Objeto (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.
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 |
#tiempo_mínimo_de_ida_y_vuelta ⇒ Objeto (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.
44 45 46 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 44 def tiempo mínimo de ida y vuelta @tiempo mínimo de ida y vuelta end |
Detalles del método de instancia
#medida ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
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 medida Inicio = Utils.monotonic_time begin rv = rendimiento rescate Error::Error de socket, Error::Error de tiempo de espera del socket # Si encontramos un error de red, el viaje de ida y vuelta no es # completo y por lo tanto RTT porque no tiene sentido. propagar rescate Error, Error::AuthError => Excª # Para otros errores, RTT es válido. end last_rtt = Utils.monotonic_time - Inicio # Si falla el saludo, necesitamos devolver el último tiempo de ida y vuelta # porque se utiliza en el evento SDAM con falla de latido, # pero no debemos actualizar el tiempo de ida y vuelta registrado en el servidor. a no ser que Excª @último_viaje_de_ida_y_vuelta = last_rtt @cerrar.sincronizar hacer actualizar_tiempo_promedio_de_ida_y_vuelta actualizar_tiempo_mínimo_de_ida_y_vuelta end end Si Excª propagar Excª else rv end end |
#actualizar_tiempo_promedio_de_ida_y_vuelta ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
77 78 79 80 81 82 83 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 77 def actualizar_tiempo_promedio_de_ida_y_vuelta @tiempo_promedio_de_viaje_de_ida_y_vuelta = Si tiempo promedio de ida y vuelta RTT_WEIGHT_FACTOR * tiempo del último viaje de ida y vuelta + (1 - RTT_WEIGHT_FACTOR) * tiempo promedio de ida y vuelta else tiempo del último viaje de ida y vuelta end end |
#update_minimum_round_trip_time ⇒ objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
85 86 87 88 89 90 91 |
# Archivo 'lib/mongo/server/round_trip_time_calculator.rb', línea 85 def actualizar_tiempo_mínimo_de_ida_y_vuelta @rtts.Push(tiempo del último viaje de ida y vuelta) a no ser que tiempo del último viaje de ida y vuelta.nil? @tiempo mínimo de ida y vuelta = 0 y return Si @rtts.tamaño < MÍNIMO DE MUESTRAS @rtts.cambio Si @rtts.tamaño > MUESTRAS RTT PARA UN MÍNIMO @tiempo mínimo de ida y vuelta = @rtts.compact.min end |