Wednesday, October 01, 2008

Кэширование: memcached vs. terracotta

Сравнение двух широко используемых систем кэширования: memcached и terracotta. Основные выводы:

Memcached не является распределенной хэш таблицей. Каждый сервер - автономен и ничего не знает о других. Все алгоритмы распределения данных - целиком ответственность клиента. Terracotta же поддерживает кластерный кэш.

Типичная схема обновления данных при использовании memcached состоит в записи данных в базу и запуске после этого асинхронного процесса (возможно - из триггера БД) для обновления кэша. Вот, например, как Facebook это делает. Terracotta исповедует противоположный подход - обновление кэша сначала и запуск асинхронного процесса для обновления БД после этого (прозрачно для разработчика).

В целом, простое правило для примененеия может выглядеть так: если доступ к кэшируемым данным нужен только для чтения - можно использовать memcached. Его настройка и установка проще, к слову. Если кэш обновляется - то Terracotta. Так что продукты, на самом деле, могут дополнять друг друга.

2 comments:

.sid said...

Мне кажется, сравнивать эти две системы вообще некорректно. Они предназначены для разных целей и предоставляют совсем разный инструментарий.

Abava said...

почему некорректно? Terracotta сравнивает у себя в документах