|
|
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Приветствую! Возникла задача на сервере, где у меня считаются всякие штуки, хранить результаты локально в виде ключ-значения базы, чтобы два раза не считать (value) одно и то же (key). Сервер работает многопроцессно, так что база должна уметь многопроцессный доступ как на чтение, так и на запись. Покопался в интернете и нашлись, конечно, разные базы. Вот очень понравилась, к примеру, Symas LMDB . Проблема, если хочу получть это в Delphi, придется самому писать обертку для этой Си-библиотеки, готовой не нашел. И пока думаю о встраиваемой базе , без серверного процесса. Это было предисловие. А вопрос, какую библиотеку из своего опыта посоветуете? Идет речь о нескольких милионах записей в единственной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:00 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
а чем не нравится ЛЮБАЯ БД ? там чудестно хранятся несколько миллионов записей и значения (value) находятся по ключу (key) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:14 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
ключевые слова: многопроцессная, встраиваемая (без сервера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:19 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
и я надеюсь на более быстрый поиск, если это будет база без SQL, а рассчитанная на одно единственное поисковое задание: искать ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:22 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
TList не предлагать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:24 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Redis + https://github.com/danieleteti/delphiredisclient к тому же он в GetIt есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:36 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, Ну а почему без SQL? Можно посмотреть в сторону SQLLite например. И да - тривиальная таблица + индекс на ключ - вполне себе шустро будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:36 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семёнключевые слова: многопроцессная, встраиваемая (без сервера) почему без серверного процесса ? Аргументы для встраивания велосипеда должны быть просто железобетонными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 11:55 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён> Идет речь о нескольких милионах записей в единственной таблице. Я бы в таком случае вообще БД не использовал. Нужен только поиск или ещё какие-то действия? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 12:04 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
// Идет речь о нескольких милионах записей в единственной таблице. Ну это пока. А завтра еще одна. Потом еще три... Так что БД это правильное решение. sqlite - норм. решение. Она шустрая. На ней работает ФайрФокс. При работе с файрДАК никаких драйверов не нужно ставить. Только файл БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 12:29 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
27.04.2018 12:29, L_argo пишет: > sqlite - норм. решение. Она шустрая. На ней работает ФайрФокс. она тупая и глючная. на ней работает Тандербёрд. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 12:41 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнИдет речь о нескольких милионах записей в единственной таблице. На таких объемах - все, что угодно, вплоть до TList Не нескольких миллиардах и чтобы быстро - надо уже решения искать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 12:44 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, TDictionary + крит секцию пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 12:45 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Отличный совет для миллионов записей с параллельным доступом, там такие тормоза начнутся, особенно со встроенным TDictionary :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:24 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
alekcvp, Эээ... Какие тормоза? Есть БД быстрее TDicnionary? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:33 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
defecatorКроик Семёнключевые слова: многопроцессная, встраиваемая (без сервера) почему без серверного процесса ? Аргументы для встраивания велосипеда должны быть просто железобетонными Нет у меня железобетонных аргументов. Думал ускорить вычисляющий модуль за счет сохранения всех посчитанных результатов, т.к. приходится часто считать одно и то же (до 5-10 сек) с серъезной загрузкой процессора и диска. И первым желанием было не плодить еще одну службу. Отсюда и желание embedded. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:40 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:42 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
embedded - это для ОДНОЙ программы а кто будет разделять данные Кроик Семёнмногопроцессно если они не будут лазить в БД, то будут к серверу подключаться, а он уже к БД ну так опять любой embedded сервер Firebird, SQLite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:44 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
alekcvpzinpubalekcvp, Эээ... Какие тормоза? Есть БД быстрее TDicnionary? https://habr.com/post/282902/ Читал... Но! работа с любым сервисом, кажется мне, будет медленее... Хотя, если многопроцессно это именно ПРОЦЕССНО, а не многопоточно, тогда да... только БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:02 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семёнключевые слова: многопроцессная, встраиваемая (без сервера) Firebird embedded. Создай базу с отключениям force write. И попробуй. Вполне возможно, что этого окажется достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:56 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён> Думал ускорить вычисляющий модуль за счет сохранения Кроик Семён> всех посчитанных результатов, т.к. приходится часто считать Кроик Семён> одно и то же (до 5-10 сек) А зачем повторно считать одно и то же? Хеш-таблицы какие-то? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:28 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Расстояние (в километрах и часах езды) между двумя координатами, посчитанное с использованием навигационного модуля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:42 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, обычная хэш-таблица с запасом, спроецированная в файл, пойдёт, алгоритм из TDictionary стрынди делов часа на 2-3 с локами правда надо немного подумать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 19:07 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён> Расстояние (в километрах и часах езды) между двумя координатами, Кроик Семён> посчитанное с использованием навигационного модуля Зачем это каждый раз считать (пересчитывать) ? Посчитай один раз (хоть однопоточно, хоть многопоточно), сохрани в файл, а дальше - сколько угодно многопоточное/многопроцессное чтение. БД тут нафиг не нужна (именна для этого). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 19:29 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
alekcvp, Нашёл кому в производительность тыкать :) TDictionary не идеальный, но в данной задаче бутылочным горлышком будет критическая секция И я могу предложить несколько вариантов, как это ускорить. Но только в том случае, если автору будет мало скорости. А я думаю, он будет счастлив как колобок, убегающий от бабушки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 20:13 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39637236&tid=2040946]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 482ms |

| 0 / 0 |
