Введение в Apache Cassandra

Опубликовано: 8 Июля, 2021

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 в кластере играют одинаковую роль. Каждый узел независим, в то же время взаимосвязан с другими узлами. Каждый узел в кластере может принимать запросы на чтение и запись, независимо от того, где на самом деле находятся данные в кластере. Когда узел выходит из строя, запрос на чтение / запись может обслуживаться другими узлами в сети.

Особенности Кассандры:
Кассандра стала популярной из-за своих технических особенностей. Вот некоторые особенности Кассандры:

  1. Простое распределение данных -
    Он обеспечивает гибкость для распределения данных там, где вам нужно, путем репликации данных в нескольких центрах обработки данных.
    Например:
    Если есть 5 узлов, скажем, N1, N2, N3, N4, N5, и с помощью алгоритма разделения мы определим диапазон токенов и распределяем данные соответственно. У каждого узла есть определенный диапазон токенов, в котором будут распространяться данные. давайте посмотрим на диаграмму для лучшего понимания.

    Структура кольца с диапазоном токенов.

  2. Гибкое хранение данных -
    Cassandra поддерживает все возможные форматы данных, включая структурированные, полуструктурированные и неструктурированные. Он может динамически вносить изменения в ваши структуры данных в соответствии с вашими потребностями.
  3. Эластичная масштабируемость -
    Cassandra обладает высокой масштабируемостью и позволяет добавлять дополнительное оборудование для обслуживания большего числа клиентов и данных в соответствии с требованиями.
  4. Быстро пишет -
    Cassandra была разработана для работы на дешевом стандартном оборудовании. Cassandra выполняет невероятно быструю запись и может хранить сотни терабайт данных без ущерба для эффективности чтения.
  5. Всегда на архитектуре -
    В Cassandra нет единой точки отказа, и она постоянно доступна для критически важных бизнес-приложений, которые не могут позволить себе отказ.
  6. Высокая производительность в линейном масштабе -
    Cassandra линейно масштабируется, поэтому она увеличивает пропускную способность по мере увеличения количества узлов в кластере. Он поддерживает быстрое время отклика.
  7. Сопровождение сделки -
    Cassandra поддерживает такие свойства, как атомарность, согласованность, изоляция и долговечность (ACID) транзакций.