Jump to content

Эллиптика

Эллиптика
Разработчик(и) Evgeniy Polakov with Yandex support
Первоначальный выпуск 2008 год ; 16 лет назад ( 2008 )
Репозиторий
Написано в С++ , Питон , Го
Тип NoSQL
Лицензия Меньшая стандартная общественная лицензия GNU
Веб-сайт www .reverbrain

Elliptics — это распределенное хранилище данных «ключ-значение» с открытым исходным кодом. По умолчанию это классическая распределенная хэш-таблица (DHT) с несколькими репликами, помещенными в разные группы (распределенные хэши). Elliptics был создан для удовлетворения требований мультицентров обработки данных и физически распределенных мест хранения при хранении огромного количества средних и больших файлов (размером от 1 КБ до гигабайт, от тысяч до миллиардов объектов).

Компания Elliptics была создана в 2007 году первоначально как часть POHMELFS. [1] [2] с когерентным кэшем, распределенная файловая система разработанная программистом Linux Евгением Поляковым. POHMELFS было объявлено 31 января 2008 г. [3] и слился с промежуточной областью дерева исходного кода ядра Linux в версии 2.6.30, выпущенной 9 июня 2009 года. Файловая система практически не использовалась и была снова удалена в феврале 2012 года. [4]

В 2008 году Elliptics выделилась в самостоятельный проект. Поляков пробовал разные подходы к распределенным системам хранения данных, некоторые из них не подходили из-за своей сложности, а некоторые были слишком далеки от реальной жизни ( BerkeleyDB , LevelDB , бэкенды Kyoto Cabinet для средних и больших файлов, разные дата-центры в одно кольцо DHT, невозможное восстановление).Эллиптика в конечном итоге представляет собой согласованную систему с множеством обновляемых параллельных реплик, потенциально находящихся в физически распределенных местах. Elliptics содержит несколько уровней: от низкоуровневого хранилища на диске (называемого Eblob) до кэшей SLRU и протокола динамической маршрутизации. [5]

В 2012 году Поляков анонсировал новую версию POHMELFS на базе Elliptics. [4]

По состоянию на 2014 год Эллиптика используется в Яндекс Картах , Диске, Музыке, Фото, Маркете и инфраструктуре. [6] Поисковая система Спутник и Коуб .

Архитектура

[ редактировать ]

По умолчанию Elliptics формирует распределенную хеш-таблицу в одной группе (реплике). Группа может содержать один или несколько серверов, а физический сервер может содержать несколько эллиптических групп (реплик), хранящихся на разных серверах. Группы могут жить в разных физических местах, что позволяет обслуживать запросы клиентов, когда другие места недоступны. Одноранговый протокол ( P2P ) можно использовать для доступа к данным непосредственно с серверов хранения без проксирования. Elliptics поддерживает серверные сценарии на C++ , JavaScript , Python , основанные на технологии Cocaine , кеше SLRU и нескольких подключаемых бэкэндах (eblob — самый быстрый для средних и больших данных и самый популярный).

Клиенты Elliptics подключаются напрямую ко всем серверам хранения, что помогает:

  • Выполнить поиск в O (1) сетевых запросах (один сетевой запрос на реплику)
  • Запускайте команды записи/обновления в нескольких репликах параллельно.

Существует несколько интерфейсов прикладного программирования (API) для доступа к данным:

  • Асинхронная библиотека C++ с обещанием функций
  • Привязка Python
  • Перейти на привязку
  • HTTP-прокси Rift с бакетами и ACL на основе библиотеки TheVoid (с использованием boost::asio)
  • управляемые сообществом Erlang, Привязки
  • Распределенные хэш-таблицы, отсутствие серверов метаданных, истинное горизонтальное масштабирование.
  • Репликация данных – реплики могут храниться в разных физических местах.
  • Диапазон и массовые запросы
  • Различные серверные части хранилища ввода-вывода, API для создания собственных низкоуровневых серверных частей хранилища.
  • Автоматическое перераспределение данных в случае удаления или добавления узлов
  • В конечном итоге последовательное восстановление
  • Модель последовательной хеш-адресации
  • Статистика кластера
  • Интерфейс: HTTP; привязки: C / C++ , Go , Python
  • Поддержка выполнения скриптов на стороне сервера (аналог триггера записи)
  • Распределенный кэш SLRU с TTL
  • Поддержка потоковой передачи P2P (только eblob и файловые серверы — внешние приложения, такие как веб-сервер Nginx, могут передавать данные из объектных файлов eblob непосредственно клиентам без проксирования)

Проблемы и ограничения

[ редактировать ]
  • Конечная согласованность : поскольку Elliptics полностью распространяется, в случае чрезвычайной ситуации сервер может вернуть копию файла, которая старше фактической. Иногда это может быть неприемлемо. В этих случаях из-за потери времени лучше использовать более надежные способы запроса данных.
  • Сеть между клиентом и серверами может стать слабым местом, поскольку данные записываются на несколько серверов параллельно.
  • API может быть неудобен для запросов высокого уровня. Elliptics не предоставляет своим пользователям запросы данных, подобные SQL.
  • В Elliptics нет поддержки высокоуровневых транзакций, поэтому невозможно гарантировать, что группа команд будет выполнена полностью или не будет выполнена вообще.
  • Транзакции являются атомарными внутри группы и блокируются на основе первичного ключа.

Документация

[ редактировать ]

Эллиптика и поддерживающие ее проекты документируются в вики сообщества. Архивировано 21 января 2020 г. на Wayback Machine . Он содержит проектную документацию высокого уровня, учебные пособия, детали низкого уровня и базу знаний. Эллиптика и связанные с ней проекты обсуждаются в открытой группе Google .

См. также

[ редактировать ]
  1. ^ «POHMELFS: новая, но старая распределенная файловая система Linux — Phoronix» . www.phoronix.com . Проверено 8 мая 2017 г.
  2. ^ «POHMELFS возвращает [LWN.net]» . lwn.net . Проверено 8 мая 2017 г.
  3. ^ «Запись 2008.01.31» . Архивировано из оригинала 6 октября 2008 года . Проверено 8 мая 2017 г.
  4. ^ Перейти обратно: а б Евгений Поляков (8 февраля 2012 г.). «pohmelfs: призыв к включению» .
  5. ^ "Как устроены облака Яндекса: Elliptics" . Retrieved 8 May 2017 .
  6. ^ «Эллиптика — Технологии Яндекса» . api.yandex.com . Проверено 8 мая 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 81faecc0433f24e9b75ea6988f3fa260__1709591580
URL1:https://arc.ask3.ru/arc/aa/81/60/81faecc0433f24e9b75ea6988f3fa260.html
Заголовок, (Title) документа по адресу, URL1:
Elliptics - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)