—
Cassandra является основным хранилищем (мета)данных в Одноклассниках. Там развернуты сотни высоконагруженных кластеров из сотен узлов и тысяч клиентов, распределенных по нескольким дата-центрам. Они используют и активно развивают собственный форк Cassandra 2.x. Помимо фиксов множества багов и многочисленных оптимизаций, они реализовали глобальные индексы (которые работают), поддержали партиционированные транзакции (NewSQL), полностью автоматизировали эксплуатацию в production и многое другое. Но в этом докладе Вадим сконцентрируется на подходе FatClient, который используется в их системах повсеместно.
Подход FatClient переносит роль координатора запросов на клиента, который становится полноценным участником кластера Cassandra. Это позволяет устранить лишние сетевые задержки, разгрузить ноды Cassandra от сетевых задач координации и значительно повысить производительность и стабильность поведения всей системы. Но несмотря на все достоинства подхода, они столкнулись с неэффективностью и ограничениями существующего транспорта Cassandra на масштабах кластеров, состоящих из тысяч участников: узлов, хранящих данные, и клиентов, работающих с этими данными.
В докладе подробно рассматривается собственная реализация асинхронного транспорта Cassandra, которая позволила существенно сэкономить ресурсы и упростить жизнь разработчиков. Новый транспорт основан исключительно на Java SDK и лаконичной, но эффективной реализации Actor Model. Помимо устройства самого решения, Вадим расскажет про различные оптимизации, возникшие по пути проблемы, а также переключение на асинхронный транспорт нагруженных кластеров Cassandra в production.
Опыт и идеи, представленные в докладе, могут быть полезны как сетевым разработчикам, так и разработчикам высоконагруженных распределённых систем на Java.
#cassandra #nio #actor_model
1 view
0
0
2 years ago 00:45:41 1
Вадим Цесько — Асинхронный транспорт Cassandra
2 years ago 00:37:09 28
Интервью с Иваном Буймовым и Вадимом Цесько
5 years ago 01:00:08 14
Вадим Цесько — Реактивный раздатчик ok
7 years ago 00:50:10 58
Вадим Цесько — Фреймворк Akka и его использование в Яндексе
7 years ago 00:54:28 1
Андрей Паньгин, Вадим Цесько — JVM-профайлер с чувством такта
7 years ago 01:48:51 37
Лекция 4 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
7 years ago 01:49:49 33
Лекция 3 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
7 years ago 01:30:33 67
Лекция 2 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
7 years ago 00:30:44 484
Лекция 1 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
7 years ago 01:13:55 7
Поисковая бибилиотека Lucene
7 years ago 01:34:47 9
ZooKeeper
7 years ago 01:17:39 5
HBase
7 years ago 00:51:57 7
HDFS
7 years ago 00:54:57 5
Haystack
7 years ago 01:15:49 14
MongoDB is a web-scale
7 years ago 01:48:51 16
Cassandra
7 years ago 01:49:49 18
Distributed Commit
7 years ago 01:30:33 53
Hash & Cache. CAP
7 years ago 00:30:44 150
Введение в базы данных
8 years ago 01:06:17 22
Лекция 13 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
8 years ago 01:17:39 5
Лекция 8 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
8 years ago 00:51:57 6
Лекция 7 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум
8 years ago 00:54:57 3
Лекция 6 | Базы данных (2013) | Вадим Цесько | CSC | Лекториум