Распределённая отказоустойчивая колоночная СУБД Apache Cassandra

Apache Cassandra — распределенная колоночная система управления базами данных, относящаяся к классу NoSQL. Отлично подходит для надёжного хранения большого количества данных, поступающих с высокой скоростью.

Изначально она была разработана в Facebook, но в 2009 году передана в фонд Apache Software Foundation. Промышленные решения на базе Cassandra развёрнуты в компаниях Cisco, IBM, Reddit, Digg, Rackspace, Apple и Twitter.

СУБД написана на Java и обеспечивает практически линейную масштабируемость при увеличении объёма данных. Cassandra — отказоустойчивая СУБД: помещённые в базу данные автоматически реплицируются на несколько узлов распредёленной сети или даже равномерно распределяются в нескольких дата-центрах. При сбое узла его функции на лету подхватываются другими узлами. Добавление новых узлов в кластер и возвращение в строй сбойных производится на лету, без дополнительного ручного вмешательства и переконфигурации других узлов.

Для взаимодействия с базой данных используется язык формирования структурированных запросов CQL (Cassandra Query Language). CQL в некоторой степени сходен с SQL, но всё же отличается по функциональным возможностям.

Мы в своей работе ранее использовали Apache Cassandra, но впоследствии перешли к использованию СУБД ScyllaDB. ScyllaDB архитектурно практически полностью повторяет Cassandra и использует тот же самый CQL, но написана на C++ для повышения производительности.

Scylla — распределённая отказоустойчивая колоночная СУБД с открытым исходным кодом.

ScyllaDB была создана на основе архитектуры Apache Cassandra с целью достижения более высокой производительности: повышения пропускной способности и снижения задержек. Как и Cassandra, Scylla поддерживает язык запросов CQL и формат файлов SSTable.

Узнать больше →

Тематические технологии:

Поисковая система ElasticSearch
СУБД Redis
PostgreSQL — объектно-реляционная СУБД
CEPH — распределенная система хранения

Cтатьи по теме:

Реляционные базы данных и NoSQL-хранилища
13.03.2019  |  Статьи  —  СУБД  /  хранение данных  /  SQL  /  NoSQL  /  серверное ПО
Базы данных служат для хранения и обработки данных. Бывают реляционные (SQL) и нереляционные (NoSQL) системы управления базами данных.
Быстрый поиск на сайте, используя ElasticSearch или Sphinx
Sphinx и ElasticSearch — это поисковые «движки», которые обеспечивают более быстрый поиск и фильтрацию по сравнению с реляционными базами данных, а также обеспечивают возможность использования многих полезных функций поиска, например, учитывают морфологию языка, осуществляют фасеточный поиск, работают со стоп-словами, обеспечивают выборочную индексацию и позволяют производить настройку формулы определения релевантности документов.
Ускоряем работу сайта при помощи кеширования на базе Memcached
Memcached — это хранилище «ключ => значение», использование которого очень эффективно для ускорения работы сайта или веб-приложения.
MongoDB — документо-ориентированная база данных (NoSQL)
MongoDB — это NoSQL хранилище данных, крайне удобное для хранения информации, которая не может быть нормально структурирована в рамках реляционных баз данных.
Масштабирование баз данных — партиционирование, репликация и шардинг
СУБД — это очень часто «узкое место» в производительности веб-приложений. В момент, когда сервер баз данных не может справится с нагрузками, производится масштабирование. Рассмотрим основные способы увеличения производительности СУБД.
Ускоряем работу сайта: используем Redis для кеширования и хранения данных
Redis — сетевое журналируемое хранилище данных типа «ключ — значение», которое обрабатывает данные в оперативной памяти и обладает механизмами снимков и журналирования для обеспечения постоянного хранения. Хранилище поддерживает работу с пятью типами данных: со строками, списками, хешами, обычными и сортируемыми множествами.
MySQL — система управления базами данных
MySQL — это реляционная система управления базами данных с открытым исходным кодом. В настоящее время эта СУБД одна из наиболее популярных в веб-приложениях — подавляющее большинство CMS использует именно MySQL (часто только её, без альтернатив), а почти все веб-фреймворки поддерживают MySQL уже на уровне базовой конфигурации (без дополнительных модулей).