Библиотека для работы с разделяемыми хеш-таблицами (пары ключ + значение).
Может использоваться как локальная/встраиваемая kv-СУБД, как средство управления событийно-ориентированными циклами или для обработки больших csv файлов (поиск различий/пересечения, складывание, вычитание)
- Скорости чтения/записи < 500 тактов на ключ (5-15 млн. операций в секунду на современных CPU)
- Небольшой расход памяти на ключ + значение (1-1.4 от объема исходных данных)
- Поддержание актуальной копии данных на диске.
- Ускоренные чтение и запись наборов ключей (несколько ключей вместе пишутся и читаются значительно быстрее чем по отдельности).
- Одновременное использование данных несколькими процессами и несколькими потоками внутри одного процесса
- Операции алгебры множеств над наборами ключей
- Загрузка и выгрузка csv-подобных файлов
- Частичная загрузка данных в память ("ленивый" старт с дисковой копии, возможность небольших апдейтов больших наборов данных с последующей выгрузкой из памяти без полной загрузки)
- Размер хеш-таблицы до 4 млрд (до 16 млрд. ключей без потери производительности)
- Суммарный размер данных до 16 Гб (ключи + значения)
- Расход памяти на набор 0.5-1 Мб (использование неэффективно для маленьких наборов данных)
- Расход памяти на ключ
- Скорость чтения
- Скорость записи
- Расход памяти на набор.
- Снижение расхода памяти на набор
- Повышение локальности данных для ускорения записи
- Частичная выгрузка данных из памяти для полноценной работы в ограниченном объеме памяти
- Версия с 64 битной индексацией
Консольная утилита для работы с наборами и csv файлами. Устанавливается в /usr/local/nic/rc-singularity/bin,
версия с внутренней диагностикой ошибок в /usr/local/nic/rc-singularity/debug
Предоставляет доступ к большинству вызовов библиотеки, может использоваться как пример кода.
Справка по ключам утилиты: sing_hander -h