The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Нужна простая помощь в тестировании движка Key-Value (libmdbx)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Разное)
Изначальное сообщение [ Отслеживать ]

"Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  –2 +/
Сообщение от erthinkemail (ok), 12-Июл-19, 22:04 
Прошу помочь в тестировании key-value движка MDBX. Хватит даже полудохлой (в разумных пределах) виртуалки с установленным компилятором C++, make и компрессором lz4 для логов.

Достаточно клонировать репозиторий и запустить «на выходные» скрипт, т.е. выполнить три команды:

git clone https://github.com/leo-yuriev/libmdbx
cd libmdbx
./test/long_stochastic.sh

ВАЖНО: будет почищен каталог /dev/shm !!! Поэтому, если у вас работает какой-нибудь postgresql, то его следует остановить. Как вариант - закомментировать в скрипте соответствующую строку.

Немного пояснений:
- тест стохастический «от легкого к тяжелому».
- тест работает в памяти, потому нагрузит memory bandwidth и CPU, но не диск.
- тест сам подстроится под размер ОЗУ.
- тест можно считать «бесконечным» и прервать/перезапустить когда он станет мешать.
- чем больше (суммарно) отработает тест, тем тщательнее будет проверка.

В случае сбоя нужно быть готовым предоставить инфу:
- «последний экран» вывода в терминал и lz4-файл из /dev/shm.
- минимальную информацию о системе (версию компилятора и т.п.)
- технически это лучше делать через заведение issue на github, а остальные варианты обсуждать здесь.

На всякий:
- комбинаторная сложность возможных состояний БД и последовательности операций такова, что примерно невозможно проверить все варианты.
- в такой ситуации стохастический тест (со случайным поведением) является разумным компромиссом.
- соответственно, «коллективное стохастическое тестирование» будет плюсом к собственным тестам (которые периодически прогоняются по нескольку сотен часов).

Всем добра.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  +/
Сообщение от universite (ok), 12-Июл-19, 23:13 
> Прошу помочь в тестировании key-value движка MDBX. Хватит даже полудохлой (в разумных
> пределах) виртуалки с установленным компилятором C++, make и компрессором lz4 для
> логов.

Сколько денег за тесты?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  –2 +/
Сообщение от erthinkemail (ok), 12-Июл-19, 23:20 
>> Прошу помочь в тестировании key-value движка MDBX. Хватит даже полудохлой (в разумных
>> пределах) виртуалки с установленным компилятором C++, make и компрессором lz4 для
>> логов.
> Сколько денег за тесты?

