summaryrefslogtreecommitdiff
path: root/libs/libmdbx/src/README-RU.md
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libmdbx/src/README-RU.md')
-rw-r--r--libs/libmdbx/src/README-RU.md91
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
```