Выпуск с расширением 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.