Submit Search
Upload
Введение в Apache Cassandra
•
5 likes
•
1,864 views
Alexander Tivelkov
Follow
Слайды к докладу на Cloud Tech Meetup в Харькове, 28.03.2013
Read less
Read more
Technology
Report
Share
Report
Share
1 of 41
Recommended
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системах
Alexander Mezhov
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проекте
Volha Banadyseva
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Ontico
Класс!ная Cassandra
Класс!ная Cassandra
odnoklassniki.ru
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Alexey Zinoviev
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
Andrew Avdeev
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
No sql.mongodb scaling
No sql.mongodb scaling
Олег Винников
Recommended
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системах
Alexander Mezhov
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проекте
Volha Banadyseva
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Ontico
Класс!ная Cassandra
Класс!ная Cassandra
odnoklassniki.ru
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Alexey Zinoviev
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
Andrew Avdeev
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
No sql.mongodb scaling
No sql.mongodb scaling
Олег Винников
NoSQL - взрыв возможностей
NoSQL - взрыв возможностей
Aleksey Solntsev
MongoDB первые впечатления
MongoDB первые впечатления
fudz1k
SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация)
Конференция разработчиков программного обеспечения SECON'2014
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Ontico
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Ontico
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Ontico
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Ontico
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Ontico
phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем хранения
Slach
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Ontico
MongoDB basics in Russian
MongoDB basics in Russian
Oleg Kachan
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
Alexey Tokar
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Ontico
NoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий Никулин
Anatoliy Nikulin
Mysql vs postgresql
Mysql vs postgresql
Daniel Podolsky
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.
Alexey Rusnak
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Ontico
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?
Tim Mironov
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
Ontico
Cassandra @JEEConf March 21, 2011 (Kiev, Ukraine)
Cassandra @JEEConf March 21, 2011 (Kiev, Ukraine)
Pavel Yaskevich
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
Ontico
More Related Content
What's hot
NoSQL - взрыв возможностей
NoSQL - взрыв возможностей
Aleksey Solntsev
MongoDB первые впечатления
MongoDB первые впечатления
fudz1k
SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация)
Конференция разработчиков программного обеспечения SECON'2014
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Ontico
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Ontico
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Ontico
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Ontico
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Ontico
phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем хранения
Slach
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Ontico
MongoDB basics in Russian
MongoDB basics in Russian
Oleg Kachan
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
Alexey Tokar
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Ontico
NoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий Никулин
Anatoliy Nikulin
Mysql vs postgresql
Mysql vs postgresql
Daniel Podolsky
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.
Alexey Rusnak
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Ontico
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?
Tim Mironov
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
Ontico
What's hot
(20)
NoSQL - взрыв возможностей
NoSQL - взрыв возможностей
MongoDB первые впечатления
MongoDB первые впечатления
SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация)
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем хранения
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
MongoDB basics in Russian
MongoDB basics in Russian
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
NoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий Никулин
Mysql vs postgresql
Mysql vs postgresql
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
Viewers also liked
Cassandra @JEEConf March 21, 2011 (Kiev, Ukraine)
Cassandra @JEEConf March 21, 2011 (Kiev, Ukraine)
Pavel Yaskevich
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
Ontico
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших Данных
Andrey Akulov
Создание географически-распределенных датацентров на базе инженерных систем
Создание географически-распределенных датацентров на базе инженерных систем
Andrey Akulov
FOSS Sea 2014_DataWarehouse & BigData_Владимир Слободянюк ( Luxoft)
FOSS Sea 2014_DataWarehouse & BigData_Владимир Слободянюк ( Luxoft)
GeeksLab Odessa
SSAS: multidemention vs tabular mode
SSAS: multidemention vs tabular mode
Andrey Korshikov
DataTalks #4: Построение хранилища данных на основе платформы hadoop / Игорь ...
DataTalks #4: Построение хранилища данных на основе платформы hadoop / Игорь ...
WG_ Events
3 ibm bdw2015
3 ibm bdw2015
antishmanti
За гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на Cassandra
odnoklassniki.ru
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico
Data Lake vs. Data Warehouse: Which is Right for Healthcare?
Data Lake vs. Data Warehouse: Which is Right for Healthcare?
Health Catalyst
Viewers also liked
(11)
Cassandra @JEEConf March 21, 2011 (Kiev, Ukraine)
Cassandra @JEEConf March 21, 2011 (Kiev, Ukraine)
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших Данных
Создание географически-распределенных датацентров на базе инженерных систем
Создание географически-распределенных датацентров на базе инженерных систем
FOSS Sea 2014_DataWarehouse & BigData_Владимир Слободянюк ( Luxoft)
FOSS Sea 2014_DataWarehouse & BigData_Владимир Слободянюк ( Luxoft)
SSAS: multidemention vs tabular mode
SSAS: multidemention vs tabular mode
DataTalks #4: Построение хранилища данных на основе платформы hadoop / Игорь ...
DataTalks #4: Построение хранилища данных на основе платформы hadoop / Игорь ...
3 ibm bdw2015
3 ibm bdw2015
За гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на Cassandra
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Data Lake vs. Data Warehouse: Which is Right for Healthcare?
Data Lake vs. Data Warehouse: Which is Right for Healthcare?
Similar to Введение в Apache Cassandra
Nosql and Mongodb
Nosql and Mongodb
Eduard Antsupov
Cassandra db
Cassandra db
Andrei Poliakov
02 1c-bitrix-cloud-storage
02 1c-bitrix-cloud-storage
Alexander Demidov
Data as a service base
Data as a service base
Sergii Stukan
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018
ITEM
Максим Шапошников, Nutanix
Максим Шапошников, Nutanix
Ontico
Веб-кластер
Веб-кластер
1С-Битрикс
Introduction to MongoDB
Introduction to MongoDB
Iurii Ogiienko
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Ontico
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
Andrey Akulov
Hosting for forbes.ru_
Hosting for forbes.ru_
drupalconf
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Ontico
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Ontico
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Fuenteovejuna
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Ontico
Машины баз данных на Web-scale IT — 2017 (РИТ++)
Машины баз данных на Web-scale IT — 2017 (РИТ++)
Andrei Nikolaenko
MySQL - checklist для новичка в Highload
MySQL - checklist для новичка в Highload
Sveta Smirnova
MySQL: чек-лист для новичка в highload / Анастасия Распопина, Света Смирнова ...
MySQL: чек-лист для новичка в highload / Анастасия Распопина, Света Смирнова ...
Ontico
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
Anastasia Rostova
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Tanya Denisyuk
Similar to Введение в Apache Cassandra
(20)
Nosql and Mongodb
Nosql and Mongodb
Cassandra db
Cassandra db
02 1c-bitrix-cloud-storage
02 1c-bitrix-cloud-storage
Data as a service base
Data as a service base
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018
Максим Шапошников, Nutanix
Максим Шапошников, Nutanix
Веб-кластер
Веб-кластер
Introduction to MongoDB
Introduction to MongoDB
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
Hosting for forbes.ru_
Hosting for forbes.ru_
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...
Машины баз данных на Web-scale IT — 2017 (РИТ++)
Машины баз данных на Web-scale IT — 2017 (РИТ++)
MySQL - checklist для новичка в Highload
MySQL - checklist для новичка в Highload
MySQL: чек-лист для новичка в highload / Анастасия Распопина, Света Смирнова ...
MySQL: чек-лист для новичка в highload / Анастасия Распопина, Света Смирнова ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Введение в Apache Cassandra
1.
Введение в Apache Cassandra
Александр Тивельков Mirantis Cloud Service © MIRANTIS 2013 PAGE 1
2.
«Без умолку безумная
девица Кричала: "Ясно вижу Трою павшей в прах!" Но ясновидцев - впрочем, как и очевидцев - Во все века сжигали люди на кострах» В. Высоцкий. Песня о вещей Кассандре «...Он у Приама Кассандры, прекраснейшей дочери старца, Гордый просил без даров, но сам совершить обещал он Подвиг великий: из Трои изгнать меднолатных данаев. Старец ему обещал и уже за него согласился Выдать Кассандру,- и ратовал он, на обет положася» Гомер. Иллиада © MIRANTIS 2013 PAGE 2
3.
О чем вообще
речь? 800 700 600 500 400 Объем данных в сети, ЭБ 300 200 100 0 1998 2000 2002 2004 2006 2008 2010 2012 2014 © MIRANTIS 2013 PAGE 3
4.
Масштабирование
© MIRANTIS 2013 PAGE 4
5.
Бывает и так
© MIRANTIS 2013 PAGE 5
6.
NoSQL
HBase Hypertable MongoDB HyperGraphDB Riak Memcached Voldemort Tokyo Cabinet Neo4J Redis Cassandra CouchDB © MIRANTIS 2013 PAGE 6
7.
CAP-теорема Брюера
© MIRANTIS 2013 PAGE 7
8.
CAP-теорема Брюера
© MIRANTIS 2013 PAGE 8
9.
CAP-теорема Брюера
© MIRANTIS 2013 PAGE 9
10.
NoSQLBigData
HBase Hypertable MongoDB HyperGraphDB Riak Memcached Voldemort Tokyo Cabinet Neo4J Redis Cassandra CouchDB © MIRANTIS 2013 PAGE 10
11.
Amazon Dynamo +
Google BigTable = ??? Из Amazon Dynamo возьмем инфраструктуру: Согласованное хэширование PK Шардирование ...а из Google BigTable оставим Репликацию по кольцу схему данных: Роутинг за О(1) Схему данных, состоящую из «семейств колонок» In-memory хранение данных в Memtable On-disk хранение данных в SSTables © MIRANTIS 2013 PAGE 11
12.
Amazon Dynamo +
Google BigTable = Apache Cassandra Разрабатывалась в Facebook до 2008го года Выпущена в свободное open-source плавание на GoogleCode в июле 2008 года С марта 2009 года — в инкубаторе проектов Apache Software Foundation Выделение в полноценный продукт — 17 февраля 2010 6 основных релизов с тех пор... Последний активный релиз — 2 января 2013 года, версия 1.2 © MIRANTIS 2013 PAGE 12
13.
Apache Cassandra –
это... Распределенное, отказоустойчивое, масштабируемое, колонко-ориентированное, управляемо-согласованное хранилище данных. © MIRANTIS 2013 PAGE 13
14.
Apache Cassandra –
это... Распределенное, отказоустойчивое, масштабируемое, колонко-ориентированное, управляемо-согласованное хранилище данных. © MIRANTIS 2013 PAGE 14
15.
Топология Token Ring
Кластер из проивольного количества узлов (ну, от 1 до 2127-1 :)) Каждому узлу сопоставляется токен в некоем пространстве значений Хэш-ключ записи лежит в том же пространстве значений токенов Запись направляется на ноду с ближайшим к этому значению токеном Последующая репликация поддается настройке и учитывает сетевую топологию кластера © MIRANTIS 2013 PAGE 15
16.
Топология Token Ring
© MIRANTIS 2013 PAGE 16
17.
Apache Cassandra –
это... Распределенное, отказоустойчивое, масштабируемое, колонко-ориентированное, управляемо-согласованное хранилище данных. © MIRANTIS 2013 PAGE 17
18.
Отказоустойчивость
Все узлы равны — нету «главной ноды», «управляющей ноды», «мастер-узла» и прочих Single-point-of-failure При выбывании ноды перебалансировка кольца происходит так, чтобы минимизировать перемещение данных Функция Read-Repair позволяет восстановить устаревшие данные после возвращения ноды в строй при наличии достаточного количества реплик © MIRANTIS 2013 PAGE 18
19.
Apache Cassandra –
это... Распределенное, отказоустойчивое, масштабируемое, колонко-ориентированное, управляемо-согласованное хранилище данных. © MIRANTIS 2013 PAGE 19
20.
Мсштабируем • Горизонтально • Легко
и просто • Автоматизированно © MIRANTIS 2013 PAGE 20
21.
Apache Cassandra –
это... Распределенное, отказоустойчивое, масштабируемое, колонко-ориентированное, управляемо-согласованное хранилище данных. © MIRANTIS 2013 PAGE 21
22.
Модель данных
Нет фиксированной схемы ALTER TABLE? Забудьте как страшный сон Разреженные (sparse) таблицы — у каждой строки свой набор колонок Имена колонок — любого типа данных, в том числе композитные Всѐ что нужно выбрать — порядок сортировки колонок в «таблице» © MIRANTIS 2013 PAGE 22
23.
Модель данных
Keyspace ColumnFamily Row Ключ Колонка Имя Значение Колонка … … © MIRANTIS 2013 PAGE 23
24.
Модель данных • Ячейка
© MIRANTIS 2013 PAGE 24
25.
Модель данных • Ячейка •
Строка © MIRANTIS 2013 PAGE 25
26.
Модель данных • Ячейка •
Строка • Column Family © MIRANTIS 2013 PAGE 26
27.
Запись данных • Данные
сохраняются в in-memory структуру данных — memtable — и в commit log на диск • Периодически memtable сохраняется на диск в SSTable файл (SortedStringsTable). Commit log при этом очищается. • SSTable — immutable, т. е. каждая операция flush создает новый файл © MIRANTIS 2013 PAGE 27
28.
Запись данных
© MIRANTIS 2013 PAGE 28
29.
Чтение данных
Данные читаются и из memtable (из памяти), и с диска (из SSTable-файлов) Так как SSTable-файл являются immutable, то различные колонки одной строки могут находиться в разных файлах Существуют несколько механизмов кэширования и дополнительной индексации © MIRANTIS 2013 PAGE 29
30.
Чтение данных
© MIRANTIS 2013 PAGE 30
31.
Apache Cassandra –
это... Распределенное, отказоустойчивое, масштабируемое, колонко-ориентированное, управляемо-согласованное хранилище данных. © MIRANTIS 2013 PAGE 31
32.
Совсем без "С"
– плохо © MIRANTIS 2013 PAGE 32
33.
Eventual Consistency Невозможно
гарантировать, что непосредственно после завершения обновления данных операция чтения вернѐт обновленное значение. Гарантируется, что при отсутствии повторных обновлений через некоторое время данный станут доступны. Окно несогласованности(inconsistency window) - время, проходящее между операцией обновления и доступностью обновленных данных для чтения. Задача: минимизировать окно несогласованности при минимальных жертвах со стороны доступности и устойчивости к потере связи между сегментами сети. © MIRANTIS 2013 PAGE 33
34.
Управляемая согласованность
Replication Factor (N) - количество узлов хранящих реплики данных Read Consistency Level (R) — количество (идентичных) реплик данных, которых необходимо получить для того, чтобы операция чтения считалась успешной Write Consistency Level (W) — количество реплик данных, которые необходимо успешно записать на узлах для того, чтобы операция записи считалась успешной © MIRANTIS 2013 PAGE 34
35.
Управляемая согласованность
R + W >N © MIRANTIS 2013 PAGE 35
36.
Реализация в Cassandra
Replication Factor (N) задается на уровне конфигурации Consistency Level можно установить отдельно для каждой операции © MIRANTIS 2013 PAGE 36
37.
Реализация в Cassandra
Запись Чтение Уровень Значение Уровень Значение Zero Пустил-и-забыл One Чтение одной реплики Any Доставка на кластер Quorum Чтение N/2+1реплик One Коммит на одну ноду All Чтение всех реплик Quorum Коммит на N/2+1 нод All Коммит на все ноды © MIRANTIS 2013 PAGE 37
38.
Реализация в Cassandra
Запись Чтение Уровень Значение Уровень Значение Zero Пустил-и-забыл One Чтение одной реплики Any Доставка на кластер Quorum Чтение N/2+1реплик One Коммит на одну ноду All Чтение всех реплик Quorum Коммит на N/2+1 нод All Коммит на все ноды Слабая согласованность © MIRANTIS 2013 PAGE 38
39.
Реализация в Cassandra
Запись Чтение Уровень Значение Уровень Значение Zero Пустил-и-забыл One Чтение одной реплики Any Доставка на кластер Quorum Чтение N/2+1реплик One Коммит на одну ноду All Чтение всех реплик Quorum Коммит на N/2+1 нод All Коммит на все ноды Сильная согласованность © MIRANTIS 2013 PAGE 39
40.
Использование • Низкий уровень
• Thrift – интерфейсный протокол низкого уровня • CQL и cqlsh – язык запросов и shell для их выполнения • Cassandra-cli – простая утилита для простых запросов • Высокий уровень • Десятки разных клиентов для разных платформ: • http://wiki.apache.org/cassandra/ClientOptions • MirantisCassandrom – в следующей части © MIRANTIS 2013 PAGE 40
41.
Спасибо за внимание
Вопросы? © MIRANTIS 2013 PAGE 41