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

Cassandra призначений для обробки Великий даних. CassandraОсновна особливість — зберігати дані на кількох вузлах без єдиної точки відмови.

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

Cassandra зберігає дані на різних вузлах з одноранговою розподіленою архітектурою моди.

Усі вузли обмінюються інформацією один з одним за допомогою Протокол пліток. Плітка — протокол в Cassandra за допомогою яких вузли можуть спілкуватися один з одним.

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

У складі є такі компоненти Cassandra Archiтекстура:

Cassandra Archiтектура
Cassandra Archiдіаграма текстури

вузол

Вузол - це місце, де зберігаються дані. Це основний компонент Cassandra.

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

Сукупність вузлів називається центром обробки даних. Багато вузлів класифікуються як центр обробки даних.

Cluster

Кластер — це сукупність багатьох центрів обробки даних.

Журнал фіксації

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

Мем-таблиця

Після запису даних у журнал Commit дані записуються в Mem-table. Дані записуються в Mem-таблицю тимчасово.

SSTable

Коли Mem-table досягає певного порогу, дані скидаються у файл диска SSTable.

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

Оскільки під час обробки даних може виникнути проблема з апаратним забезпеченням або зв’язок може вийти з ладу, потрібне рішення для забезпечення резервної копії, коли проблема виникла. Таким чином, дані копіюються для забезпечення відсутності єдиної точки збою.

Cassandra розміщує копії даних на різних вузлах на основі цих двох факторів.

  • Де розмістити наступну репліку, визначає сам Стратегія реплікації.
  • Тоді як загальна кількість реплік, розміщених на різних вузлах, визначається Фактор реплікації.

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

Для забезпечення відсутності єдиної точки відмови, коефіцієнт реплікації повинен бути три.

Існує два типи стратегій реплікації Cassandra.

SimpleStrategy в Cassandra

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

Ось графічне представлення SimpleStrategy:

SimpleStrategy в Cassandra
SimpleStrategy в Cassandra

Мережева топологіяСтратегія в Cassandra

Мережева топологіяСтратегія використовується, якщо у вас більше двох центрів обробки даних. У NetworkTopologyStrategy репліки встановлюються для кожного центру обробки даних окремо. NetworkTopologyStrategy розміщує репліки в кільці за годинниковою стрілкою, доки не досягне першого вузла в іншій стійці. Ця стратегія намагається розмістити репліки на різних стійках в одному центрі обробки даних.

Це пов’язано з тим, що іноді в стійці можуть виникати збої або проблеми. Потім репліки на інших вузлах можуть надавати дані.

Ось графічне представлення стратегії топології мережі:

Мережева топологіяСтратегія в Cassandra
Мережева топологіяСтратегія в Cassandra

Запис Operaв Cassandra

Координатор надсилає реплікам запит на запис. Якщо всі репліки готові, вони отримають запит на запис незалежно від рівня узгодженості.

Рівень консистенції визначає, скільки вузлів відповість підтвердженням успіху.

Вузол відповість підтвердженням успіху, якщо дані успішно записано в журнал фіксації та memTable.

Наприклад, в одному центрі обробки даних із коефіцієнтом реплікації, що дорівнює трьом, три репліки отримають запит на запис. Якщо рівень узгодженості дорівнює одиниці, лише одна репліка відповість із підтвердженням успіху, а решта дві залишатимуться неактивними.

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

Тут пояснюється, як відбувається процес запису Cassandra,

  1. Коли запит на запис надходить до вузла, він перш за все реєструється в журналі комітів.
  2. Потім Cassandra записує дані в mem-таблицю. Дані, записані в mem-table під час кожного запиту на запис, також записуються окремо в журнал фіксації. Mem-table — це дані, які тимчасово зберігаються в пам’яті, тоді як журнал фіксації записує записи транзакцій для цілей резервного копіювання.
  3. Коли mem-table заповнюється, дані скидаються у файл даних SSTable.
Запис Operaв Cassandra
Запис Operaв Cassandra

Читати Operaв Cassandra

Існує три типи запитів на читання, які координатор надсилає до реплік.

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

Координатор надсилає прямий запит одній із реплік. Після цього координатор надсилає запит дайджесту до кількості реплік, визначених рівнем узгодженості, і перевіряє, чи є повернуті дані оновленими даними.

Після цього координатор надсилає запит на дайджест усім реплікам, що залишилися. Якщо будь-який вузол видає застаріле значення, запит на відновлення фонового читання оновить ці дані. Цей процес називається механізмом відновлення читання.

Підсумки

  • Цей підручник пояснює Cassandra внутрішня архітектура, і як Cassandra копіює, записує та читає дані на різних етапах.
  • Крім того, тут пояснюється, як Cassandra підтримує рівень узгодженості протягом усього процесу.
  • Компоненти Cassandra Archiструктура: вузол, центр обробки даних, Cluster, Журнал фіксації, Mem-table, SSTable
  • Один коефіцієнт реплікації означає, що існує лише одна копія даних, тоді як три коефіцієнти реплікації означають, що є три копії даних на трьох різних вузлах.
  • SimpleStrategy використовується, коли у вас лише один центр обробки даних.
  • NetworkTopologyStrategy використовується, якщо у вас більше двох центрів обробки даних.