Выпуск с расширением API и новым функционалом.

Исправления и доработки в libfpta:
----------------------------------

 - поддержка Conan;

 - поддержка Semantic Versioning из тегов git;

 - поддержка SOURCE_DATE_EPOCH / FPTA_BUILD_TIMESTAMP для воспроизводимости сборок;

 - поддержка FPTA_BUILD_METADATA;

 - добавление опции FPTA_PENNYWISE_ESTIMATION и включение по-умолчанию FPTA_ALLOW_DOT4NAMES=ON;

 - параметр `ApplicatinContent` теперь обязательный при создании/открытии БД;

 - доработка рестарта транзакций при асинхронном изменении схемы БД;

 - устранение залипания на `FPTA_SCHEMA_CHANGED` и зацикливания рестарта транзакции чтения;

 - добавление теста Threaded.RacingOverflow и расширение Threaded.AsyncSchemaChange;

 - добавление в API fpta_watchdog_prepare(), fpta_watchdog_probe(), fpta_transaction_reset(), fpta_transaction_park(),  fpta_transaction_unpark();

 - удаление устаревшей опции fpta_frendly4compaction;

 - переход с libmdbx v0.12.x на v0.13.2;

 - исправление сборки из-за множественных упущений `#include <iomanip>` и т.п.

Исправления и доработки в libmdbx:
----------------------------------

Новая версия со сменой лицензии, существенным расширением API,
добавлением функционала и внутренними переработками. В том числе,
с незначительным нарушением обратной совместимости API библиотеки.

Некоторые из новых возможностей релевантных libfpta:

 - Изменение лицензии на Apache 2.0, пояснения и подробности в файле COPYRIGHT.

 - Переработка курсоров для унификации поведения, более регулярного кода, уменьшения количества ветвлений и машинных операций.

 - Существенное снижение накладных расходов на запуск транзакций в сценариях с большим количеством DBI-хендов, за счет отложенной/ленивой инициализации элементов служебных таблиц. В том числе, механизм поддержки разреженных наборов DBI-хендов, управляемый опцией сборки MDBX_ENABLE_DBI_SPARSE, которая включена по-умолчанию.

 - Снижение накладных расходов на открытие DBI-хендов. В том числе, механизм отложенного освобождения и поддержки быстрого пути открытия без использования блокировок, управляемый опцией сборки MDBX_ENABLE_DBI_LOCKFREE, которая включена по-умолчанию.

- Поддержка “парковки” читающих транзакций с их вытеснением ради переработки старых MVCC-снимков и предотвращения проблем вызываемых приостановкой переработки мусора. Механизм парковки и вытеснения припаркованных транзакций является как дополнением, так и более простой в использовании альтернативой обратному вызову Handle-Slow-Readers. Для удобства функции mdbx_txn_park() и mdbx_txn_unpark() имеют дополнительные аргументы, позволяющие запросить автоматическую “распарковку” припаркованных и перезапуск вытесненных транзакций. В утилиту mdbx_copy добавлены соответствующие опции -d и -p.

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

----------------------------------------------------------------------

Объём изменений после 0.4.0: `246 files changed, 67519 insertions(+), 87556 deletions(-)`.

Выпуск с расширением API и новым функционалом.

Исправления и доработки в libfpta:

  • поддержка Conan;

  • поддержка Semantic Versioning из тегов git;

  • поддержка SOURCE_DATE_EPOCH / FPTA_BUILD_TIMESTAMP для воспроизводимости сборок;

  • поддержка FPTA_BUILD_METADATA;

  • добавление опции FPTA_PENNYWISE_ESTIMATION=OFF и включение по-умолчанию FPTA_ALLOW_DOT4NAMES=ON;

  • параметр ApplicatinContent теперь обязательный при создании/открытии БД;

  • доработка рестарта транзакций при асинхронном изменении схемы БД;

  • устранение залипания на FPTA_SCHEMA_CHANGED и зацикливания рестарта транзакции чтения;

  • добавление теста Threaded.RacingOverflow и расширение Threaded.AsyncSchemaChange;

  • добавление в API fpta_watchdog_prepare(), fpta_watchdog_probe(), fpta_transaction_reset(), fpta_transaction_park(), fpta_transaction_unpark();

  • удаление устаревшей опции fpta_frendly4compaction;

  • переход с libmdbx v0.12.x на v0.13.2;

  • исправление сборки из-за множественных упущений #include <iomanip> и т.п.

Исправления и доработки в libmdbx:

Новая версия со сменой лицензии, существенным расширением API, добавлением функционала и внутренними переработками. В том числе, с незначительным нарушением обратной совместимости API библиотеки.

Некоторые из новых возможностей релевантных libfpta:

  • Изменение лицензии на Apache 2.0, пояснения и подробности в файле COPYRIGHT.

  • Переработка курсоров для унификации поведения, более регулярного кода, уменьшения количества ветвлений и машинных операций.

  • Существенное снижение накладных расходов на запуск транзакций в сценариях с большим количеством DBI-хендов, за счет отложенной/ленивой инициализации элементов служебных таблиц. В том числе, механизм поддержки разреженных наборов DBI-хендов, управляемый опцией сборки MDBX_ENABLE_DBI_SPARSE, которая включена по-умолчанию.

  • Снижение накладных расходов на открытие DBI-хендов. В том числе, механизм отложенного освобождения и поддержки быстрого пути открытия без использования блокировок, управляемый опцией сборки MDBX_ENABLE_DBI_LOCKFREE, которая включена по-умолчанию.

  • Поддержка “парковки” читающих транзакций с их вытеснением ради переработки старых MVCC-снимков и предотвращения проблем вызываемых приостановкой переработки мусора. Механизм парковки и вытеснения припаркованных транзакций является как дополнением, так и более простой в использовании альтернативой обратному вызову Handle-Slow-Readers. Для удобства функции mdbx_txn_park() и mdbx_txn_unpark() имеют дополнительные аргументы, позволяющие запросить автоматическую “распарковку” припаркованных и перезапуск вытесненных транзакций. В утилиту mdbx_copy добавлены соответствующие опции -d и -p.

Весь список нововведений, доработок и изменений слишком велик для размещения здесь, но вся информация есть в файле ChangeLog.