Couchbase Bucket против Memcached Bucket для SessionProvider

Я узнал, что поставщик сеансов Asp.Net по умолчанию не является хорошей практикой для распределенных приложений. Поэтому я решил сменить сессионного провайдера asp.net на диванную базу. Но я не уверен, что использовать, когда я пытаюсь выбрать ведро данных. Я знаю, что Couchbase — это постоянная база данных без SQL, а memcached — это кеш-сервер.

Каковы преимущества и недостатки использования корзины кушетки вместо корзины memcached или наоборот?

Для преобразование кушетки в сессионного провайдера.


person Aykut Aras    schedule 04.10.2012    source источник


Ответы (2)


Независимо от того, используете ли вы ведро Couchbase или ведро Memcached, вы получите аналогичные преимущества. Даже при использовании ведра Couchbase документы хранятся в оперативной памяти. Документы также сначала записываются в ОЗУ, а затем асинхронно записываются на диск. Так что производительность должна быть аналогичной. По сравнению с другими решениями для состояния сеанса вне процесса (например, SQL Server) Couchbase должен работать значительно лучше.

Помимо производительности (как отметил @DB_Chick), у вас будет преимущество в том, что вы сможете воссоздавать сеансы в случае сбоя узла, поскольку данные не умирают вместе с сервером (при условии, что репликация включена).

Если вы используете ведро Couchbase с Couchbase Server 2.0, у вас будет дополнительное преимущество, заключающееся в возможности записывать представления map/reduce для ваших данных сеанса (проще всего, если вы храните структуры данных JSON). С представлениями вы можете легко спросить: «Сколько у меня активных сеансов?»

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

person John Zablocki    schedule 08.10.2012
comment
Благодарю за ваш ответ. Это отличный и информативный ответ. - person Aykut Aras; 11.10.2012
comment
Означает ли это, что вы не можете писать представления с сегментами memcached? - person Pierre Murasso; 17.02.2014
comment
Знаете ли вы, что такое постоянство SLA для Couchbase? Однако хранение данных в ОЗУ небезопасно в случае сбоя узла. Если узел выйдет из строя до записи на диск, мы все равно потеряем данные. Как кушетка обходит это? - person Junji Zhi; 26.07.2016

Сегменты Couchbase поддерживают весь спектр специфичных для Couchbase функций, включая ребалансировку в режиме онлайн (для масштабирования вашего кластера), сохраняемость, репликацию и аварийное переключение. Это рекомендуемый тип ковша.

Сегменты memcached предназначены для поддержки только основного протокола memcached в качестве кеша в памяти. Таким образом, поддержка и функциональность ограничены той же функциональностью, что и в автономной реализации memcached.

Дополнительная информация здесь: http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-introduction-architecture-buckets.html

person DB_chick    schedule 05.10.2012
comment
Благодарю за ваш ответ. Я понимаю разницу между ведром Couchbase и ведром memcached, но будет ли какое-либо преимущество при хранении данных сеанса в постоянном хранилище. Или есть способ изменить конфигурацию корзины кушетки, чтобы использовать только память? - person Aykut Aras; 05.10.2012