SlideShare a Scribd company logo
За гранью NoSQL: NewSQL на Cassandra 
Олег Анастасьев 
Ведущий разработчик 
Одноклассники, ok.ru
Cassandra @ 
*Используем с 2010 года 
-0.6, 1.2, 2.0 
* Сейчас 
-27 кластеров 
-500 нод 
-300 TB данных 
*Самый быстрый: 1M оп/сек (48 нод) 
*Самый большой: 130TB (96 нод)
SQL Server 2005 
*Используем с начала времен 
* 200 серверов, 50 TB данных 
*Шардинг 
• F(Entity_Id) -> Token -> Node 
• F(Master_Id) === F(Detail_Id) 
• Группировка таблиц по функциональной близости 
Группа Локальной Транзакции
Fast SQL Server 2005 
* DB JOIN 
* Foreign key constraints 
* Stored Procs, Triggers 
* Read uncommitted (noTx) 
* Короткие транзакции <100ms 
*Нет массовых UPDATE, DELETE 
* Запросы только по индексам
Проблемы c SQL 
* Ручное масштабирование 
*Downtime при работах c БД, ДЦ 
*Скорость на запись 
* BSoD 
*Плохая отказоустойчивость 
1 БД сервер = раз в 3 года 
64 сервера = раз в 3 недели 
200 серверов > раза в неделю
Отказоустойчивость 
http://en.wikipedia.org/wiki/High-availability_cluster
Отказоустойчивость 
ЦОД-1
Отказоустойчивость 
ЦОД-1
Отказоустойчивость 
ЦОД-2 ЦОД-1 
ЦОД-3 ЦОД-4
Отказоустойчивость SQL 
* Дорогое оборудование 
-x10 стоимости 1U сервера 
* Глючно и сложно 
-Штормит при failover 
-10 % переключений неудаются 
* Её нет 
-при отказе ЦОД 
Нужно новое хранилище
Простая транзакция 
TX.start(“Albums”, id); 
Album album = albums.lock(id); 
Photo photo = photos.create(…); 
if (photo.status == PUBLIC ) { 
album.incPublicPhotosCount(); 
} 
TX.commit(); 
* Чтение - модификация - изменение 
* Разные сущности, несколько таблиц 
* Возможна конкурентная модификация
Новое хранилище 
* Программистам: 
-ACID 
-SQL 
* Админам: 
-Чтение и запись при отказе ЦОД 
-Масштабируемость на ходу 
-Дешевые сервера 
*Фиксабельный код (OpenSource,Java)
SQL ? 
* Масштабируемость 
*Отказоустойчивость 
- Кластер 
- Конфликты 
- SQL 
NoSQL ? 
*ACID 
* SQL 
* Cassandra 2 CQL
Cassandra 2.0 
CREATE TABLE photos 
(id bigint KEY, owner bigint,…) 
SELECT * FROM photos WHERE id=? 
UPDATE photos SET … WHERE id=? 
* Что еще есть: 
-Масштабируемость 
-Скорость https://github.com/jbellis/YCSB 
-Кворумы, speculative retry 
-Batchlog 
-“Lightweight” transactions ?
Cassandra 2.0 
* Что дописать: 
-ACID транзакции 
-OLTP индексы 
-Генератор монотонных ид 
CREATE TABLE photos 
(id bigint KEY, owner bigint,…) 
// OLAP index 
SELECT * FROM photos WHERE geomark=‘SPB’; 
// OLTP index 
SELECT * FROM photos WHERE owner=? AND status=?;
Cassandra 
Gossip & Messaging 
clients 
C* Storage nodes 
“Heartbeat” 
Схема данных 
Схема 
партиционирования 
Топология кластера 
C*One 
Update 
services 
C*One
Клиенты 
clients 
* Fat client протокол 
* Координатор = клиент 
* Надежнее, быстрее
Клиенты 
clients 
NoTx 
C*One 
Update 
services 
In Tx
C*One Update Srvs 
* Управляет блокировками 
* Выдает монотонный timestamp 
Lamport Timestamp 
https://ru.wikipedia.org/wiki/Часы_Лэмпорта 
* Управляет транзакциями 
* … и изменением данных в них
C*One 
Update 
services 
Блокировки 
00 
10 
20 
30 
50 
40 
* Мастера групп транзакций 
* Простые блокировки в памяти
ЦОД-1 ЦОД-2 ЦОД-3 
00 
10 
20 
Heartbeat 
Quorum 
30 
50 
40 
Отказы 
* 50ms тик 
* G1 GC 
* 200ms до обнаружения отказа
Резервирования 
50 
50’ 
50” 
clients 
> 800 
start Tx 
* Протокол выбора мастера 
* Спекулятивный старт транзакции
Нерожденные транзакции 
* Запросы на открытие в очередь 
-(в памяти резервных) 
-Удаляются через таймаут 
* Если происходит отказ мастера 
-отрабатываем их из очереди 
-посылаем ответ клиенту 
(отказывается, если уже открыл)
Tx start 
clients 
Таблица блокировок 
1. StartTx 
Состояние транзакции 
id=1, a=1, b=1 
2. Lock 
3. Read 
4. Cache 
RAM
Tx write 
clients 
Таблица блокировок 
Состояние транзакции 
1. UPDATE 
id=1, a=1, b=1 
2. File 
2, 2 
RAM
Tx read 
clients 
Таблица блокировок 
Состояние транзакции 
1. Read 
id=1, a=12, b=12 
2. Read ? 
3. resolve() 
RAM
Tx commit 
clients 
Таблица блокировок 
Состояние транзакции 
1. Commit 
id=1, a=2, b=2 
RAM 
2 
LOGGED BATCH 
3 
4. Ack
Tx rollback 
clients 
1. Rollback 
RAM 
Таблица блокировок 
Состояние транзакции 
id=1, a=2, b=2
ACID 
*Atomicity 
- logged batch или ничего 
*Consistency 
- приложение 
* Isolation 
- Блокировки 
- Read Committed 
*Durability 
- кворумные чтения и запись в 
Cassandra
Индексы в Cassandra 2 
CREATE TABLE photos ( 
id bigint primary key, 
owner bigint, 
modified timestamp 
SELECT * 
WHERE owner=? 
AND modified>? 
*CREATE INDEX (owner, modified ) ? 
-Нет составных индексов 
*CREATE INDEX (owner), filter in RAM ? 
-high cardinality 
-Не скалируется, очень медленно читать 
-100K удалений макс
Primary Key 
Индексы в C*One 
id owner modified caption access … 
1 111 9.10.2014 “kitty miau” PUB … 
INDEX i1 ON photos (owner, modified) 
VALUES (caption,access,…); 
Primary Key 
owner modified id caption access … 
111 9.10.2014 1 “kitty miau” PUB … 
Partition Key Clustering Key 
SELECT * 
WHERE owner=? 
AND modified>? 
SELECT * FROM i1_test 
WHERE owner=? 
AND modified>?
Index update 
clients 
UPDATE 
RAM 
Состояние транзакции 
iid=1,, a=12,, b=12 
idx: a=2, b=2, id=1 
2. Schema 
idxwrites()
ACID 
*Индексы “как в SQL” 
-Консистентные 
-По нескольким полям 
-Скалируемые и быстродействующие 
-Встроенные в язык 
-Без написания прикладного кода 
-Не влияющие на скорость записи 
* Генератор монотонных ид 
-Без дубликатов 
-SELECT nextval FROM seqName;
Фотки 
* 11 миллиардов записей 
* 80k reads/sec, 2k-8k tx/sec 
* SQL 
-RF=1 (RAID 10) 
-32 MS SQL + 16 standby + 10 backup = 58 
-загружена на 100% 
* После 
-RF=3 ( в разных ЦОД ) 
-63 C* + 6 upd = 69, 1/3 по цене 
-загружена на 30%
Скорость
Фотки: результаты 
*Ошибки: 8500 в день 
*Длительность транзакции: <40ms 
*Commit latency avg: <2ms 
* Read, write, avg <2ms, 99% ~ 3ms 
1/100
Что сделано в C* 
* 21 патч в issues.apache.org 
-mainly range thombstone and queries fixes 
* более быстрый batchlog manager 
(CASSANDRA-6134) 
* более надежный always retry policy 
(CASSANDRA-6866) 
*Night of the Living Dead 
(CASSANDRA-7872) 
* Read repair of range tombstones 
(CASSANDRA-6863,CASSANDRA-8013)
СПАСИБО ! 
Олег Анастасьев 
oa@ok.ru 
ok.ru/oa 
@m0nstermind 
slideshare.net/m0nstermind 
http://v.ok.ru

More Related Content

What's hot

Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Ontico
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Ontico
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Ontico
 
Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Ontico
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Ontico
 
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
Ontico
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Ontico
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Ontico
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Ontico
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Ontico
 
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Ontico
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Ontico
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
Ontico
 
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Alexey Lesovsky
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
Ontico
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Ontico
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Ontico
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
Ontico
 

What's hot (20)

Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
 
Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
 
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 

Viewers also liked

Базы данных лекция №12
Базы данных лекция №12Базы данных лекция №12
Базы данных лекция №12
Vitaliy Pak
 
Базы данных лекция №5
Базы данных лекция №5Базы данных лекция №5
Базы данных лекция №5
Vitaliy Pak
 
Базы данных лекция №11
Базы данных лекция №11Базы данных лекция №11
Базы данных лекция №11
Vitaliy Pak
 
Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3
Pavel Kravchenko, PhD
 
Транзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаТранзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаNikolay Gondin
 
Базы данных лекция №9
Базы данных лекция №9Базы данных лекция №9
Базы данных лекция №9
Vitaliy Pak
 
Lecture 2. mobile business strategy
Lecture 2. mobile business strategyLecture 2. mobile business strategy
Lecture 2. mobile business strategy
Vitaliy Pak
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Ontico
 

Viewers also liked (8)

Базы данных лекция №12
Базы данных лекция №12Базы данных лекция №12
Базы данных лекция №12
 
Базы данных лекция №5
Базы данных лекция №5Базы данных лекция №5
Базы данных лекция №5
 
Базы данных лекция №11
Базы данных лекция №11Базы данных лекция №11
Базы данных лекция №11
 
Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3
 
Транзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаТранзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практика
 
Базы данных лекция №9
Базы данных лекция №9Базы данных лекция №9
Базы данных лекция №9
 
Lecture 2. mobile business strategy
Lecture 2. mobile business strategyLecture 2. mobile business strategy
Lecture 2. mobile business strategy
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
 

Similar to За гранью NoSQL: NewSQL на Cassandra

pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
Михаил Тюрин
 
Использование Sedna в WEB
Использование Sedna в WEBИспользование Sedna в WEB
Использование Sedna в WEB
Alexandre Kalendarev
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Vadim Nesterov
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
DevDay
 
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Ontico
 
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Badoo Development
 
Обзор Redis storage / Symfony Camp UA 2011
Обзор Redis storage / Symfony Camp UA 2011Обзор Redis storage / Symfony Camp UA 2011
Обзор Redis storage / Symfony Camp UA 2011
Igor Brovchenko
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
ARCCN
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Yandex
 
"Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7""Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7"
Badoo Development
 
MySQL 101
MySQL 101MySQL 101
MySQL 101
Andrew Aksyonoff
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Olga Lavrentieva
 
Обработка дедлоков в MySql
Обработка дедлоков в MySqlОбработка дедлоков в MySql
Обработка дедлоков в MySqlspariev
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
Andrei Poliakov
 
История успеха Яндекс.Почты
История успеха Яндекс.ПочтыИстория успеха Яндекс.Почты
История успеха Яндекс.Почты
dev1ant
 
Devconf2013 new-features-in-mysql-and-mariadb
Devconf2013 new-features-in-mysql-and-mariadbDevconf2013 new-features-in-mysql-and-mariadb
Devconf2013 new-features-in-mysql-and-mariadbSergey Petrunya
 
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)Ontico
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Tanya Denisyuk
 
