Ошибка при загрузке данных в Redis из YCSB

Я пытаюсь загрузить данные на сервер Redis из команды загрузки данных ycsb. Он работает нормально с 1 миллионом записей, но когда я пытаюсь загрузить больше данных, таких как 250 миллионов записей, он работает в течение некоторого времени, а после этого показывает ошибку при загрузке, выдавая следующее исключение. Может ли кто-нибудь предложить, где я иду не так?

Получаю следующую ошибку:

redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: истекло время чтения в redis.clients.jedis.Protocol.process(Protocol.java:74) в redis.clients.jedis.Protocol.read(Protocol.java :122) в redis.clients.jedis.Connection.getIntegerReply(Connection.java:178) в redis.clients.jedis.Jedis.zadd(Jedis.java:1448) в com.yahoo.ycsb.db.RedisClient.insert( RedisClient.java:97) в com.yahoo.ycsb.DBWrapper.insert(DBWrapper.java:148) в com.yahoo.ycsb.workloads.CoreWorkload.doInsert(CoreWorkload.java:461) в com.yahoo.ycsb.ClientThread .run(Клиент.java:269)

Спасибо


person user1802481    schedule 10.03.2014    source источник
comment
Вы должны опубликовать соответствующий фрагмент вашего кода, чтобы ожидать некоторой помощи.   -  person Pascal Le Merrer    schedule 10.03.2014
comment
[ссылка]github.com/brianfrankcooper/YCSB/blob/master/redis/src/main/ Здесь вы можете найти клиентский код для redis, который YCSB использует для загрузки и запуска рабочих нагрузок.   -  person user1802481    schedule 10.03.2014


Ответы (1)


Похоже, проблема в тайм-ауте. Это неудивительно, учитывая огромную рабочую нагрузку, которую вы определили.

Вы можете попробовать изменить способ подключения YCSB к Redis, чтобы добавить более длительный тайм-аут, чем по умолчанию.

В com.yahoo.ycsb.db.RedisClient замените

jedis = new Jedis(host, port);

с

jedis = new Jedis(host, port, TIMEOUT);

При этом TIMEOUT является целым числом. Значение по умолчанию в Jedis — 2000, что, как я предполагаю, означает 2 секунды.

person Pascal Le Merrer    schedule 10.03.2014
comment
Большое спасибо, это решило мою проблему. Я внес изменения в клиент Redis, и мне было хорошо :) - person user1802481; 11.03.2014