Есть большой поток данных приходящих в JSON, суть в том что этот JSON большой приходится разбирать его, на каждое поле в цикле идет запрос проверяется на совпадения по id, если нет то добавляется в БД, но пока происходит итерация приходит еще JSON данные, в результате MongoDB теряет часть данных, постоянно занята и при запросе выборки долго не отвечает. Чем ее заменить?
По сути, почти любую СУБД можно настроить для этих целей.
Возьмите, например, MySQL 8.0. Ставите сервер MySQL и устанавливаете наинизший уровень изолированности транзакций – READ UNCOMMITED – для отключения MVCC и, соответственно, повышения конкурентности. Этот сервер будет принимать данные на запись.
Ставите ещё один сервер MySQL – реплику (основной сервер, соответственно, – мастер). К нему будут делаться запросы на чтение.
Узкое место точно в бд? Если так то монго горизонтально масштабируется, ну или просто подкинуть ресурсов если серверу тяжело. Если узкое место на самом деле не там то думать дальше. Ну и не понятно что значит "большой поток" по вашей версии
JSON данные приходят по 60 Kb примерно, таких пакетов в секунду около 300, представляет собой дерево с множеством массивов которых приходится разбирать через цикл- каждая итерация запрос, сервер справляется а вот база данных постоянно занята и теряет данные.
Makcimka, хорошая нагрузка. Тут да - можно оставить и монгу, но тогда ее масштабировать. Вообще при таких объемах больше приходится думать о тюнинге сервера и пропускной способности сети. Я бы в этот момент уже предпочтет отказаться от собственного сервера)