Horsun Vlad wrote:
Самая последняя закоммиченная. Т.е. так которая должна быть в базе
при сносе сервера. При этом не хранить указатели на предыдущие
версии.
Не, так не пойдёт. Распиши что и как сохранять на примере с 3-мя
тр-циями, каждой из которых видна своя версия
Стартует первая транзакция и обновляет запись. Версия пишется в память.
Стартует вторая транзакция делает селект. Как обычно.
Первая транзакция коммитится. При этом запись из файла переносится
в память, а из памяти пишется на диск.
и т.д.
Чем вр.файл отличается от основного ?
Тем что версии не разманы по всему файлу бд. И могут чистится
по коммитам без свипа.
А с какой стати они не будут размазаны по вр.файлу ? Или для каждой
тр-ции и каждой таблицы - свой файл ?
Количество версии обычно должно быть намного меньше чем обычных
записей в БД. Поэтому для аналоги свипа достаточно будет обработать
этот временный файл небольших размеров.
Сборка мусора удаляет не только старые
версии записей, она также удаляет ненужные блобы и ключи индексов
С индексами конечно есть проблема. Сейчас версии тоже вставляются в индекс.
Если их не вставлять то надо как решить проблему выборки незакоммиченных
версий.
--
--- Home Page http://ok.novgorod.net/ap ---