Учебники

3) Архитектура

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

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

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

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

В этом уроке вы узнаете

Компоненты Кассандры

В Кассандре есть следующие компоненты;

Учебное пособие по архитектуре и факторам репликации Cassandra

Кассандровская архитектурная схема

  • Узел

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

  • Дата центр

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

  • кластер

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

  • Записать журнал

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

  • Mem стол

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

  • SSTable

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

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

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

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

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

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

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

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

SimpleStrategy

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

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

Учебное пособие по архитектуре и факторам репликации Cassandra

NetworkTopologyStrategy

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

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

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

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

Учебное пособие по архитектуре и факторам репликации Cassandra

Операция записи

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

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

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

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

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

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

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

Учебное пособие по архитектуре и факторам репликации Cassandra

Операция чтения

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

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

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

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

Резюме

Это руководство объясняет внутреннюю архитектуру Cassandra и то, как Cassandra реплицирует, записывает и читает данные на разных этапах. Кроме того, здесь объясняется, как Кассандра поддерживает уровень согласованности на протяжении всего процесса.