Pull to refresh

Comments 52

Сначала Cocaine, теперь Eblob :) Кто у Вас названия придумывает?
По статье: текст на картинках (в изометрии) сложновато читается.
Отличное название! Сравните с каким-нибудь «Blob Business Storage Enterprise Solution» ;)
Я не говорю что плохое) Просто на слух не слишком «приличное».
Исторически все таки вначале eblob, а потом Cocaine :)

Вообще, названия придумывали разные люди, но, согласитесь, — они клевые :)

P.S. А с Eblob'ом все просто — это Elliptics BLOB (который, в свою очередь, Binary Large OBject)
В чём секркт успеха профи?
Не ума высокий лоб,
Не стероиды на кофе,
А Elliptic и…
а что со временем происходит в блобе с файлом, помеченным как удаленный? удаляется при дефрагментации?
Да, причем дефрагментация запускается автоматически, когда объем, занятый удаленными файлами, становится больше задаваемого порога относительно размера блоба.
Пока искал в инете информацию по установке и настройке cocaine и elliptics, наткнулся на сайт reverbrain.com. Это кто-то из ваших коллег? Или сторонние ребята тоже ваши технологии продвигают?
Склеивание io не пробовали отдать на откуп os? Вроде бы linux сам должен уметь такое делать.
Не могли бы уточнить суть вопроса? Сейчас в eblob'е нет никакого ручного склеивания IO запросов, они склеиваются файловой подсистемой linux'а.

Или вопрос про append записи через cache?

В таком случае файловая подсистема не может работать эффективно, так как внутри самого блоба будет происходить много переаллокаций данных. Поясню: для каждого ключа при первой записи выделяется какой-то участок блоба с конца файла. Каждый раз при превышении этого объема выделяется новый участок в блобе, в 2 раза больше текущего, и данные копируются туда, что, очевидно, затратно. Если же мы будет append'ы вначале копить в памяти, то солидной части таких переаллокаций удается избежать, что уже ведет к выигрышу в скорости работы.
> Так же была добавлена отложенная запись на диск, это позволяет «склеивать» несколько I/O-операций по ключу в одну — это очень хорошо заметно, если делается много append-записей в конец файлов, например в случае хранения логов.

Вопрос был об этом, но ваше объяснение всё поставило на места.
Так это система хранения файлов или данных?
Elliptics — это система хранения данных.

А что вы имеет в виду под «системой хранения файлов»?
Под каждым текстом о Эклиптиксе идут разговоры только о названиях компонент. Никто не задаёт вопросов по делу. Может есть какие то успешные кейсы использования Эклиптикса в других компаниях? Было бы интересно почитать.
Совершенно точно Elliptics работает в одной компании, разработчики которой узнали про него на YaC 2011. К сожалению, не знаю, есть ли они на хабре.

Как минимум пробовали в тестинге: Рамблер в своей почте, Байду для хранения аватарок, Docker для хранения образов систем, Undev.
Да есть мы. Куда же мы денемся :)
Правда для наших целей лучше подошел все же ceph, но eblob — да, интересная вещь.
Компании, которые работали и работают с Elliptics: Rambler, 2GIS, Ситисофт, Денивип, Undev, Яндекс, Express42 (насколько мне известно, даже Mail.Ru пробует использовать). Некоторые только пробуют, некоторые внедряют, у некоторых в продакшене
Насколько мне известно, эта информация не совсем верна.
Rambler полностью отказался от использования Elliptics'а.
Mail.Ru только посмотрел, но решил в итоге держаться от него в стороне и использовать свои наработки.
Яндекс — некоторые проекты пожалели, что связались этой системой хранения (по причине наличия многих неочевидных нюансов), но кто-то уже уйти от неё не может, а кто-то даже сумел выпилить Elliptics.
Не имею ничего против Elliptics, но проблем с ней по отзывам немало.
в DENIVIP мы используем его для практически всех проектов, как основную облачную инфраструктуру. Мы даже статью писали в блоге о том как можно использовать elliptics в качестве видеоплатформы для всяких Netflix / Hulu проектов.

