Я сохраняю объект размером 7-10 МБ в Memcached и сразу после помещения объекта пытаюсь получить его. В этом случае я получаю ошибки в кеше. Есть идеи почему? Это решение работает для объектов меньшего размера.
Справочная информация:
Я использую Memcached для хранения набора крупных объектов размером приблизительно 7-10 МБ. По какой-то причине я не могу разбить этот объект на несколько меньших ключей. Я хочу, чтобы кэш был избыточным и теплым, и, следовательно, я использую немного сложную процедуру установки кеша, как описано ниже:
keySet = makeRedundantKeys(key) // Appends a unique num to the key
putAsync(keys in keyset)
while(!timeout || countNonNullKeys > desiredQuorumOfKeys) {
countNonNullKeys = getSyncKeys(key in keySet)
sleep(backoffTime);
}
Я получаю много сбоев, когда getSyncKeys требуется около 700 мсек, чтобы получить только один ключ. Есть идеи, почему это может произойти? Это наблюдается только для крупных объектов. Меньшие объекты <1MB работают нормально и возвращают данные в ~ 2ms pAvg. Это хорошие хосты m4.2xlarge EC2 с высокой производительностью сети. Кроме того, мой график сегментов TCP Retransmitted достигает 1500 / мин, что выглядит подозрительно. </p>