2017-01-19 2 views
0

ビデオストリーミングクライアントからのイベントフローが約1k-3k/sで、ほとんどがハートビートです。 10分のギャップ期間とデフォルトのトリガー(すなわち、初期トリガーはなく、遅れは許容されない)を有するセッションウィンドウを使用する。ウォーターマークが不正な動作をしている可能性があります(クライアントクロックのスキュー)

私たちが観察するのは、(1)セッションの不安定で爆発的な放出、(2)不安定で「跳ねる」透かし、時には2週間ほどの歴史の中にある時です。

これは、ローカルクロックスキューを持つクライアントのサブセットに関連付けられ、イベント時間に影響すると考えられます。

これは、「悪い」クライアントからのイベントを遅くマークする代わりに、これらの新しい(古い)タイムスタンプに従って調整し、最近終了したセッションの排出を効果的に停止することを意味します。また、あらかじめ定義された時間に悪いイベントが観察されなかった場合にのみ、ウォーターマークがリアルタイムに進み、最近のセッションが放出されます。

これは合理的な仮説ですか? これは上記の条件で期待される動作ですか? 私たちの前提が正しいとすれば、推奨される解決策は何でしょうか?

答えて

0

あなたの仮説は合理的です。 Pub/Sub透かしトラッキングでは過去のデータは無視されますが、一般的に発生した場合は、記述したとおりに動作します。考えられる解決策の1つは、ローカルスキューされたクロックに基づくタイムスタンプではなく、クラウドPub/Subでレコードが受信されたときのタイムスタンプを使用することです。これを行うには、読み取りトランスフォームで.timestampLabel()を省略するだけです。

+0

さらに調査したところ、到着時間の10分を超えるイベント時間で、イベントの0.4%未満が到着することがわかりました。おそらく、ウォーターマークヒューリスティックを欺くのはパターン(全体のセッションが歪んでいる)です。 – ivarg

+0

ウォーターマークの計算方法(の感度)を制御する方法はありますか?また、イベント時間を無視して到着時間に行くことは、Out-of-Order到着が気付かずに渡され、正確さエラーを導入するため、Beamモデルの主要な機能を削除することを意味します。 – ivarg

+0

現在、ウォーターマークの見積もりを制御する方法はありません。私は到着時間に切り替えることを提案していません。 pubsubの公開時間を使用できます。つまり、パイプラインの速度が遅い場合や停止した場合でも、同じ保証が得られます。 – danielm

関連する問題