Моя потребность - агрегировать статистику в реальном времени сервера веб-приложений. Например:Как реализовать базу данных статистики Java/Scala в памяти?
- Сколько запросы контент типа X были сделаны
- Сколько времени требуется, чтобы обработать запрос типа Y
И так далее.
Эти данные должны быть полностью в памяти, а не в файле, для обеспечения максимальной производительности. Он не регистрирует каждый запрос, а вместо этого хранит счетчики различных аспектов.
Самый простой способ, который я знаю, - хранить значения в таблице, подобной SQL, и выполнять SQL-подобные запросы. Преимущество заключается в том, что индексирование выходит без изменений без усилий по развитию. Я думаю, что некоторые встроенные базы данных Java, такие как Apache Derby, будут работать.
Другой способ - реализовать коллекцию (скажем, список) и хеш-таблицу для каждого столбца индекса. Таким образом, все это делается с API коллекций Java/Scala, но мне действительно нужно внедрить механизм индексирования, проверить его, сохранить его и т. Д.
Итак, мой вопрос в том, как вы считаете предпочтительным, и если есть другие способы легко и быстро реализовать эту функцию?
Спасибо.
Я только что открыл RRDtool. Интересно, если это предпочтительный способ пойти, а не изобретать колесо. Существует также реализация Java rrd4j (https://rrd4j.dev.java.net/) –