HamsterDB
Тип | noSQL система керування базами даних |
---|---|
Перший випуск | 2004 |
Стабільний випуск | 2.1 (3 березня 2013 ) |
Платформа | x86, x64, PowerPC, SPARC, ARM, RISC |
Операційна система | багатоплатформний |
Мова програмування | C++ |
Стан розробки | активний |
Ліцензія | GPLv2+ |
Вебсайт | hamsterdb.com |
HamsterDB — система керування базами даних в стилі noSQL, в першу чергу орієнтована для вбудовування в застосування функцій постійного зберігання або кешування записів, але підтримує роботу також і в режимі відокремленої NoSQL БД з доступом по мережі. Код проекту написаний на мові C++ і поставляється під ліцензією GPLv2+ з виключенням для можливості зв'язування з проектами під несумісними з GPL ліцензіями (Apache, BSD, Zlib тощо). Біндінг для використання HamsterDB доступні для мов C/C++, Python, .NET, Java, Erlang і Ada.
Серед особливостей HamsterDB можна відзначити[1]
- підтримку транзакцій,
- наявність засобів для відновлення та ведення журналу змін,
- можливість зберігання дубльованих ключів (у тому числі в відсортованому вигляді),
- дуже швидку реалізацію курсора для переміщення по записах,
- можливість часткового читання і запису даних,
- підтримку роботи як в ролі постійного сховища, так і в ролі збереженої в оперативній пам'яті БД (In-Memory DB).
Формат файлу з БД не прив'язаний до архітектурних особливостей процесорів і може використовуватися без змін на різних платформах, включаючи x86, x64, PowerPC, SPARC, ARM і RISC.
Записи зберігаються у вигляді відсортованого дерева B+Tree, котре підтримує ключі змінної довжини. Використовувані в HamsterDB алгоритми та структури даних оптимізовані для гарантованого досягнення високої продуктивності для всіх можливих сценаріїв застосування. Наприклад, по можливості мінімізуються операції доступу до диска і звернення до системних викликів, структури даних реалізовані з урахуванням особливості роботи кешу в сучасних CPU, для оптимізації повільного вводу/виводу використовується кешування в пам'яті. Завдяки використанню 64-розрядних вказівників, розмір файлів з базою практично не обмежений.
Для логічного поділу баз в HamsterDB використовується поняття оточень, які дозволяють зберігати кілька різних БД в одному файлі. HamsterDB може використовуватися як у вигляді зв'язаної з застосунком бібліотеки (не вимагає додаткових залежностей), так і у формі сервера. Сервер HamsterDB базується на використанні невеликого http-сервера, який може запускатися окремо або вбудовуватися в застосунки. Доступні засоби для тонкої настройки і тюнінгу БД (розмір кешу, ключів, сторінок тощо).
HamsterDB можна розглядати як стабільний і зрілий проект, який розвивається з 2004 року. Для тестування якості коду створено більше 45000 перевірок і 1800 unit-тестів. HamsterDB активно використовується у багатьох популярних десктоп-застосунках, вбудованих пристроях, телефонах і навіть в хмарних системах.
- ↑ Релиз встраиваемой NoSQL БД HamsterDB 2.1.0 [Архівовано 7 березня 2013 у Wayback Machine.] // opennet.ru 03.03.2013