Что такое хорошая реализация B-дерева с открытым исходным кодом в C?

Я ищу простую и хорошо построенную реализацию библиотеки B-дерева с открытым исходным кодом, написанную на C. Она должна находиться под лицензией без GPL, чтобы ее можно было использовать в коммерческом приложении. В идеале эта библиотека поддерживает индекс B-дерева, который нужно хранить/обрабатывать как файл на диске, чтобы можно было строить большие деревья с использованием настраиваемого (т. е. минимального) объема оперативной памяти.

Примечание. Поскольку возникла некоторая путаница, бинарное дерево и B-дерево — это не одно и то же.


person Tall Jeff    schedule 28.08.2008    source источник


Ответы (6)


Ознакомьтесь с QDBM: http://fallabs.com/qdbm/. Это LGPL (можно использовать в коммерческом приложении), реализует хэш на основе диска и/или дерево B+ с произвольными парами ключ/значение и строится на различных платформах.

person Paul    schedule 15.03.2012
comment
Хороший! - Это хорошее дополнение к списку. Спасибо! - person Tall Jeff; 15.03.2012
comment
Если подумать, я думаю, что это также должен быть предпочтительным ответом. - person Tall Jeff; 15.03.2012

Автор реализации SQLite отказался Авторские права. Если с LGPL все в порядке, возможно, вы могли бы использовать реализация GNUpdate?

person A. Rex    schedule 29.08.2008
comment
GNUpdate — это дерево B+ - person Janus Troelsen; 31.12.2013

Если с LGPL все в порядке, то Tokyo Cabinet может подойти. LGPL разрешает связывание с платным приложением без каких-либо ограничений на распространение конечного продукта.

person florin    schedule 06.01.2009
comment
Похоже, он переместился на fallabs.com/tokyocabinet . - person florin; 27.01.2012
comment
Кабинет Киото является продолжением Кабинета Токио под лицензией GPL, но после его использования в течение некоторого времени он имеет некоторые очень плохие привычки, например, отсутствие обработки исключений, поэтому при std::bad_alloc происходит сбой приложения или неопределенные и неограниченные шаблоны использования памяти. - person Lothar; 16.05.2014

Привлекательный хаос реализует kbtree.h. Это эффективная библиотека B-tree

person Lear    schedule 14.06.2009

Я наткнулся на это — базу данных WB B-Tree для SCM, Java, C#, и C это пакет GNU.

person dkretz    schedule 14.06.2009

Может быть, вы можете рассмотреть базу данных Беркли. Он использует B-дерево внутри.

person bill    schedule 14.06.2009