Web осень 2013 лекция 9
Web осень 2013 лекция 9Web осень 2013 лекция 9
Web осень 2013 лекция 9Technopark
 
Java tricks for high-load server programming
Java tricks for high-load server programmingJava tricks for high-load server programming
Java tricks for high-load server programmingAndrei Pangin
 

Similar to За гранью NoSQL: NewSQL на Cassandra (20)

pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
 
Использование Sedna в WEB
Использование Sedna в WEBИспользование Sedna в WEB
Использование Sedna в WEB
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
 
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
 
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
 
Обзор Redis storage / Symfony Camp UA 2011
Обзор Redis storage / Symfony Camp UA 2011Обзор Redis storage / Symfony Camp UA 2011
Обзор Redis storage / Symfony Camp UA 2011
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
"Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7""Новые возможности MySQL 5.7"
"Новые возможности MySQL 5.7"
 
MySQL 101
MySQL 101MySQL 101
MySQL 101
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)
 
Обработка дедлоков в MySql
Обработка дедлоков в MySqlОбработка дедлоков в MySql
Обработка дедлоков в MySql
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
История успеха Яндекс.Почты
История успеха Яндекс.ПочтыИстория успеха Яндекс.Почты
История успеха Яндекс.Почты
 
Devconf2013 new-features-in-mysql-and-mariadb
Devconf2013 new-features-in-mysql-and-mariadbDevconf2013 new-features-in-mysql-and-mariadb
Devconf2013 new-features-in-mysql-and-mariadb
 
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
Ускорение веб-аналитики с использованием Column-oriented СУБД (Иван Авсеянко)
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 
Web осень 2013 лекция 9
Web осень 2013 лекция 9Web осень 2013 лекция 9
Web осень 2013 лекция 9
 
