|
|
|
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 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
К примеру 20'000 объектов Для них нужно найти расстояния до всех других объектов Большая и ненужная работа для большинства соединений. Вот и считаю сегодня по мере надобности. А теперь вот надумал для ближайших соседей посчитать окружение заранее, а далее по ходу дела. Вобщем вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 20:22 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнК примеру 20'000 объектов Для них нужно найти расстояния до всех других объектов Большая и ненужная работа для большинства соединений. Вот и считаю сегодня по мере надобности. А теперь вот надумал для ближайших соседей посчитать окружение заранее, а далее по ходу дела. Вобщем вот. В Oracle есть весь готовый функционал, я делал то же, что и ты http://www.oracle.com/technetwork/database/options/spatialandgraph/overview/index.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 20:24 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
defecator, Осталось только сравнить размеры хотя бы только клиентской части Оракула и всего сервера Фаерберд, который с подобными задачами (причем даже в локальной своей версии) справляется на-ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 22:44 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Хорошо, что топик создал. Иногда приятно перестать на какое то время вариться в собственном соку. Короче, обдумал еще раз всё трезво (спасибо всем за обсуждение) , отбросил блажь и решил в пользу MySQL с единственной табличкой. Серверное решение вместо embedded + multi-process. Там посмотрим, как дело пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 23:04 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
БД - если нужен ACID или не влезает в память. Память - если не нужен и влезает. 60к узлов в графе - ACID не нужен, все влезает. Вопрос был про правильную структуру данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 23:11 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семёнрешил в пользу MySQL с единственной табличкойЕсли данные хранить не нужно, то посмотри на движок MEMORY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 00:16 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, Не, ну сейчас было обидно А чего TDictionary не понравился? Не осилил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 03:52 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUКроик Семён, Не, ну сейчас было обидно А чего TDictionary не понравился? Не осилил? потому что СУБД лучше, тем более она готовая - бери и пользуйся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 08:59 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Vlad Fdefecator, Осталось только сравнить размеры хотя бы только клиентской части Оракула и всего сервера Фаерберд, который с подобными задачами (причем даже в локальной своей версии) справляется на-ура. при использовании ODAC клиентская часть Oracle равна нулю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 09:00 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUКроик Семён, Не, ну сейчас было обидно А чего TDictionary не понравился? Не осилил? Просто это должна быть база на ДИСКЕ. С одновременным доступом из разных процессов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 12:58 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Одновременный доступ подразумевает только чтение или добавление/обнолвление записей тоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:33 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Добавление тоже. В этом вся петрушка. Причем, в моем случае, ключ даже если будет не уникальным- не важно. Тогда просто будут две одинаковых ключ-значение пары. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:41 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
P.S. Обновление не предусмотрено, только добавление и чтение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:42 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
У нас как-то была задача кучу прайсов разбитых на разные файлы представить в виде сервиса с поиском. Но там прайс-файл менялся целиком, а не отдельные записи. Строили индекс и весь его пихали в память, без каких либо БД. Работало зверски быстро. Но это посути велосипед, для очень узкой задачи с своей спецификой. В общем как сказали выше, если нужны транзакции и прочие возможности берите нормальный сервер. Я если честно поклонник БД, поэтому скорее буду выбирать сервер под задачу, чем брать что-то новомодное. Благо вариантов вагоны, начиная от простых типа sqlite и кончая oracle/sql server/postgesql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:56 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
В общем, если отвечать буквально, для решения такой задачи лично я брал бы REDIS. Штука простая, толковая и без лишней обвески. Но куда важнее, чтобы на это решение посмотрел хороший спец по алгоритмам... прежде, чем они будут реализованы и он придёт рассказывать, как всё переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:58 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнSOFT FOR YOUКроик Семён, Не, ну сейчас было обидно А чего TDictionary не понравился? Не осилил? Просто это должна быть база на ДИСКЕ. С одновременным доступом из разных процессов. Ты же сказал, что у тебя там кеш расчётов. Откуда взялось требование про хранение на диске? И да, неужели сложно написать сохранение и загрузку TDictionary в файл? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 17:22 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Использовать БД для настолько простой задачи - это странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 19:43 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
rgreatИспользовать БД для настолько простой задачи - это странно. Задача БД - хранить данные. Странно, да ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 19:48 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
defecator> Задача БД - хранить данные. Не только. Тем паче тут и данных-то нет, как таковых. Redis я бы ещё понял (хотя даже он тут не нужен, если клиентских машин не больше одной, AFAIU), но MySQL... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 19:51 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Часть БД прекрасно чувствуют себя embedded. И что-то мне подсказывает что поддержка нормальных БД в дельфи реализована намного лучше экзотики типа redis. Поймаешь потом в продакшене какую-нибудь фигню и все, приплыли. Сиди, разбирайся, патчи, поддерживай. К чему это изобретение велосипеда? Что в БД проблема завести таблицу с 2 полями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 19:56 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievБД - если нужен ACID или не влезает в память. Память - если не нужен и влезает. 60к узлов в графе - ACID не нужен, все влезает. Вопрос был про правильную структуру данных. Именно так. От себя добавлю, что будет работать в памяти без прослоек раз этак до 10 быстрее. При необходимости - сериализовать на диск и обратно при старте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 22:52 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнРасстояние (в километрах и часах езды) между двумя координатами, посчитанное с использованием навигационного модуляВ сторону PostGIS не смотрел? Вот ознакомительная статья , авось заинтересует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 16:18 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Спасибо, смотрел. Хорошая вещь. Но выбрал другую штуку. Она уже давно в использовании, теперь решил вот заняться оптимизацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2018, 19:50 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
БД это сетевое подключение, сокеты, аутентификация, парсинг SQL, менеджмент транзациями, страницы и хранение на диске. По большому счёту я ничего не имею против БД Но в данном случае использовать БД - это не забивать гвозди микрокопом, это трактор на скоростном шоссе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 11:59 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Всё это настраивается с пол-пинка за 5-15 минут, если локально (и имеет массу бенефитов). Удаленно немного больше. Но я так понял база локальная. Опять же - может посмотреть на встроенные вариант, вообще без сетей. Absolute Database тот же или FB Embedded, если процесс один. авторНо в данном случае использовать БД - это не забивать гвозди микрокопом, это трактор на скоростном шоссе Не стоит преувеличивать. Могу накидать проект key-value + подключение бд за минут 5. При том, что я не такой уж великий программист, и бд, в общем-то знаю плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 15:33 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
(памятка для себя) в начале топика была ссылка на Symas LMDB Не в рамках моей задачи (я уже к MySQL пришел), а в далеком будущем задумался над портированием библиотеки на Delphi. Вот список всех оберток на сегодняшний день: https://symas.com/lmdb/technical/#wrappers Там в .NET - обертке есть скомпилированные DLLки, которые можно было бы взять за основу. Symas LMDB An ultra-fast, ultra-compact, crash-proof key-value embedded data store. Symas LMDB is an extraordinarily fast, memory-efficient database we developed for the OpenLDAP Project. With memory-mapped files, it has the read performance of a pure in-memory database while retaining the persistence of standard disk-based databases. Bottom line, with only 32KB of object code, LMDB may seem tiny. But it’s the right 32KB. Compact and efficient are two sides of a coin; that’s part of what makes LMDB so powerful. Explore Capabilities Ordered-map interface - keys are always sorted; range lookups are supported Fully-transactional - full ACID semantics with MVCC Reader/writer transactions - readers don’t block writers; writers don’t block readers Fully serialized writers - writes are always deadlock-free Extremely cheap read transactions can be performed using no mallocs or any other blocking calls Multi-thread and multi-process concurrency supported - Environments may be opened by multiple processes on the same host Multiple sub-databases may be created - transactions cover all sub-databases Memory-mapped - allows for zero-copy lookup and iteration Maintenance-free - no external process or background cleanup or compaction required Crash-proof - no logs or crash recovery procedures required No application-level caching - LMDB fully exploits the operating system’s buffer cache 32KB of object code and 6KLOC of C - fits in CPU L1 cache for maximum performance ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 15:46 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Всегда удивляло как какая-то технология становится модной, ее сразу начинают пользовать везде, даже там где она нафик не уперлась :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 16:19 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
makhaon, Если коннект к локалхосту - это не значит, что нет сетевых технологий И дело здесь не в скорости развёртывания. TDictionary вообще не нужно разворачивать. Дело в том, что решение не подходит под задачу. Или не соответствует. Кому как удобнее ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 16:36 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
энди, "везде пихают" не всегда из-за модности технологии, а из-за её знакомости в коллективе. Для более легкого саппорта возможно более широким кругом программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 16:37 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
makhaon...FB Embedded, если процесс один... А если не один - что будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2018, 21:40 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
От версии зависит. В 2.5 и выше - катастрофы не случится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 09:26 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Хотя если БД каждый раз отдельная будет - в любой версии работать будет, IIRC. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 09:47 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Один TDictionary на несколько процессов? Можно, скорее всего. Но я представлю уже обвязку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 11:38 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
makhaon, Ну давайте замутим тестовое сравнение. И решим Я ванговал производительность x10 в пользу TDictionary. Посмотрим, как это будет на практике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 12:31 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUmakhaon, Ну давайте замутим тестовое сравнение. И решим Я ванговал производительность x10 в пользу TDictionary. Посмотрим, как это будет на практике Можно и больше, но это уже программировать надо) Уменьшить тормоза на критической секции помогут несколько TDictionary, по числу процессоров или в 2..4 раза больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 12:54 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, Есть у меня идея синхронизируемых контейнеров. В рамках этой идеи для хеша есть 1024 слота, открываемых на чтение или запись. А там уже указатели на локальные хеши. Но конечно для ТС и TDictionary c крит секцией будет огонь решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:11 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUAleksandr Sharahov, Есть у меня идея синхронизируемых контейнеров. В рамках этой идеи для хеша есть 1024 слота, открываемых на чтение или запись. А там уже указатели на локальные хеши. Но конечно для ТС и TDictionary c крит секцией будет огонь решение Дык и реализация есть. Если читал мой опус внимательно, то наверняка заметил, что хеширование можно выполнять отдельно, до поиска/вставки. Т.е., например, по старшим битам хеша определяешь в какую таблицу надо смотреть, и все. Все уже написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 13:21 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, У меня и свой TDictionary есть А в твоём нет главного - слотов :) На чтение и запись который. Забыл как называется примитив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 14:10 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
defecatorпри использовании ODAC клиентская часть Oracle равна нулюПравда при смене версии оракла тогда приходится покупать новый одак. Но это мелочи по сравнению с экономией полгига места на диске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 15:22 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUAleksandr Sharahov, У меня и свой TDictionary есть А в твоём нет главного - слотов :) На чтение и запись который. Забыл как называется примитив Вот склероз проклятый, что с людьми делает, неужто array забыл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 21:31 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_defecatorпри использовании ODAC клиентская часть Oracle равна нулюПравда при смене версии оракла тогда приходится покупать новый одак. Но это мелочи по сравнению с экономией полгига места на диске не придётся. протокол совместим снизу вверх ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2018, 22:08 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUТолько сейчас заметил, что ТС говорит а многопроцессной базе, а не о многопоточной Таки да, тут уже простым напильником не обойтись, лучше взять готовый инструмент :) На самом деле пока неясно, зачем автору это нужно. У меня есть только одно объяснение, но хотелось бы из первых уст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 09:30 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovSOFT FOR YOUТолько сейчас заметил, что ТС говорит а многопроцессной базе, а не о многопоточной Таки да, тут уже простым напильником не обойтись, лучше взять готовый инструмент :) На самом деле пока неясно, зачем автору это нужно. У меня есть только одно объяснение, но хотелось бы из первых уст. из первых уст Потому что на сервере каждая активная пользовательская сессия представлена отдельным процессом. А складывать результаты (и читать их) мои плагины должны в общую корзину. Отсюда и требование к мультипроцессности было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 11:52 |
|
||
|
Key-value много-процессная база для Delphi
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнAleksandr Sharahovпропущено... На самом деле пока неясно, зачем автору это нужно. У меня есть только одно объяснение, но хотелось бы из первых уст. из первых уст Потому что на сервере каждая активная пользовательская сессия представлена отдельным процессом. А складывать результаты (и читать их) мои плагины должны в общую корзину. Отсюда и требование к мультипроцессности было. Все еще неясно, почему именно процессом, а не потоком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2018, 12:32 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040946]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
82ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 392ms |

| 0 / 0 |
