Введение в Apache Cassandra
Cassandra - это распределенная система управления базами данных с открытым исходным кодом и широким хранилищем столбцов, база данных NoSQL для обработки большого количества данных на многих стандартных серверах, которая обеспечивает высокую доступность без единой точки отказа. Он написан на Java и разработан Apache Software Foundation.
Авинаш Лакшман и Прашант Малик изначально разработали Cassandra в Facebook для поддержки функции поиска по входящим сообщениям Facebook. Facebook выпустил Cassandra как проект с открытым исходным кодом на коде Google в июле 2008 года. В марте 2009 года он стал проектом Apache Incubator, а в феврале 2010 года он стал проектом верхнего уровня. Благодаря своим выдающимся техническим характеристикам Кассандра становится настолько популярной.
Введение в Кассандру
Apache Cassandra используется для управления очень большими объемами структурных данных, разбросанных по всему миру. Он обеспечивает высокодоступный сервис без единой точки отказа. Ниже перечислены некоторые особенности Apache Cassandra:
- Он масштабируемый, отказоустойчивый и согласованный.
- Это база данных, ориентированная на столбцы.
- Его распределенный дизайн основан на Dynamo от Amazon и его модели данных на Big table Google.
- Он создан в Facebook и резко отличается от систем управления реляционными базами данных.
Cassandra реализует модель репликации в стиле Dynamo без единой точки отказа, но добавляет более мощную модель данных «семейства столбцов». Cassandra используется некоторыми крупнейшими компаниями, такими как Facebook, Twitter, Cisco, Rackspace, eBay, Netflix и другими.
Целью разработки Cassandra является обработка рабочих нагрузок с большими данными на нескольких узлах без единой точки отказа. Cassandra имеет одноранговую распределенную систему по своим узлам, и данные распределяются между всеми узлами кластера.
Все узлы Cassandra в кластере играют одинаковую роль. Каждый узел независим, в то же время взаимосвязан с другими узлами. Каждый узел в кластере может принимать запросы на чтение и запись, независимо от того, где на самом деле находятся данные в кластере. Когда узел выходит из строя, запрос на чтение / запись может обслуживаться другими узлами в сети.
Особенности Кассандры:
Кассандра стала популярной из-за своих технических особенностей. Вот некоторые особенности Кассандры:
- Простое распределение данных -
Он обеспечивает гибкость для распределения данных там, где вам нужно, путем репликации данных в нескольких центрах обработки данных.
Например:
Если есть 5 узлов, скажем, N1, N2, N3, N4, N5, и с помощью алгоритма разделения мы определим диапазон токенов и распределяем данные соответственно. У каждого узла есть определенный диапазон токенов, в котором будут распространяться данные. давайте посмотрим на диаграмму для лучшего понимания.Структура кольца с диапазоном токенов.
- Гибкое хранение данных -
Cassandra поддерживает все возможные форматы данных, включая структурированные, полуструктурированные и неструктурированные. Он может динамически вносить изменения в ваши структуры данных в соответствии с вашими потребностями. - Эластичная масштабируемость -
Cassandra обладает высокой масштабируемостью и позволяет добавлять дополнительное оборудование для обслуживания большего числа клиентов и данных в соответствии с требованиями. - Быстро пишет -
Cassandra была разработана для работы на дешевом стандартном оборудовании. Cassandra выполняет невероятно быструю запись и может хранить сотни терабайт данных без ущерба для эффективности чтения. - Всегда на архитектуре -
В Cassandra нет единой точки отказа, и она постоянно доступна для критически важных бизнес-приложений, которые не могут позволить себе отказ. - Высокая производительность в линейном масштабе -
Cassandra линейно масштабируется, поэтому она увеличивает пропускную способность по мере увеличения количества узлов в кластере. Он поддерживает быстрое время отклика. - Сопровождение сделки -
Cassandra поддерживает такие свойства, как атомарность, согласованность, изоляция и долговечность (ACID) транзакций.