キューの仕組み
キューが有効になる前にユーザーが待機室に参加した場合はどうなりますか?
ユーザーは「待機室」で待つことはできますが、キューが有効になるまでは順番は割り当てられません。キューが有効になった時点で既に「待機室」にいるすべてのユーザーには、ランダムな順番が割り当てられます。その後キューに加わったユーザーは、最初にいたユーザーたちの後ろに、キューに加わった順に並ばされます。
なぜ、設定した量とまったく同じだけキューが減らないことがあるのでしょうか?
キュー内の減少数が、CrowdHandlerで設定した流入率と完全に一致しない理由はいくつか考えられます:
- ドメインレートは、ドメイン内のすべてのキューに対して設定されます。アクティブなキューが複数ある場合、ドメインレートはすべてのアクティブなキューで共有されます。キャッチオールキューの場合、キューにトラフィックが蓄積されることなく、バックグラウンドのトラフィックが絶えずプロモーションされることがあります。これらのプロモーションも、ドメインが処理しなければならないトラフィックであるため、ドメインレートの計算対象となります。
- キュー内のユーザーの中には、待ちきれずにセッションがタイムアウトしてしまう人もいます。この場合、アクティブなユーザーが優先的に昇格対象となります。取引を行うユーザーの増加数は、設定されたドメインレートに制限されますが、設定されたレート分のユーザーが昇格することに加え、待機室にあるセッションの一部がタイムアウトするため、キューの数が大幅に減少することになります。
ユーザーは、別のキューを離れるやいなや、任意のキャッチオール・キューに加わるのでしょうか?
これだと、彼らが2回もキューに入れられてしまうことになりませんか?
ユーザーがキューから昇格されると、同じドメイン内のすべてのキャッチオール・キューに対しても自動的に昇格されます。この二重の昇格は、トランザクションを行うすべてのユーザーに対して1回のみカウントされます。
どのキューが優先されるのでしょうか?
キャッチオール・キューのユーザーは、特定のキューのユーザーの後ろで待たなければならないのでしょうか、それともその逆でしょうか?
キューは、高速道路の車線のようなものだと考えてください。どの車線も収容能力は同じですが、需要がある出口付近では渋滞が発生し始めます。したがって、特定の商品に対するキューが非常に混雑していて、バックグラウンドのトラフィックが少ない場合、包括キューの待機室はまったく作動しないでしょう。 しかし、バックグラウンドのトラフィックに予期せぬ急増が見られた場合、汎用待ち行列が稼働し、両方のキューが同じペースで空いていきます。同じドメイン上で2つ以上の特定のキューが同時に稼働している場合も、同様のことが言えます。
なぜ、同時キューからは常に完全に均一な出力フローが見られないのでしょうか?
アクティブなユーザーは最初に流出します。待機室から切断されたユーザーであっても、タイムアウト期間が終了するまでは、昇格したユーザーのキューの順位は確保されたままになります。しばらく稼働しているキューの場合、そのユーザーのうち非アクティブなユーザーの割合が高くなる傾向があります。その場合、より新しく、より積極的なキューが、流出トラフィックのより大きな割合を占めることになります。
トラフィックが急増してから3分後に、キューの数が大幅に減少することがよくありますが、なぜでしょうか?
多くの場合、初期のトラフィックの急増は、スクレイパーボットや、即座に取引を行う意図がなく単に情報を探しているユーザーによって引き起こされます。この種のユーザーは通常、1回だけ接続し、待機室に遭遇すると二度と再接続することはありません。CrowdHandlerはこうしたユーザーを検知し、それらのセッションを解除することで、待ち行列にいる本物のユーザーのためにスペースを確保します。