В настоящее время я разрабатываю двоичный формат для записи серии сообщений, закодированных в protobuf. Мне нужно иметь возможность читать сообщения от самых новых до самых старых (от конца потока), а также от самых старых до самых новых, поэтому я считаю, что не могу использовать префикс длины , поскольку в документах предлагается для разграничения сообщения, если я не хочу просматривать весь журнал от начала до конца.
Безопасно ли использовать разделители управляющих символов ASCII (то есть 28 разделителей файлов, 29 разделителей групп, 30 разделителей записей, 31 разделитель блоков) для разграничения протобуф-сообщений?
В качестве альтернативы, можно ли использовать что-то вроде суффикса длины в дополнение к префиксу длины для создания сэндвича с сообщением (length message length
), позволяющего читать сообщения как вперед, так и назад?
Этот вопрос похож на этот , но в последнем не упоминается сценарий чтения сообщений в обратном направлении, и при этом он не затрагивает конкретно сообщения protobuf. * 1012 *