OSM pbf

Привет, кто-нибудь пробовал читать/писать pbf блоками? Допустим по мегабайту?

В смысле - нужна частично считанная карта или буферизация?

Я сомневаюсь, что osmpbf или Osmium читают данные побайтно и теряют на этом скорость. Или хочется обойтись без основанной на Protobuf-библиотеки?

OSRM так даже в несколько потоков читает: https://github.com/DennisOSRM/Project-OSRM/blob/develop/Extractor/PBFParser.cpp (но это ради обработки Lua-скриптами, а не для ускорения I/O).

Когда я дебажил omconvert так он ворочил буферами по 128М.

Нужна запись блоками, с выравниванием до границы блока.

Тоесть записываем подряд фичи, как добрались до границы буфера (допустим 1mb) записываем, добивая до границы буфера нулями например.
Я знаю что сейчас этого нито не делает в том числе osmconvert в том числе и при записи в o5m.

По такому файлику относительно просто построить быстрый поиск без последовательного чтения всего файлика.

В о5м вообще предусмотрена система прыжков по файлу вида тут вот ноды, там веи, а там можно прочитать отношения. А вот смысл выравнивать я не понял.

Предусмотрены то может и предусмотрены,только osmconvert jump секции в файлик не пишет (по крайней мере некоторое время назад не писал).

Если данные выровнены то не нужен индекс блоков.