На данный момент платформа работает в качестве хранилища пользовательского видео контента в проекте Together и в качестве хранилища фотографий в анонимном фото чате PhotoSuerte.

Всегда будем рады поделиться нашим опытом :-)
Кстати да, насчёт кейсов, есть информация на что переходят с Эллиптикса — обычно это ceph, Riak, или своё самописное более простое решение.
А какие-то конкретные примеры есть, или из серии ОБС? Про 2GIS и CEPH слышал.
Примеры в основном из «классических» компаний — в мейлру посмотрели эллиптикс и решили написать своё, в рамблере тоже попробовали и отказались — в качестве альтернатив выбор был между ceph или Riak, в яндексе вроде даже тоже от эллиптикса кое-где отказались (слышал про уход на hbase, уход на «самописную» систему kiwi).
Про 2GIS вот не знал, кстати.
На сколько я знаю про Рамблер — там забили на почту, а не на эллиптикс. В начале этой осени они ещё пилили почтовик и всё вокруг, чтобы туда данные сложить. Говорят, ещё аватарницу там на эллиптиксе подняли, но есть некоторые сомнения, не зарубили ли проект на стадии выкладки в продакшен.

В Яндексе, на сколько я в курсе, именно с эллиптикса никуда не уходили. Было такое, что долго выбирали и в итоге выбрали HBase по совокупности характеристик, но это же совсем другая история. Про KIWI ничего говорить не буду, уйти туда с эллиптикса в общем случае нельзя.

Много неочевидных нюансов есть у любой более-менее сложной системы. Есть они и у Riak, есть и у CEPH, и у HDFS. В итоге выбирается наименее плохая система из подходящих.
Полностью согласен, каждый инструмент имеет свои особенности.

Насчёт яндекса я подробнее не знаю что там за история с kiwi, вроде это тоже система хранения аналогичная.

Про рамблер знаю чуть более подробно — почта и эллиптикс не взлетели совершенно независимо друг от друга. В итоге хранение решили взять другое. А у аватарницы тоже были проблемы с эллиптиксом, поэтому тоже не пошло.
Похоже, вы как-то связаны с Рамблером, возможно, даже работали там. Расскажете про проблемы с эллиптиксом в почте и аватарнице? Мы тут с коллегами у рамблеровцев спросили, они говорят, что и в почте, и в аватарнице эллиптикс всех устроил, а проекты заморозили совсем по другим причинам.
У меня есть там знакомые просто, могу уточнить как-нибудь, если это не NDA тайна. Я и не говорил, что заморозили из-за эллиптикса, я лишь сказал что и эллиптикс не подошёл как инструмент. Возможно, вы спросили кого-то, кто там уже не работает, потому что сейчас, насколько я знаю, в той почте эллиптикса уже точно нет.
Переспросил про аватарницу — там тоже эллиптикс попробовали и выпилили.
Установка в домашних условиях особенно интерестна. Уже вижу способы применения, особенно в связки с nginx для отдачи статики.
Так же бы еще либо инструкцию пополней про Cocaine, т.к. по инструкциям с сайта, собрать удалось, но cocaine-tools падает после добавления приложения. Приложения не заменяются, либо не добавляются потом в принципе. В общем попробовать пока не удалось, но надежды есть, т.к. система в целом заинтересовала.
Про установку я буду рассказывать в следующей статье :)

В планах рассказать про базовую настройку, примеры использования с помощью С++/Python API. Так же надеюсь рассказать про использование HTTP API, но здесь зависит от получившегося объема.

По поводу Cocaine, попробуйте эту документацию, она должна быть сейчас более актуальной, чем на сайте. Статья-туториал для хабра по этому нашему продукту тоже в планах.
По ней и собирал, так как то что лежит в master в разных репозиториях между собой окозалось не совместимо. Сами cocaine-runtime работает, а вот с остальным как-то тяжко.
Думаю лучше создам issue на githab, может я что не так сделал, либо какие-то баги всплыли. Похоже проблема в msgpack, т.к. ругается на сериализацию, но из-за далекости в Python большего не понял.
У Cocaine master, как правило, находится в состоянии персистентной ядерной войны, поэтому лучше собирайтесь из бранча v0.11 — там текущая стабильная версия, которую можно использовать в продакшене.
А, да, мы так же собираем пакеты для Elliptics, Cocaine и остальных наших продуктов.

