Проект libmdbx представив нову стратегію розвитку, одночасно оголосивши про зміну моделі розробки та розповсюдження коду. Вихідний код libmdbx залишиться відкритим і з якісною безкоштовною підтримкою, але тепер розробка вестиметься всередині команди з публікацією результату лише у майжегамованій формі. Стратегія розвитку декларує рух до давно анонсованого проекту MithrilDB з підтримкою кількох форматів БД під фасадом загального API. Явно заявляється про підтримку старих БД, поки це буде потрібно користувачам.
Якщо раніше у публічному доступі був весь вихідний код, включаючи тестовий фреймфорк та внутрішню документацію, то тепер доступний лише майжегамований вихідний код бібліотеки. Обіцяно, що незабаром буде представлено розширений приклад використання C++ API, який одночасно буде простим тестом. Причини досить докладні пояснюються у коментарях, вбудованих у слайди презентації. Зокрема, декларується бажання постачати бібліотеку у максимальному готовому вигляді, без залежностей, необхідних лише для її розробки та глибокого тестування.
Крім розкриття вже розроблюваних і запланованих можливостей libmdbx, в опублікованій стратегії анонсовано основні риси нового формату БД та можливості, що їм забезпечуються:
У ході очної презентації було заявлено про намір спробувати поєднати всередині MithrilDB кілька реалізацій написаних різними мовами, зокрема C, С++ і Rust, забезпечивши при цьому прозору перехресну взаємодію (додатки на С/С++ зможуть використовувати реалізацію на Rust і навпаки).
З можливостей, які зараз будуть доступні найближчим часом, варто відзначити «Пошук з кешуванням». Суть якого у зберіганні покажчиків на дані безпосередньо всередину БД, із гранично швидкою перевіркою їх актуальності. При цьому пошук від кореня дерева до листових сторінок зупиняється, коли доходить до сторінки, не зміненої після останньої перевірки відповідного елемента кешу. Таким чином, замість повного пошуку B-tree, виконується мінімально можлива кількість дій, залежно від обсягу змін після останнього отримання даних. Все разом забезпечує кардинальне прискорення до кількох десятків тисяч разів. У гіршому випадку такий пошук з «кешуванням» не повільніше звичайного.
Джерело: opennet.ru
