Системный глобальный счетчик, который можно обновлять программно (на разных версиях Linux)? - PullRequest
1 голос
/ 31 января 2012

Мне нужен какой-нибудь быстрый метод для обновления данных типа ключ / значение или, в качестве альтернативы, произвольного количества «счетчиков» в масштабе всей системы в Linux. Рассматриваемые системы: Ubuntu 10.04, RHEL 4.8 и RHEL 5.x.

Теперь я знаю о memcached, но он больше подходит для длительных процессов, таких как процессы FastCGI. К сожалению, мой процесс является традиционным CGI и поэтому должен использовать некоторое постоянное хранилище вне самого процесса.

Какие варианты у меня есть, и какие из них самые простые и самые дешевые (w.r.t. runtime) для доступа из C / C ++?

Примечание: это не для измерения скорости (то есть счетчиков производительности), а для измерения числа событий определенного типа. И для надежного подсчета мне нужно иметь возможность атомарного увеличения счетчиков по желанию ...

Ответы [ 3 ]

1 голос
/ 31 января 2012

Вы можете использовать простую DBM -подобную базу данных, например GDBM .

1 голос
/ 31 января 2012

В настоящее время, чтобы

обновлять данные типа ключ / значение

Разработчики часто используют NoSQL базы данных.Они работают в основном на системах Linux, а некоторые из них на C ++ ( MongoDB & ClusterPoint ).Они действительно быстрые для такого рода вещей, они очень стараются сохранить низкую задержку, и к ней должно быть легко получить доступ из C ++, так как они написаны на C ++.

1 голос
/ 31 января 2012

Вы можете попробовать небольшую базу данных SQLite. SQLite БЫСТРО и надежен, любое приложение может его изменить, а метод транзакции предотвращает конфликты. Просто добавьте запись в таблицу для каждого события или используйте одну таблицу со столбцом [событие]. Вставка действительно быстрая, а медленная - это поиск, но вы будете искать только при анализе данных, надеюсь, после того, как производительность станет фактором.

...