<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Выпуск компактной встраиваемой СУБД libmdbx 0.9.1</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html</link>
    <description>Выпущена версия 0.9.1 библиотеки libmdbx (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Public License...&lt;br&gt;&lt;br&gt;Подробнее: https://www.opennet.ru/opennews/art.shtml?num=53812&lt;br&gt;</description>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (erthink)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#52</link>
    <pubDate>Tue, 06 Oct 2020 14:59:40 GMT</pubDate>
    <description>На всякий, для информации.&lt;br&gt;&lt;br&gt;1)&lt;br&gt;Заметил что при 25M итераций размер БД в sqlite получается порядка 2.5Gb.&lt;br&gt;Соответственно, заданная pragma не покрывает все данные.&lt;br&gt;Поэтому перепроверил задав mmap_size в 3Gb, но результат не изменился (медленнее чем без mmap).&lt;br&gt;&lt;br&gt;2)&lt;br&gt;Вспомнил что как-то был разговор о том, что неплохо-хо бы также сравнить размер БД (sqlite vs libmdbx), при одинаковом тестовом сценарии.&lt;br&gt;&lt;br&gt;Итого, в этом конкретном случае, получилось 2.5Gb в sqlite против 2Gb в libmdbx.&lt;br&gt;&lt;br&gt;Кроме этого, посредством mdbx_chk можно узнать больше подробностей (заполненность страниц и т.п.)&lt;br&gt;&lt;br&gt;$ ./mdbx_chk -vv .&lt;br&gt;mdbx_chk v0.9.1-11-g9d1bfa5b2 (2020-10-06T01:34:14+03:00, T-8f7227d37aed94d650826896bb3e69b34efd254c)&lt;br&gt;Running for . in &apos;read-only&apos; mode...&lt;br&gt;   open-MADV_DONTNEED 522315..524288&lt;br&gt;   readahead OFF 0..522315&lt;br&gt; - monopolistic mode&lt;br&gt; - current boot-id b7e779bb77d4d4d6-f890ee824260423e&lt;br&gt; - pagesize 4096 (4096 system), max keysize 1300..1344, max readers 120&lt;br&gt; - mapsize 137438953472 (128.00 Gb)&lt;br&gt; - dynamic data</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (n80)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#51</link>
    <pubDate>Tue, 06 Oct 2020 12:16:27 GMT</pubDate>
    <description>О как. У меня было по большей части чтение, поэтому и получилось некоторое ускорение.&lt;br&gt;&lt;br&gt;Понятно, что специализированное хранилище в разы быстрее, но было интересно понять, насколько удалось выжать всё из sqlite3 (и не только понять, какие опции используются, но и почему). Опять же, момент с замедлением записи при включении mmap оказался неожиданностью.&lt;br&gt;&lt;br&gt;Премного благодарю за информацию!&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (erthink)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#50</link>
    <pubDate>Tue, 06 Oct 2020 12:09:25 GMT</pubDate>
    <description>&amp;gt; offtop/2: если что, в sqlite3 есть PRAGMA mmap_size=x. Насколько помню, по умолчанию &lt;br&gt;&amp;gt; там 0, т.е. mmap не используется. Как-то раз удавалось за счёт &lt;br&gt;&amp;gt; включения этой настройки немного ускорить существующую базу. В репозитории ioarena не &lt;br&gt;&amp;gt; нашёл упоминания mmap_size, т.е. возможно что этот момент был упущен.&lt;br&gt;&lt;br&gt;mmap в sqlite будет немного ускорять чтение, за счет потенциального &quot;расширения&quot; page cache на весь объем данных. Но libmdbx тут (в сценариях интенсивного чтения) всё равно _всегда_ в разы быстрее, ибо примерно совсем не выполняет лишних операций (минимум накладных расходов). В Сети можно найти достаточно результатов бенчмарков (sqlite vs LMDB) подтверждающих это. Навскидку вот один из них https://hsto.org/webt/uw/du/4z/uwdu4zfgewvmqwkzuzaszja_qeq.png (фон прозначный, в зависимости от браузера может получится черное на черном).&lt;br&gt;&lt;br&gt;В сценариях с интенсивной записью/обновлением (в том числе в показанных ранее CRUD) mmap существенного влияния не окажет. На всякий добавил прагму в драйвер ioarena и </description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (_hide_)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#49</link>
    <pubDate>Mon, 05 Oct 2020 09:55:52 GMT</pubDate>
    <description>&amp;gt; Не работает оно (убунта 20.04 + последний стабильный/тестовый вайн). На 32-битных дистрах &lt;br&gt;&amp;gt; не пробовал, да.&lt;br&gt;&lt;br&gt;О да, дистр тут не важен - важно, чтобы Миранда и Вайн был под x32 (настраивается Вайн при создании профиля, Миранда качается нужно версии).&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (n80)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#48</link>
    <pubDate>Sun, 04 Oct 2020 00:19:26 GMT</pubDate>
    <description>offtop/2: если что, в sqlite3 есть PRAGMA mmap_size=x. Насколько помню, по умолчанию там 0, т.е. mmap не используется. Как-то раз удавалось за счёт включения этой настройки немного ускорить существующую базу. В репозитории ioarena не нашёл упоминания mmap_size, т.е. возможно что этот момент был упущен.&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (n80)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#47</link>
    <pubDate>Sun, 04 Oct 2020 00:04:34 GMT</pubDate>
    <description>FYI: как-то я встречал /похожий/ OSAL, называется WinPR и используется в FreeRDP (замена rdesktop). Ну и libwine, куда ж без него. Вроде, что-то ещё вспоминается, но уже более смутно.&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (x3who)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#46</link>
    <pubDate>Sat, 03 Oct 2020 22:49:49 GMT</pubDate>
    <description>&amp;gt; При необходимости, конечно, можно портировать libmdbx на более слабые платформы, в том &lt;br&gt;&amp;gt; числе на &quot;голое железо&quot;. Требуется не так уж много (32-битный процессор, &lt;br&gt;&amp;gt; мегабайт ОЗУ и блочный обмен с &quot;диском&quot;). Грубо говоря, достаточно реализовать &lt;br&gt;&amp;gt; соответствующие функции libc.&lt;br&gt;&lt;br&gt;Не, мегабайт жирновато для _микро_-контроллера :) &lt;br&gt;&lt;br&gt;Но вообще код интересный, нашел в src/osal.c код, который ммапит файл. Даже не знал, что в венде это есть - теперь знаю где посмотреть пример.&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (phprus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#45</link>
    <pubDate>Sat, 03 Oct 2020 14:06:04 GMT</pubDate>
    <description>Спасибо за ответ!&lt;br&gt;Буду тестировать.&lt;br&gt;&lt;br&gt;&amp;gt; Далее, принципиально важно насколько вам нужны транзакции, многопроцессорный/многопоточный &lt;br&gt;&amp;gt; доступ и какова пропорция по объему операций чтения и записи.&lt;br&gt;&lt;br&gt;Чтение/запись почти одинаково с маленьким перевесом чтения. Так как это счетчики, то транзакции нужны (отдельные операции в основном имеют вид: прочитали, изменили значение, записали значение или удалили ключ).&lt;br&gt;Многопоточный доступ и на чтение, и на изменение нужен.&lt;br&gt;</description>
</item>

<item>
    <title>Выпуск компактной встраиваемой СУБД libmdbx 0.9.1 (erthink)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/121987.html#44</link>
    <pubDate>Sat, 03 Oct 2020 12:19:49 GMT</pubDate>
    <description>&amp;gt; Диск - это абстракция более высокого уровня. Сам микроконтроллер ничего про диски &lt;br&gt;&amp;gt; не знает, как и персональный компъютер или мобилка или сервер какой. &lt;br&gt;&amp;gt; Но у людей регулярно встречаются задачи записывать куда-то какую-то структурированную &lt;br&gt;&amp;gt; информацию. Поэтому логично возникает вопрос - а нельзя ли присобачить эту &lt;br&gt;&amp;gt; БД к логгингу, и если можно - то какие требования к &lt;br&gt;&amp;gt; железу.&lt;br&gt;&lt;br&gt;Чтобы использовать libmdbx как есть, без каких-либо доработок, то от системы требуется поддержка mmap() и PTHREAD_MUTEX_ROBUST. Проще говоря, если на микроконтроллере есть MMU и можно запустить linux (buildroot и т.п.).&lt;br&gt;&lt;br&gt;При необходимости, конечно, можно портировать libmdbx на более слабые платформы, в том числе на &quot;голое железо&quot;. Требуется не так уж много (32-битный процессор, мегабайт ОЗУ и блочный обмен с &quot;диском&quot;). Грубо говоря, достаточно реализовать соответствующие функции libc.&lt;br&gt;</description>
</item>

</channel>
</rss>