Java tricks for high-load server programming
Java tricks for high-load server programmingJava tricks for high-load server programming
Java tricks for high-load server programming
 

More from odnoklassniki.ru

Distributed systems at ok.ru #rigadevday
Distributed systems at ok.ru #rigadevdayDistributed systems at ok.ru #rigadevday
Distributed systems at ok.ru #rigadevday
odnoklassniki.ru
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015
odnoklassniki.ru
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
odnoklassniki.ru
 
Распределенные системы в Одноклассниках
Распределенные системы в ОдноклассникахРаспределенные системы в Одноклассниках
Распределенные системы в Одноклассниках
odnoklassniki.ru
 
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
odnoklassniki.ru
 
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр ТобольКадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
odnoklassniki.ru
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
odnoklassniki.ru
 
Аварийный дамп – чёрный ящик упавшей JVM. Андрей Паньгин
Аварийный дамп – чёрный ящик упавшей JVM. Андрей ПаньгинАварийный дамп – чёрный ящик упавшей JVM. Андрей Паньгин
Аварийный дамп – чёрный ящик упавшей JVM. Андрей Паньгин
odnoklassniki.ru
 
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
odnoklassniki.ru
 
Управление тысячами серверов в Одноклассниках. Алексей Чудов.
Управление тысячами серверов в Одноклассниках. Алексей Чудов.Управление тысячами серверов в Одноклассниках. Алексей Чудов.
Управление тысячами серверов в Одноклассниках. Алексей Чудов.
odnoklassniki.ru
 
