Сравнение двух широко используемых систем кэширования: memcached и terracotta. Основные выводы:
Memcached не является распределенной хэш таблицей. Каждый сервер - автономен и ничего не знает о других. Все алгоритмы распределения данных - целиком ответственность клиента. Terracotta же поддерживает кластерный кэш.
Типичная схема обновления данных при использовании memcached состоит в записи данных в базу и запуске после этого асинхронного процесса (возможно - из триггера БД) для обновления кэша. Вот, например, как Facebook это делает. Terracotta исповедует противоположный подход - обновление кэша сначала и запуск асинхронного процесса для обновления БД после этого (прозрачно для разработчика).
В целом, простое правило для примененеия может выглядеть так: если доступ к кэшируемым данным нужен только для чтения - можно использовать memcached. Его настройка и установка проще, к слову. Если кэш обновляется - то Terracotta. Так что продукты, на самом деле, могут дополнять друг друга.
Мне кажется, сравнивать эти две системы вообще некорректно. Они предназначены для разных целей и предоставляют совсем разный инструментарий.
ReplyDeleteпочему некорректно? Terracotta сравнивает у себя в документах
ReplyDelete