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

HamsterDB
Тип noSQL система керування базами даних
Перший випуск 2004
Стабільний випуск 2.1 (3 березня 2013; 11 років тому (2013-03-03))
Платформа x86, x64, PowerPC, SPARC, ARM, RISC
Операційна система багатоплатформний
Мова програмування C++
Стан розробки активний
Ліцензія GPLv2+
Вебсайт hamsterdb.com

Серед особливостей 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 активно використовується у багатьох популярних десктоп-застосунках, вбудованих пристроях, телефонах і навіть в хмарних системах.

Примітки ред.

Посилання ред.