Java Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVMJava Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVM
odnoklassniki.ru
 
Незаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераНезаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервера
odnoklassniki.ru
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
odnoklassniki.ru
 
Как, используя Lucene, построить высоконагруженную систему поиска разнородных...
Как, используя Lucene, построить высоконагруженную систему поиска разнородных...Как, используя Lucene, построить высоконагруженную систему поиска разнородных...
Как, используя Lucene, построить высоконагруженную систему поиска разнородных...
odnoklassniki.ru
 

More from odnoklassniki.ru (14)

Distributed systems at ok.ru #rigadevday
Distributed systems at ok.ru #rigadevdayDistributed systems at ok.ru #rigadevday
Distributed systems at ok.ru #rigadevday
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Распределенные системы в Одноклассниках
Распределенные системы в ОдноклассникахРаспределенные системы в Одноклассниках
Распределенные системы в Одноклассниках
 
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
 
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр ТобольКадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
 
Аварийный дамп – чёрный ящик упавшей JVM. Андрей Паньгин
Аварийный дамп – чёрный ящик упавшей JVM. Андрей ПаньгинАварийный дамп – чёрный ящик упавшей JVM. Андрей Паньгин
Аварийный дамп – чёрный ящик упавшей JVM. Андрей Паньгин
 
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
 
