mdbx: update TODO.

This commit is contained in:
Leo Yuriev 2017-05-31 16:44:43 +03:00
parent 61a3766e23
commit 7f4684abff

85
TODO.md
View File

@ -1,18 +1,71 @@
Допеределки
- [x] разделение errno и GetLastError() - [x] разделение errno и GetLastError()
- [x] CI посредством AppVeyor - [x] CI посредством AppVeyor
- [ ] uint32/uint64 в структурах - [x] тест конкурентного доступа.
- [ ] правки API (много...) - [x] тест основного функционала (заменить текущий треш).
- [ ] инкрементальный mmap - [x] uint32/uint64 в структурах
- [ ] возврат выделенных страниц в unallocated tail - [x] Завершить переименование
- [ ] устранение всех предупреждений - [x] Макросы версионности, сделать как в fpta (cmake?)
- [ ] перевод mdbx-tools на С++ и сборка для Windows - [x] Попробовать убрать yield (или что там с местом?)
- [ ] тест конкурентного доступа - [x] trinity для copy/compaction
- [ ] тест основного функционала (заменить текущий треш) - [x] trinity для mdbx_chk и mdbx_stat
- [ ] базовый бенчмарк - [x] проверки с mdbx_meta_eq
- [ ] переработка формата: заголовки страниц, meta, clk... - [x] Не проверять режим при открытии в readonly
- [ ] зачистка Doxygen и бесполезных коментариев - [x] Поправить выбор tail в mdbx_chk
- [ ] сборка через CMake - [x] Там-же проверять позицию реклайминга
- [ ] актуализация README.md - [x] поправить проблему открытия после READ-ONLY.
- [ ] возможность хранения ключей внутри data (libfptu) - [x] static-assertы на размер/выравнивание lck, meta и т.п.
- [ ] асинхронная фиксация (https://github.com/ReOpen/libmdbx/issues/5) - [x] Зачистить size_t
- [ ] (пере)выделять память под IDL-списки с учетом реального кол-ва страниц, т.е. max(MDB_IDL_UM_MAX/MDB_IDL_UM_MAX, npages) - [x] Добавить локи вокруг dbi
- [x] Привести в порядок volatile
- [x] контроль meta.mapsize
- [x] переработка формата: заголовки страниц, meta, clk...
- [x] зачистка Doxygen и бесполезных коментариев.
- [x] Добавить поле типа контрольной суммы.
- [x] Добавить поле/флаг размера pgno_t.
- [x] Поменять сигнатуры.
- [ ] Добавить мета-страницы в coredump, проверить lck
- [ ] Сделать список для txnid_t, кода sizeof(txnid_t) > sizeof(pgno_t) и вернуть размер pgno_t
- [ ] Избавиться от умножения на размер страницы (заменить на сдвиг).
- [ ] Устранение всех предупреждений (в том числе под Windows).
- [ ] Перевод mdbx-tools на С++ и сборка для Windows
- [ ] Заменить заглушки mdbx_version и mdbx_build
- [ ] Актуализация README.md
CI
- [ ] Прикрутить проверку coverity
- [ ] Добавить в CI linux сборки для 32-битных таргетов
Доработки API
- [ ] Добавить возможность "подбора" режима для mdbx_env_open()
- [ ] Дать возможность задавать размер страницы при создании БД.
- [ ] Изменение mapsize через API с блокировкой и увеличением txn, плюс поправить доку.
- [ ] Контроль размера страницы полного размера и кол-ва страниц при создании и обновлении.
- [ ] Инкрементальный mmap.
- [ ] Возврат выделенных страниц в unallocated tail-pool.
- [ ] Инкрементальное приращение размера (колбэк стратегии?).
- [ ] Переименовать в API: env->db, db->tbl
Тест
- [ ] Реализовать cleanup в тесте
- [ ] usage для теста
- [ ] Логирование в файл, плюс более полный progress bar
- [ ] Опция игнорирования (пропуска части теста) при переполнении БД
- [ ] Додумать имя и размещение тестовой БД по-умолчанию.
- [ ] Базовый бенчмарк
Отладка
- [ ] Убрать MDB_DEBUG (всегда: логирование важный ситуаций и ошибок, опционально: включение ассертов и трассировка)
- [ ] Заменить mdbx_debug на mdbx_trace, и почистить...
- [ ] Заметить максимум assert() на mdbx_assert(env, ...)
Развитие
- [ ] Валидатор страниц БД по номеру транзакции:
~0 при переработке и номер транзакции при выделении,
проверять что этот номер больше головы реклайминга и не-больше текущей транзакции.
- [ ] Добавить free_backlog в meta
- [ ] Валидатор страниц по CRC32, плюс контроль номер транзакии под модулю 2^32.
- [ ] Валидатор страниц по t1ha c контролем снимков/версий БД на основе Merkle Tree.
- [ ] Возможность хранения ключей внутри data (libfptu)
- [ ] Асинхронная фиксация (https://github.com/ReOpen/libmdbx/issues/5)
- [ ] (Пере)Выделять память под IDL-списки с учетом реального кол-ва страниц, т.е. max(MDB_IDL_UM_MAX/MDB_IDL_UM_MAX, npages)