Производительность Riak - неожиданно результаты

В последние дни немного поигрался с риаком. Первоначальная настройка была проще, чем я думал. Теперь у меня есть кластер с 3 узлами, все узлы работают на одной виртуальной машине для тестирования.

Я признаю, что аппаратные настройки моей виртуальной машины сильно занижены (1 ЦП, 512 МБ ОЗУ), но все же я весьма удивлен низкой производительностью riak.

Уменьшение карты

Немного поиграв с уменьшением карты У меня было около 2000 объектов в одной корзине, каждый размером около 1–2 КБ в формате json. Я использовал эту функцию карты:

function(value, keyData, arg) {
    var data = Riak.mapValuesJson(value)[0];

    if (data.displayname.indexOf("max") !== -1) return [data];
    return [];
}

И потребовалось более 2 секунд только для выполнения HTTP-запроса, возвращающего его результат, не считая времени, которое потребовалось в моем клиентском коде для десериализации результатов из json. Удаление 2 из 3 узлов, казалось, немного улучшило производительность до чуть менее 2 секунд, но это все еще кажется мне очень медленным.

Можно ли этого ожидать? Объекты не были такими большими по размеру в байтах, и 2000 объектов в одном ведре тоже не так много.

Insert

Пакетная вставка около 60 000 объектов того же размера, что и выше, заняла довольно много времени и фактически не работала.

Мой скрипт, который вставлял объекты в riak, умер около 40 000 или около того и сказал, что он больше не может подключиться к узлу riak. В журналах riak я обнаружил сообщение об ошибке, которое указывало на то, что узлу не хватило памяти и он умер.

Вопрос

Это действительно мой первый выстрел в риак, так что определенно есть шанс, что я что-то напортачил.

  • Могу ли я настроить какие-либо параметры?
  • Не слишком ли ограничены параметры оборудования?
  • Может быть, здесь ограничивающим фактором является клиентская библиотека PHP, которую я использовал для взаимодействия с riak?
  • Запуск всех узлов на одном компьютере. физическая машина - это довольно глупо, но если это проблема - как я могу лучше проверить производительность riak ?
  • Действительно ли сокращение карты так медленно? Я читал о снижении производительности, которое имеет map reduce в списке рассылки riak, но если Map Reduce работает медленно, как вы должны выполнять «запросы» для данных, необходимых почти в реальном времени? Знаю, что риак не так быстр, как редис.

Это действительно очень помогло бы мне, если бы кто-нибудь с большим опытом в риаке мог помочь мне с некоторыми из этих вопросов.

16
задан Max 15 May 2011 в 10:30
поделиться