суббота, 8 мая 2010 г.

SQLite наносит ответный удар: Write-Ahead Logging в SQLite 3.7.0

Недавно Oracle вознамерился откусить часть чужого пирога в нише встраиваемых СУБД, предлагая пользователям SQLite прозрачный переход на новую версию СУБД BerkeleyDB с встроенной поддержкой программного интерфейса SQLite. Еще бы им не зариться - SQLite используется от смартфонов Android, iPhone и других до ОС Solaris, Linux и прочих. Притом для обеспечения совместимости Oracle использовал код самого SQLite, который распространяется под лицензией Public Domain и доступен для коммерческого использования. Но скорость реакции апстрима SQLite заслуживает всяческих похвал и в ответ на анонс компании Oracle команда разработчиков SQLite предоставляет новый режим работы СУБД SQLite без блокировки при чтении и записи! Таким образом, существующие пользователи SQLite не получат обещанного выигрыша от предлагаемого им Oracle перехода на BerkeleyDB просто потому, что в новой версии SQLite будет почти аналогичная конкурентность и множество других возможностей, которые Oracle еще не успела скопировать.

Пожалуй, это самая долгожданная возможность, необходимость которой очевидна и даже варианты ее архитектуры уже давно обсуждались в рассылке SQLite. Подробности же текущей реализации см. здесь: Write-Ahead Logging Обратите внимание, что эта функция еще в разработке и документация также будет дополняться и даже в чем-то может измениться. Что касается текущего состояния WAL, то под линуксом уже работает, сейчас идет разработка версии для виндоус.

Что же означает новость для разработчиков? Как наиболее очевидное следствие - упростится разработка и поддержка проектов на SQLite. Кроме того, окажется возможной онлайн-репликация БД - например, с помощью моей утилиты sqlite3-rdiff. Также следует ожидать значительного увеличения скорости работы БД как на обычных HDD, так и на SSD-дисках - последнее особенно важно в связи с уверенным продвижением SSD во всех сегментах от портативной электроники до дата-центров. Плюс к тому, окончательно будет развеян миф о том, что для построения больших информационных систем нужны большие СУБД! :-)

Upd. Стала известна предполагаемая дата релиза SQLite 3.7.0 - 1 июля 2010.

1 комментарий:

Jay Godse комментирует...

Check out video on SQLite writeahead logging at http://www.youtube.com/watch?v=hRu86mcRk5Y


(C) Alexey Pechnikov aka MBG, mobigroup.ru