The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз встраиваемой NoSQL БД HamsterDB 2.1.0

03.03.2013 23:17

Представлен релиз NoSQL БД HamsterDB 2.1.0, в первую очередь ориентированной для встраивания в приложения функций постоянного хранения или кэширования записей, но поддерживающей работу и в режиме обособленной NoSQL БД с доступом по сети. Код проекта написан на языке C++ и поставляется под лицензией GPLv2+ с исключением для возможности связывания с проектами под несовместимыми с GPL лицензиями (Apache, BSD, Zlib и т.п.). Биндинги для использования HamsterDB доступны для языков C/C++, Python, .NET, Java, Erlang и ADA.

Среди особенностей HamsterDB можно отметить поддержку транзакций, наличие средств для восстановления и ведения журнала изменений, возможность хранения дублирующихся ключей (в том числе в отсортированном виде), очень быструю реализацию курсора для перемещения по записям, возможность частичного чтения и записи данных, как поддержку работы в роли постоянного хранилища, так и в роли хранимой в оперативной памяти БД (In-Memory DB). Формат файла с БД не привязан к архитектурным особенностям процессоров и может использоваться без изменений на различных платформах, включая x86, x64, PowerPC, SPARC, ARM и RISC.

Записи хранятся в виде отсортированного дерева B+Tree, поддерживающего помещение ключей переменной длины. Используемые в HamsterDB алгоритмы и структуры данных оптимизированы для гарантированного достижения высокой производительности для всех возможных сценариев применения. Например, по возможности минимизируются операции доступа к диску и обращения к системным вызовам, структуры данных реализованы с учётом особенности работы кэша в современных CPU, для оптимизации медленного ввода/вывода используется кэширование в памяти. Благодаря использованию 64-разрядных указателей, размер файлов с базой практически не ограничен.

Для логического разделения баз в HamsterDB используется понятие окружений, которые позволяют хранить несколько разных БД в одном файле. HamsterDB может использоваться как в виде связываемой с приложением библиотеки (не требует дополнительных зависимостей), так и в форме сервера. Сервер HamsterDB базируется на использовании небольшого http-сервера, который может запускаться отдельно или встраиваться в приложения. Доступны средства для тонкой настройки и тюнинга БД (размер кэша, ключей, страниц и т.п.).

HamsterDB можно рассматривать как стабильный и зрелый проект, развивающийся с 2004 года. Для тестирования качества кода создано более 45000 проверок и 1800 unit-тестов. HamsterDB активно используется во многих популярных десктоп-приложениях, встраиваемых устройствах, телефонах и даже в облачных системах.

