Що робить первинний (Primary) вузол?
Primary-вузол у Replica Set - це головний вузол, який приймає всі операції запису і є джерелом даних для решти вузлів. Саме він визначає "актуальний стан" колекцій на поточний момент.
Основні обов'язки Primary
- Приймає всі записи (write operations)
Будь-яка операція
insert,update,deleteзавжди йде спершу на Primary. Secondary ніколи не пишуть напряму - вони лише копіюють. - Фіксує зміни в oplog Primary записує всі зміни в oplog - журнал операцій. Secondary зчитують його й відтворюють ті самі операції в себе, лишаючись точною копією.
- Відповідає на читання за замовчуванням
Якщо клієнт не змінював
readPreference, читання (find,aggregate) теж іде на Primary. Так досягається консистентність за принципом read your own writes. - Бере участь у виборах і керуванні кворумом
При збої Replica Set, якщо Primary зникає, решта вузлів проводять
electionі обирають нового Primary. Але поки він живий - він центр реплікації.
Характерні властивості Primary
- єдина точка запису в Replica Set
- джерело істини (actual state)
- решта вузлів неодмінно синхронізуються з ним
Навіщо потрібен Primary в такій моделі
Щоб забезпечити:
- консистентність даних - немає конфліктних записів із різних вузлів
- спрощену реплікацію - зміни поширюються з одного центру
- автоматичний failover - при падінні обирається новий Primary, і система не простоює
Підсумок
Primary - це центральний вузол, який приймає записи, фіксує їх в oplog і слугує джерелом синхронізації для всіх Secondary. Він забезпечує актуальність даних і керує основним потоком операцій у Replica Set.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.