Cassandra Archiтектура и фактор репликации

Cassandra предназначен для обработки Big Data. CassandraОсновная особенность — хранить данные на нескольких узлах без единой точки отказа.

Причина такого рода CassandraАрхитектура 's была такова, что отказ оборудования мог произойти в любое время. Любой узел может быть отключен. В случае отказа могут быть использованы данные, хранящиеся в другом узле. Следовательно, Cassandra разработан с использованием распределенной архитектуры.

Cassandra хранит данные на разных узлах с использованием одноранговой распределенной архитектуры.

Все узлы обмениваются информацией друг с другом, используя Протокол сплетен. Сплетни – это протокол Cassandra с помощью которых узлы могут взаимодействовать друг с другом.

Компоненты Cassandra Archiтекстура

В состав входят следующие компоненты: Cassandra Archiтекстура:

Cassandra Archiтекстура
Cassandra ArchiДиаграмма тектуры

Узел

Узел — это место, где хранятся данные. Это базовый компонент Cassandra.

Центр обработки данных

Совокупность узлов называется центром обработки данных. Многие узлы относятся к категории центров обработки данных.

Cluster

Кластер представляет собой совокупность множества центров обработки данных.

Журнал фиксации

Каждая операция записи записывается в журнал фиксации. Журнал фиксации используется для восстановления после сбоя.

Mem-таблица

После записи данных в журнал фиксации данные записываются в Mem-таблицу. Данные временно записываются в Mem-таблицу.

Таблица SSTable

Когда таблица Mem достигает определенного порога, данные сбрасываются в дисковый файл SSTable.

Репликация данных в Cassandra

Поскольку в любой момент во время обработки данных может возникнуть проблема с оборудованием или соединение может быть отключено, необходимо найти решение, обеспечивающее резервное копирование в случае возникновения проблемы. Таким образом, данные реплицируются, чтобы исключить единую точку отказа.

Cassandra размещает реплики данных на разных узлах на основе этих двух факторов.

  • Место размещения следующей реплики определяется Стратегия репликации.
  • При этом общее количество реплик, размещенных на разных узлах, определяется Фактор репликации.

Один коэффициент репликации означает, что существует только одна копия данных, а три фактора репликации означают, что существует три копии данных на трех разных узлах.

Чтобы гарантировать отсутствие единой точки отказа, коэффициент репликации должен быть равен трем.

Существует два типа стратегий репликации. Cassandra.

SimpleStrategy в Cassandra

SimpleСтратегии используется, когда у вас только один центр обработки данных. SimpleStrategy размещает первую реплику на узле, выбранном разделителем. После этого оставшиеся реплики размещаются по часовой стрелке в кольце узлов.

Вот графическое представление SimpleStrategy:

SimpleStrategy в Cassandra
SimpleStrategy в Cassandra

Топология сетиСтратегия в Cassandra

NetworkTopologyСтратегия используется, когда у вас более двух центров обработки данных. В NetworkTopologyStrategy реплики задаются для каждого дата-центра отдельно. NetworkTopologyStrategy размещает реплики по кольцу по часовой стрелке, пока не достигнет первого узла в другой стойке. Эта стратегия пытается разместить реплики на разных стойках в одном центре обработки данных.

Это связано с тем, что иногда в стойке может возникнуть сбой или проблема. Тогда реплики на других узлах смогут предоставлять данные.

Вот графическое представление стратегии топологии сети:

Топология сетиСтратегия в Cassandra
Топология сетиСтратегия в Cassandra

Написать Operaция в Cassandra

Координатор отправляет запрос на запись репликам. Если все реплики работают, они получат запрос на запись независимо от их уровня согласованности.

Уровень согласованности определяет, сколько узлов ответят подтверждением успеха.

Узел ответит подтверждением успеха, если данные успешно записаны в журнал фиксации и мемТаблица.

Например, в одном дата-центре с коэффициентом репликации, равным трем, три реплики получат запрос на запись. Если уровень согласованности равен единице, только одна реплика ответит подтверждением успеха, а остальные две останутся бездействующими.

Предположим, если оставшиеся две реплики потеряют данные из-за сбоя узла или какой-либо другой проблемы, Cassandra сделает строку согласованной с помощью встроенного механизма восстановления в Cassandra.

Здесь объясняется, как происходит процесс записи в Cassandra,

  1. Когда на узел приходит запрос на запись, он в первую очередь записывается в журнал фиксации.
  2. Затем Cassandra записывает данные в mem-таблицу. Данные, записываемые в mem-таблицу при каждом запросе на запись, также записываются в журнал фиксации отдельно. Mem-таблица — это временно хранящиеся в памяти данные, а журнал фиксации регистрирует записи транзакций для целей резервного копирования.
  3. Когда таблица памяти заполнена, данные сбрасываются в файл данных SSTable.
Написать Operaция в Cassandra
Написать Operaция в Cassandra

Читать Operaция в Cassandra

Существует три типа запросов на чтение, которые координатор отправляет репликам.

  1. Прямой запрос
  2. Запрос дайджеста
  3. Прочитать заявку на ремонт

Координатор отправляет прямой запрос на одну из реплик. После этого координатор отправляет дайджест-запрос на количество реплик, указанное уровнем согласованности, и проверяет, являются ли возвращенные данные обновленными данными.

После этого координатор отправляет дайджест-запрос всем остальным репликам. Если какой-либо узел выдает устаревшее значение, запрос на восстановление фонового чтения обновит эти данные. Этот процесс называется механизмом восстановления чтения.

Резюме

  • В этом уроке объясняется Cassandra внутренняя архитектура и как Cassandra реплицирует, записывает и читает данные на разных этапах.
  • Кроме того, здесь объясняется, как Cassandra поддерживает уровень согласованности на протяжении всего процесса.
  • Компоненты Cassandra Archiтектура: Узел, Центр обработки данных, Cluster, Журнал коммитов, Mem-таблица, SSTable
  • Один коэффициент репликации означает, что существует только одна копия данных, а три фактора репликации означают, что существует три копии данных на трех разных узлах.
  • SimpleStrategy используется, когда у вас только один центр обработки данных.
  • NetworkTopologyStrategy используется, если у вас более двух центров обработки данных.

Подведем итог этой публикации следующим образом: