1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Armink-FlashDB

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

GitHub Action Лицензия Документация

RU | 中文

Введение

FlashDB — это сверхлегковесная встраиваемая база данных, которая сосредоточена на предоставлении решений для хранения данных для встраиваемых продуктов. В отличие от традиционной базы данных, основанной на файловой системе, FlashDB объединяет характеристики флэш-памяти и имеет высокую производительность и надёжность. При этом при условии обеспечения минимального использования ресурсов должна максимально продлеваться продолжительность службы флэш-памяти.

FlashDB предлагает два режима работы базы данных:

  • Ключ-значение (key-value): Это нереляционная база данных, которая хранит данные как коллекцию пар ключ-значение, где ключ используется как уникальный идентификатор. Ключ-значение имеет простое управление и высокую масштабируемость.
  • База данных временных рядов (Time Series Database): База данных временных рядов (TSDB), которая хранит данные в порядке времени. Данные TSDB имеют метку времени, большой объем хранимых данных и высокую производительность вставки и запроса.## Сценарий использования

Сегодня количество различных типов устройств Интернета вещей увеличивается, а также возрастает число и объём данных, создаваемых во время эксплуатации. FlashDB предоставляет различные решения для хранения данных, которые не только занимают мало ресурсов, но и имеют большую ёмкость хранения, что делает её非常适合物联网设备。以下是主要应用场景:

  • 键值(Key-Value)
    • 存储产品参数
    • 存储用户配置信息
    • 管理小文件
  • 时间序列数据库(Time Series Database)
    • 存储动态生成的结构化数据:例如环境监控信息,由温度和湿度传感器收集的数据,智能手环记录的人体健康实际数据等。
    • 记录操作日志:存储产品的历史操作日志,报警消息记录等。

将文本中的中文部分翻译为俄语:

Сценарий использования

Сегодня количество различных типов устройств Интернета вещей увеличивается, а также возрастает число и объёма данных, создаваемых во время эксплуатации. FlashDB предоставляет различные решения для хранения данных, которые не только занимают мало ресурсов, но и имеют большую ёмкость хранения, что делает её非常适合物联网设备。以下是主要应用场景:

  • Ключ-значение (Key-Value)
    • Хранение параметров продукта
    • Хранение информации конфигурации пользователя
    • Управление малыми файлами
  • База данных временных рядов (Time Series Database)
    • Хранение динамически генерируемых структурированных данных: такие как информация мониторинга окружающей среды, собранная датчиками температуры и влажности, реальные данные о здоровье человека, записанные умными браслетами, и т.д.
    • Запись логов операций: хранение исторических логов операций продукта, записи тревожных сообщений, и т.д.## Основные возможности
  • Очень малый объем данных, использование оперативной памяти почти 0;
  • Поддержка нескольких разделов, нескольких экземпляров. При большом объеме данных можно уточнить разделение, чтобы снизить время поиска;
  • Поддержка балансировки износа для продления жизни флэш-накопителя;
  • Поддержка функции защиты от внезапного отключения питания, высокая надежность;
  • Поддерживает два типа KV: строковый и blob, что удобно для работы пользователей;
  • Поддержка постепенного обновления KV, после обновления прошивки продукта содержимое KVDB также поддерживает автоматическое обновление;
  • Поддержка изменения состояния каждой записи TSDB для удобства управления пользователями;

Оценка производительности и размера### Тест производительности TSDB 1 (NOR flash W25Q64)

msh />tsl bench
Добавлено 1250 TSL за 5 секунд, среднее значение: 250.00 TSL/с, 4.00 мс/пер
Запросы в сумме заняли 2218 (мс) для 1251 TSL, минимальное время: 1 мс, максимальное время: 2 мс, среднее значение: 1.77 мс/пер

Среднее время вставки: 4 мс, среднее время запроса: 1.8 мс

Тест производительности TSDB 2 (STM32F2 встроенный flash)

msh />tsl bench
Добавлено 13421 TSL за 5 секунд, среднее значение: 2684.20 TSL/с, 0.37 мс/пер
Запросы в сумме заняли 1475 (мс) для 13422 TSL, минимальное время: 0 мс, максимальное время: 1 мс, среднее значение: 0.11 мс/пер

Среднее время вставки: 0.37 мс, среднее время запроса: 0.12 мс

Размер (STM32F4 IAR8.20)

    Модуль                  код RO  данные RO  данные RW
    ------                  -------  -------  -------
    fdb.o                      276       232         1
    fdb_kvdb.o                4 584       356         1
    fdb_tsdb.o                1 160       236
    fdb_utils.o                 418     1 024

Выше приведена информация из файла карты IAR. Можно видеть, что размер FlashDB очень мал.

Как использовать

FlashDB предоставляет полную документацию, см.: https://armink.github.io/FlashDB/#/

Быстрый доступ:

Лицензия

Проект использует лицензию Apache-2.0 открытого программного обеспечения. Подробнее прочтите содержание файла LICENSE проекта.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Сверхлёгкая база данных с поддержкой KV-данных и временных рядов. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (2)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Armink-FlashDB.git
git@api.gitlife.ru:oschina-mirror/Armink-FlashDB.git
oschina-mirror
Armink-FlashDB
Armink-FlashDB
master