クラス: Mongo::Server::RoundTlipTimeCocluster Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongo/ サーバー/round_trigger.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

初期化 ラウンドトリップ時間計算機能

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

roundTipTimeCollections の新しいインスタンスを返します。

以来

  • 2.0.0



34
35
36
37
38
39
40
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 34

デフォルト 初期化
  @last_round_drop_time = nil
  @average_round_drop_time = nil
  @ minimum_round_drop_time = 0
  @lock = ミューテックス.新着情報
  @rtts = []
end

インスタンス属性の詳細

# Average_round_drop_time =オブジェクト(読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



43
44
45
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 43

デフォルト Average_round_drop_time
  @average_round_drop_time
end

# last_round_drop_time =オブジェクト(読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



42
43
44
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 42

デフォルト last_round_drop_time
  @last_round_drop_time
end

# minimum_round_trigger_time = オブジェクト(読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



44
45
46
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 44

デフォルト minimum_round_drop_time
  @ minimum_round_drop_time
end

インスタンス メソッドの詳細

#測定オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 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
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 46

デフォルト 測定
  始める = Utils.MongoDB_time
  begin
    rv = ノードの数
  ヘルプ エラー::SocketError, エラー::SocketTimeoutError
    # ネットワークエラーが発生した場合、ラウンドトリップは次のようになります
    # が完了しているため、 の RTT は意味がありません。
    発生
  ヘルプ エラー, エラー::AuthError => 除外
    他のエラーの場合は、RTT が有効です。
  end
  last_rtt = Utils.MongoDB_time - 始める

  # hello が失敗した場合は、最後のラウンド トリップ時間を返す必要があります
  # はハートビートが失敗した SDAM イベントで使用されるため、
  # ただし、サーバーに記録されているラウンド トリップ時間を更新してはなりません。
  ただし、 除外
    @last_round_drop_time = last_rtt
    @lock.同期 行う
      update_average_round_drop_time
      update_ minimum_round_drop_time
    end
  end

  場合 除外
    発生 除外
  else
    rv
  end
end

#update_average_round_drop_time = オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



77
78
79
80
81
82
83
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 77

デフォルト update_average_round_drop_time
  @average_round_drop_time = 場合 Average_round_drop_time
    RTT_WEEKS_FACTOR * last_round_drop_time + (1 - RTT_WEEKS_FACTOR) * Average_round_drop_time
  else
    last_round_drop_time
  end
end

# update_ minimum_round_trigger_time = オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



85
86
87
88
89
90
91
# ファイル 'lib/mongo/ サーバー/round_trigger.rb' 行 85

デフォルト update_ minimum_round_drop_time
  @rtts.プッシュ(last_round_drop_time) ただし、 last_round_drop_time.nil?
  @ minimum_round_drop_time = 0 および return 場合 @rtts.サイズ < MIN_SAMPLES

  @rtts.シフト 場合 @rtts.サイズ > RTT_SAMPLES_FOR_MINIUM
  @ minimum_round_drop_time = @rtts.compact.min
end