Рассказ о том, как в Мамбе происходило внедрение nosql решений: от выбора и тестирования конкретных реализаций до написания собственного nosql сервера на базе встраиваемой nosql базы данных от Google — leveldb.
О том, с какими проблемами пришлось столкнуться во время эксплуатации конкретных nosql решений, и как пришлось их преодолевать.
Опыт использования nosql серверов: tokyotyrant, kyototycoon, а также собственного сервера на базе движка leveldb. Нагрузка на железо в реальных условиях при использовании Nosql в несколько тысяч запросов на демон с десятка разных серверов. Выбор среди существующих решений — memcachedb, redis, kyototycoon, tokyotyrant, а также сравнение встраиваемых nosql движков — tokyocabinet, kyotocabinet, leveldb.
Тестирование nosql решений с помощью brutis, одновременный запуск на нескольких серверах. Перекрёстная репликация и бэкап со слейвов. Как теоретические расчёты нагрузки оказываются неверными из-за ограничений дисковой подсистемы — постраничное обращение к диску при малой длине хранимых значений. Мониторинг nosql решений в php приложении с помощью BTP. Расширение стандартного интерфейса nosql (get/set/delete) и использование упакованных данных для атомарного изменения нескольких значений сразу.