Водяной знак ведет себя беспорядочно, возможно из-за неправильного времени события (перекос часов клиента)
У нас есть поток событий, примерно 1 к 3 кбит / с и в основном тактовые импульсы, поступающие от клиентов потокового видео, которые мы объединяем в сеансы. Мы используем окно сеанса с 10-минутной длительностью паузы и запуском по умолчанию (т. Е. Ранние триггеры и задержка не допускаются)
То, что мы наблюдаем, это (1) беспорядочное и бурное излучение сессий, и (2) беспорядочный и "скачкообразный" водяной знак, порой уходящий в историю на 2 недели назад.
Мы полагаем, что это может быть связано с подмножеством клиентов, имеющих локальный сдвиг часов, влияющий на время события.
Это будет означать, что вместо того, чтобы отмечать события от "плохих" клиентов с опозданием, водяной знак корректируется в соответствии с этими новыми (старыми) временными метками, эффективно останавливая передачу недавно завершенных сеансов. И только когда в течение некоторого предопределенного времени не наблюдалось никаких плохих событий, водяной знак переводится в режим реального времени, и последние сеансы могут передаваться.
Это разумная гипотеза? Это ожидаемое поведение с условиями, описанными выше? Если наше предположение верно, каким будет рекомендуемое решение?
1 ответ
Ваша гипотеза звучит разумно. Отслеживание водяного знака Pub/Sub будет игнорировать случайные данные из далекого прошлого, но если это происходит достаточно часто, оно будет вести себя так, как вы описываете. Одним из возможных решений является использование метки времени, когда запись была получена в Cloud Pub/Sub, вместо метки времени, основанной на локальных искаженных часах. Вы можете сделать это, просто опустив вызов.timestampLabel() в вашем преобразовании чтения.