Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 01.03.2017
Сообщений: 27

Выбор СУБД для автономного устройства

10.11.2021, 09:45. Показов 987. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день.

Есть устройство (ARM 1GHz), которое будет работать без обслуживания, ему будут дёргать питание, может кончаться ОЗУ, нет свопа и другие радости жизни. Решили добавить базу данных для контроля файлов на диске и быстрой выборки их.

На устройстве линукс buildroot, крутится ряд приложений (Qt C++), многим из них будет нужен доступ к БД.
Памяти для движка можно выделить 150-200 МБ.

От БД нужно перед началом записи файлов на диск создать запись о нём, после окончания записи дополнить запись, что файл записан, и после обрыва питания на основе этого обнаруживать оборванные записи. На диске ехт4, но этого недостаточно.
Также нужно относительно быстро выдавать список файлов по запросу, с сортировками. Файлов (и строк о них) может быть до 400 млн, как верхний теоретический предел, реально думаю выше 10 млн это вряд ли. Размер строки 200-300 байт максимум.
Количество записей во все таблицы максимум 16-20 в сек, типично 1-2.
При загрузке будем проверять целостность таблиц, если нет встроенного способа, будем думать свой.

На данный момент просто при любых нуждах пересканируем всю ФС, а дисковая подсистема ограничена процом и выдает несколько десятков iops. Соответственно, загрузка списков занимает десятки секунд, сортировка недоступна.

Взглянул на SQLite, но придется написать приложение с ним, а передавать в него через сокеты (так уже сделано с другими приложениями). Это нормальный подход, или странные костыли?
Что еще может подойти?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2021, 09:45
Ответы с готовыми решениями:

Выбор СУБД для дальнейшего обучения
Здравствуйте, друзья! Нуждаюсь в совете - я стал изучать sql с целью дальнейшей работы в этой области (скорее всего - в качестве...

Выбор СУБД для небольшой фирмы
Доброго времени суток! Уважаемые форумчане, подскажите по такому вопросу. Есть небольшая фирма, на данный момент вся отчетность...

Выбор СУБД для web интерфейса
Добрый день! На работе необходимо сделать интерфейс к базе данных на WEB. База данных уже создана, но не заполнена. И дело в том, что...

6
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
10.11.2021, 12:06
Цитата Сообщение от pusyakaryagin Посмотреть сообщение
а передавать в него через сокеты
ну так это какбэ один из слоев. и как он будет взаимодействовать с субд - интимно твое дело

Добавлено через 1 минуту
но тока при
Цитата Сообщение от pusyakaryagin Посмотреть сообщение
ему будут дёргать питание, может кончаться ОЗУ, нет свопа и другие радости жизни
есть большой шанц потерять актуальные данные

Добавлено через 2 минуты
10 лямов записей может выжрать оперативу на раз на отдельном устройстве
0
0 / 0 / 0
Регистрация: 01.03.2017
Сообщений: 27
10.11.2021, 12:45  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
есть большой шанц потерять актуальные данные
Здесь допустимо потерять недописанные куски или последнюю запись, но наиболее важно не получить битую невосстановимую автоматически базу.

Цитата Сообщение от pincet Посмотреть сообщение
10 лямов записей может выжрать оперативу на раз
Да вот, есть гиг, работайте. Половина уже занята. Полагаю, субд можно настроить на умеренные аппетиты ценой производительности? Так-то и своп можно подрубить, но на диске с 50 IOPS это будет равносильно неработоспособности.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
10.11.2021, 14:59
Цитата Сообщение от pusyakaryagin Посмотреть сообщение
но наиболее важно не получить битую невосстановимую автоматически базу.
стесняюсь спросить - бесперебойники-то есть? а за недописанные куски субд отвечает в рамках транзанкций.

Добавлено через 2 минуты
и таки-да - если оператива ограничена тогда только страдать ибо впиливание движка локальной субд здоровья не добавит


и вангую свопы тоже будут активно юзать оперу

Добавлено через 3 минуты
и да - девайс в сети? если да - зарадидля нужена локальная субд? особенно если их (девайсов) убердогуа в сети?

Добавлено через 5 минут
Цитата Сообщение от pusyakaryagin Посмотреть сообщение
Взглянул на SQLite, но придется написать приложение с ним
так в тут проблемы нет от слова совсем. думаю, есть куча нативных api для связи sqlite c плюсами
1
0 / 0 / 0
Регистрация: 01.03.2017
Сообщений: 27
11.11.2021, 09:14  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
стесняюсь спросить - бесперебойники-то есть?
Чаще нет, это девайс почти потребительского уровня, ставить аккум только ради безопасного завершения работы совершенно невыгодно (серьезная модификация платы питания и новый корпус). Да и вопрос в обновлении софта, а не железа.
Цитата Сообщение от pincet Посмотреть сообщение
если оператива ограничена тогда только страдать
Да уже. Но разве плохо работают всякие плееры, на которых файлов может быть и 100 тыс, и оперы нет почти, и сортировка записей делается без заметной задержки? Правда, при полной разрядке база у них обычно слетает.
Цитата Сообщение от pincet Посмотреть сообщение
девайс в сети?
Зачастую в сети, но без выхода в интернет в 100% случаев. Закрытые локалки, чтоб с девайсами типа таких работать.
Цитата Сообщение от pincet Посмотреть сообщение
так в тут проблемы нет от слова совсем.
Уже пишу)

Оптимизировал расчет максимальной длины таблицы, выходит 2.5 млн строк максимум, но это скорее и максимум, и средняя величина. Пока подкину SQLite, потом посмотрим.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
11.11.2021, 09:42
Цитата Сообщение от pusyakaryagin Посмотреть сообщение
Зачастую в сети, но без выхода в интернет в 100% случаев. Закрытые локалки, чтоб с девайсами типа таких работать.
ну так поднять сервер данных в интрасети. или не вариант? много девайсов в одной сетке?
0
0 / 0 / 0
Регистрация: 01.03.2017
Сообщений: 27
22.11.2021, 13:43  [ТС]
Таки закончу поднятую тему.

Отдельное приложение с SQLite, работа через сокеты (udp через локалхост + очереди запросов), база с 2 млн записями.
Памяти занимает менее 20 МБ, запрос выполняется 3 сек с сортировкой и текстовым поиском, 0.1 сек без них.
Проц 1 ГГц ARM.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2021, 13:43
Помогаю со студенческими работами здесь

Выбор СУБД для портативного использования (free)
Добрый день. Нужно по быстрому состряпать простенькое портативное win-приложение. Если коротко суть его похожа на такую: есть группа...

Выбор СУБД и веб-сервера для начинающих
Всем привет! Собираюсь начать изучение баз данных, но вот сильно теряюсь в выборе начального ПО. Ситуация такая: всю жизнь жил на...

Выбор СУБД для организации обмена данными
такая у меня задача : есть ПК( назовем 'сервером'), который через COM порт считывает данные с оборудования ( сигнализация ), показывает...

Выбор СУБД для 1С
Такой вопрос: архитектура информационной системы - клиент-сервер. На каких СУБД может работать 1С при таком виде архитектуры?

Выбор СУБД для бухгалтерии
Здравствуйте, помогите выбрать СУБД для программы Бухгалтерский учет для одного пользователя начал с MS Access, хотел перейти на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru