Clase: Mongo::Server::RoundTripTimeCalculator Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
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.

Desde:

  • 2.0.0

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

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
  @tiempo mínimo de ida y vuelta = 0
  @cerrar = Mutex.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 tiempo promedio de ida y vuelta
  @tiempo_promedio_de_viaje_de_ida_y_vuelta
end

#last_round_trip_timeObjeto (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

#tiempo_mínimo_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



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

#medidaObjeto

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 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_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 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_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 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