2014-06-20 2 views
1

Я использую couchbase 2.0.1 и с помощью:Couchbase временный отказ

OperationFuture<Boolean> set = client.set(keySesionCanal, 0, sesionCanal, CouchdbClient.TRANSCODER_SESION_CANAL); 
          logger.info(set.getStatus().getMessage()); 

Иногда я получаю ошибку с сообщением: временный отказ

Я довольно новый, используя couchbase, и я не конечно, что происходит. В журналах couchbase я вижу много сообщений, таких как: «Общее использование памяти достигло отметки о низкой воде, прекратить разминку»

Может ли это быть причиной?

Другой странный журнал для меня: "Отправка TAP_OPAQUE с командой "opaque_enable_auto_nack" и vbucket 0" "TAP (продюсер) eq_tapq: replication_ns_1 @ хххх - Suspend за 5.00 секунд"

Что такое смысл это? Где я могу найти документацию?

+0

Кажется, что ramQuotaMB достигнут. http://docs.couchbase.com/couchbase-manual-2.0/#appendix-troubleshooting-views-technical-background (поиск временных сбоев). Я буду следить за журналами, если все в порядке, это ответ! – ilopezluna

+0

ramQuotaMB не был достигнут, и я снова получаю ту же ошибку – ilopezluna

ответ

1

Это происходит, поскольку вы попадаете в пределы объема памяти, доступного для кеширования. Кластер попытается освободить память (путем извлечения ненужных элементов из ОЗУ), но если вы слишком быстро записываете данные в кластер, чтобы освободить память до достижения высокого водяного знака, вы можете увидеть ошибки TEMPFAIL - которые указывают, что клиент должен отступить и повторить попытку. Это покрывается со стороны сервера в Ejection, eviction and working-set managerment.

Точно, как вы справляетесь с этим, это зависит от конкретного SDK, который вы используете, но общая информация доступна в разделе Handling temporary out-of-memory errors в Руководстве разработчика.

Обратите внимание, что алгоритм с низким/высоким уровнем водяного знака был улучшен в последующих выпусках, поэтому у вас может быть лучший опыт работы с последней версией (2.0.1 сейчас довольно старый).

+1

Обратите внимание, что пока пользовательский интерфейс показывает это так, технически не существует 'TEMP OOM'. Существует только TMPFAIL. Он может возникать при других обстоятельствах, например, во время промывки ковша. –

+0

Спасибо @Matt, будет обновляться. – DaveR

Смежные вопросы