Я использую Spring + Datanucleus JDO + Hbase. Hbase работает в полностью распределенном режиме с двумя узлами. Здесь у меня серьезные проблемы с производительностью.
Мое веб-приложение можно рассматривать как пингер, который просто пингует URL-адреса и сохраняет их ответ. Как только мое приложение запускает несколько потоков для вставки в БД. Я заметил, что как только число одновременных записей превышает около 20, вставки начинают занимать много времени (некоторые занимают даже 1000 секунд). И когда это происходит, READS тоже начинает работать, и мое веб-приложение не может извлечь какие-либо данные из БД (мое веб-приложение зависает). Я не особо разбираюсь в NoSQL db и поэтому не знаю, с чего начать поиск производительности.
Мои основные конфигурации:
Размер кворума Zookeeper: 1
Hbase регион серверов: 2
Узлы данных: 2
hbase.zookeeper.property.maxClientCnxns: 400
коэффициент тиражирования: 3
Нужно ли увеличивать размер кучи для Hbase? Должна ли высокая производительность WRITE влиять на READ?
Я что-то не так с конфигурацией? Кажется, что запись в файл будет быстрее, чем запись данных в Hbase. Это мой последний выстрел в Hbase. Пожалуйста, помогите