The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск компактной встраиваемой СУБД libmdbx 0.9.1, opennews (ok), 30-Сен-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


43. "Выпуск компактной встраиваемой СУБД libmdbx 0.9.1"  +1 +/
Сообщение от erthink (ok), 03-Окт-20, 14:54 
Для короткоживущих данных, как правило, лучше подходят БД на основе LSM (https://ru.wikipedia.org/wiki/LSM-п╢п╣я─п╣п╡п╬).
Бонус там в том, что при слиянии внутри LSM удаление данных почти бесплатно.
Вам стоит попробовать/посмотреть на tarantool и rocksdb.

Однако, однозначного универсального ответа нет. В конкретных случаях отдельные нюансы могут сделать использование LSM не рациональным или невозможным. В частности, реальная эффективность LSM непосредственно зависит от того насколько хорошо в конкретной ОС и конкретной файловой системе работает APPEND режим для файлов. Т.е. в вашем случае, при использовании LSM, скорее всего всё будет хорошо в Linux, а в Windows может быть значительно хуже.

Далее, принципиально важно насколько вам нужны транзакции, многопроцессорный/многопоточный доступ и какова пропорция по объему операций чтения и записи.

Если много операций чтения или нужен доступ к БД из нескольких процессов, то libmdbx однозначно выиграет - не будет НИКАКИХ накладных расходов.

Если в основном будут операции изменения данных и нужны транзакции, то (думаю) лучше взять tarantool.


Если не важна стабильность по времени выполнения отдельных операций и не важны транзакции, то rockdb.

И т.д., таких "если" наберется еще пара десятков.

Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск компактной встраиваемой СУБД libmdbx 0.9.1"  +/
Сообщение от phprus (ok), 03-Окт-20, 17:06 
Спасибо за ответ!
Буду тестировать.

> Далее, принципиально важно насколько вам нужны транзакции, многопроцессорный/многопоточный
> доступ и какова пропорция по объему операций чтения и записи.

Чтение/запись почти одинаково с маленьким перевесом чтения. Так как это счетчики, то транзакции нужны (отдельные операции в основном имеют вид: прочитали, изменили значение, записали значение или удалили ключ).
Многопоточный доступ и на чтение, и на изменение нужен.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру