Обновить
21
Кирилл@sicikh

Пользователь

6
Подписчики
Отправить сообщение

Благодарю за ответ!

Про строки и NULL — очень интересное наблюдение, обязательно надо ознакомиться с обоснованием для такого решения.

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

На самом деле, первый прототип, который больше не увидит свет, SicQL пытался в блокировки строк — по крайней мере, в начале пути этого хотелось. Но, столкнувшись с неведомой сложностью сего дела, я быстро идею отбросил. Достаточно наивным было считать, что получится за два месяца теоретически охватить PostgreSQL/..., а затем воплотить в жизнь хоть малейший его клон. После такого провала, хе-хе, взгляд был обращён на SQLite, чья заслуга заключается в том, что изоляция транзакций и многоверсионность относительно других проектов реализованы относительно просто, да так, что для работы с базой данных достаточно одного процесса, который можно запускать непосредственно из приложения.

Но, в итоге, всё получилось как в этой цитате: «Всё не так просто, как кажется на первый взгляд, но и не так легко, как кажется на второй».

Рекомендую читателям ознакомиться ещё с тем, как изоляции транзакций поддерживаются в PostgreSQL.

Я надеюсь, что во второй части статьи получится затронуть теоретическую основу блокировок не просто страниц, а записей в ней.

Прочитав первую строчку, не смог остановиться — хоть время и за полночь. Всегда радовало душу желание людей не только наполнить карман, но и, даже вовсе с пустым карманом, магическим и чисто случайным образом поменять этот мир. Прекрасный слог, пишите ещё!

2

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

Бэкенд разработчик