0. Иначе пост был-бы в разделе "работа".

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  +/
Сообщение от test (??), 13-Июл-19, 08:05 
cc -O2 -g3 -Wall -Werror -Wextra -ffunction-sections -fPIC -fvisibility=hidden -D_GNU_SOURCE=1 -std=gnu11 -pthread -DNDEBUG=1 -DMDBX_DEBUG=0 -DLIBMDBX_EXPORTS=1 -I. tutorial/sample-mdbx.c ./libmdbx.so -o example
rm -f /dev/shm/mdbx-test.db /dev/shm/mdbx-test.log && (set -o pipefail; ./mdbx_test --repeat=42 --pathname=/dev/shm/mdbx-test.db --dont-cleanup-after basic | tee -a /dev/shm/mdbx-test.log | tail -n 42) \
&& ./mdbx_chk -vvn /dev/shm/mdbx-test.db && ./mdbx_chk -vvn /dev/shm/mdbx-test.db-copy
[ 11005 child_9.9  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 10999 child_3.3  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 11004 child_8.8  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 10998 child_2.2  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 10997 child_1.1  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 11000 child_4.4  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.026593_10994 main       info ] config-dump:     limits: readers 42, tables 42
[ 190713-13:00:25.026598_10994 main       info ] config-dump:     drop table: No
[ 190713-13:00:25.026602_10994 main       info ] config-dump:     ignore MDBX_MAP_FULL error: No
[ 190713-13:00:25.026606_10994 main       info ] config-dump: #9, testcase append, space_id/table 9
[ 190713-13:00:25.026612_10994 main       info ] config-dump:     log: level 3, console
[ 190713-13:00:25.026616_10994 main       info ] config-dump:     database: /dev/shm/mdbx-test.db, size 268435456[-1..-1, -1 -1, -1]
[ 190713-13:00:25.026622_10994 main       info ] config-dump:     mode: 0x7984000 = mapasync, nosubdir, writemap, nordahead, nomeminit, coalesce, lifo
[ 190713-13:00:25.026629_10994 main       info ] config-dump:     table: 0x4 = data.dups
[ 190713-13:00:25.026635_10994 main       info ] config-dump:     iterations/records 1000
[ 190713-13:00:25.026639_10994 main       info ] config-dump:     repeat 42
[ 190713-13:00:25.026644_10994 main       info ] config-dump:     threads 1
[ 190713-13:00:25.026648_10994 main       info ] config-dump:     keygen.params: case random, width 32, mesh 32, rotate 3, offset 41, split 16/16
[ 190713-13:00:25.026653_10994 main       info ] config-dump:     keygen.seed: 1
[ 190713-13:00:25.026658_10994 main       info ] config-dump:     key: minlen 0, maxlen 990
[ 190713-13:00:25.026662_10994 main       info ] config-dump:     data: minlen 0, maxlen 990
[ 190713-13:00:25.026667_10994 main       info ] config-dump:     batch: read 42, write 42
[ 190713-13:00:25.026671_10994 main       info ] config-dump:     no-delay
[ 190713-13:00:25.026676_10994 main       info ] config-dump:     no-inject-writefault
[ 190713-13:00:25.026680_10994 main       info ] config-dump:     limits: readers 42, tables 42
[ 190713-13:00:25.026684_10994 main       info ] config-dump:     drop table: No
[ 190713-13:00:25.026689_10994 main       info ] config-dump:     ignore MDBX_MAP_FULL error: No
[ 190713-13:00:25.026693_10994 main       info ] config-dump: timeout: INFINITE
[ 190713-13:00:25.026698_10994 main       info ] config-dump: cleanup: before Yes, after No
[ 190713-13:00:25.026703_10994 main       info ] config-dump: failfast: Yes
[ 190713-13:00:25.026707_10994 main       info ] config-dump: progress indicator: Yes
[ 190713-13:00:25.043661_11005 child_9.9  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.043736_10999 child_3.3  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.044187_11004 child_8.8  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.045076_10998 child_2.2  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.045329_10997 child_1.1  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.045561_11000 child_4.4  fail ] mdbx_env_open() failed: Function not implemented (38)
[ 190713-13:00:25.046074_10994 overlord   info ] actor #8, id 8, pid 11004: failed
[ 190713-13:00:25.046319_10994 overlord   info ] actor #6, id 6, pid 11002: killed
[ 190713-13:00:25.046535_10994 overlord   info ] actor #4, id 4, pid 11000: killed
[ 190713-13:00:25.046728_10994 overlord   info ] actor #5, id 5, pid 11001: killed
[ 190713-13:00:25.046935_10994 overlord   info ] actor #2, id 2, pid 10998: killed
[ 190713-13:00:25.047155_10994 overlord   info ] actor #3, id 3, pid 10999: killed
[ 190713-13:00:25.047561_10994 overlord   info ] actor #1, id 1, pid 10997: killed
[ 190713-13:00:25.048007_10994 overlord   info ] actor #7, id 7, pid 11003: killed
[ 190713-13:00:25.050584_10994 overlord   info ] actor #9, id 9, pid 11005: killed
[ 190713-13:00:25.050633_10994 overlord   noti ] RESULT: Failed
[ 190713-13:00:25.050641_10994 overlord   info ] skip cleanup
make: *** [check] Ошибка 1

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  –3 +/
Сообщение от erthink (ok), 13-Июл-19, 11:48 
> [ 11005 child_9.9  fail ] mdbx_env_open() failed: Function not implemented (38)

А какое ядро и glibc?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  +/
Сообщение от test (??), 16-Июл-19, 03:56 
>> [ 11005 child_9.9  fail ] mdbx_env_open() failed: Function not implemented (38)
> А какое ядро и glibc?

ядро 4.19 самосбор, centos7 x64

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  –1 +/
Сообщение от erthink (ok), 16-Июл-19, 12:16 
> [ 11005 child_9.9  fail ] mdbx_env_open() failed: Function not implemented (38)
> ядро 4.19 самосбор, centos7 x64

Тогда понятно откуда "Function not implemented (38)".

Но хотелось бы получить strace.log после "strace -o strace.log -f ./mdbx_test --repeat=42 --pathname=/dev/shm/mdbx-test.db --dont-cleanup-after --hill --copy".

Это позволит понять чего именно не хватает в вашем ядре для mdbx (предположительно madvise).
А далее понять можно ли без этого обойтись и стоит ли поддерживать такие режимы работы.

P.S.
Пока это единственная проблема, найденная коллективным тестированием.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Нужна простая помощь в тестировании движка Key-Value (libmdbx)"  +/
Сообщение от erthink (ok), 09-Дек-19, 01:44 
На всякий:
- выясненно, что проблема была в madvise(), который иногда отключают.
- актуальная версия игнорирует ENOSYS от madvise().
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру