NoSQL / HyperDex — новое опенсорсное NoSQL key-value хранилище, заточенное на очень быстрый поиск

в 3:51, , рубрики: key-value storage, nosql, метки: ,

NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск
Авторы позиционируют HyperDex как распределённое, отказоустойчивое, легко-маштабируемое, заточенное на очень быстрый поиск NoSQL key-value хранилище.

Главная фича — новый принцип хранения объектов в многомерном эвклидовом пространстве (рис. слева), используя гиперпространственное хэширование (hyperspace hashing) (на который, кстати, авторы сейчас получают патент), которое позволяет выполнять большинство типичных задач от 2 до 13 раз быстрее, чем в MongoDB, Redis, Cassandra.


О проекте

HyperDex появился в недрах факультета компьютерных наук Корнелльского Университета силами 3-х авторов.

Написан на C++; 39,750 LoC; Сорсы на гитхабе (лицензия 3-clause BSD license)

Сайт | Полное описание (PDF, 15 стр., англ.)

Мануал по установке (есть пакеты для Debian, Ubuntu, Fedora)

* Важно: HyperDex заводится только на x86_64 платформе.


В двух словах про гиперпространственное хэширование (hyperspace hashing)

HyperDex представляет каждую таблицу в качестве независимого многомерного пространства, где оси — атрибуты таблицы. На примере 1-го рисунка, мы имеем таблицу, содержащую инфу о пользователе с атрибутами «First Name» (ось X), «Last Name» (Y) и «Phone» (Z). HyperDex присваивает каждому объекту соответствующие координаты на основе его атрибутов. Далее, объект мэпится к оным координатам методом хэширования каждого его атрибута по соответствующим осям.

В случае, когда атрибутов много, пространство разбивается на субпространства (subspaces)
NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поискNoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск

Более подробная инфа по принципам хэширования, хранения на диске, а также шардингу и репликации — читайте в полном описании проекта.


Бенчмарки

Бенчмарки проводились тулзой YCSB (Yahoo! Cloud Serving Benchmark) на кластере из 14 нод (конфа каждой — 2х Intel Xeon 2.5 GHz E5420, 16 GB RAM, 500 GB SATA 3 Gbit 7200 RPM. 64-bit Debian 6 Linux 2.6.32 kernel)

MongoDB 2.0.0
Cassandra 0.7.3

Описание нагрузочных сценариев на графиках (Workloads (англ.)):

NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск

  • A. 50/50 чтение-запись (сессии, пара действий с бд)
  • B. 95/5 чтение-запись
  • C. Только чтение
  • D. Добавление новых записей и чтение последних изменений
  • E. Поиск
  • F. Чтение объекта / изменение / запись обратно
                          
NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск
Вставка 10 000 000 объектов
                          
NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск
Workload B. 95% чтение, 5% запись
на 10К сценарных операций

NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск
Поиск. 10К сценарных операций. Важное замечание по этому бенчу: HyperDex ищет не по индексным атрибутам объектов (!) (non-primary), в то время как остальные — только по primary-key

                          

NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск
Линейная маштабируемость. на 32-х нодах HyperDex обрабатывает 3.2 млн. операций в секунду

                          
NoSQL / HyperDex — новое опенсорсное NoSQL key value хранилище, заточенное на очень быстрый поиск
Сравнение с Redis. Workload E — поиск

Обсуждение на Hacker News | Slashdot

Автор: demark


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js