The OpenNET Project / Index page

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



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

Оглавление

Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10, opennews (ok), 09-Май-21, (0) [смотреть все]

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


57. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 10-Май-21, 21:22 
> курсоры и вторичные ключи есть?

Курсоры есть, а вторичных ключей в key-value не бывает (для этого есть https://github.com/erthink/libfpta).

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

65. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от adolfus (ok), 11-Май-21, 10:45 
Нет руководства по программированию с использованием этого ПО
Также настораживает:
> Операции изменения данных никак не блокируют читателей.

Это не очень понятно. Что прочитает "читатель" если "писатель" не завершит изменение? Запись в объект должна блокировать чтение из объекта на время исполнения записи. Тем более, если, как Вы говорите, имеется поддержка вторичных ключей.

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

66. "Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10"  +/
Сообщение от erthink (ok), 11-Май-21, 12:06 
> Нет руководства по программированию с использованием этого ПО.

RTFM https://erthink.github.io/libmdbx/usage.html#starting

> Также настораживает:
> > Операции изменения данных никак не блокируют читателей.

RTFM https://github.com/erthink/libmdbx/blob/master/README.md#fea..., среди прочего, там есть строки:
- Fully ACID-compliant, through to MVCC and CoW.
- Readers are non-blocking, notwithstanding snapshot isolation.

Со ссылками на пояснения что такое ACID, MVCC, CoW и snapshot isolation.
Кроме этого, см. https://ru.bmstu.wiki/LMDB_(Lightning_Memory-Mapped_Database) - вся эта информация в принципе применима к libmdbx, ибо "Historically, libmdbx is a deeply revised and extended descendant of the Lightning Memory-Mapped Database" (https://github.com/erthink/libmdbx/blob/master/README.md#his...).

> Это не очень понятно. Что прочитает "читатель" если "писатель" не завершит изменение?

RTFM: ACID предполагает транзакции с изоляцией, т.е. читатели видят результаты только успешно завершенных транзакций.

> Запись в объект должна блокировать чтение из объекта на время исполнения записи.

RTFM: MVCC, snapshot isolation, page shadowing and CoW.
До фиксации транзакции писатель изменяет копию данных, которая не видна читателям.
Примерно как https://ru.wikipedia.org/wiki/Read-copy-update

> Тем более, если, как Вы говорите, имеется поддержка вторичных ключей.

Еще раз:
- в key-value не может быть вторичны ключей, ибо тогда это не key-value просто по определению.
- типизированные колонки, nullable, вторичные ключи, составные индексы - реализованы в https://github.com/PositiveTechnologies/libfpta поверх libmdbx.

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

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

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




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

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