Actor migration/ru

Изначально движок MediaWiki хранил ссылки на пользователей (сделавших правку или загрузивших файл) в виде пары  и   для анонимных пользователей. Это приводило к бесполезной трате файлового пространства на серверах, вызывало проблемы с производительностью на вики с большим количеством версий, и значительно осложняло переименование учётных записей и введение новых типов авторов (таких как T133452). MediaWiki 1.31 вводит понятие исполнителей (англ. actor) (кто-то, кто совершил правку или что-то, что записалось в журнал; на данный момент исполнитель — или зарегистрированный участник, или анонимный). В этой версии также добавлен процесс перевода на новую схему базы данных, в которой поля наподобие  и   заменены полями наподобие. В связи с огромным размером таблицы revision на английской Википедии, которую необходимо полностью перевести на новый формат, прежде чем можно будет очистить изменения; миграция на новый формат будет выполняться постепенно в течение нескольких релизов MediaWiki. Ожидается, что переход на новый формат завершится в версии MediaWiki 1.34.

В ходе перехода в таблице будет создана запись для каждой пары значений   / , а сами пары значений будут заменены на идентификатор соответствующей строки в таблице исполнителей. Переход на новый формат затронет следующие столбцы:

Чтобы не выполнять ресурсоёмкий запрос ALTER TABLE на огромных таблицах revision больших разделов Википедии, сначала поля  и   копируются в таблицу  и потом обратно в таблицу. Временная таблица revision_actor_temp впоследствии будет удалена.

Если вы владелец какой-либо вики, вероятно, вам ничего не нужно делать самостоятельно. Переход на новый формат осуществится автоматически, когда вы выполните сценарий. Если вы хотите управлять тем, когда произойдёт переход, обратитесь к документации к и.

Если вы разработчик расширения, использующего прямой доступ к затронутым полям базы данных, вам нужно будет обновить свои запросы (или ещё лучше, перейти на использование методов, например  , а не строить свои запросы вручную). На время периода перехода вы также можете использовать класс  для получения информации о схеме и полях. Этот класс работает для любых настроек.

Если вы разрабатываете стороннее приложение, использующее, его производительность может измениться, даже если вы не обращаетесь напрямую к затронутым полям. Для получения более подробной информации обратитесь к wikitech:News/Actor storage changes on the Wiki Replicas (на английском языке).