Из изменений в HamsterDB 2.1.0 выделяется поддержка транзакций для окружений с хранением БД в памяти. Кроме того, проведена значительная переработка, ревизия и чистка API. Большинство изменений в API связано с переименованием констант и функций с целью достижения единой схемы наименования. Удалены функции с поддержкой файловых фильтров, сжатия и шифрования хранимых данных. Формат хранилища не изменился. В состав включены две новые утилиты: ham_export для экспорта БД в компактном бинарном формате и ham_import для создания окружения БД из ранее сохранённого бинарного дампа или слияния содержимого дампа с существующей БД. Кроме функций резервного копирования утилиты ham_export/ham_import рассматриваются как инструменты для переноса содержимого БД в процессе обновления версий HamsterDB в будущем.

  1. Главная ссылка к новости (http://hamsterdb.com/news/show...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/36282-hamsterdb
Ключевые слова: hamsterdb, database, nosql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, бедный буратино (ok), 02:53, 04/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Блин, и как я про неё не знал ранее. Ну, лучше поздно, чем никому. Спасибище!
     
  • 1.2, AnonuS (?), 03:53, 04/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ... в первую очередь ориентированной для встраивания в приложения функций постоянного хранения или кэширования записей ...
    > ... активно используется во многих популярных десктоп-приложениях, встраиваемых устройствах, телефонах и даже в облачных системах.

    Интересно почему в "Амароке" не "Хомячёк", а "Мускуль" ?

     
     
  • 2.3, Michael Shigorin (ok), 03:56, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Интересно почему в [KDE4] не "Хомячёк", а "Мускуль" ?

    Боюсь, выбирали про другое и не слышавшие школьники (буквально).

    https://www.opennet.ru/openforum/vsluhforumID3/86831.html#61

     
     
  • 3.5, AnonuS (?), 04:40, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Мишаня, ты меня расстроил :-)

    Коммент твой по ссылке прочитал, но не понял откуда ты эту инфу про школьников почерпнул.

     
     
  • 4.13, Michael Shigorin (ok), 11:26, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Коммент твой по ссылке прочитал, но не понял откуда ты эту инфу
    > про школьников почерпнул.

    Из первых рук.

     
  • 3.8, б.б. (?), 05:30, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    я тоже про hamster не слышал, хотя могу пяток базёнок похожих назвать. и когда целенаправленно искал - не нашёл. вот что значит "если нет в debian, значит - на задворках мировой истории".
     
     
  • 4.15, Michael Shigorin (ok), 14:21, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > вот что значит "если нет в debian, значит - на задворках мировой истории".

    Значит, нет в debian, на складах мировой истории.

    PS: :)

     
  • 3.17, Veter (??), 17:11, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В частной переписке разрабы кдешного аконади честно отписываются - они из очень бедной страны (не помню точно, что-то вроде Афганистана) и этот проект им только для того, чтобы их заметили и пригласили работать хоть куда-нибудь в европы и америки. Это был ответ на мое предложение сделать бэкенд на эскулайт - выяснилось, мускуль они немного видели, потому его и выбрали, а других систем хранения не знают и знать не хотят. Другой вопрос, кто решил сделать это поделие одной из основных подсистем КДЕ.
     
     
  • 4.21, viral (?), 20:38, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > В частной переписке разрабы кдешного аконади честно отписываются - они из очень
    > бедной страны (не помню точно, что-то вроде Афганистана)

    Пруф или не было. Если ты посмотришь в AUTHORS в исходниках этого аконади, то по именам легко заметишь, что авторы из европы (Гермашка, например) и штатов в основном.

     
     
  • 5.27, Veter (??), 09:22, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Письмо за давностью лет не сохранил (как можно увидеть по первой ссылке, баг я вешал весной 2009 г), но тогда у аконади было двое авторов (студенты, один вроде в Германии учился) - Tobias Koenig и Volker Krause. Если очень интересно, думаю, можно нагуглить по соцсетям, например.
    О сути см. https://bugs.kde.org/show_bug.cgi?id=188536 и http://lists.debian.org/debian-russian/2010/02/msg00158.html
     
     
  • 6.28, viral (ok), 10:09, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Tobias Koenig и Volker Krause.

    Типичные афганские имена.

    Из рассылки:
    > Недавно был топик про КДЕ4 и аконади. В общем, делают сабж пара человек из афганистана, имхо абсолютно невменяемых.

    И опять же без ссылок и каких-либо пруфов. Я представляю это так — кто-то в топике про KDE сделал вброс и кучка людей повелось, даже не удосужившись проверить, а теперь спустя годы это "всем известно что".

    Но заметь, я не спорю с тем, что писали неопытные студенты, или с тем, что аконади говно (сам я его всегда отключал). Мне нужен пруф именно на вот это:
    > они из очень бедной страны (не помню точно, что-то вроде Афганистана) и этот проект им только для того, чтобы их заметили и пригласили работать хоть куда-нибудь в европы и америки

     

  • 1.4, jOKer (ok), 04:12, 04/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Перерыл все исходники, но так я и не нашел заявленной поддержки питона... видимо предполагается, что питоновцам хватит и ctypes. Если так, то кушайте без меня - и без того хватает проблем, что бы их еще плодить на проблемах с биндингами.

    Хотя конечно весьма жаль: идея встраиваемой NoSQL БД с транзакциями для питоновых проектов была бы очень даже ничего.

    А вот для жабки и дотнета авторы постарались на славу; постарались так, что сразу видно что эта база для:

    1) сишников
    2) сишников
    3) жабовцев и дотнетчиков
    4) немножко для всех остальных, но тут пусть они выкручиваются сами

     
     
  • 2.6, AnonuS (?), 05:08, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Товарищ Джокер, что это за "плачь Ярославны" ты нам тут преподносишь? Неужели слабо байндинги написать, если тебе так нужен "Хомячёк"?
     
     
  • 3.7, jOKer (ok), 05:29, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Хм.. а вам доводилось писать биндинги под СУБД? Считаете что это так легко и не будет проблем с преобразованием сложных типов? Ню-ню...

    А так, между нами:
    >Биндинги для использования HamsterDB доступны для языков C/C++, Python, .NET, Java, Erlang и ADA

    С/С++ - есть
    .NET - есть
    Java -есть
    Python - нет
    Erlang - нет, обеспечивается сторонним проектом на гитхабе
    ADA - я не в курсе, может и есть

    Ну и для кого эта БД?

     
     
  • 4.9, б.б. (?), 05:44, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Python - нет

    Они убили хомячка!

     
  • 4.14, Michael Shigorin (ok), 14:20, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Хм.. а вам доводилось писать биндинги под СУБД?

    Мне кажется, это была неудачная попытка потроллить на тему "тебе надо, ты и делай".

    Для того, чтобы понять эту фразу -- надо хотя бы разик попробовать её в деле на себе.

     
     
  • 5.18, jOKer (ok), 17:11, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Михаил, это была попытка довести до товарища мысль, что глазами потребителя все делается очень просто и быстро. Но стоит начать делать, так тут же приходит понимание, что "под капотом" куда больше деталей чем тебе изначально казалось, и что все не так легко, как ты полагал изначально (а тем более писал от анонимуса).
     
     
  • 6.23, AnonuS (?), 02:37, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не надо ля-ля !

    Код открыт, для Жабки байндинги готовые есть, бери и делай по аналогии, если тебе они действительно до зарезу нужны, а иначе дамская истерика получается.

     
     
  • 7.24, Аноним (-), 05:28, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я с трудом себе могу представить что нибудь более бесполезное для сооружения питоновских иайндингов чем жаба-байндинг :)

    На самом деле там есть С - стало быть кому реально надо - реально можно :)

    PS: Навеяло Хомячок: Скажи нет змеям! :)

     
     
  • 8.26, AnonuS (?), 05:40, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    - ... текст свёрнут, показать
     
  • 2.10, uldus (ok), 08:42, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Перерыл все исходники, но так я и не нашел заявленной поддержки питона

    Плохо искали: https://github.com/cruppstahl/hamsterdb-python

     
     
  • 3.20, jOKer (ok), 17:23, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Перерыл все исходники, но так я и не нашел заявленной поддержки питона
    > Плохо искали: https://github.com/cruppstahl/hamsterdb-python

    Вы правы, действительно это оно.

    Меня просто ввел в заблуждение, тот факт, что в архиве с кодом СУБД уже лежали биндинги к яве и дотнету, а к питону не было... Уже пробую, спасибо за подсказку

     
     
  • 4.22, userd (ok), 20:55, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    как оно?
     
  • 2.11, Igel (??), 09:18, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    http://labs.codernity.com/codernitydb/ - не? =)
     
     
  • 3.19, jOKer (ok), 17:19, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Очень интересно! Спасибо за ссылку.
     
  • 2.12, Аноним (-), 09:59, 04/03/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Хотя конечно весьма жаль: идея встраиваемой NoSQL БД с транзакциями для питоновых проектов была бы очень даже ничего.

    bdb

     
     
  • 3.25, Аноним (-), 05:31, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > bdb

    +100500

    Оно конечно не модно говорить что тулза наших отцов (а кому и дедов!) - делает то же самое в 100500 раз быстрее почти не имеет глюков и применяется в каждом первом железе ... но ведь святая правда же! :)

     
  • 3.29, arisu (ok), 21:26, 05/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > bdb

    As of July 2011, Oracle's list price for commercial Berkeley DB licenses varies between 900 and 13,800 USD per processor.

    есть мнение, что автор hdb не настолько зажрался.

     
     
  • 4.30, Аноним (-), 00:13, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > commercial

    Ключевое слово.

    Авторы всех этих хомячковых поделок могут есть что угодно, но до bdb им как муравью до Бреста.

     
     
  • 5.31, Michael Shigorin (ok), 02:37, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Авторы всех этих хомячковых поделок могут есть что угодно, но до bdb
    > им как муравью до Бреста.

    ...сказал человек, явно ни разу не сопоставлявший bdb и hdb как бэкенды под нагруженным openldap, например...

     
     
  • 6.33, Аноним (-), 05:53, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > бэкенды под нагруженным openldap, например

    Этот пример может показывать что угодно. Например, рукожопие авторов бэкенда или админов.

     
     
  • 7.36, Michael Shigorin (ok), 20:39, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> бэкенды под нагруженным openldap, например
    > Этот пример может показывать что угодно.
    > Например, рукожопие авторов бэкенда или админов.

    Если что, на "bdb index corruption" гугль вываливает пять миллионов результатов, а на hdb всё заработало в штатном режиме.  Что может показывать Ваш комментарий -- опустим.

     
  • 6.35, userd (ok), 16:27, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Михаил, а Вы сопоставляли?
    А если сопоставляли, прошу поделиться результатами.
     
     
  • 7.37, Michael Shigorin (ok), 20:46, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Михаил, а Вы сопоставляли?

    Да.

    > А если сопоставляли, прошу поделиться результатами.

    bdb был выкинут из-за развалов индексов под нагрузкой -- в 2005 в пользу ldbm за неимением лучшего, затем использовали уже написанный к тому времени hdb backend.  См. тж. http://www.openldap.org/faq/data/cache/44.html

    Надо у Нетча уточнить, что было в последний раз...

     
  • 4.32, Алексей (??), 04:13, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Забудьте про оракловый BDB, есть ведь отличная современная альтернатива - Tokyo Cabinet и Kyoto Cabinet.
     
     
  • 5.34, arisu (ok), 09:48, 06/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Забудьте про оракловый BDB, есть ведь отличная современная альтернатива - Tokyo Cabinet
    > и Kyoto Cabinet.

    вот только hdb как минимум фичастей.

     

  • 1.16, fidaj (ok), 16:24, 04/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    а где http://vschart.com/compare/berkeley-db/vs/ ?
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру