[CRIU] Images data format
Pavel Emelyanov
xemul at parallels.com
Tue Apr 17 12:26:12 EDT 2012
On 04/17/2012 06:35 PM, Kinsbursky Stanislav wrote:
> 17.04.2012 18:10, Pavel Emelyanov пишет:
>> On 04/16/2012 04:28 PM, Kinsbursky Stanislav wrote:
>>> В личном разговоре с Павлом выяснилось, что произошло недопонимание.
>>> Я предлагаю заменить (!) наш формат хранения и передачи данных, весь наш код по
>>> дампу, рестору и показу имиджей иным, стандартизированным, форматом и чужими,
>>> опенсорсными библиотеками.
>>>
>>> Зачем вообще что-то надо менять - уже описано.
>> Еще пока нет. Попытка описания ниже :)
>
> Это я вообще не понял. Не понятно ни чему ты возражаешь, ни чего там ещё за
> попытка есть ниже...
>
>> Стас, это не так. Blobs vs text приспособлены для потоковой передачи одинаково. Либо
>> ты как-то не так позиционируешь эту идею.
>
> Опять я не понимаю, о чём ты говоришь.
> По мне формат, приспособленный для потоковой передачи, должен обладать как
> минимум следущим свойством: тип и размер объекта отпарвляются до самого объекта.
> Текущий формат храния данных в CRIU не обладает таким свойством.
ACK. В таком виде аргумент принят.
>>> 2) Нам не придётся менять декодер в human readable, т.к. текущий формат вывода
>>> плохо подходит для sed/awk и причих чудес.
>> Текущйи как раз прекрасно подходит. One line per entry это лучшее, что можно иметь для
>> подобных целей.
>
> У нас нет стандартного вывода в human readable. И стандартного "ввода" обратно в
> binary тоже не будет.
Если вывод и ввод это printf и scanf, we can live with it, правда?
> Но так-то конечно. Мы может написать наши либы, которые будут гонять данные туда
> и обратно.
> Их, правда, придётся поддерживать.
Еще раз, если под либами ты имеешь в виду libc-шный printf/scanf, то это не issue.
>>> 4) Нам не придётся писать.сопровождать библиотеки под свой формат для сторонних
>>> пользователей, которые, скажем, задумают строить свои фильтры/конвертеры между
>>> suspend/restore. Нужен будет только наш словарь.
>> Нам в любом случае никаких библиотек не придется иметь. Идея в том, что если у тебя
>> есть конвертер из human readable в internal и обратно, то больше ничего не надо.
>
> Предложим, пользователь пожелает встроить между сокетом, откуда валят данные и
> criu на принимающей стороне свой фильтр для того, чтобы принимать имиджи,
> модицифировать их и отправлять в criu.
> Я понимаю, как он будет это делать при стандартном формате передачи данных. Ему
> нужен только словарь объектов и стандартная либа (любая).
> А далее можно входящий поток данных декодить, делать с ними что хочешь и пихать
> в criu хочь в бинарном виде, хочь в тестовом.
> Но я что-то не понимаю, как подобную штуку провернуть с нашим форматом без либы,
> которую мы должны предоставить и поддерживать.
Да, этот use-case валиден. Фильтрация on-the-fly.
>>> 5) Нам/сторонним разработчикам будет с дальнейшем легко расширять CRIU новыми
>>> объектами, не заботясь о том, как выводить и сериализовать эти данные.
>> Вот тут я тоже не уверен. Can you elaborate on this?
>
> Я так понимаю, что нужно просто описать шаблон объекта.
> Кодирование и декодирование появятся автоматически.
Как это будет выглядеть с protobuf-ом?
Thanks,
Pavel
More information about the CRIU
mailing list