Открываю в Init gen_server:
{ok, Ref} = hanoidb:open("database/db1.hanoidb"),
где-то в handle_call или handle_cast
Key = <<...>>, %%- тут Id страницы + дата + час в binary
hanoi_db:put(Ref, Key, term_to_binary(Data))
ну и читать
case hanoidb:get(Ref) of
not_found -> {reply, not_found, State};
{ok, Bin} -> {reply, {ok, binary_to_term(Bin)}, State}
end;
Соответственно если надо показать агрегаты за каждый из 24 часов - делается 23 запроса get к hanoidb и один к gen_server, который держит в памяти данные за текущий час. Пользователь админки один, поэтому нагрузка незаметна.
Но подобная статистика это все мелочи
Реальная нагрузка - это отслеживание уникальных IP за 24 часа начиная от сотни запросов в секунду и больше, вот там уже даже не знаю что делать, чтобы увеличить скорость работы на слабых VPS.
суббота, 25 января 2014 г., 21:37:54 UTC+4 пользователь Max Lapshin написал: