Classe: Mongo::Server::RoundTripTimeCalculator Private
- Herda:
-
Objeto
- Objeto
- Mongo::Server::RoundTripTimeCalculator
- Definido em:
- lib/mongo/ servidor/round_trip_time_calculator.rb
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Recolhimento do Resumo do atributo de instância
- #average_round_trip_time ➤ Objeto Somente leitura privado
- #last_round_trip_time ➤ Objeto Somente leitura privado
- #minimum_round_trip_time ➤ Objeto Somente leitura privado
Recolhimento do Resumo do método de instância
-
.
construtor
privado
Uma nova instância de OpenTripTimeCalculator.
- #medida ➤ Objeto privado
- #update_average_round_trigger_time ➤ Objeto privado
- #update_minimum_round_trip_time ➤ Objeto privado
Detalhes do construtor
.
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna uma nova instância de RollTripTimeCalculator.
34 35 36 37 38 39 40 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 34 def inicializar @last_round_trip_time = nada @average_round_trip_time = nada @minimum_round_trip_time = 0 @ bloqueio = Mutex.Novo @rtts = [] end |
Detalhes do atributo da instância
#average_round_trip_time ➤ Objeto (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
43 44 45 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 43 def average_round_trip_time @average_round_trip_time end |
#last_round_trip_time ➤ Object (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
42 43 44 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 42 def last_round_trip_time @last_round_trip_time end |
#minimum_round_trip_time ➤ Objeto (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
44 45 46 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 44 def minimum_round_trip_time @minimum_round_trip_time end |
Detalhes do método de instância
#medida ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no 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 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 46 def medir iniciar = Utilidades.monotonic_time começar rv = rendimento salvar Erro::Erro de soquete, Erro::SocketTimeoutError # Se encontrarmos um erro de rede, a viagem de ida e volta não será # completo e, portanto, RTT, pois não faz sentido. aumentar salvar Erro, Erro::AuthError => exc # Para outros erros, o RTT é válido. end last_rtt = Utilidades.monotonic_time - iniciar # Se hello falhar, precisamos retornar o último tempo de viagem de ida e volta # porque é usado no evento SDAM com falha de pulsação, # mas não devemos atualizar o tempo de ida e volta registrado no servidor. a menos que exc @last_round_trip_time = last_rtt @ bloqueio.sincronizar fazer update_average_round_trip_time update_minimum_round_trip_time end end se exc aumentar exc mais rv end end |
#update_average_round_trigger_time ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
77 78 79 80 81 82 83 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 77 def update_average_round_trip_time @average_round_trip_time = se average_round_trip_time RTT_WEight_FACTOR * last_round_trip_time + (1 - RTT_WEight_FACTOR) * average_round_trip_time mais last_round_trip_time end end |
#update_minimum_round_trip_time ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
85 86 87 88 89 90 91 |
# Arquivo 'lib/mongo/ servidor/round_trip_time_calculator.rb', linha 85 def update_minimum_round_trip_time @rtts.push(last_round_trip_time) a menos que last_round_trip_time.nada? @minimum_round_trip_time = 0 e a Método se @rtts.Tamanho < MIN_SAMPLES @rtts.mudança se @rtts.Tamanho > RTT_SAMPLES_FOR_MINUM @minimum_round_trip_time = @rtts.compactar.min end |