powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Key-value много-процессная база для Delphi
20 сообщений из 70, страница 3 из 3
Key-value много-процессная база для Delphi
    #39638513
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(памятка для себя)

в начале топика была ссылка на 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
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638518
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда удивляло как какая-то технология становится модной, ее сразу начинают пользовать везде, даже там где она нафик не уперлась :)
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638521
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Если коннект к локалхосту - это не значит, что нет сетевых технологий
И дело здесь не в скорости развёртывания. TDictionary вообще не нужно разворачивать. Дело в том, что решение не подходит под задачу. Или не соответствует. Кому как удобнее )
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638523
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди,

"везде пихают" не всегда из-за модности технологии, а из-за её знакомости в коллективе. Для более легкого саппорта возможно более широким кругом программистов.
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638588
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon...FB Embedded, если процесс один...
А если не один - что будет?
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638629
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От версии зависит. В 2.5 и выше - катастрофы не случится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638631
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя если БД каждый раз отдельная будет - в любой версии работать будет, IIRC.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638651
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Один TDictionary на несколько процессов? Можно, скорее всего. Но я представлю уже обвязку.
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638662
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Ну давайте замутим тестовое сравнение. И решим
Я ванговал производительность x10 в пользу TDictionary. Посмотрим, как это будет на практике
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638664
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUmakhaon,

Ну давайте замутим тестовое сравнение. И решим
Я ванговал производительность x10 в пользу TDictionary. Посмотрим, как это будет на практике

Можно и больше, но это уже программировать надо)

Уменьшить тормоза на критической секции помогут несколько TDictionary,
по числу процессоров или в 2..4 раза больше.
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638669
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

Есть у меня идея синхронизируемых контейнеров. В рамках этой идеи для хеша есть 1024 слота, открываемых на чтение или запись. А там уже указатели на локальные хеши. Но конечно для ТС и TDictionary c крит секцией будет огонь решение
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638677
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUAleksandr Sharahov,

Есть у меня идея синхронизируемых контейнеров. В рамках этой идеи для хеша есть 1024 слота, открываемых на чтение или запись. А там уже указатели на локальные хеши. Но конечно для ТС и TDictionary c крит секцией будет огонь решение

Дык и реализация есть. Если читал мой опус внимательно, то наверняка заметил, что хеширование можно выполнять отдельно, до поиска/вставки. Т.е., например, по старшим битам хеша определяешь в какую таблицу надо смотреть, и все. Все уже написано.
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638697
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

У меня и свой TDictionary есть
А в твоём нет главного - слотов :)
На чтение и запись который. Забыл как называется примитив
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638706
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorпри использовании ODAC клиентская часть Oracle равна нулюПравда при смене версии оракла тогда приходится покупать новый одак. Но это мелочи по сравнению с экономией полгига места на диске
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638825
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUAleksandr Sharahov,

У меня и свой TDictionary есть
А в твоём нет главного - слотов :)
На чтение и запись который. Забыл как называется примитив

Вот склероз проклятый, что с людьми делает, неужто array забыл?
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638835
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
_Vasilisk_defecatorпри использовании ODAC клиентская часть Oracle равна нулюПравда при смене версии оракла тогда приходится покупать новый одак. Но это мелочи по сравнению с экономией полгига места на диске
не придётся.
протокол совместим снизу вверх
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638885
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUТолько сейчас заметил, что ТС говорит а многопроцессной базе, а не о многопоточной
Таки да, тут уже простым напильником не обойтись, лучше взять готовый инструмент :)

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

На самом деле пока неясно, зачем автору это нужно.
У меня есть только одно объяснение, но хотелось бы из первых уст.

из первых уст
Потому что на сервере каждая активная пользовательская сессия представлена отдельным процессом. А складывать результаты (и читать их) мои плагины должны в общую корзину. Отсюда и требование к мультипроцессности было.
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638945
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик СемёнAleksandr Sharahovпропущено...


На самом деле пока неясно, зачем автору это нужно.
У меня есть только одно объяснение, но хотелось бы из первых уст.

из первых уст
Потому что на сервере каждая активная пользовательская сессия представлена отдельным процессом. А складывать результаты (и читать их) мои плагины должны в общую корзину. Отсюда и требование к мультипроцессности было.

Все еще неясно, почему именно процессом, а не потоком?
...
Рейтинг: 0 / 0
Key-value много-процессная база для Delphi
    #39638952
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот так вот этот сервер устроен, мое дело плагины
...
Рейтинг: 0 / 0
20 сообщений из 70, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Key-value много-процессная база для Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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