Репозиторий для Ubuntu Precise 12.04 и CentOS 6 доступен по ссылке repo.reverbrain.com/
За ссылку на репозиторий большое спасибо, а то в документации лишь PPA указано, причем похоже устаревшее.
Скорее всего проблема в том, что в систему поставилась fallback имплементация питонячего msgpack'а вместо биндинга к libmsgpack.

Напишите нам на cocaine@yandex-team.ru, мы поможем. Правда.
Про установку можно детально вот кукую вещь.
Очень многим надо распределенную файловую систему. Как примеры ceph,glusterfs.
Можно ли детально описать про хранение данных и может быть бенчмарки?
С реализацией распределенной файловой системы есть ряд заметных трудностей, пользователи ceph/glusterfs о них наверняка знают.

Мы в итоге пошли другим путем — предоставлением API для хранения данных, это позволяет построить более надежное и отказоустойчивое хранилище с соизмеримым уровнем удобства пользования.
Взгляните на наш tutorial — мы его писали глазами обычных пользователей :-) как сделать распределенную систему хранения.
Вот в нашем блоге.
Честно говоря, я не вижу как я лично могу использовать ее дома. Может быть поделитесь мыслями?
Для дома очень хватает openvz на машине + отдельно backup на внешний носитель, а его уже копирую btsync на работу :)
для дома конечно нет ) а вот на работе вполне, как раз как распределенную фс + думаю даст оптимизацию на хранении мелких (1-4кб) файлов в огромном количестве.
ну честно говоря, как я уже говорил выше интересно все сравнить с
ceph,gluster.
Сейчас думаю реализовать отказоустойчивый iscsi на linux, что бы не покупать дорогие СХД.
P.S. Статья пролетала iscsi на drdb итд итп, но это не наш метод ;)
UFO just landed and posted this here
А какие минимальные требования по железу у Elliptics для одной ноды?
В документации (в разделе System requirements) нашел информацию только о том, что работает только под линуксом. А вот про железо ничего нет.
Если, например, у меня какой-то небольшой проект, то могу ли я развернуть Elliptics на «маленьких» дроплетах в DigitalOcean (DO- условно, можно и у другого хостера)?
Если нет, то какой нужен минимум? Имеется в виду, чтобы не просто «завелось», а работало более-менее «приемлемо».
Всё упирается в ваши требования к хранилищу. Просто запустить можно практически на чём угодно, накладных расходов внутри эллиптикса совсем не много.
Ну я четкие требования сказать сейчас не могу, так как интересовался больше для «общего развития».
Но, я уже понял, что для «покрутить-повертеть» особо серьезное железо не требуется.
Покрутить-повертеть можно на личном ноутбуке, этому нет никаких препятствий.

Общую нагрузку, которую потянет железо, можно, в целом, определить по производительности дисков, мы не сможем писать/читать больше, чем это в состоянии делать дисковая подсистема. Так что просто попробуйте :)
Ну на ноуте покрутить — это только API изучить…
Я имел в виду потестировать с данными более-менее похожими на реальные.
У меня сейчас 5М+ аватар общим объемом 200+ Гбайт. Нагрузка в принципе не большая, так как отдаю их в CDN, которой «приказываю» хранить их у себя максимально возможное время. Т.е. у меня проблема не в нагрузке, а в том что все-равно надо хранить «старые» авы. Которые может быть уже и не нужны (юзер уже покинул сервис), но и не выкинешь же их.
В принципе, текущее решение не особо дорогое, но всегда хочеться что-то улучшить… Поэтому, просто потестирую ваш Elliptics (выглядит симпатично) и приму для себя решение.
Спасибо.
Мы используем elliptics как раз в дроплетах Digital Ocean. Все работает :-)
Если не секрет, а какие именно дроплеты вы там используете для Elliptics?
Мы использовали от самых маленьких ($5) до весьма приличных. Я уточню подробности у инженеров в понедельник. Самой критичной проблемой было то, что в DO последнее время есть проблемы со связностью.
Sign up to leave a comment.