LINUX.ORG.RU

Ответ на: комментарий от isden

да мне просто нужно доказать людям, что такой фичи ни у кого в серьезной СУБД нет и делать ее не стоит. Ибо получившийся код будет не поддерживаем в принципе, даже если удасться отладить

vgudkov
() автор топика
Ответ на: комментарий от k0l0b0k

Кажется в оракле 10 есть специальный костыль для переноса данных. Просто скопировать базу на флешку и запустить на платформе с другим порядком бай не получится http://www.dba-oracle.com/art_dbazine_ault_cross_plat.htm. Кстати в MyISam я не понял переносима вся база или только фалй с таблицами.

vgudkov
() автор топика
Ответ на: комментарий от vgudkov

> да мне просто нужно доказать людям, что такой фичи ни у кого в серьезной СУБД нет и делать ее не стоит. Ибо получившийся код будет не поддерживаем в принципе, даже если удасться отладить

А что такого-то? Как я понимаю речь идет о формате ондискового стораджа. Практически все форматы бинарных файлов не зависят от того, какая машина, bigendian или little. И ничего, живут. Файловые системы похоже тоже endianness-независимые.

ps. а между 32 и 64 битными у вас тоже совместимости не будет?

gods-little-toy ★★★
()
Ответ на: комментарий от vgudkov

> Речь идет о рабочих файлах базы данных. Это далеко не байтовый бинарный формат.

>> а между 32 и 64 битными у вас тоже совместимости не будет?

>А с этим-то какие проблеммы?

Ну, как я понимаю, желание не иметь big/litte-endian совместимости происходит от желания делать вещи вида

struct some_data_struct { int something; ucs2_char something_else; ... }

и потом писать-читать такие структуры на диск без перекодировок. Боюсь, что при этом окажется что вы зависите еще от выравнивания (некотрые машины не дают иметь n-байтные типы по адресам, не делящимся на n) и скорее всего от sizeof всяких типов тоже.

AFAIK работают оба подхода - первый в postgresql, где базу даже между двумя x86 системами таскать нельзя, второй в mysql, где наоборот в пределах одной версии все файлы работают на всех системах.

Мне, как юзеру, импонирует MySQL'евский - грохнулась машина? копируем оттуда файлы бд и поехали дальше. Осложняет ли это жизнь разработчикам dbms - не знаю.

gods-little-toy ★★★
()
Ответ на: комментарий от vgudkov

> Речь идет о рабочих файлах базы данных. Это далеко не байтовый бинарный формат.

Не поделитесь, чего там такого далекого?

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

Бинарные форматы конечных файлов затачиваются на мультибайтное представление. Реализация СБУД с которой я имею дело не имеет архитектурной поддержки этой фичи. Многие вещи серализуются как бинарные блобы(кстати описнных проблемм с выравниванием там нет. Так что она без проблемм собирается например под arm). Запись в серилизуемые буферы раскинута во всему исходному коду и практически невозможно гарантировать полноту правок(да и не всегда очевидно в каком месте делать переворот). Проблемма не в принципиальной реализуемости, а во времени и целесообразности этого дела. Гораздо проще решить проблемму на прикладном уровне.

vgudkov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.