Дистрибуирани ДБМС за предузећа

ЦАП теорема је камен темељац теорије дистрибуираних система. Наравно, контроверза око тога не јењава: дефиниције у њој нису канонске, и нема строгог доказа... Ипак, чврсто стојећи на позицијама свакодневног здравог разума™, ми интуитивно схватамо да је теорема истинита.

Дистрибуирани ДБМС за предузећа

Једино што није очигледно је значење слова "П". Када се кластер подели, одлучује да ли да не одговори док се не постигне кворум или да врати податке који су доступни. У зависности од резултата овог избора, систем се класификује или као ЦП или АП. Цассандра, на пример, може да се понаша на било који начин, чак ни не у зависности од подешавања кластера, већ од параметара сваког конкретног захтева. Али ако систем није "П" и подели се, шта онда?

Одговор на ово питање је донекле неочекиван: ЦА кластер не може да се подели.
Какав је ово кластер који се не може поделити?

Суштински атрибут таквог кластера је дељени систем за складиштење података. У великој већини случајева, то значи повезивање преко SAN мреже, што ограничава употребу CA решења на велика предузећа способна да одржавају SAN инфраструктуру. Да би неколико сервери За рад са истим подацима потребан је кластер фајл систем. Такви фајл системи су доступни у портфолијима HPE (CFS), Veritas (VxCFS) и IBM (GPFS).

Орацле РАЦ

Опција Real Application Cluster се први пут појавила 2001. године са објављивањем Oracle 9i. У таквом кластеру, више инстанци сервер раде са истом базом података.
Орацле може да ради и са кластеризованим системом датотека и са сопственим решењем – АСМ, Аутоматиц Стораге Манагемент.

Сваки примерак води свој дневник. Трансакцију извршава и извршава једна инстанца. Ако инстанца не успе, један од преживелих чворова кластера (инстанци) чита свој дневник и враћа изгубљене податке - чиме се обезбеђује доступност.

Све инстанце одржавају сопствену кеш меморију, а исте странице (блокови) могу бити у кеш меморији више инстанци у исто време. Штавише, ако је једној инстанци потребна страница и она се налази у кешу друге инстанце, може је добити од свог суседа користећи механизам спајања кеша уместо читања са диска.

Дистрибуирани ДБМС за предузећа

Али шта се дешава ако једна од инстанци треба да промени податке?

Посебност Орацле-а је у томе што нема наменску услугу закључавања: ако сервер жели да закључа ред, тада се запис закључавања поставља директно на меморијску страницу где се налази закључани ред. Захваљујући овом приступу, Орацле је шампион у перформансама међу монолитним базама података: услуга закључавања никада не постаје уско грло. Али у конфигурацији кластера, таква архитектура може довести до интензивног мрежног саобраћаја и застоја.

Када је запис закључан, инстанца обавештава све друге инстанце да страница која чува тај запис има ексклузивно задржавање. Ако друга инстанца треба да промени запис на истој страници, она мора да сачека док се промене на страници не обаве, то јест, информације о промени буду уписане у дневник на диску (и трансакција може да се настави). Такође се може десити да ће се страница узастопно мењати у неколико копија, а онда ћете приликом писања странице на диск морати да сазнате ко чува тренутну верзију ове странице.

Насумично ажурирање истих страница на различитим РАЦ чворовима доводи до драматичног пада перформанси базе података, до тачке у којој перформансе кластера могу бити ниже од перформанси једне инстанце.

Исправна употреба Орацле РАЦ-а је физичко партиционисање података (на пример, коришћење механизма партиционисане табеле) и приступ сваком скупу партиција преко наменског чвора. Главна сврха РАЦ-а није била хоризонтално скалирање, већ осигуравање толеранције грешака.

Ако чвор престане да реагује на откуцаје срца, онда чвор који га је детектовао први започиње процедуру гласања на диску. Ако чвор који недостаје није наведен овде, онда један од чворова преузима одговорност за опоравак података:

  • „замрзава“ све странице које су биле у кешу чвора који недостаје;
  • чита евиденције (поновно извршење) чвора који недостаје и поново примењује промене забележене у овим евиденцијама, истовремено проверавајући да ли други чворови имају новије верзије страница које се мењају;
  • враћа трансакције на чекању.

Да би поједноставио пребацивање између чворова, Орацле има концепт услуге – виртуелне инстанце. Инстанца може да служи више услуга, а услуга може да се креће између чворова. Инстанца апликације која опслужује одређени део базе података (на пример, група клијената) ради са једним сервисом, а услуга одговорна за овај део базе података прелази на други чвор када чвор откаже.

