mdbx-test: minor refine comments & keygen-params ranges.

Change-Id: I8ebb0647d4d5a8637d57a39e9ddee4727bffb18f
This commit is contained in:
Leonid Yuriev
2020-05-26 18:39:36 +03:00
parent ffa29f9466
commit 7f920b5cfc
3 changed files with 19 additions and 18 deletions

View File

@@ -124,7 +124,8 @@ inline bool parse_option_intptr(int argc, char *const argv[], int &narg,
#pragma pack(push, 1)
struct keygen_params_pod {
/* Параметры генератора пар key-value.
/* Параметры генератора пар key-value. Также может быть полезным описание
* алгоритма генерации в keygen.h
*
* Ключи и значения генерируются по задаваемым параметрам на основе "плоской"
* исходной координаты. При этом, в общем случае, в процессе тестов исходная
@@ -146,15 +147,15 @@ struct keygen_params_pod {
* данных не анализируется движком и не оказывает влияния на его работу.
* - Для таблиц "с дубликатами", при наличии более одного значения для
* некоторого ключа, формируется дочернее btree-поддерево. Это дерево
* формируется в отдельном "кусте" страниц и обслуживается независимо
* от окружения родительского ключа.
* формируется во вложенной странице или отдельном "кусте" страниц,
* и обслуживается независимо от окружения родительского ключа.
* - Таким образом, паттерн генерации значений имеет смысл только для
* таблиц "с дубликатами" и только в контексте одного значения ключа.
* Иначе говоря, нет смысла в со-координации генерации паттернов для
* ключей и значений. Более того, генерацию значений всегда необходимо
* рассматривать в контексте связки с одним значением ключа.
* - Тем не менее, во всех случаях достаточно важным является равномерная
* всех возможных сочетаний длин ключей и данных.
* Иначе говоря, не имеет смысла взаимная координация при генерации
* значений для разных ключей. Поэтому генерацию значений следует
* рассматривать только в контексте связки с одним значением ключа.
* - Тем не менее, во всех случаях достаточно важным является равновероятное
* распределение всех возможных сочетаний длин ключей и данных.
*
* width:
* Большинство тестов предполагают создание или итерирование некоторого
@@ -166,7 +167,7 @@ struct keygen_params_pod {
* степени двойки. Это ограничение можно снять, но ценой увеличения
* вычислительной сложности, включая потерю простоты и прозрачности.
*
* С другой стороны, не-битовый width может быть полезен:
* С другой стороны, не-n-битовый width может быть полезен:
* - Позволит генерировать ключи/значения в точно задаваемом диапазоне.
* Например, перебрать в псевдо-случайном порядке 10001 значение.
* - Позволит поровну разделять заданное пространство (диапазон)
@@ -203,7 +204,7 @@ struct keygen_params_pod {
* rotate и offset:
* Для проверки слияния и разделения страниц внутри движка требуются
* генерация ключей/значений в виде не-смежных последовательностей, как-бы
* в виде "пунктира", который постепенно заполняет весь заданных диапазон.
* в виде "пунктира", который постепенно заполняет весь заданный диапазон.
*
* Параметры позволяют генерировать такой "пунктир". Соответственно rotate
* задает циклический сдвиг вправо, а offset задает смещение, точнее говоря