Как стать автором
Обновить
7
0
Алексей Плеханов @AlexPlekhanov

Пользователь

Отправить сообщение

Пара замечаний:

При параллельном запуске нескольких putAll действительно легко получить deadlock, а в трассировке стека серверных узлов — увидеть вереницу блокировок.

В актуальных версиях Apache Ignite на atomic кэшах deadlock'а уже нет (и такого предупреждения в логе тоже), соответственно можно использовать в том числе HashMap для вставки.

В таком режиме (наличие бэкапов и включенный allowOverwrite) Data Streamer начинает работать через тот самый медленный put

У Data Streamer'а через receiver можно настроить вставку через putAll с теми же гарантиями:

streamer.receiver(DataStreamerCacheUpdaters.batched())

По скорости скорее всего будет работать также как Ваша вставка через putAll (нужно бы проверить), но распараллеливание из коробки.

При подключении нового узла координатор отправляет сообщение всем остальным узлам (в том числе толстым клиентам) в котором содержатся все данные нового узла.
Вы про какой пункт? Подозреваю, что Вас смутило описание Automatic Server Node Discovery.
Горизонтальная масштабируемость была в Ignite изначально, при вводе нового серверного узла автоматически происходит ребалансировка и никакие IP адреса никуда прописывать не нужно, толстые клиенты и серверные узлы начинают обращаться к новому узлу напрямую. Для тонких клиентов в принципе тоже ничего прописывать не нужно, тонкие клиенты в обычном режиме подключены к одному из серверных узлов и отправляют запросы через этот серверный узел, который уже может перенаправить запрос на новый подключенный узел. Режим partition awareness позволяет исключить один network hop и отправлять запрос сразу на узел, который является primary узлом для определенного ключа. Т. е. Automatic Server Node Discovery — это развитие функционала partition awareness, который является оптимизацией для тонкого клиента.
У нас более десятка систем его используют для различных целей. Где-то для промежуточного in-memory хранения, где-то как основную БД с native persistance. В большинстве случаев, насколько я знаю, используется key-value интерфейс либо несложные SQL. Показывает себя в этих кейсах хорошо. Но были попытки реляционную модель со сложными SQL запросами натянуть на Ignite и в таких кейсах он показал себя не очень.

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Зарегистрирован
Активность