ИБМ Пуре Дата Системс за трансакције

Кластер решење за ДБМС појавило се у портфолију Блуе Гиант 2009. године. Идеолошки, он је наследник кластера Параллел Сисплек, изграђен на „обичној“ опреми. Године 2009. објављен је ДБ2 пуреСцале, софтверски пакет, а 2012. године ИБМ је понудио уређај под називом Пуре Дата Системс фор Трансацтионс. Не треба га мешати са Пуре Дата Системс фор Аналитицс, који није ништа друго до преименована Нетезза.

На први поглед, пуреСцале архитектура је слична Орацле РАЦ: на исти начин, неколико чворова је повезано са заједничким системом складиштења података, а сваки чвор покреће сопствену ДБМС инстанцу са сопственим меморијским областима и евиденцијама трансакција. Али, за разлику од Орацлеа, ДБ2 има наменску услугу закључавања коју представља скуп дб2ЛЛМ* процеса. У конфигурацији кластера, ова услуга је постављена на посебан чвор, који се у Параллел Сисплек-у зове Цоуплинг Фацилити (ЦФ), а ПоверХА у Пуре Дата.

ПоверХА пружа следеће услуге:

  • лоцк манагер;
  • глобални бафер кеш;
  • област међупроцесних комуникација.

За пренос података од ПоверХА до чворова базе података и назад, користи се даљински приступ меморији, тако да интерконекција кластера мора да подржава РДМА протокол. ПуреСцале може да користи и Инфинибанд и РДМА преко Етхернета.

Дистрибуирани ДБМС за предузећа

Ако је чвору потребна страница, а ова страница није у кешу, онда чвор тражи страницу у глобалном кешу и само ако је нема, чита је са диска. За разлику од Орацле-а, захтев иде само на ПоверХА, а не на суседне чворове.

Ако ће инстанца променити ред, закључава га у ексклузивном режиму, а страницу на којој се ред налази у дељеном режиму. Све браве су регистроване у глобалном менаџеру закључавања. Када се трансакција заврши, чвор шаље поруку менаџеру закључавања, који копира измењену страницу у глобалну кеш меморију, ослобађа закључавања и поништава измењену страницу у кеш меморији других чворова.

Ако је страница у којој се налази измењени ред већ закључана, тада ће менаџер закључавања прочитати измењену страницу из меморије чвора који је извршио промену, отпустити закључавање, поништити измењену страницу у кеш меморији других чворова и дајте закључавање странице чвору који је то захтевао.

„Прљаве“, односно промењене, странице се могу писати на диск и са обичног чвора и са ПоверХА (избацивање).

Ако један од пуреСцале чворова не успе, опоравак је ограничен само на оне трансакције које још нису биле завршене у тренутку неуспеха: странице које је тај чвор модификовао у завршеним трансакцијама налазе се у глобалној кеш меморији на ПоверХА-у. Чвор се поново покреће у смањеној конфигурацији на једном од сервера у кластеру, враћа трансакције на чекању и отпушта закључавања.

ПоверХА ради на два сервера и главни чвор синхроно реплицира своје стање. Ако примарни ПоверХА чвор поквари, кластер наставља да ради са резервним чвором.
Наравно, ако приступите скупу података преко једног чвора, укупне перформансе кластера ће бити веће. ПуреСцале може чак приметити да се одређена област података обрађује од стране једног чвора, а затим ће све браве повезане са том површином бити обрађене локално од стране чвора без комуникације са ПоверХА. Али чим апликација покуша да приступи овим подацима преко другог чвора, централизована обрада закључавања ће се наставити.

ИБМ-ови интерни тестови на радном оптерећењу од 90% читања и 10% писања, што је веома слично производном оптерећењу у стварном свету, показују скоро линеарно скалирање до 128 чворова. Услови тестирања, нажалост, нису откривени.

ХПЕ НонСтоп СКЛ

Хевлетт-Пацкард Ентерприсе портфолио такође има своју веома доступну платформу. Ово је НонСтоп платформа, коју је на тржиште избацио 1976. године Тандем Цомпутерс. 1997. компанију је купио Цомпак, који се заузврат спојио са Хевлетт-Пацкард-ом 2002. године.

