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

Cassandra е проектиран да се справя Голямо количество от данни. CassandraОсновната характеристика на е да съхранява данни на множество възли без нито една точка на отказ.

Причината за този вид CassandraАрхитектурата на е, че хардуерната повреда може да възникне по всяко време. Всеки възел може да не работи. В случай на повреда могат да се използват данни, съхранени в друг възел. следователно Cassandra е проектиран със своята разпределена архитектура.

Cassandra съхранява данни на различни възли с peer to peer разпределена модна архитектура.

Всички възли обменят информация помежду си, използвайки Клюкарски протокол. Клюките са протокол в Cassandra чрез които възлите могат да комуникират помежду си.

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

Има следните компоненти в Cassandra Archiтекстура:

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

Възел

Node е мястото, където се съхраняват данните. Той е основният компонент на Cassandra.

Център за данни

Колекция от възли се нарича център за данни. Много възли са категоризирани като център за данни.

Cluster

Клъстерът е сбор от много центрове за данни.

Дневник на ангажиментите

Всяка операция за запис се записва в регистъра на записите. Регистрационният файл на записването се използва за възстановяване при срив.

Мем-таблица

След данните, записани в регистрационния файл на Commit, данните се записват в Mem-table. Данните се записват временно в Mem-table.

SSTable

Когато Mem-table достигне определен праг, данните се изхвърлят в SSTable дисков файл.

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

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

Cassandra поставя реплики на данни на различни възли въз основа на тези два фактора.

  • Къде да поставите следващата реплика се определя от Стратегия за репликация.
  • Докато общият брой реплики, поставени на различни възли, се определя от Фактор на репликация.

Един фактор на репликация означава, че има само едно копие на данни, докато три фактора на репликация означава, че има три копия на данните на три различни възела.

За да се гарантира, че няма нито една точка на повреда, репликационният фактор трябва да бъде три.

Има два вида стратегии за репликация Cassandra.

SimpleStrategy в Cassandra

SimpleStrategy се използва, когато имате само един център за данни. SimpleStrategy поставя първата реплика на възела, избран от устройството за разделяне. След това останалите реплики се поставят по посока на часовниковата стрелка в пръстена на възела.

Ето графичното представяне на SimpleStrategy:

SimpleStrategy в Cassandra
SimpleStrategy в Cassandra

NetworkTopologyStrategy in Cassandra

Мрежова топологияСтратегия се използва, когато имате повече от два центъра за данни. В NetworkTopologyStrategy репликите се задават за всеки център за данни поотделно. NetworkTopologyStrategy поставя реплики по посока на часовниковата стрелка в пръстена, докато достигне първия възел в друг стелаж. Тази стратегия се опитва да постави реплики на различни стелажи в един и същ център за данни.

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

Ето графичното представяне на стратегията за мрежова топология:

NetworkTopologyStrategy in Cassandra
NetworkTopologyStrategy in Cassandra

Пиша Operaция в Cassandra

Координаторът изпраща заявка за запис до репликите. Ако всички реплики са готови, те ще получат заявка за запис, независимо от нивото им на съгласуваност.

Ниво на консистенция определя колко възли ще отговорят с потвърждение за успех.

Възелът ще отговори с потвърждението за успех, ако данните са записани успешно в дневника на ангажиментите и memTable.

Например, в един център за данни с коефициент на репликация, равен на три, три реплики ще получат заявка за запис. Ако нивото на съгласуваност е едно, само една реплика ще отговори с потвърждение за успех, а останалите две ще останат неактивни.

Да предположим, че ако останалите две реплики загубят данни поради прекъсване на възела или някакъв друг проблем, Cassandra ще направи реда последователен чрез вградения механизъм за поправка Cassandra.

Тук е обяснено как протича процесът на запис Cassandra,

  1. Когато заявката за запис дойде до възела, първо се записва в дневника на записите.
  2. След това Cassandra записва данните в таблицата mem. Данните, записани в mem-таблицата при всяка заявка за запис, също се записват отделно в дневника на записите. Mem-table е временно съхранена информация в паметта, докато Commit log регистрира записите на транзакциите за целите на архивирането.
  3. Когато mem-table е пълна, данните се изхвърлят във файла с данни SSTable.
Пиша Operaция в Cassandra
Пиша Operaция в Cassandra

Чети Operaция в Cassandra

Има три вида заявки за четене, които координаторът изпраща до репликите.

  1. Директна заявка
  2. Заявка за обобщение
  3. Прочетете заявката за ремонт

Координаторът изпраща директна заявка до една от репликите. След това координаторът изпраща заявката за обобщение до броя реплики, определени от нивото на съгласуваност, и проверява дали върнатите данни са актуализирани данни.

След това координаторът изпраща заявка за обобщение до всички останали реплики. Ако някой възел даде остаряла стойност, заявка за възстановяване на фоново четене ще актуализира тези данни. Този процес се нарича механизъм за възстановяване на четене.

Oбобщение

  • Този урок обяснява Cassandra вътрешна архитектура и как Cassandra репликира, записва и чете данни на различни етапи.
  • Освен това тук се обяснява как Cassandra поддържа нивото на последователност през целия процес.
  • Компоненти на Cassandra Archiструктура: възел, център за данни, Cluster, Дневник на ангажименти, Mem-table, SSTable
  • Един фактор на репликация означава, че има само едно копие на данни, докато три фактора на репликация означава, че има три копия на данните на три различни възела.
  • SimpleStrategy се използва, когато имате само един център за данни.
  • NetworkTopologyStrategy се използва, когато имате повече от два центъра за данни.