CouchDB поддерживает кеширование? - PullRequest
7 голосов
/ 10 февраля 2011

Поддерживает ли CouchDB кэширование "из коробки" или мне нужно вручную иметь прокси-сервер кэширования, например Squid?

Ответы [ 2 ]

15 голосов
/ 14 февраля 2011

Короткий ответ: Нет.

Длинный ответ: Да?

Вся философия CouchDB состоит в том, чтобы думать обо всем, что может быть запрошено позже, вычислить это сейчас (когда это удобно),и сохранить результат в индексе.Весь доступ к данным из CouchdB происходит при сканировании одного из этих индексов, который очень быстрый и обычно занимает примерно одинаковое количество времени, независимо от объема данных (фактически логарифмического времени).

Кроме того, CouchDB не делаетиспользовать много памяти, потому что она ожидает, что операционная система кеширует свои дисковые операции.Кэш файловой системы обеспечивает огромное преимущество в производительности.

Наконец, CouchDB поддерживает все веб-стандарты для кэширования, поэтому браузеры и интернет-провайдеры часто кэшируют его части, не делая ничего особенного.

Полагаю,я хочу сказать, что для высокой read нагрузки CouchDB часто не нуждается в кеше.Однако нет, нет встроенной функции кеширования.Одна из причин, по которой CouchDB использует HTTP, заключается в том, что люди могут использовать стандартные инструменты для решения своих проблем.Многие люди используют кеширующие веб-прокси перед CouchDB на производстве.

5 голосов
/ 10 февраля 2011

Поддерживается форма кэширования через ETags .(механизм кэширования HTTP)

ETag совпадает с номером документа _rev.Вы можете отправить заголовок If-None-Match вместе с запросом GET.Если будет новая версия, сервер отправит ее.В противном случае он отправляет обратно заголовок 300 Not Modified, давая вам знать, что вы можете продолжать использовать ревизию, которая у вас уже есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...