Быстрое хранилище данных с последовательным доступом

183 views
Skip to first unread message

Max Lapshin

unread,
May 23, 2012, 4:26:55 AM5/23/12
to erlang-...@googlegroups.com
Решая задачу обработки статистики, я пришел к выводу, что самое
быстрое хранилище write-once данных, отсортированных по времени, это
erlang:term_to_binary(Lines, [compressed, {minor_version,1}])

Немного поподробнее: есть CSV файл с 300 - 10000 К строчек. Они все
отсортированы по времени и будут читаться только отсортированные по
времени,
никак по-другому.

Надо положить данные так, что бы их потом можно было очень-очень
быстро прочитать. Желательно уложиться примерно в районе микросекунды
на одну строчку.

Я пытался допилить CSV парсер, что бы он читал быстро, но плюнул.
Слишком сложно и ниже 3-5 мкс опустить не получилось.

Всякие БД очевидно плохи сетевой коннективностью, хотя та же тарантула
вроде должна быть в районе одной микросекунды.

Решение оказалось очень простым: данные разбивать по суткам и класть в
файлы указанным методом.
Это фантастически быстрый способ. Рекомендую.

Kirill Zaborsky

unread,
May 23, 2012, 6:08:06 AM5/23/12
to erlang-...@googlegroups.com
Макс, а 300 - 10000 К это общий объём, не за сутки ведь? Сколько тогда за один день выходит?
Ты ведь не считываешь за всё время сразу?

С уважением,
Кирилл Заборский.

23 мая 2012 г., 12:26 пользователь Max Lapshin <max.l...@gmail.com> написал:

--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com

Max Lapshin

unread,
May 23, 2012, 11:00:59 AM5/23/12
to erlang-...@googlegroups.com
За сутки.

Malik Baktiyarov

unread,
Jun 7, 2012, 10:54:38 AM6/7/12
to erlang-...@googlegroups.com
тему могу дополнить такой ссылкой:


A sortable serialization library, offers a serialization format (a la term_to_binary()).
Reply all
Reply to author
Forward
0 new messages