Иван Ворас (Ivan Voras), один из коммитеров FreeBSD, анонсировал [2] новую систему для организации кэширования данных в оперативной памяти c хранением данных в формате ключ/значение - Bullet Cache [3]. По своим возможностям и выполняемым задачам система очень близка [4] к Memcached [5] и отличается, главным образом, внутренней архитектурой, нацеленной на более активное использование многопоточности, поддержкой тегов и бинарным протоколом взаимодействия клиента и сервера, так как, по мнению разработчика, на парсинг текстовых протоколов в memcached и sqlcached тратится слишком много времени. Кроме того, в Bullet Cache реализовано несколько расширенных режимов для обращения к данным и определения их времени жизни в кэше, что позволяет предоставить приложению более полный контроль над содержимым кэша.
Код распространяется [6] под лицензией BSD (2-clause BSDL). Клиентские библиотеки пока доступны только для языков Си, Python и PHP. Разработка Bullet Cache началась ещё в 2005 году, в нынешнем году интерес к проекту возродился и он был достаточно быстро доведен до стадии бета-версии, на которой он и находится в настоящее время. Изначально проект распространялся под кодовым именем mdcached (multi-domain cache daemon), но, в конечном счете, для избежания путаницы имя было заменено на Bullet Cache.
Bullet Cache изначально рассчитан на обработку большого объема параллельных запросов, что позволяет добиться [7] заметного выигрыша в производительности на высоконагруженных серверах с многоядерными процессорами. Дополнительно отмечается использование высоко эффективных методов организации ввода/вывода и сетевого протокола, позволяющего добиться максимальной производительности при выполнении операций "GET" без лишнего копирования данных в памяти ( без вызова malloc(), realloc() и memcpy()). Тестирование производительности показало [8], что на обычном оборудовании (CPU Xeon 3440 2.5 GHz) система способна обработать около миллиона транзакций в секунду при смешанном выполнении операций чтения и записи в типичном для нагруженных web-проектов соотношении 90% / 10%.
Ссылки:
[1] http://htfl.ru/cat-news-novosti
[2] /out.php?link=http://ivoras.sharanet.org/blog/tree/2011-10-11.bullet-cache---installation-and-testing.html
[3] /out.php?link=http://mdcached.sourceforge.net/
[4] /out.php?link=http://mdcached.sourceforge.net/UserGuide.html
[5] /out.php?link=http://memcached.org/
[6] /out.php?link=http://sourceforge.net/projects/mdcached/files/mdcached/
[7] /out.php?link=http://mdcached.sourceforge.net/performance.html
[8] /out.php?link=http://mdcached.sourceforge.net/bench1.html