Управление тысячами серверов в Одноклассниках. Алексей Чудов.
Управление тысячами серверов в Одноклассниках. Алексей Чудов.Управление тысячами серверов в Одноклассниках. Алексей Чудов.
Управление тысячами серверов в Одноклассниках. Алексей Чудов.
 
Java Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVMJava Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVM
 
Незаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераНезаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервера
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
 
Как, используя Lucene, построить высоконагруженную систему поиска разнородных...
Как, используя Lucene, построить высоконагруженную систему поиска разнородных...Как, используя Lucene, построить высоконагруженную систему поиска разнородных...
Как, используя Lucene, построить высоконагруженную систему поиска разнородных...
 

За гранью NoSQL: NewSQL на Cassandra

  • 1. За гранью NoSQL: NewSQL на Cassandra Олег Анастасьев Ведущий разработчик Одноклассники, ok.ru
  • 2. Cassandra @ *Используем с 2010 года -0.6, 1.2, 2.0 * Сейчас -27 кластеров -500 нод -300 TB данных *Самый быстрый: 1M оп/сек (48 нод) *Самый большой: 130TB (96 нод)
  • 3. SQL Server 2005 *Используем с начала времен * 200 серверов, 50 TB данных *Шардинг • F(Entity_Id) -> Token -> Node • F(Master_Id) === F(Detail_Id) • Группировка таблиц по функциональной близости Группа Локальной Транзакции
  • 4. Fast SQL Server 2005 * DB JOIN * Foreign key constraints * Stored Procs, Triggers * Read uncommitted (noTx) * Короткие транзакции <100ms *Нет массовых UPDATE, DELETE * Запросы только по индексам
  • 5. Проблемы c SQL * Ручное масштабирование *Downtime при работах c БД, ДЦ *Скорость на запись * BSoD *Плохая отказоустойчивость 1 БД сервер = раз в 3 года 64 сервера = раз в 3 недели 200 серверов > раза в неделю
  • 10. Отказоустойчивость SQL * Дорогое оборудование -x10 стоимости 1U сервера * Глючно и сложно -Штормит при failover -10 % переключений неудаются * Её нет -при отказе ЦОД Нужно новое хранилище
  • 11. Простая транзакция TX.start(“Albums”, id); Album album = albums.lock(id); Photo photo = photos.create(…); if (photo.status == PUBLIC ) { album.incPublicPhotosCount(); } TX.commit(); * Чтение - модификация - изменение * Разные сущности, несколько таблиц * Возможна конкурентная модификация
  • 12. Новое хранилище * Программистам: -ACID -SQL * Админам: -Чтение и запись при отказе ЦОД -Масштабируемость на ходу -Дешевые сервера *Фиксабельный код (OpenSource,Java)
  • 13. SQL ? * Масштабируемость *Отказоустойчивость - Кластер - Конфликты - SQL NoSQL ? *ACID * SQL * Cassandra 2 CQL
  • 14. Cassandra 2.0 CREATE TABLE photos (id bigint KEY, owner bigint,…) SELECT * FROM photos WHERE id=? UPDATE photos SET … WHERE id=? * Что еще есть: -Масштабируемость -Скорость https://github.com/jbellis/YCSB -Кворумы, speculative retry -Batchlog -“Lightweight” transactions ?
  • 15. Cassandra 2.0 * Что дописать: -ACID транзакции -OLTP индексы -Генератор монотонных ид CREATE TABLE photos (id bigint KEY, owner bigint,…) // OLAP index SELECT * FROM photos WHERE geomark=‘SPB’; // OLTP index SELECT * FROM photos WHERE owner=? AND status=?;
  • 16. Cassandra Gossip & Messaging clients C* Storage nodes “Heartbeat” Схема данных Схема партиционирования Топология кластера C*One Update services C*One
  • 17. Клиенты clients * Fat client протокол * Координатор = клиент * Надежнее, быстрее
  • 18. Клиенты clients NoTx C*One Update services In Tx
  • 19. C*One Update Srvs * Управляет блокировками * Выдает монотонный timestamp Lamport Timestamp https://ru.wikipedia.org/wiki/Часы_Лэмпорта * Управляет транзакциями * … и изменением данных в них
  • 20. C*One Update services Блокировки 00 10 20 30 50 40 * Мастера групп транзакций * Простые блокировки в памяти
  • 21. ЦОД-1 ЦОД-2 ЦОД-3 00 10 20 Heartbeat Quorum 30 50 40 Отказы * 50ms тик * G1 GC * 200ms до обнаружения отказа
  • 22. Резервирования 50 50’ 50” clients > 800 start Tx * Протокол выбора мастера * Спекулятивный старт транзакции
  • 23. Нерожденные транзакции * Запросы на открытие в очередь -(в памяти резервных) -Удаляются через таймаут * Если происходит отказ мастера -отрабатываем их из очереди -посылаем ответ клиенту (отказывается, если уже открыл)
  • 24. Tx start clients Таблица блокировок 1. StartTx Состояние транзакции id=1, a=1, b=1 2. Lock 3. Read 4. Cache RAM
  • 25. Tx write clients Таблица блокировок Состояние транзакции 1. UPDATE id=1, a=1, b=1 2. File 2, 2 RAM
  • 26. Tx read clients Таблица блокировок Состояние транзакции 1. Read id=1, a=12, b=12 2. Read ? 3. resolve() RAM
  • 27. Tx commit clients Таблица блокировок Состояние транзакции 1. Commit id=1, a=2, b=2 RAM 2 LOGGED BATCH 3 4. Ack
  • 28. Tx rollback clients 1. Rollback RAM Таблица блокировок Состояние транзакции id=1, a=2, b=2
  • 29. ACID *Atomicity - logged batch или ничего *Consistency - приложение * Isolation - Блокировки - Read Committed *Durability - кворумные чтения и запись в Cassandra
  • 30. Индексы в Cassandra 2 CREATE TABLE photos ( id bigint primary key, owner bigint, modified timestamp SELECT * WHERE owner=? AND modified>? *CREATE INDEX (owner, modified ) ? -Нет составных индексов *CREATE INDEX (owner), filter in RAM ? -high cardinality -Не скалируется, очень медленно читать -100K удалений макс
  • 31. Primary Key Индексы в C*One id owner modified caption access … 1 111 9.10.2014 “kitty miau” PUB … INDEX i1 ON photos (owner, modified) VALUES (caption,access,…); Primary Key owner modified id caption access … 111 9.10.2014 1 “kitty miau” PUB … Partition Key Clustering Key SELECT * WHERE owner=? AND modified>? SELECT * FROM i1_test WHERE owner=? AND modified>?
  • 32. Index update clients UPDATE RAM Состояние транзакции iid=1,, a=12,, b=12 idx: a=2, b=2, id=1 2. Schema idxwrites()
  • 33. ACID *Индексы “как в SQL” -Консистентные -По нескольким полям -Скалируемые и быстродействующие -Встроенные в язык -Без написания прикладного кода -Не влияющие на скорость записи * Генератор монотонных ид -Без дубликатов -SELECT nextval FROM seqName;
  • 34. Фотки * 11 миллиардов записей * 80k reads/sec, 2k-8k tx/sec * SQL -RF=1 (RAID 10) -32 MS SQL + 16 standby + 10 backup = 58 -загружена на 100% * После -RF=3 ( в разных ЦОД ) -63 C* + 6 upd = 69, 1/3 по цене -загружена на 30%
  • 36. Фотки: результаты *Ошибки: 8500 в день *Длительность транзакции: <40ms *Commit latency avg: <2ms * Read, write, avg <2ms, 99% ~ 3ms 1/100
  • 37. Что сделано в C* * 21 патч в issues.apache.org -mainly range thombstone and queries fixes * более быстрый batchlog manager (CASSANDRA-6134) * более надежный always retry policy (CASSANDRA-6866) *Night of the Living Dead (CASSANDRA-7872) * Read repair of range tombstones (CASSANDRA-6863,CASSANDRA-8013)
  • 38. СПАСИБО ! Олег Анастасьев oa@ok.ru ok.ru/oa @m0nstermind slideshare.net/m0nstermind http://v.ok.ru