Бинарная совместимость OrioleDB
Эта страница переведена при помощи нейросети GigaChat.
Переменные версии
Файл include/orioledb.h содержит несколько переменных версий, связанных с бинарной совместимостью OrioleDB. В настоящее время он содержит следующие переменные версий:
ORIOLEDB_BINARY_VERSION— версия экземпляра базы данных;ORIOLEDB_SYS_TREE_VERSION— версия формата системных деревьев;ORIOLEDB_PAGE_VERSION— версия формата страниц OrioleDB;ORIOLEDB_COMPRESS_VERSION— версия формата сжатия страниц OrioleDB.
В случае изменения соответствующего формата, при условии, что его версия не была увеличена с момента последнего релиза, необходимо выполнить ее инкремент. Для проверки актуальности версии следует сравнить include/orioledb.h с тегом последнего релиза, например: git diff <last-tag> -- include/orioledb.h.
Поддержка кроссплатформенности
В настоящее время PostgreSQL и OrioleDB не гарантируют, что база данных, инициализированная на одной машине/архитектуре, будет работать на машине с другой архитектурой. Это включает физическую репликацию и копирование файлов базы данных между машинами. Данные операции могут быть нерабочими даже в случае компиляции бинарных файлов PostgreSQL и OrioleDB с использованием одного и того же порядка байт (endianness), выравнивания и формата чисел с плавающей точкой.
С другой стороны, необходимо минимизировать различия между архитектурами. При внесении изменений в форматы файлов базы данных или протокол репликации следует использовать типы данных, имеющие одинаковую реализацию на различных архитектурах. Например, предпочтительно использовать целочисленные типы фиксированной ширины (uint32, uint64) вместо long или сырых указателей, а также избегать зависимости от заполнения/выравнивания полей struct, поскольку эти параметры могут различаться между платформами.