Cassandra е проектирана да обработва големи данни. Основната характеристика на Касандра е да съхранява данни на множество възли без нито една точка на повреда.
Причината за този вид архитектура на Касандра беше, че хардуерният отказ може да възникне по всяко време. Всеки възел може да бъде надолу. В случай на повреда могат да се използват данни, съхранени в друг възел. Следователно, Касандра е проектирана със своята разпределена архитектура.
Касандра съхранява данни за различни възли с равнопоставена разпределена модна архитектура.
Всички възли обменят информация помежду си, използвайки Gossip протокол . Клюките са протокол в Касандра, чрез който възлите могат да комуникират помежду си.
В този урок ще научите -
- Компоненти на Касандра
- Репликация на данни
- Пишете операция
- Прочетете Операция
Компоненти на Касандра
В Касандра има следните компоненти;
- Възел
Node е мястото, където се съхраняват данните. Той е основният компонент на Касандра.
- Център за данни
Колекция от възли се нарича център за данни. Много възли са категоризирани като център за данни.
- Клъстер
Клъстерът е колекцията от много центрове за данни.
- Log Log
Всяка операция за запис се записва в Log Log. Регистрирането се използва за възстановяване при срив.
- Mem-маса
След данните, записани в регистъра на записванията, данните се записват в Mem-таблицата. Данните се записват временно в Mem-таблица.
- SSTable
Когато Mem-таблицата достигне определен праг, данните се изхвърлят в SSTable дисков файл.
Репликация на данни
Тъй като може да възникне хардуерен проблем или връзката може да бъде спряна по всяко време по време на процеса на обработка на данни, се изисква решение за осигуряване на резервно копие, когато проблемът е възникнал. Така че данните се репликират, за да не се гарантира нито една точка на отказ.
Касандра поставя реплики на данни на различни възли въз основа на тези два фактора.
- Къде да поставите следващата реплика се определя от Стратегията за репликация .
- Докато общият брой реплики, поставени на различни възли, се определя от фактора на репликация .
Един фактор на репликация означава, че има само едно копие на данни, докато три фактора на репликация означава, че има три копия на данните на три различни възли.
За да се гарантира, че няма единична точка на повреда, коефициентът на репликация трябва да бъде три.
Има два вида стратегии за репликация в Касандра.
SimpleStrategy
SimpleStrategy се използва, когато имате само един център за данни. SimpleStrategy поставя първата реплика на възела, избран от дяла. След това останалите реплики се поставят по посока на часовниковата стрелка в пръстена на възела.
Ето изображението на SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy се използва, когато имате повече от два центъра за данни.
В NetworkTopologyStrategy се задават реплики за всеки център за данни поотделно. NetworkTopologyStrategy поставя реплики по посока на часовниковата стрелка в пръстена, докато стигне до първия възел в друг багажник.
Тази стратегия се опитва да постави реплики на различни стелажи в един и същ център за данни. Това се дължи на причината, поради която понякога в багажника може да възникне повреда или проблем. Тогава репликите на други възли могат да предоставят данни.
Ето изображението на стратегията за топология на мрежата
Пишете операция
Координаторът изпраща заявка за запис до реплики. Ако всички реплики станат, те ще получат заявка за запис, независимо от нивото на последователност.
Нивото на последователност определя колко възли ще отговорят обратно с потвърждението за успех.
Възелът ще отговори обратно с потвърждение за успех, ако данните са записани успешно в дневника на фиксирането и memTable.
Например, в един център за данни с фактор на репликация равен на три, три реплики ще получат заявка за запис. Ако нивото на съгласуваност е едно, само една реплика ще отговори с потвърждение за успех, а останалите две ще останат бездействащи.
Да предположим, че ако останалите две реплики загубят данни поради падания на възли или някакъв друг проблем, Касандра ще направи реда последователен от вградения механизъм за поправка в Касандра.
Тук е обяснено как протича процесът на запис в Касандра,
- Когато заявката за писане дойде до възела, първо, той влиза в дневника на фиксирането.
- След това Касандра записва данните в mem-таблицата. Данните, записани в mem-таблицата на всяка заявка за запис, също пишат в регистъра на ангажименти поотделно. Mem-таблицата е временно съхранявани данни в паметта, докато регистърът на регистрира регистрира транзакционните записи за целите на архивиране.
- Когато mem-таблицата е пълна, данните се изхвърлят във файла с данни на SSTable.
Прочетете Операция
Има три вида заявки за четене, които координаторът изпраща на реплики.
- Директна заявка
- Дайджест искане
- Прочетете заявката за ремонт
Координаторът изпраща директна заявка до една от репликите. След това координаторът изпраща заявка за дайджест до броя на репликите, определен от нивото на съгласуваност, и проверява дали върнатите данни са актуализирани данни.
След това координаторът изпраща дайджест заявка до всички останали реплики. Ако някой възел дава неактуална стойност, заявка за поправка на четене във фонов режим ще актуализира тези данни. Този процес се нарича механизъм за ремонт на четене.
Обобщение
Този урок обяснява вътрешната архитектура на Cassandra и как Cassandra репликира, записва и чете данни на различни етапи. Освен това тук се обяснява как Касандра поддържа нивото на последователност през целия процес.