diff options
Diffstat (limited to 'libs/libmdbx/src/README-RU.md')
-rw-r--r-- | libs/libmdbx/src/README-RU.md | 91 |
1 files changed, 48 insertions, 43 deletions
diff --git a/libs/libmdbx/src/README-RU.md b/libs/libmdbx/src/README-RU.md index 5dd062c1a6..97888cbf88 100644 --- a/libs/libmdbx/src/README-RU.md +++ b/libs/libmdbx/src/README-RU.md @@ -12,7 +12,7 @@ and [by Yandex](https://translate.yandex.ru/translate?url=https%3A%2F%2Fgithub.c ### Project Status -**Сейчас MDBX _активно перерабатывается_** и к середине 2018 ожидается +**Сейчас MDBX _активно перерабатывается_** предстоит большое изменение как API, так и формата базы данных. К сожалению, обновление приведет к потере совместимости с предыдущими версиями. @@ -171,31 +171,18 @@ Amplification Factor) и RAF (Read Amplification Factor) также Olog(N). Доработки и усовершенствования относительно LMDB ================================================ -1. Утилита `mdbx_chk` для проверки целостности структуры БД. - -2. Автоматическое динамическое управление размером БД согласно +1. Автоматическое динамическое управление размером БД согласно параметрам задаваемым функцией `mdbx_env_set_geometry()`, включая шаг приращения и порог уменьшения размера БД, а также выбор размера страницы. Соответственно, это позволяет снизить фрагментированность файла БД на диске и освободить место, в том числе в **Windows**. -3. Автоматическая без-затратная компактификация БД путем возврата +2. Автоматическая без-затратная компактификация БД путем возврата освобождающихся страниц в область нераспределенного резерва в конце файла данных. При этом уменьшается количество страниц находящихся в памяти и участвующих в в обмене с диском. -4. Поддержка ключей и значений нулевой длины, включая сортированные -дубликаты. - -5. Возможность связать с каждой завершаемой транзакцией до 3 -дополнительных маркеров посредством `mdbx_canary_put()`, и прочитать их -в транзакции чтения посредством `mdbx_canary_get()`. - -6. Возможность посредством `mdbx_replace()` обновить или удалить запись -с получением предыдущего значения данных, а также адресно изменить -конкретное multi-значение. - -7. Режим `LIFO RECLAIM`. +3. Режим `LIFO RECLAIM`. Для повторного использования выбираются не самые старые, а самые новые страницы из доступных. За счет этого цикл @@ -209,9 +196,27 @@ Amplification Factor) и RAF (Read Amplification Factor) также Olog(N). многократное увеличение производительности по записи (обновлению данных). -8. Генерация последовательностей посредством `mdbx_dbi_sequence()`. +4. Быстрая оценка количества элементов попадающих в запрашиваемый +диапазон значений ключа посредством функций `mdbx_estimate_range()`, +`mdbx_estimate_move()` и `mdbx_estimate_distance()` для выбора +оптимального плана выполнения запроса. + +5. Утилита `mdbx_chk` для проверки целостности структуры БД. + +6. Поддержка ключей и значений нулевой длины, включая сортированные +дубликаты. + +7. Возможность связать с каждой завершаемой транзакцией до 3 +дополнительных маркеров посредством `mdbx_canary_put()`, и прочитать их +в транзакции чтения посредством `mdbx_canary_get()`. + +8. Возможность посредством `mdbx_replace()` обновить или удалить запись +с получением предыдущего значения данных, а также адресно изменить +конкретное multi-значение. + +9. Генерация последовательностей посредством `mdbx_dbi_sequence()`. -9. Обработчик `OOM-KICK`. +10. Обработчик `OOM-KICK`. Посредством `mdbx_env_set_oomfunc()` может быть установлен внешний обработчик (callback), который будет вызван при @@ -232,83 +237,83 @@ Amplification Factor) и RAF (Read Amplification Factor) также Olog(N). * прервать текущую операцию изменения данных с возвратом кода ошибки. -10. Возможность открыть БД в эксклюзивном режиме посредством флага -`MDBX_EXCLUSIVE`. +11. Возможность открыть БД в эксклюзивном режиме посредством флага + `MDBX_EXCLUSIVE`, в том числе на сетевом носителе. -11. Возможность получить отставание текущей транзакции чтения от +12. Возможность получить отставание текущей транзакции чтения от последней версии данных в БД посредством `mdbx_txn_straggler()`. -12. Возможность явно запросить обновление существующей записи, без +13. Возможность явно запросить обновление существующей записи, без создания новой посредством флажка `MDBX_CURRENT` для `mdbx_put()`. -13. Исправленный вариант `mdbx_cursor_count()`, возвращающий корректное +14. Исправленный вариант `mdbx_cursor_count()`, возвращающий корректное количество дубликатов для всех типов таблиц и любого положения курсора. -14. Возможность получить посредством `mdbx_env_info()` дополнительную +15. Возможность получить посредством `mdbx_env_info()` дополнительную информацию, включая номер самой старой версии БД (снимка данных), который используется одним из читателей. -15. Функция `mdbx_del()` не игнорирует дополнительный (уточняющий) +16. Функция `mdbx_del()` не игнорирует дополнительный (уточняющий) аргумент `data` для таблиц без дубликатов (без флажка `MDBX_DUPSORT`), а при его ненулевом значении всегда использует его для сверки с удаляемой записью. -16. Возможность открыть dbi-таблицу, одновременно с установкой +17. Возможность открыть dbi-таблицу, одновременно с установкой компараторов для ключей и данных, посредством `mdbx_dbi_open_ex()`. -17. Возможность посредством `mdbx_is_dirty()` определить находятся ли +18. Возможность посредством `mdbx_is_dirty()` определить находятся ли некоторый ключ или данные в "грязной" странице БД. Таким образом, избегая лишнего копирования данных перед выполнением модифицирующих операций (значения, размещенные в "грязных" страницах, могут быть перезаписаны при изменениях, иначе они будут неизменны). -18. Корректное обновление текущей записи, в том числе сортированного +19. Корректное обновление текущей записи, в том числе сортированного дубликата, при использовании режима `MDBX_CURRENT` в `mdbx_cursor_put()`. -19. Возможность узнать есть ли за текущей позицией курсора строка данных +20. Возможность узнать есть ли за текущей позицией курсора строка данных посредством `mdbx_cursor_eof()`. -20. Дополнительный код ошибки `MDBX_EMULTIVAL`, который возвращается из +21. Дополнительный код ошибки `MDBX_EMULTIVAL`, который возвращается из `mdbx_put()` и `mdbx_replace()` при попытке выполнить неоднозначное обновление или удаления одного из нескольких значений с одним ключом. -21. Возможность посредством `mdbx_get_ex()` получить значение по +22. Возможность посредством `mdbx_get_ex()` получить значение по заданному ключу, одновременно с количеством дубликатов. -22. Наличие функций `mdbx_cursor_on_first()` и `mdbx_cursor_on_last()`, +23. Наличие функций `mdbx_cursor_on_first()` и `mdbx_cursor_on_last()`, которые позволяют быстро выяснить стоит ли курсор на первой/последней позиции. -23. Возможность автоматического формирования контрольных точек (сброса +24. Возможность автоматического формирования контрольных точек (сброса данных на диск) при накоплении заданного объёма изменений, устанавливаемого функцией `mdbx_env_set_syncbytes()`. -24. Управление отладкой и получение отладочных сообщений посредством +25. Управление отладкой и получение отладочных сообщений посредством `mdbx_setup_debug()`. -25. Функция `mdbx_env_pgwalk()` для обхода всех страниц БД. +26. Функция `mdbx_env_pgwalk()` для обхода всех страниц БД. -26. Три мета-страницы вместо двух, что позволяет гарантированно +27. Три мета-страницы вместо двух, что позволяет гарантированно консистентно обновлять слабые контрольные точки фиксации без риска повредить крайнюю сильную точку фиксации. -27. Гарантия сохранности БД в режиме `WRITEMAP+MAPSYNC`. +28. Гарантия сохранности БД в режиме `WRITEMAP+MAPSYNC`. > В текущей версии _libmdbx_ вам предоставляется выбор между безопасным > режимом (по умолчанию) асинхронной фиксации, и режимом `UTTERLY_NOSYNC` > когда при системной аварии есть шанс полного разрушения БД как в LMDB. > Для подробностей смотрите раздел > [Сохранность данных в режиме асинхронной фиксации](#Сохранность-данных-в-режиме-асинхронной-фиксации). -28. Возможность закрыть БД в "грязном" состоянии (без сброса данных и +29. Возможность закрыть БД в "грязном" состоянии (без сброса данных и формирования сильной точки фиксации) посредством `mdbx_env_close_ex()`. -29. При завершении читающих транзакций, открытые в них DBI-хендлы не +30. При завершении читающих транзакций, открытые в них DBI-хендлы не закрываются и не теряются при завершении таких транзакций посредством `mdbx_txn_abort()` или `mdbx_txn_reset()`. Что позволяет избавится от ряда сложно обнаруживаемых ошибок. -30. Все курсоры, как в транзакциях только для чтения, так и в пишущих, +31. Все курсоры, как в транзакциях только для чтения, так и в пишущих, могут быть переиспользованы посредством `mdbx_cursor_renew()` и ДОЛЖНЫ ОСВОБОЖДАТЬСЯ ЯВНО. > @@ -682,11 +687,11 @@ $ objdump -f -h -j .text libmdbx.so libmdbx.so: file format elf64-x86-64 architecture: i386:x86-64, flags 0x00000150: HAS_SYMS, DYNAMIC, D_PAGED -start address 0x000030e0 +start address 0x0000000000003870 Sections: Idx Name Size VMA LMA File off Algn - 11 .text 00014d84 00000000000030e0 00000000000030e0 000030e0 2**4 + 11 .text 000173d4 0000000000003870 0000000000003870 00003870 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE ``` |