- PVSM.RU - https://www.pvsm.ru -

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

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

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


О проекте

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

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

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

Мануал по установке [6] (есть пакеты для 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 [7] (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 [8] (англ.)):

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 [9] | Slashdot [10]

Автор: demark


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/nosql/2352

Ссылки в тексте:

[1] HyperDex: http://hyperdex.org

[2] патент: http://www.wipo.int/patentscope/search/en/detail.jsf?docId=WO2011137189

[3] Сорсы на гитхабе: https://github.com/rescrv/HyperDex/

[4] 3-clause BSD license: http://www.opensource.org/licenses/BSD-3-Clause

[5] Полное описание: http://hyperdex.org/papers/hyperdex.pdf

[6] Мануал по установке: http://hyperdex.org/download/

[7] YCSB: https://github.com/brianfrankcooper/YCSB/wiki

[8] Workloads: https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads

[9] Hacker News: http://news.ycombinator.com/item?id=3622059

[10] Slashdot: http://hardware.slashdot.org/story/12/02/22/1732221/is-it-time-for-nosql-20