НонСтоп се користи за прављење критичних апликација - на пример, ХЛР или обраду банковних картица. Платформа се испоручује у виду софтверско-хардверског комплекса (апарата), који укључује рачунарске чворове, систем за складиштење података и комуникациону опрему. СерверНет мрежа (у савременим системима - Инфинибанд) служи како за размену између чворова, тако и за приступ систему за складиштење података.

Ране верзије система су користиле власничке процесоре који су били синхронизовани једни са другима: све операције је синхроно обављало неколико процесора, а чим је један од процесора направио грешку, био је искључен, а други је наставио да ради. Касније је систем прешао на конвенционалне процесоре (прво МИПС, затим Итаниум и на крају к86), а за синхронизацију су почели да се користе и други механизми:

  • поруке: сваки системски процес има „сенку“ близанца, коме активни процес периодично шаље поруке о свом статусу; ако главни процес не успе, процес сенке почиње да ради од тренутка одређеног последњом поруком;
  • гласање: систем за складиштење има посебну хардверску компоненту која прихвата више идентичних приступа и извршава их само ако се приступи поклапају; Уместо физичке синхронизације, процесори раде асинхроно, а резултати њиховог рада се упоређују само у И/О моментима.

Од 1987. године релациони ДБМС ради на платформи НонСтоп – прво СКЛ/МП, а касније СКЛ/МКС.

Целокупна база података је подељена на делове, а сваки део је одговоран за сопствени процес Дата Аццесс Манагер (ДАМ). Пружа механизме за снимање, кеширање и закључавање података. Обраду података спроводе процеси Екецутор Сервера који раде на истим чворовима као и одговарајући менаџери података. СКЛ/МКС планер дели задатке између извршилаца и обједињује резултате. Када је потребно извршити договорене измене, користи се двофазни протокол урезивања који обезбеђује ТМФ (Трансацтион Манагемент Фацилити) библиотека.

Дистрибуирани ДБМС за предузећа

НонСтоп СКЛ може дати приоритет процесима тако да дуги аналитички упити не ометају извршење трансакције. Међутим, његова сврха је управо обрада кратких трансакција, а не аналитика. Програмер гарантује доступност кластера НонСтоп на нивоу од пет „деветки“, односно застој је само 5 минута годишње.

САП ХАНА

Прво стабилно издање ХАНА ДБМС-а (1.0) догодило се у новембру 2010. године, а САП ЕРП пакет је прешао на ХАНА у мају 2013. године. Платформа је заснована на купљеним технологијама: ТРЕКС Сеарцх Енгине (претрага у стубном складишту), П*ТИМЕ ДБМС и МАКС ДБ.

Сама реч „ХАНА“ је акроним, Аналитички уређај високих перформанси. Овај ДБМС се испоручује у облику кода који може да ради на било ком к86 серверу, али индустријске инсталације су дозвољене само на сертификованој опреми. Решења доступна од ХП, Леново, Цисцо, Делл, Фујитсу, Хитацхи, НЕЦ. Неке Леново конфигурације чак дозвољавају рад без САН-а - улогу уобичајеног система за складиштење игра ГПФС кластер на локалним дисковима.

За разлику од горе наведених платформи, ХАНА је ДБМС у меморији, тј. примарна слика података се чува у РАМ-у, а само евиденције и периодични снимци се записују на диск ради опоравка у случају катастрофе.

Дистрибуирани ДБМС за предузећа

Сваки чвор ХАНА кластера одговоран је за свој део података, а мапа података се чува у посебној компоненти – серверу имена, који се налази на чвору координатора. Подаци се не дуплирају између чворова. Информације о закључавању се такође чувају на сваком чвору, али систем има глобални детектор застоја.

Када се ХАНА клијент повеже са кластером, он преузима његову топологију и онда може директно да приступи било ком чвору, у зависности од тога који су му подаци потребни. Ако трансакција утиче на податке једног чвора, онда је тај чвор може извршити локално, али ако се подаци више чворова промене, иницирајући чвор контактира чвор координатора, који отвара и координира дистрибуирану трансакцију, урезујући је помоћу оптимизовани двофазни протокол урезивања.

Координаторски чвор је дуплиран, тако да ако координатор не успе, резервни чвор одмах преузима. Али ако чвор са подацима не успе, онда је једини начин да приступите његовим подацима да поново покренете чвор. По правилу, ХАНА кластери одржавају резервни сервер како би што пре поново покренули изгубљени чвор на њему.

Извор: ввв.хабр.цом

Додај коментар