Настройка хранения и создание индексов #13
Notifications
Due Date
No due date set.
Blocks
#10 Расширение, оптимизация и миграции Mnesia
EventHub/EventHubBack
Reference: EventHub/EventHubBack#13
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Этап 1. Настройка хранения и создание индексов (пункты 1 и 2 задачи)
Цель: перевести таблицы на дисковое хранение, создать все необходимые индексы для горячих данных, подготовить основу для архивирования и репликации.
Шаги:
infra_mnesia.erl:table_opts/1вернутьdisc_copiesдля всех персистентных таблиц (user,admin,calendar,calendar_share,event,booking,review,report,subscription).session,admin_sessionоставитьram_copies.disc_copiesдля новых таблиц, если они появятся.create_indices/0(или несколько функций для разных таблиц), которая вызывается послеinit_tables/0.event:calendar_id,start_time,event_type,master_id,specialist_id,status(+ возможноlocation).booking:event_id,user_id,status.calendar:owner_id,status,short_name,category.user:nickname.review,report: при необходимостиevent_idилиauthor_id.mnesia:add_table_index/2.event,booking) с помощьюmnesia:change_table_frag/2илиmnesia:add_table_fragment/2. На данном этапе можно не включать, но подготовить утилиту для будущего применения.mnesia:table_info(Table, storage_type)иmnesia:table_info(Table, index_info), что таблицы созданы на диске и индексы присутствуют.Результат: все таблицы хранятся в
disc_copies, индексы созданы и готовы к использованию.