aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/deprecated/ticket_parser2/src
diff options
context:
space:
mode:
authorgalaxycrab <UgnineSirdis@ydb.tech>2022-12-01 11:57:46 +0300
committergalaxycrab <UgnineSirdis@ydb.tech>2022-12-01 11:57:46 +0300
commit760ddc6f72eee80407863ad3dd82fc4dd6c3d18b (patch)
treeae86f04b4dfe97e418a0af510d55125e97779fb6 /library/python/deprecated/ticket_parser2/src
parentd0eadfe2f1ebc3ec61ae8d275058df50faf6adca (diff)
downloadydb-760ddc6f72eee80407863ad3dd82fc4dd6c3d18b.tar.gz
Add logging to write actor. Fix early checkpoint save. Fix loading incorrect checkpoint
Пофиксил вытаскивание из базы некорректного номера чекпоинта. В итоге мы восстанавливались из чекпоинта, который был не последним. При этом новую порцию данных мы читали из PQ, так как коммитили туда офсеты, а записывали в выходной топик актуальные данные по старым офсетам, что приводило к потере данных. На этом фэйлился тест `test_recovery_mz.py::TestRecovery::test_recovery`. Второй баг был в PQ write actor. Если в нём мы вызывали SendData сначала с одним сообщением, потом, до подтверждения его записи, вызывался метод SendData с чекпоинтом, то при условии пустого буффера вот тут https://a.yandex-team.ru/arcadia/ydb/library/yql/providers/pq/async_io/dq_pq_write_actor.cpp?rev=rXXXXXX#L158 мы сразу сохраняли стейт с некорректным офсетом (не учитывая ещё не подтверждённый офсет). В итоге мы также затем при загрузке из такого чекпоинта могли терять данные на дедупликации, так как сообщение должно было идти до чекпоинта: ридер читал следующие сообщения, а записывали мы их по неправильному офсету. На этом валился тест `test_recovery.py::TestRecovery::test_recovery`. Также перед записью в PQ в тестах стал дожидаться zero checkpoint, так как это гарантирует нам, что ридеры не отсеят сообщения по времени своего старта.
Diffstat (limited to 'library/python/deprecated/ticket_parser2/src')
0 files changed, 0 insertions, 0 deletions