backend

Без Berkeley DB

В trunk уже нет BDB, заменили на LMDB. На первый взгляд производительность особо не изменилась, использование памяти тоже не особо. Но еще и не тестировали как следует. Архитектура в области отдачи данных в браузер тоже немного изменилась. Раньше отчеты готовились асинхронно: браузер посылает запрос, программа посылает в ответ wait и считает. Браузер опрашивает пока не получит данные. Теперь поток просто считает, как только досчитал - шлет данные. Ну, если еще есть куда (соединение не отвалилось по таймауту). С одной стороны не очень красиво, с другой - проще.

LMDB как замена Berkeley DB

Понаблюдав за BDB, выяснили что не так уж все и хорошо.

Во-первых он (она?) оказался довольно хрупким. При неожиданных выключениях иногда заклинивает, не может открыть базу, приходится удалять все и пересоздавать таблицу заново. Это не очень страшно, в таблицах у нас все равно агрегированные данные, но как-то неаккуратненько.

Во-вторых он неожиданно оказался бинарно несовместим версиями. Созданный в Линуксе версией 4.6 файл в Виндовсе с версией 4.8 отказался открываться, ошибка какая-то невнятная. С этим тоже можно жить, но как-то опять же некрасиво.

Subscribe to RSS - backend