summaryrefslogtreecommitdiff
path: root/plugins/Dbx_mdbx/src/libmdbx/TODO.md
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Dbx_mdbx/src/libmdbx/TODO.md')
-rw-r--r--plugins/Dbx_mdbx/src/libmdbx/TODO.md89
1 files changed, 89 insertions, 0 deletions
diff --git a/plugins/Dbx_mdbx/src/libmdbx/TODO.md b/plugins/Dbx_mdbx/src/libmdbx/TODO.md
new file mode 100644
index 0000000000..8ff0b3f268
--- /dev/null
+++ b/plugins/Dbx_mdbx/src/libmdbx/TODO.md
@@ -0,0 +1,89 @@
+Допеределки
+===========
+- [ ] Перевод mdbx-tools на С++ и сборка для Windows.
+- [ ] Переход на CMake, замена заглушек mdbx_version и mdbx_build.
+- [ ] Актуализация README.md
+- [ ] Переход на C++11, добавление #pramga detect_mismatch().
+- [ ] Убрать MDB_DEBUG (всегда: логирование важный ситуаций и ошибок, опционально: включение ассертов и трассировка).
+- [ ] Заменить mdbx_debug на mdbx_trace, и почистить...
+- [ ] Заметить максимум assert() на mdbx_assert(env, ...).
+
+Качество и CI
+=============
+- [ ] Добавить в CI linux сборки для 32-битных таргетов.
+
+Доработки API
+=============
+- [ ] Поправить/Добавить описание нового API.
+- [ ] Добавить возможность "подбора" режима для mdbx_env_open().
+- [ ] Переименовать в API: env->db, db->tbl.
+
+Тесты
+=====
+- [ ] Тестирование поддержки lockless-режима.
+- [ ] Додумать имя и размещение тестовой БД по-умолчанию.
+- [ ] Реализовать cleanup в тесте.
+- [ ] usage для теста.
+- [ ] Логирование в файл, плюс более полный progress bar.
+- [ ] Опция игнорирования (пропуска части теста) при переполнении БД.
+- [ ] Базовый бенчмарк.
+
+Развитие
+========
+- [ ] Отслеживание времени жизни DBI-хендлов.
+- [ ] Отрефакторить mdbx_freelist_save().
+- [ ] Хранить "свободный хвост" не связанный с freeDB в META.
+- [x] Возврат выделенных страниц в unallocated tail-pool.
+- [ ] Валидатор страниц БД по номеру транзакции:
+ ~0 при переработке и номер транзакции при выделении,
+ проверять что этот номер больше головы реклайминга и не-больше текущей транзакции.
+- [ ] Размещение overflow-pages в отдельном mmap/файле с собственной геометрией.
+- [ ] Зафиксировать формат БД.
+- [ ] Валидатор страниц по CRC32, плюс контроль номер транзакии под модулю 2^32.
+- [ ] Валидатор страниц по t1ha c контролем снимков/версий БД на основе Merkle Tree.
+- [ ] Возможность хранения ключей внутри data (libfptu).
+- [ ] Асинхронная фиксация (https://github.com/leo-yuriev/libmdbx/issues/5).
+- [ ] (Пере)Выделять память под IDL-списки с учетом реального кол-ва страниц, т.е. max(MDB_IDL_UM_MAX/MDB_IDL_UM_MAX, npages).
+
+-----------------------------------------------------------------------
+
+Сделано
+=======
+- [x] разделение errno и GetLastError().
+- [x] CI посредством AppVeyor.
+- [x] тест конкурентного доступа.
+- [x] тест основного функционала (заменить текущий треш).
+- [x] uint32/uint64 в структурах.
+- [x] Завершить переименование.
+- [x] Макросы версионности, сделать как в fpta (cmake?).
+- [x] Попробовать убрать yield (или что там с местом?).
+- [x] trinity для copy/compaction.
+- [x] trinity для mdbx_chk и mdbx_stat.
+- [x] проверки с mdbx_meta_eq.
+- [x] Не проверять режим при открытии в readonly.
+- [x] Поправить выбор tail в mdbx_chk.
+- [x] Там-же проверять позицию реклайминга.
+- [x] поправить проблему открытия после READ-ONLY.
+- [x] static-assertы на размер/выравнивание lck, meta и т.п.
+- [x] Зачистить size_t.
+- [x] Добавить локи вокруг dbi.
+- [x] Привести в порядок volatile.
+- [x] контроль meta.mapsize.
+- [x] переработка формата: заголовки страниц, meta, clk...
+- [x] зачистка Doxygen и бесполезных коментариев.
+- [x] Добавить поле типа контрольной суммы.
+- [x] Добавить поле/флаг размера pgno_t.
+- [x] Поменять сигнатуры.
+- [x] Добавить мета-страницы в coredump, проверить lck.
+- [x] Сделать список для txnid_t, кода sizeof(txnid_t) > sizeof(pgno_t) и вернуть размер pgno_t.
+- [x] Избавиться от умножения на размер страницы (заменить на сдвиг).
+- [x] Устранение всех предупреждений (в том числе под Windows).
+- [x] Добавить 'mti_reader_finished_flag'.
+- [x] Погасить все level4-warnings от MSVC, включить /WX.
+- [x] Проверка посредством Coverity с гашением всех дефектов.
+- [x] Полная матрица Windows-сборок (2013/2015/2017).
+- [x] Дать возможность задавать размер страницы при создании БД.
+- [x] Изменение mapsize через API с блокировкой и увеличением txn.
+- [x] Контроль размера страницы полного размера и кол-ва страниц при создании и обновлении.
+- [x] Инкрементальный mmap.
+- [x] Инкрементальное приращение размера (колбэк стратегии?).