Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Key-value много-процессная база для Delphi / 25 сообщений из 70, страница 1 из 3
27.04.2018, 11:00
    #39637219
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Приветствую!

Возникла задача на сервере, где у меня считаются всякие штуки, хранить результаты локально в виде ключ-значения базы, чтобы два раза не считать (value) одно и то же (key).
Сервер работает многопроцессно, так что база должна уметь многопроцессный доступ как на чтение, так и на запись.

Покопался в интернете и нашлись, конечно, разные базы.

Вот очень понравилась, к примеру, Symas LMDB .
Проблема, если хочу получть это в Delphi, придется самому писать обертку для этой Си-библиотеки, готовой не нашел.
И пока думаю о встраиваемой базе , без серверного процесса.


Это было предисловие.
А вопрос, какую библиотеку из своего опыта посоветуете?
Идет речь о нескольких милионах записей в единственной таблице.
...
Рейтинг: 0 / 0
27.04.2018, 11:14
    #39637236
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
а чем не нравится ЛЮБАЯ БД ?
там чудестно хранятся несколько миллионов записей
и значения (value) находятся по ключу (key)
...
Рейтинг: 0 / 0
27.04.2018, 11:19
    #39637243
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
ключевые слова: многопроцессная, встраиваемая (без сервера)
...
Рейтинг: 0 / 0
27.04.2018, 11:22
    #39637248
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
и я надеюсь на более быстрый поиск, если это будет база без SQL, а рассчитанная на одно единственное поисковое задание: искать ключ.
...
Рейтинг: 0 / 0
27.04.2018, 11:24
    #39637253
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
TList не предлагать ?
...
Рейтинг: 0 / 0
27.04.2018, 11:36
    #39637265
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Redis + https://github.com/danieleteti/delphiredisclient
к тому же он в GetIt есть
...
Рейтинг: 0 / 0
27.04.2018, 11:36
    #39637267
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семён,

Ну а почему без SQL? Можно посмотреть в сторону SQLLite например. И да - тривиальная таблица + индекс на ключ - вполне себе шустро будет работать.
...
Рейтинг: 0 / 0
27.04.2018, 11:55
    #39637296
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семёнключевые слова: многопроцессная, встраиваемая (без сервера)
почему без серверного процесса ?
Аргументы для встраивания велосипеда должны быть просто железобетонными
...
Рейтинг: 0 / 0
27.04.2018, 12:04
    #39637312
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семён> Идет речь о нескольких милионах записей в единственной таблице.

Я бы в таком случае вообще БД не использовал.
Нужен только поиск или ещё какие-то действия?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2018, 12:29
    #39637345
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
// Идет речь о нескольких милионах записей в единственной таблице.

Ну это пока. А завтра еще одна. Потом еще три...
Так что БД это правильное решение.
sqlite - норм. решение. Она шустрая. На ней работает ФайрФокс.

При работе с файрДАК никаких драйверов не нужно ставить. Только файл БД.
...
Рейтинг: 0 / 0
27.04.2018, 12:41
    #39637355
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
27.04.2018 12:29, L_argo пишет:
> sqlite - норм. решение. Она шустрая. На ней работает ФайрФокс.

она тупая и глючная. на ней работает Тандербёрд.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2018, 12:44
    #39637361
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик СемёнИдет речь о нескольких милионах записей в единственной таблице.

На таких объемах - все, что угодно, вплоть до TList
Не нескольких миллиардах и чтобы быстро - надо уже решения искать :)
...
Рейтинг: 0 / 0
27.04.2018, 12:45
    #39637365
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семён,

TDictionary + крит секцию пробовал?
...
Рейтинг: 0 / 0
27.04.2018, 13:24
    #39637421
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
SOFT FOR YOU,
Отличный совет для миллионов записей с параллельным доступом, там такие тормоза начнутся, особенно со встроенным TDictionary :)
...
Рейтинг: 0 / 0
27.04.2018, 13:33
    #39637425
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
alekcvp,

Эээ... Какие тормоза? Есть БД быстрее TDicnionary?
...
Рейтинг: 0 / 0
27.04.2018, 13:40
    #39637436
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
defecatorКроик Семёнключевые слова: многопроцессная, встраиваемая (без сервера)
почему без серверного процесса ?
Аргументы для встраивания велосипеда должны быть просто железобетонными

Нет у меня железобетонных аргументов.
Думал ускорить вычисляющий модуль за счет сохранения всех посчитанных результатов, т.к. приходится часто считать одно и то же (до 5-10 сек) с серъезной загрузкой процессора и диска. И первым желанием было не плодить еще одну службу. Отсюда и желание embedded.
...
Рейтинг: 0 / 0
27.04.2018, 13:42
    #39637438
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
zinpubalekcvp,
Эээ... Какие тормоза? Есть БД быстрее TDicnionary?
https://habr.com/post/282902/
...
Рейтинг: 0 / 0
27.04.2018, 13:44
    #39637444
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
embedded - это для ОДНОЙ программы
а кто будет разделять данные Кроик Семёнмногопроцессно
если они не будут лазить в БД, то будут к серверу подключаться, а он уже к БД
ну так опять любой embedded сервер
Firebird, SQLite
...
Рейтинг: 0 / 0
27.04.2018, 14:02
    #39637468
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
alekcvpzinpubalekcvp,
Эээ... Какие тормоза? Есть БД быстрее TDicnionary?
https://habr.com/post/282902/

Читал... Но! работа с любым сервисом, кажется мне, будет медленее...

Хотя, если многопроцессно это именно ПРОЦЕССНО, а не многопоточно, тогда да... только БД
...
Рейтинг: 0 / 0
27.04.2018, 14:56
    #39637512
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семёнключевые слова: многопроцессная, встраиваемая (без сервера)
Firebird embedded. Создай базу с отключениям force write. И попробуй. Вполне возможно, что этого окажется достаточно.
...
Рейтинг: 0 / 0
27.04.2018, 15:28
    #39637547
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семён> Думал ускорить вычисляющий модуль за счет сохранения
Кроик Семён> всех посчитанных результатов, т.к. приходится часто считать
Кроик Семён> одно и то же (до 5-10 сек)

А зачем повторно считать одно и то же? Хеш-таблицы какие-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2018, 15:42
    #39637560
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Гаджимурадов Рустам,

Расстояние (в километрах и часах езды) между двумя координатами, посчитанное с использованием навигационного модуля
...
Рейтинг: 0 / 0
27.04.2018, 19:07
    #39637704
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семён,

обычная хэш-таблица с запасом, спроецированная в файл, пойдёт, алгоритм из TDictionary стрынди

делов часа на 2-3

с локами правда надо немного подумать
...
Рейтинг: 0 / 0
27.04.2018, 19:29
    #39637712
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
Кроик Семён> Расстояние (в километрах и часах езды) между двумя координатами,
Кроик Семён> посчитанное с использованием навигационного модуля

Зачем это каждый раз считать (пересчитывать) ?
Посчитай один раз (хоть однопоточно, хоть многопоточно), сохрани в
файл, а дальше - сколько угодно многопоточное/многопроцессное чтение.

БД тут нафиг не нужна (именна для этого).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2018, 20:13
    #39637720
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Key-value много-процессная база для Delphi
alekcvp,

Нашёл кому в производительность тыкать :)
TDictionary не идеальный, но в данной задаче бутылочным горлышком будет критическая секция

И я могу предложить несколько вариантов, как это ускорить. Но только в том случае, если автору будет мало скорости. А я думаю, он будет счастлив как колобок, убегающий от бабушки.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Key-value много-процессная база для Delphi / 25 сообщений из 70, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]