2012-01-19 2 views
2

Я использую API клиента .NET Couchbase, который включает в себя Enyim.Caching. У меня есть DataTable, который составляет около 55 мегабайт, и он не кэшируется. Я понимаю, что для размера элемента 20 мегабайт существует «мягкий» макс.Как изменить размер элемента Couchbase по умолчанию?

Как изменить размер максимального размера по умолчанию, чтобы кэшировать этот объект?

+1

Код состояния 3 - E2BIG, который вы не должны получать, если объект меньше 20 МБ. Можете ли вы дважды проверить размер, а также опубликовать свой код? – mikewied

+0

Отредактированный вопрос. Я помещаю десятичную запятую в неправильное место. Это 55 мегабайт вместо 5,5 мегабайт для предмета. Спасибо за помощь! – DougJones

ответ

0

Per MikeW от Couchbase сообщения форума here:

Это требует изменения константы в исходном коде и строительстве Couchbase себя.

Кажется, что вокруг нет пути. Спасибо за помощь.

2

Вы используете ковш Memcached или ковш Couchbase? Если вы используете ведро Memcached, вы, скорее всего, достигли предела 1 МБ. Быстрый пример программы:

var config = new CouchbaseClientConfiguration(); 
config.Urls.Add(new Uri("http://127.0.0.1:8091/pools/default")); 
config.Bucket = "memcached"; 
config.BucketPassword = "qwerty"; 
var client = new CouchbaseClient(config); 

var size = 1000000; 
var sb = new StringBuilder(); 
for (int i = 0; i < size; i++) { sb.Append("z"); }; 
var data = sb.ToString(); 
var result = client.Store(StoreMode.Set, "foo", data); 
Console.WriteLine(data.Length + ": " + result); 

Когда переменная size устанавливается в 1000000., result верно. Когда size установлен как раз над MB, скажем, 1100000, тогда result будет ложным. Если вместо этого вы используете ковш Couchbase, вы можете установить size на 20000000, а значение result будет истинным. Однако установка size до 21000000 приведет к сбою операции Store.

Если вы не используете ведро Memcached, пожалуйста, дайте мне знать ... Также обратите внимание, что я использую клиент .NET 1.0 с сервером 1.8 для этого примера.

- Джон

+0

Оцените ответ, но я действительно изменил вопрос, так как я изначально ошибочно определял байты. Я пытался хранить 55 мегабайт, а не 5.5 мегабайт, что изменило мою проблему. Тем не менее, я использую Couchbase v1.8 с API-интерфейсом .NET Couchbase. – DougJones

+0

Есть ли какой-либо способ ограничения 1 МБ при использовании ведра Memcached? –