Как я могу изменить размер элемента Couchbase по умолчанию? - PullRequest
2 голосов
/ 20 января 2012

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

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

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Вы используете ведро 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 имеет значение true.Если для size установлено значение чуть более МБ, скажем, 1100000, то result будет ложным.Если вместо этого вы используете ведро Couchbase, вы можете установить size на 20000000, и значение result будет истинным.Однако установка size на 21000000 приведет к сбою операции Store.

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

- Джон

0 голосов
/ 03 февраля 2012

За MikeW из сообщения на форуме Couchbase здесь :

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

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

...