Рекомендуемая база данных / хранилище для тысяч транзакций в секунду - PullRequest
1 голос
/ 29 октября 2011

Мне нужно иметь возможность вставлять тысячи транзакций в секунду в какое-либо хранилище и быстро запрашивать его.

То, что я хотел бы сделать, это регистрировать все запросы TCP (ключом является IP-адрес источника или адресата). Затем, когда приходит другой запрос, проверьте, находится ли предыдущий запрос по IP в хранилище / базе данных / кэше, и выполните соответствующее действие.

SQLExpress, SQLCompact, SQLIte, MongoDB, Firebird? Достаточно ли быстро что-нибудь из этого?

Должен ли я просто использовать структуру данных в памяти некоторого описания?

Хранилище должно быть доступно нескольким потокам одновременно ...

Любые предложения, пожалуйста ...

ОБНОВЛЕНИЕ: RaptorDB? Это хорошо? Стоит рассмотреть вместе с другими базами данных / noSQL выше? http://www.codeproject.com/KB/database/RaptorDB.aspx

1 Ответ

0 голосов
/ 29 октября 2011

На этих скоростях вашим узким местом может быть ваш диск; стандартный диск SATA может выполнять только несколько десятков транзакций в секунду. Чтобы добавить диск, добавьте в него много оперативной памяти, чтобы база данных хранилась в основном в памяти.

В качестве альтернативы, просто сделайте все это в памяти, развернув свой собственный регистратор, который использует ассоциативный массив. Вам нужно регистрировать ВСЕ отправляемые данные или только тот факт, что ПК A отправлял данные на ПК B?

...