Следуя обсуждениям в комментариях, я начинаю думать, что что-то не так с тем, как вы записываете фрагменты в файл журнала. Предполагается, что воспроизведение 100 фрагментов вернет 100, воспроизведение 200 фрагментов должно вернуть 200 фрагментов (при условии, что файл журнала правильно сформирован). Вот функция, которую вы можете использовать для проверки отдельных фрагментов:
{`counter set 0;.z.ps:{$[counter=desiredChunk;`savedChunk set x;counter+:1]};-11!(1+desiredChunk::y;x);.z.ps:{value x}}[`:tplog2020.07.01;5]
Передайте файл журнала и фрагмент, который вы хотите извлечь (начиная с 0 для первого фрагмента). После того, как вы запустите это, у вас будет глобальная переменная «savedChunk», которая содержит ваш кусок и которую вы можете проверить. Отдельный фрагмент должен выглядеть так:
q)savedChunk
`upd
`myTable
(0D05:34:00.186409000;`foo;1.23;1234;1b;.....)
/or if you write to the tplog in batches it could look like:
q)savedChunk
`upd
`myTable
(0D05:34:00.186409000 0D05:34:00.186409000;`foo`bar;1.23 4.56;1234 5678;10b;.....)
Я бы посмотрел на ваши фрагменты, начиная с нулевого фрагмента, чтобы убедиться, что они правильно сформированы. Затем посмотрите на фрагмент 12683, чтобы убедиться, что там что-то не так.
Возможно ли, что ваши фрагменты содержат более одного обновления / таблицы? (это была бы специальная реализация, которую я никогда раньше не видел).