Кіріспе
Деректер қорының репликация әдісі
Көп шеберлік репликация – деректерді компьютерлер тобында сақтауға және топтың кез келген мүшесіне оларды жаңартуға мүмкіндік беретін деректер қорының репликация әдісі. Барлық мүшелер клиенттердің деректер сұраныстарына жауап береді. Көп шеберлік репликация жүйесі әрбір мүше жасаған деректерді өзгертуді топтың қалған бөлігіне таратуға және әртүрлі мүшелер жасаған бір мезгілдегі өзгерістер арасында туындауы мүмкін кез келген қайшылықтарды шешуге жауапты. Көп шеберлік репликацияны негізгі-қосалқы репликациясымен салыстыруға болады, онда топтың бір мүшесі белгілі бір дерек үшін «шебер» ретінде тағайындалады және осы дерек элементін өзгертуге рұқсат етілген жалғыз түйін болып табылады. Дерек элементін өзгертуді қалаған басқа мүшелер алдымен шебер түйінмен байланысуы керек. Тек бір шеберге рұқсат беру топ мүшелері арасында дәйектілікті қамтамасыз етуді жеңілдетеді, бірақ көп шеберлік репликациясынан гөрі шектеулі. Көп шеберлік репликациясы пассивті қосалқы серверлер шебер деректерін көшіріп, шебер жұмыс істемей қалған жағдайда оны алмастыруға дайындық жасау кезіндегі қателерге төзімді кластерлеумен де салыстырылады. Шебер – клиенттермен өзара әрекеттесу үшін белсенді жалғыз сервер. Көбінесе көп шеберлік жүйелердегі байланыс және репликация консенсус алгоритмінің түрі арқылы жүзеге асырылады, бірақ бағдарламалық жасақтамаға тән жеке немесе патенттелген алгоритмдер арқылы да іске асырылуы мүмкін. Көп шеберлік репликацияның басты мақсаты – қолжетімділікті арттыру және сервердің жылдам жауап беру уақытын қамтамасыз ету.
Артықшылықтар
Қолжетімділік: Егер бір мастер сәтсіз жұмыс істесе, басқа мастерлер деректер базасын жаңартуды жалғастырады. Таратылған қолжетімділік: Мастерлер бірнеше физикалық орында орналасуы мүмкін, яғни желіде таратылған.
Кемшіліктер
Біркелкілік: Көптеген көп мастерлі репликация жүйелері тек шала біркелкі, яғни кешіктірілген және асинхронды болып келеді, бұл ACID қасиеттерін бұзады. Өнімділік: Жедел репликация жүйелері күрделі және байланыс кешігуін арттырады. Тұтастық: Конфликттерді шешу сияқты мәселелер, қатысатын түйіндер саны мен кешігу уақыты артқан сайын, шешуге қиын болып барады.
Тізімдер қызметі
Көптеген каталог серверлері жеңіл каталогтық қолжетімділік протоколы (LDAP) негізінде жұмыс істейді және көп мастерлі репликацияны қолданады.
Active Directory қызметі
Каталог серверлеріндегі көп шеберлік репликациясының ең көп таралған нұсқаларының бірі – Microsoft-тың Active Directory. Active Directory ішінде, бір домендік контроллерде жаңартылған объектілер көп шеберлік репликациясы арқылы басқа домендік контроллерлерге көшіріледі. Үлкен Active Directory жүйелерінде желілік трафиктің артығын болдырмау үшін барлық домендік контроллерлердің бір-бірімен репликациялануы міндетті емес. Оның орнына домендік контроллерлерде барлық серверлердің уақтылы жаңартылуын қамтамасыз ететін, артық көшіру трафигінсіз күрделі жаңарту схемасы бар. Дегенмен, кейбір Active Directory қажеттіліктері Flexible single master режимінде жақсырақ шешіледі.
CA анықтамалығы
CA Directory көп мастерлік репликацияны қолдайды.
OpenDS/OpenDJ
OpenDS (және оның мұрагері OpenDJ) 1.0 нұсқасынан бастап көп мастерді қолдады. OpenDS/OpenDJ көп мастер репликациясы асинхронды болып келеді, ол жариялану-жазылу механизмі бар журналды пайдаланады, бұл көптеген түйіндерге дейін кеңейтуге мүмкіндік береді. OpenDS/OpenDJ репликациясы жазба және атрибут деңгейінде қақтығыстарды шешеді. OpenDS/OpenDJ репликациясын кең аумақты желіде пайдалануға болады.
OpenLDAP (Жалпы жүйелік)
OpenLDAP, кеңінен қолданылатын ашық кодты LDAP сервері, 2.4 нұсқасынан бері (2007 жылдың қазаны) көп мастерлі репликацияны қолдайды.
Амазонканың Aurora
Amazon Aurora жазушы түйіндерінен және 6 сақтау түйінінен тұрады. Жазушы түйін өзгерістерді әрбір сақтау түйініне жібереді, олар қайшылықтарды тексереді, содан кейін өзгерістің қабылдануын немесе қабылдамауын хабарлайды.
Apache CouchDB- тің атауы
Apache CouchDB қарапайым, HTTP негізіндегі көп мастерлік репликация жүйесін қолданады, ол тек қосымша деректерді сақтау мүмкіндігі және Multiversion Concurrency Control (MVCC) пайдалану арқылы құрылған. Әрбір құжатта өзгерту идентификаторы болады, сондықтан әрбір жазба өзіне дейінгі барлық бұрынғы өзгерту идентификаторларының эволюциялық тарихын сақтайды – бұл CouchDB-ның MVCC жүйесінің негізін құрайды. Сонымен қатар, ол бүкіл деректер базасы үшін тізбектелген индекс сақтайды. "Репликация процесі құжаттың соңғы өзгертуін ғана көшіреді, сондықтан бастапқы деректер базасында ғана болған барлық бұрынғы өзгертулер мақсатты деректер базасына көшірілмейді." CouchDB репликаторы қарапайым HTTP клиенті ретінде әрекет етеді және деректер базасымен өзара әрекеттеседі. Ол деректер базасының ағымдағы тізбектелген идентификаторларын салыстырады, өзгертулердің айырмашылықтарын есептейді және деректер базасының тарихында табылғандарға негізделген қажетті өзгерістерді жасайды. Екі бағытты репликация – деректер базасының мәндерін ауыстырып, тағы бір репликация жасаудың нәтижесі.
ArangoDB-нің атауы
ArangoDB – көп мастерлік репликацияны қолданатын көп модельді деректер қоры жүйесі. ArangoDB кластерлері жалғыз сәтсіздік нүктесі жоқ CP мастер/мастер моделін пайдаланады. Егер кластер желілік бөлініспен кездессе, ArangoDB қолжетімділіктен гөрі ішкі дәйектілікті сақтауға басымдық береді. Клиенттерге деректер қорының қай торапқа қосылғандарына қарамастан, бірдей көрінісі ұсынылады. Кластер бір машина істен шыққан жағдайда да сұраныстарды қабылдауын жалғастырады.
Қалқытқыш
Cloudant, үлестірілген деректер қоры жүйесі, Apache CouchDB сияқты көбінесе бірдей HTTP API-ді пайдаланады және Multiversion Concurrency Control (MVCC) арқылы репликациялаудың сол мүмкіндігін ұсынады. Cloudant деректер қоры бір-бірімен репликациялана алады, бірақ ішкі жүйеде Cloudant кластерлеріндегі түйіндер бір-бірімен синхронды болу үшін және API қолданушыларына жоғары қолжетімділікті қамтамасыз ету үшін көп мастерлі репликацияны қолданады.
eXtremeDB кластері
eXtremeDB Cluster – McObject компаниясының eXtremeDB кіріктірілген деректер қоры өнімдері үшін кластерлік кіші жүйе. Ол бірнеше аппараттық түйіндерде деректер базасының дәйектілігін синхронды түрде транзакцияларды көшіру арқылы (екі кезеңді міндеттеме) сақтайды. eXtremeDB Cluster-дің маңызды ерекшелігі – транзакцияларды көшіру, ал журналдық файлға, SQL сөйлемдеріне немесе басқа көшіру схемаларына қарамастан, бүкіл транзакцияның сәтті аяқталуына немесе сәтсіздігіне кепілдік берілмейді. Осыған байланысты, eXtremeDB Cluster – ACID талаптарына сәйкес келетін жүйе (BASE немесе соңғы дәйектілік емес); кез келген кластерлік түйінде орындалған сұраныс, кез келген басқа кластерлік түйінде орындалғандай бірдей нәтиже береді.
Оракул
Деректер қорының кластерлері көп мастерлік репликацияны екі әдістің бірін пайдаланып іске асырады. Асинхронды көп мастерлік репликация деректердегі өзгерістерді кластердегі барлық деректер базаларында белгілі бір уақыт аралығында өңделетін күтіп тұрған транзакция кезегіне енгізеді. Синхронды көп мастерлік репликация Oracle-дың екі кезеңді коммит мүмкіндігін қолданады, осылайша кластердегі барлық деректер базаларында дәйекті деректер жиынтығы болуы қамтамасыз етіледі.
Microsoft SQL-тің атауы
Microsoft SQL бір-бірімен репликация арқылы көп мастерлі репликацияны қамтамасыз етеді. Ол бірнеше түйіндерде деректердің көшірмелерін сақтау арқылы кеңейтілген және жоғары қолжетімділік шешімін ұсынады. Транзакциялық репликация негізінде құрылған, бір-бірімен репликация транзакциялық тұрғыдан дұрыс өзгерістерді дерлік нақты уақыт режимінде таратады.
PostgreSQL-тің атауы
Синхронды көп мастерлік репликацияның әртүрлі нұсқалары бар. Mozilla Public License бойынша қолжетімді Postgres XL және PostgreSQL-дің өзімен бірдей лицензияда қолжетімді PostgresXC (қазір Postgres X2 деп аталады) мысалдардың бірі. PgCluster жобасы 2007 жылы тоқтатылғанын ескеріңіз. PostgreSQL репликациясының құжаттамасы қолжетімді репликация түрлерін жіктемелейді. Бөлінген көп мастерлік репликация үшін Bucardo, rubyrep және BDR екі бағытты репликациясы сияқты әртүрлі нұсқалар бар.
PostgreSQL BDR-нің атауы
BDR PostgreSQL өзегіне енгізілуді мақсат етеді және бұрынғы нұсқалармен салыстырғанда едәуір жақсартылған өнімділікті көрсетеді. BDR деректерді жазу (DML) репликациясын, сондай-ақ деректерді анықтау (DDL) өзгерістерін және жаһандық тізбектерді қамтиды. BDR түйіндері 0.9 нұсқасынан бастап онлайн режимінде жаңартылуы мүмкін. 2ndQuadrant 2012 жылдан бері үздіксіз BDR-ді дамытып келеді, ал жүйе 2014 жылдан бері өндірісте қолданылып келеді. Соңғы нұсқа BDR 3.6 баған деңгейіндегі қақтығыстарды анықтау, CRDT, белсенді репликация, көп түйіндік сұраныстың дұрыстығы және тағы да көптеген мүмкіндіктерді ұсынады.
Ингрес
Ingres Replicator-да бір Ingres серверінде жаңартылған объектілер, жергілікті немесе қашықтағы басқа серверлерге көп мастерлі репликация арқылы көшіріле алады. Егер бір сервер істен шықса, клиенттік қосылымдар басқа серверге қайта бағытталуы мүмкін. Үлкен жүзеге асыруларда артық желілік трафик тудыруы мүмкін болғандықтан, бір ортадағы барлық Ingres серверлерінің бір-бірімен репликациялануы міндетті емес. Оның орнына, Ingres Replicator артық көшіру трафигінсіз, қажетті деректерді қажетті серверлерге көшіруге мүмкіндік береді. Бұл ортадағы кейбір серверлердің қате кезінде резервтік нұсқа ретінде жұмыс істей алатынын, ал қалғандары бөлімдік шешім үшін бағандар немесе кестелердің бір бөлігін, географиялық аймақ үшін қатарлардың бір бөлігін басқару сияқты басқа талаптарды қанағаттандыра алатынын білдіреді. Сонымен қатар, есеп беру сервері үшін бір бағытты көшіру де мүмкін. Дерек көзі, мақсаты немесе желі істен шыққан жағдайда, екі кезеңді протокол арқылы деректердің тұтастығы сақталады, яғни транзакцияның толығымен көшірілуі немесе ешқайсысы да көшірілмейді. Бұдан өзге, Ingres Replicator әртүрлі жеткізушілерден алынған RDBMS жүйелерімен де жұмыс істей алады.