Порекомендуйте БД для записи до 1.5М записей в сек. Одна запись порядка 100 байт. Общий объем небольшой, до 30 сек, далее старые записи удаляются.
Для каждой новой записи надо делать проверку есть ли такая уже в БД.
Какие требования по персистентности? Доступ с удаленного сервера или внутри одного сервера? Что значит "проверка есть ли такая база в бд" - в записи есть ключ?
Доступ внутри одного сервера.
Если я правильно понял ваш вопрос, то персистентность не требуется. Можно все потерять в любой момент и просто начать запись заново.
Проверять есть ли уже такая запись в БД.
Что делать с этими данными дальше? Просто проверять на уникальность? Если возникает дублирование: игнорировать дубли или как-то обновлять? Какие требования к надежности хранения? А то может и мемкеш подойдет?
Ставите туда значения, для сброса flush.
Да, вы правы - не потянет.
Если в пределах одного сервера все, то хеш-таблицу.
Самое первое, что надо понять - что вообще хочет автор.
Наверняка уже есть нормальны решения. Тот же самый Cisco NetFlow генерит большой трафик, который как-то разгребается.
Но есть еще одна проблема: 1.5М записей по 100 байт - это 150Мбайт в сек. С учетом накладных расходов от 10% до 100% это до 300 Мбайт/сек. Итого примерно 1.2–2.5Гбит/сек. Уже нужен очень хороший сервер с 10Гб сетевой картой.
> Итого примерно 1.2–2.5Гбит/сек.
Ну это проблемы автора, он ищет решение под (возможно) существующий поток, необязательно сеть, может он файлы с ssd разгребает.
А при пакетной передаче накладные расходы минимальны.