289 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
0ef0f49e2e mdbx: устранение излишнего предупреждения при смене размера БД во время открытия (backport).
Изменение геометрии (увеличение размера) больших БД может быть не
возможно после их открытия вследствие системных ограничений (отсутствия
свободного адресного пространства).

Поэтому API предусматривает возможность запросить изменение
геометрии/размера БД перед её открытием. В этом сценарии ранее могло
выдаваться лишнее/ненужное предупреждение о несоответствии файла БД
новому размеру. Теперь этот недостаток исправлен.

Спасибо Илье Михееву (Erigon) за сообщение об этом недочете.
2025-02-19 23:38:15 +03:00
Леонид Юрьев (Leonid Yuriev)
fcdd2e2db3 mdbx: обновление ChangeLog. 2025-02-14 15:23:28 +03:00
Леонид Юрьев (Leonid Yuriev)
75122b311d
mdbx: выпуск 0.13.4 "Sigma Boy".
Поддерживающий выпуск стабильной ветки с исправлением обнаруженных ошибок и устранением недочётов.

За перечнем доработок и изменений обращайтесь к [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 139 files changed, 391 insertions(+), 208 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2025-02-14 12:56:12 +03:00
Леонид Юрьев (Leonid Yuriev)
24f2b9b099 mdbx-conan: исправление опечатки в имени переменной version_json_pathname в verbose-выводе.
Спасибо Виктору Логунову (https://t.me/vl_username) за сообщение о проблеме.
2025-02-03 18:46:53 +03:00
Леонид Юрьев (Leonid Yuriev)
b46d2def80 mdbx: дополнение ChangeLog. 2025-01-27 12:12:38 +03:00
Леонид Юрьев (Leonid Yuriev)
27a2166be7 mdbx-doc: исправление орфографии/опечатки в ChangeLog (backport). 2025-01-21 15:41:21 +03:00
Леонид Юрьев (Leonid Yuriev)
d3daa23c63 mdbx: обновление ChangeLog (подготовка выпуска 0.13.4). 2025-01-13 13:13:26 +03:00
Леонид Юрьев (Leonid Yuriev)
bd45668fee mdbx: merge branch master into stable. 2025-01-12 22:08:00 +03:00
Леонид Юрьев (Leonid Yuriev)
92e2b6287e
mdbx: выпуск 0.13.3 "Королёв" (Korolev).
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов
в день рождения и в память об [Серге́е Па́вловиче Королёве](https://ru.wikipedia.org/wiki/Королёв,_Сергей_Павлович),
советском учёном и Главном конструкторе ракетно-космических систем.

За перечнем доработок и изменений обращайтесь к [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 67 files changed, 3514 insertions(+), 3004 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2025-01-12 16:27:02 +03:00
Леонид Юрьев (Leonid Yuriev)
dcc8708d6a mdbx: дополнение ChangeLog (запланирован выпуск v0.13.3). 2025-01-11 02:35:48 +03:00
Леонид Юрьев (Leonid Yuriev)
5350ed8a3b mdbx: дополнение ChangeLog. 2025-01-04 11:54:11 +03:00
Леонид Юрьев (Leonid Yuriev)
5ff5080935 mdbx: дополнение ChangeLog. 2024-12-28 09:52:19 +03:00
Леонид Юрьев (Leonid Yuriev)
98b28213ce mdbx: корректировка ChangeLog. 2024-12-22 18:30:58 +03:00
Леонид Юрьев (Leonid Yuriev)
00c5bbcc5e mdbx: дополнение ChangeLog. 2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
0d1c08677d mdbx: корректировка ChangeLog. 2024-12-18 13:01:52 +03:00
Леонид Юрьев (Leonid Yuriev)
e43cf69a0c mdbx-doc: изменение базы ссылок online-перевода с gitflic.ru на libmdbx.dqdkfa.ru. 2024-12-18 12:27:37 +03:00
Леонид Юрьев (Leonid Yuriev)
5a9eea8acc mdbx: дополнение ChangeLog. 2024-12-18 01:21:00 +03:00
Леонид Юрьев (Leonid Yuriev)
b687e835e9
mdbx: выпуск 0.13.2 "Прошлогодний Снег" (Last Year's Snow).
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов
в день рождения и в память об [Алекса́ндре Миха́йловиче Тата́рском](https://ru.wikipedia.org/wiki/Татарский,_Александр_Михайлович),
российском режиссёре-мультипликаторе, создавшем такие знаменитые мультфильмы как "Падал прошлогодний снег",
"Пластилиновая ворона", заставку "Спокойной ночи, малыши!" и многие другие шедевры нашего детства.

За перечнем доработок и изменений обращайтесь к [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 151 files changed, 10647 insertions(+), 14952 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2024-12-11 21:51:56 +03:00
Леонид Юрьев (Leonid Yuriev)
fe627ed2f2 mdbx: дополнение ChangeLog. 2024-12-08 09:33:08 +03:00
Леонид Юрьев (Leonid Yuriev)
367a118a8f mdbx: дополнение ChangeLog. 2024-12-03 00:23:37 +03:00
Леонид Юрьев (Leonid Yuriev)
5327f42465 mdbx: дополнение ChangeLog. 2024-11-28 20:07:27 +03:00
Леонид Юрьев (Leonid Yuriev)
9d79d2ba95 mdbx: дополнение ChangeLog. 2024-11-27 21:17:49 +03:00
Леонид Юрьев (Leonid Yuriev)
3110c2206f mdbx: дополнение ChangeLog. 2024-11-23 01:12:55 +03:00
Леонид Юрьев (Leonid Yuriev)
47f96b6afa mdbx: дополнение ChangeLog. 2024-11-15 15:58:48 +03:00
Леонид Юрьев (Leonid Yuriev)
10a93f4b9f mdbx: дополнение ChangeLog. 2024-11-07 11:40:16 +03:00
Леонид Юрьев (Leonid Yuriev)
ca8e9fe7b1 mdbx-testing: переименование скрипта stochastic.sh 2024-11-07 09:32:27 +03:00
Леонид Юрьев (Leonid Yuriev)
dc6f29a046 mdbx: импорт дополнений ChangeLog из ветки stable. 2024-10-27 23:00:34 +03:00
Леонид Юрьев (Leonid Yuriev)
b16c2570f0
mdbx: выпуск 0.12.12 "Доллежаль".
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов,
в память о советском ученом-энергетике Николае Антоновиче Доллежаль в день 125-летия со дня его рождения.

Это последний выпуск куста стабильных версий 0.12.x, спустя более двух
лет после выпуска 0.12.1. Последующие выпуски 0.12.x будут формироваться
только в случае существенных проблем/ошибок, вероятность чего близка к
нулю. Для всех проектов находящихся в стадии активной разраборки
рекомендуется использовать ветку `master`.

Значимые исправления:
---------------------

 - Исправление упущенного `TXN_END_EOTDONE` при сбое старта читающей транзакции.
   Упомянутый флажок отсутствовал в пути разрушения транзакции при ошибке
   её запуска. Из-за чего делалась попытка разрушить курсоры, что приводило
   к падению **отладочных сборок**, так как в них соответствующий массив
   намеренно заполнен некорректными указателями.

 - Устранение возможности `SIGSEGV` внутри `coherency_check()` после
   изменения геометрии другим процессом с увеличением верхнего размера БД
   и увеличением БД больше предыдущего лимита.

 - Доработка `mdbx_close_dbi()` для возврата ошибки при попытке закрыть
   dbi-дескриптор таблицы, созданной и/или измененной в ещё выполняющейся
   транзакции. Такое преждевременное закрытие дескриптора является неверным
   использованием API и нарушением контракта/предусловий сформулированных
   в описании `mdbx_close_dbi()`. Однако, вместо возврата ошибки
   выполнялось некорректное закрытие дескриптора, что могло приводить к
   созданию таблицы с пустым именем, утечки страниц БД и/или нарушению
   структуры b-tree (неверной ссылкой на корень таблицы).
   Добавлен соответствующий тест `extra/early_close_dbi`.

Более подробная информация и история предыдущих выпусков доступна в [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 6 commits, 5 files changed, 239 insertions(+), 6 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2024-10-27 11:07:49 +03:00
Леонид Юрьев (Leonid Yuriev)
b8f9b8659c mdbx: дополнение ChangeLog. 2024-10-26 23:23:17 +03:00
Леонид Юрьев (Leonid Yuriev)
ac8402283f mdbx-testing: добавление extra/early_close_dbi (backport). 2024-10-26 23:10:56 +03:00
Леонид Юрьев (Leonid Yuriev)
945899e4fd mdbx: доработка mdbx_close_dbi() для возврата ошибки при попытке закрыть dbi-хендл измененной в транзакции таблицы (backport). 2024-10-26 23:01:37 +03:00
Леонид Юрьев (Leonid Yuriev)
d40e4db13a mdbx: дополнение ChangeLog. 2024-10-08 18:14:15 +03:00
Леонид Юрьев (Leonid Yuriev)
42ca4edec8 mdbx: дополнение ChangeLog. 2024-09-18 21:25:10 +03:00
Леонид Юрьев (Leonid Yuriev)
2e14404837 mdbx: дополнение ChangeLog. 2024-09-10 08:49:16 +03:00
Леонид Юрьев (Leonid Yuriev)
5fc7a6b107
mdbx: выпуск 0.13.1 "РДС-1"
Новая версия со сменой лицензии, существенным расширением API,
добавлением функционала и внутренними переработками. В том числе,
с незначительным нарушением обратной совместимости API библиотеки.

Список нововведений, доработок и изменений слишком велик для размещения
здесь, но вся информация есть в файле
[ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

```
git diff' stat: 157 files changed, 41949 insertions(+), 33741 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
```
2024-08-30 00:01:07 +03:00
Леонид Юрьев (Leonid Yuriev)
2c17c7b149 mdbx: дополнение ChangeLog. 2024-08-22 00:09:52 +03:00
Леонид Юрьев (Leonid Yuriev)
8cc5e8c262 mdbx: дополнение ChangeLog. 2024-08-08 00:17:09 +03:00
Леонид Юрьев (Leonid Yuriev)
497aabcb2e mdbx: устранение возможности SIGSEGV внутри coherency_check() (backport).
Падение происходило в случае когда:

 - Некоторый процесс увеличивал размер БД с изменением геометрии (с
   увеличением предельного размера БД и её отображения в ОЗУ), затем
   задействовал страницу из добавленного сегмента в качестве корневой для
   FreeDB/GC и/или MainDB и фиксировал транзакцию.

 - Другой процесс, уже работавший с БД до изменения геометрии первым
   процессом, запускал транзакцию чтения. Падение происходило при проверке
   «когерентности» отображения страниц БД в ОЗУ, при проверке отметок
   модификации внутри корневых страниц, так как в этом случае они были вне
   границ текущего отображения БД в адресном пространстве этого процесса.

 Похоже что в ходе какого-то рефакторинга потерялась соответствующая
 проверка. Этот коммит добавляет такую проверку.
2024-08-07 21:22:57 +03:00
Леонид Юрьев (Leonid Yuriev)
cf6d441e1b mdbx: исправление упущенного TXN_END_EOTDONE при сбое старта читающей транзакции (backport).
Упомянутый флажок отсутствовал в пути разрушения транзакции при ошибке
её запуска. Из-за чего делалась попытка разрушить курсоры, что приводило
к падению отладочных сборок, так как в них соответствующий массив
намеренно заполнен некорректными указателями.
2024-08-07 19:29:57 +03:00
Леонид Юрьев (Leonid Yuriev)
7bff3b3df6 mdbx: корректировка имен и ссылок в ChangeLog. 2024-08-03 15:14:23 +03:00
Леонид Юрьев (Leonid Yuriev)
57e558a57d mdbx: использование термина "таблица" вместо "sub-database". 2024-08-03 15:14:23 +03:00
Леонид Юрьев (Leonid Yuriev)
dd0ee3f278 mdbx: дополнение ChangeLog. 2024-08-03 00:30:06 +03:00
Леонид Юрьев (Leonid Yuriev)
485d6d1f50 mdbx: корректировка/актуализация ChangeLog для v0.13.x 2024-07-23 16:15:05 +03:00
Леонид Юрьев (Leonid Yuriev)
ad0ba7a661 mdbx: добавление секции о v0.12.11 в ChangeLog. 2024-07-23 14:20:57 +03:00
Леонид Юрьев (Leonid Yuriev)
a6a7a291c7
mdbx: выпуск 0.12.11 "Лиза и Соня"
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов,
в память об убитых в Крыму девочках 2 и 9 лет.

Лиза и Соня погибли 23 Июня 2024 на глазах у родителей, в результате
удара по общественному городскому пляжу ракетами ATACMS с кассетными
боеприпасами. Всего пострадало более 150 граждан России, в том числе 27
детей. Ракеты были выпущенными украинскими бандеровцами/фашистами, но
полетные задания формировались и загружались военными США, а управление
и наведение ATACAMS невозможно без использования орбитальной группировки
военных спутников США.

Основные исправления:
---------------------

 - Исправление для ОС Windows нарезки `FILE_SEGMENT_ELEMENT`.
   Похоже что был потерян коммит входе работы над оптимизацией пути записи
   на диск в ОС Windows. В текущем понимании, вероятность проявления ошибки
   достаточно низкая, так как выявлена она была синтетическими тестами в
   ходе других доработок, а соответствующих сообщений/жалоб не поступало. К
   повреждению БД ошибка не приводила, так как сбой происходил до записи
   данных с возвратом `ERROR_INVALID_PARAMETER` из системного вызова, т.е.
   либо ошибка не проявлялась, либо транзакция не фиксировалась.

 - Устранение вероятности `SIGSEGV` при включении логирования
   уровня `MDBX_LOG_TRACE` в отладочных сборках.

 - Исправление генерации исключения `key_exists` в C++ API.

 - Исправление обработки курсоров, открытых в родительских транзакциях и
   закрытых до завершения вложенных транзакций. В описанной ситуации
   закрытые курсоры "воскрешались", что приводило к утечке памяти
   выделенной под такие курсоры.

 - Костыль для MSVC ARM/ARM64 для предотвращения ICE (Internal Compiler Error).

 - Устранение `MDBX_EINVAL` для случая вызова `mdbx_env_remove(".")`.

 - Исправление инверсии bool-результата `env::remove()`в C++ API.

Более подробная информация в [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 29 commits, 14 files changed, 379 insertions(+), 151 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2024-07-23 13:14:14 +03:00
Леонид Юрьев (Leonid Yuriev)
a8ef8d7b72 mdbx: обновление ChangeLog. 2024-07-22 17:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
6941ec17bc mdbx: обновление ChangeLog. 2024-07-20 16:43:45 +03:00
Леонид Юрьев (Leonid Yuriev)
8a04337e79 mdbx: корректировка ChangeLog. 2024-07-13 16:15:21 +03:00
Леонид Юрьев (Leonid Yuriev)
bdfec14992 mdbx: дополнение ChangeLog. 2024-07-12 14:55:17 +03:00
Леонид Юрьев (Leonid Yuriev)
f65642e38c mdbx: обновление ChangeLog. 2024-06-19 14:18:18 +03:00