{"id":89872,"date":"2020-07-27T01:42:19","date_gmt":"2020-07-26T23:42:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/raspredelyonnye-subd-dlya-enterprajza"},"modified":"2020-07-27T01:42:19","modified_gmt":"2020-07-26T23:42:19","slug":"raspredelyonnye-subd-dlya-enterprajza","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/raspredelyonnye-subd-dlya-enterprajza","title":{"rendered":"Rozproszone bazy danych dla przedsi\u0119biorstw","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Teoria CAP jest kamieniem w\u0119gielnym teorii system\u00f3w rozproszonych. Oczywi\u015bcie, kontrowersje wok\u00f3\u0142 niej nie milkn\u0105: definicje nie s\u0105 kanoniczne, a \u015bcis\u0142ego dowodu brak\u2026 Niemniej jednak, stoj\u0105c mocno na pozycjach zdrowego rozs\u0105dku&trade;, intuicyjnie rozumiemy, \u017ce teorema jest prawdziwa.<\/p>\n<p><img decoding=\"async\" alt=\"Rozproszone bazy danych dla przedsi\u0119biorstw\" src=\"\/wp-content\/uploads\/2020\/07\/35c8b29bb024cbf383d78caa1af2c525.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedyn\u0105 rzecz\u0105, kt\u00f3ra nie jest oczywista, jest znaczenie litery \u201eP\u201d. Kiedy klaster si\u0119 rozdziela, decyduje \u2013 czy nie odpowiada\u0107, a\u017c zostanie osi\u0105gni\u0119ta wi\u0119kszo\u015b\u0107, czy te\u017c przekaza\u0107 dost\u0119pne dane. W zale\u017cno\u015bci od wynik\u00f3w tego wyboru, system klasyfikowany jest jako CP lub AP. Cassandra, na przyk\u0142ad, mo\u017ce dzia\u0142a\u0107 w obu trybach, w zale\u017cno\u015bci nie tylko od ustawie\u0144 klastra, ale tak\u017ce od parametr\u00f3w ka\u017cdego konkretnego zapytania. Ale je\u015bli system nie jest \u201eP\u201d, a si\u0119 rozdzieli, to co si\u0119 dzieje?<\/p>\n<p>Odpowied\u017a na to pytanie jest nieco zaskakuj\u0105ca: klaster CA nie mo\u017ce si\u0119 rozdzieli\u0107.<br \/>\nCzym jest taki klaster, kt\u00f3ry nie mo\u017ce si\u0119 rozdzieli\u0107?<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNiezb\u0119dnym atrybutem takiego klastra jest wsp\u00f3lny system przechowywania danych. W przewa\u017caj\u0105cej wi\u0119kszo\u015bci przypadk\u00f3w oznacza to pod\u0142\u0105czenie przez SAN, co ogranicza zastosowanie rozwi\u0105za\u0144 CA do du\u017cych przedsi\u0119biorstw, kt\u00f3re mog\u0105 utrzyma\u0107 infrastruktur\u0119 SAN. Aby kilka <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/\"   title=\"serwer\u00f3w\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1512\">serwer\u00f3w<\/a> mog\u0142o pracowa\u0107 z tymi samymi danymi, potrzebny jest klastrowy system plik\u00f3w. Takie systemy plik\u00f3w s\u0105 dost\u0119pne w portfolio HPE (CFS), Veritas (VxCFS) i IBM (GPFS). <\/p>\n<h4>Oracle RAC<\/h4>\n<p>\nOpcja Real Application Cluster pojawi\u0142a si\u0119 po raz pierwszy w 2001 roku w wersji Oracle 9i. W takim klastrze kilka instancji <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/dts-los-angeles\/\"   title=\"serwera\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3642\">serwera<\/a> pracuje z t\u0105 sam\u0105 baz\u0105 danych.<br \/>\nOracle mo\u017ce dzia\u0142a\u0107 zar\u00f3wno z klastrowym systemem plik\u00f3w, jak i z w\u0142asnym rozwi\u0105zaniem \u2013 ASM, Automatic Storage Management.<\/p>\n<p>Ka\u017cda instancja prowadzi sw\u00f3j dziennik. Transakcja jest wykonywana i rejestrowana przez jedn\u0105 instancj\u0119. W przypadku awarii instancji, jeden z ocala\u0142ych w\u0119z\u0142\u00f3w klastra (instancji) odczytuje jej dziennik i przywraca utracone dane \u2013 dzi\u0119ki temu zapewniana jest dost\u0119pno\u015b\u0107.<\/p>\n<p>Wszystkie instancje maj\u0105 w\u0142asn\u0105 pami\u0119\u0107 podr\u0119czn\u0105, a te same strony (blokad) mog\u0105 znajdowa\u0107 si\u0119 jednocze\u015bnie w pami\u0119ciach podr\u0119cznych wielu instancji. Co wi\u0119cej, je\u015bli jaka\u015b strona jest potrzebna jednej instancji i znajduje si\u0119 w pami\u0119ci podr\u0119cznej innej instancji, mo\u017ce ona uzyska\u0107 j\u0105 od \"s\u0105siada\" dzi\u0119ki mechanizmowi cache fusion, zamiast odczytywa\u0107 dane z dysku.<\/p>\n<p><img decoding=\"async\" alt=\"Rozproszone bazy danych dla przedsi\u0119biorstw\" src=\"\/wp-content\/uploads\/2020\/07\/917cb1bfcc2c47ccf0dbb2f1e34ac921.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCo si\u0119 stanie, je\u015bli jeden z egzemplarzy b\u0119dzie musia\u0142 zmieni\u0107 dane?<\/p>\n<p>Cech\u0105 Oracle jest to, \u017ce nie ma dedykowanej us\u0142ugi blokad: je\u015bli serwer chce zablokowa\u0107 wiersz, to informacja o blokadzie jest umieszczana bezpo\u015brednio na tej stronie pami\u0119ci, na kt\u00f3rej znajduje si\u0119 blokowany wiersz. Dzi\u0119ki temu podej\u015bciu Oracle jest mistrzem wydajno\u015bci w\u015br\u00f3d monolitycznych baz: serwis blokad nigdy nie staje si\u0119 w\u0105skim gard\u0142em. Jednak w konfiguracji klastrowej taka architektura mo\u017ce prowadzi\u0107 do intensywnej wymiany danych w sieci i wzajemnych blokad.<\/p>\n<p>Gdy tylko wiersz zostanie zablokowany, egzemplarz powiadamia wszystkie pozosta\u0142e egzemplarze, \u017ce strona, na kt\u00f3rej znajduje si\u0119 ten wiersz, zosta\u0142a zaj\u0119ta w trybie monopolowym. Je\u015bli inny egzemplarz b\u0119dzie chcia\u0142 zmieni\u0107 wiersz na tej samej stronie, musi czeka\u0107, a\u017c zmiany na stronie zostan\u0105 zatwierdzone, tzn. informacja o zmianie zostanie zapisana w dzienniku na dysku (przy czym transakcja mo\u017ce trwa\u0107). Mo\u017ce si\u0119 zdarzy\u0107, \u017ce strona zostanie zmieniona kolejno przez kilka egzemplarzy, a wtedy przy zapisie strony na dysku trzeba b\u0119dzie ustali\u0107, u kt\u00f3rego egzemplarza znajduje si\u0119 aktualna wersja tej strony.<\/p>\n<p>Przypadkowa aktualizacja tych samych stron przez r\u00f3\u017cne w\u0119z\u0142y RAC prowadzi do znacznego spadku wydajno\u015bci bazy danych \u2013 a\u017c do tego, \u017ce wydajno\u015b\u0107 klastra mo\u017ce by\u0107 ni\u017csza ni\u017c wydajno\u015b\u0107 pojedynczego egzemplarza.<\/p>\n<p>Prawid\u0142owe wykorzystanie Oracle RAC polega na fizycznym podziale danych (na przyk\u0142ad za pomoc\u0105 mechanizmu tabel partycjonowanych) i odwo\u0142ywaniu si\u0119 do ka\u017cdego zestawu partycji przez dedykowany w\u0119ze\u0142. G\u0142\u00f3wnym celem RAC sta\u0142o si\u0119 nie poziome skalowanie, ale zapewnienie odporno\u015bci na awarie.<\/p>\n<p>Je\u015bli w\u0119ze\u0142 przestaje odpowiada\u0107 na sygna\u0142y heartbeat, to ten w\u0119ze\u0142, kt\u00f3ry jako pierwszy to zauwa\u017cy\u0142, uruchamia procedur\u0119 g\u0142osowania na dysku. Je\u015bli i tu zaginiony w\u0119ze\u0142 si\u0119 nie zaznaczy, to jeden z w\u0119z\u0142\u00f3w przejmuje obowi\u0105zki dotycz\u0105ce przywracania danych:<\/p>\n<ul>\n<li>\u00abzamra\u017ca\u00bb wszystkie strony, kt\u00f3re znajdowa\u0142y si\u0119 w pami\u0119ci podr\u0119cznej zaginionego w\u0119z\u0142a;<\/li>\n<li>odczytuje dzienniki (redo) zaginionego w\u0119z\u0142a i ponownie stosuje zmiany zapisane w tych dziennikach, jednocze\u015bnie sprawdzaj\u0105c, czy inne w\u0119z\u0142y nie maj\u0105 nowszych wersji zmienianych stron;<\/li>\n<li>cofa nieuko\u0144czone transakcje.<\/li>\n<\/ul>\n<p>\nAby upro\u015bci\u0107 prze\u0142\u0105czanie mi\u0119dzy w\u0119z\u0142ami, w Oracle u\u017cywa si\u0119 poj\u0119cia us\u0142ugi \u2013 wirtualnego egzemplarza. Egzemplarz mo\u017ce obs\u0142ugiwa\u0107 wiele us\u0142ug, a us\u0142uga mo\u017ce przechodzi\u0107 mi\u0119dzy w\u0119z\u0142ami. Egzemplarz aplikacji, kt\u00f3ry obs\u0142uguje okre\u015blon\u0105 cz\u0119\u015b\u0107 bazy (na przyk\u0142ad grup\u0119 klient\u00f3w), wsp\u00f3\u0142pracuje z jedn\u0105 us\u0142ug\u0105, a us\u0142uga odpowiadaj\u0105ca za t\u0119 cz\u0119\u015b\u0107 bazy przechodzi na inny w\u0119ze\u0142 w przypadku awarii w\u0119z\u0142a.<\/p>\n<h4>IBM Pure Data Systems for Transactions<\/h4>\n<p>\nKlasterowe rozwi\u0105zanie dla system\u00f3w zarz\u0105dzania baz\u0105 danych pojawi\u0142o si\u0119 w portfolio Niebieskiego Giganta w 2009 roku. Ideologicznie jest wydaniem klastru Parallel Sysplex, zbudowanego na \u201ezwyk\u0142ym\u201d sprz\u0119cie. W 2009 roku zadebiutowa\u0142 produkt DB2 pureScale, stanowi\u0105cy komplet oprogramowania, a w 2012 roku IBM oferuje zestaw programowo-sprz\u0119towy (appliance) pod nazw\u0105 Pure Data Systems for Transactions. Nie nale\u017cy myli\u0107 tego z Pure Data Systems for Analytics, kt\u00f3re jest niczym innym jak przemianowanym Netezza.<\/p>\n<p>Architektura pureScale na pierwszy rzut oka przypomina Oracle RAC: podobnie jak kilka w\u0119z\u0142\u00f3w jest pod\u0142\u0105czonych do wsp\u00f3lnego systemu magazynowania danych, a na ka\u017cdym w\u0119\u017ale dzia\u0142a sw\u00f3j egzemplarz systemu zarz\u0105dzania baz\u0105 danych z w\u0142asnymi obszarami pami\u0119ci i dziennikami transakcji. Ale w przeciwie\u0144stwie do Oracle, w DB2 istnieje dedykowana us\u0142uga blokad, reprezentowana przez zestaw proces\u00f3w db2LLM*. W konfiguracji klastrowej ta us\u0142uga jest przenoszona na oddzielny w\u0119ze\u0142, kt\u00f3ry w Parallel Sysplex nazywa si\u0119 coupling facility (CF), a w Pure Data \u2013 PowerHA.<\/p>\n<p>PowerHA zapewnia nast\u0119puj\u0105ce us\u0142ugi:<\/p>\n<ul>\n<li>mened\u017cer blokad;<\/li>\n<li>globalna pami\u0119\u0107 podr\u0119czna;<\/li>\n<li>obszar komunikacji mi\u0119dzyprocesowej.<\/li>\n<\/ul>\n<p>\nDo przesy\u0142ania danych z PowerHA do w\u0119z\u0142\u00f3w baz danych i z powrotem wykorzystuje si\u0119 zdalny dost\u0119p do pami\u0119ci, dlatego klastrowy interkonekt musi obs\u0142ugiwa\u0107 protok\u00f3\u0142 RDMA. PureScale mo\u017ce korzysta\u0107 zar\u00f3wno z Infiniband, jak i RDMA over Ethernet.<\/p>\n<p><img decoding=\"async\" alt=\"Rozproszone bazy danych dla przedsi\u0119biorstw\" src=\"\/wp-content\/uploads\/2020\/07\/7757acd68445dac4a9f378d5813e663f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli w\u0119ze\u0142 potrzebuje strony, kt\u00f3rej nie ma w pami\u0119ci podr\u0119cznej, prosi o stron\u0119 w globalnej pami\u0119ci podr\u0119cznej, a tylko je\u015bli i tam jej nie ma, odczytuje j\u0105 z dysku. W przeciwie\u0144stwie do Oracle, \u017c\u0105danie kierowane jest tylko do PowerHA, a nie do s\u0105siednich w\u0119z\u0142\u00f3w.<\/p>\n<p>Je\u015bli instancja ma zmieni\u0107 wiersz, blokuje go w trybie ekskluzywnym, a stron\u0119, na kt\u00f3rej znajduje si\u0119 wiersz, \u2013 w trybie wsp\u00f3\u0142dzielonym. Wszystkie blokady s\u0105 rejestrowane w globalnym mened\u017cerze blokad. Gdy transakcja zostaje zako\u0144czona, w\u0119ze\u0142 wysy\u0142a wiadomo\u015b\u0107 do mened\u017cera blokad, kt\u00f3ry kopiuje zmienion\u0105 stron\u0119 do globalnej pami\u0119ci podr\u0119cznej, znosi blokady i uniewa\u017cnia zmienion\u0105 stron\u0119 w pami\u0119ciach podr\u0119cznych innych w\u0119z\u0142\u00f3w.<\/p>\n<p>Je\u015bli strona, na kt\u00f3rej znajduje si\u0119 zmieniany wiersz, jest ju\u017c zablokowana, mened\u017cer blokad odczyta zmienion\u0105 stron\u0119 z pami\u0119ci w\u0119z\u0142a, kt\u00f3ry dokona\u0142 zmian, zniesie blokad\u0119, uniewa\u017cni zmienion\u0105 stron\u0119 w pami\u0119ciach podr\u0119cznych innych w\u0119z\u0142\u00f3w i odda blokad\u0119 strony w\u0119z\u0142owi, kt\u00f3ry j\u0105 za\u017c\u0105da\u0142.<\/p>\n<p>\u201eBrudne\u201d, czyli zmienione, strony mog\u0105 by\u0107 zapisywane na dysku zar\u00f3wno z zwyk\u0142ego w\u0119z\u0142a, jak i z PowerHA (castout).<\/p>\n<p>W przypadku awarii jednego z w\u0119z\u0142\u00f3w pureScale, odzyskiwanie jest ograniczone tylko do tych transakcji, kt\u00f3re w momencie awarii nie by\u0142y jeszcze zako\u0144czone: strony, zmienione przez ten w\u0119ze\u0142 w zako\u0144czonych transakcjach, s\u0105 w globalnej pami\u0119ci podr\u0119cznej na PowerHA. W\u0119ze\u0142 jest ponownie uruchamiany w ograniczonej konfiguracji na jednym z serwer\u00f3w klastra, cofa niezako\u0144czone transakcje i zwalnia blokady.<\/p>\n<p>PowerHA dzia\u0142a na dw\u00f3ch serwerach, a g\u0142\u00f3wny w\u0119ze\u0142 synchronizuje swoje stany. W przypadku awarii g\u0142\u00f3wnego w\u0119z\u0142a klaster PowerHA nadal dzia\u0142a z zapasowym w\u0119z\u0142em.<br \/>\nOczywi\u015bcie, je\u015bli odwo\u0142ywa\u0107 si\u0119 do zestawu danych przez jeden w\u0119ze\u0142, og\u00f3lna wydajno\u015b\u0107 klastra b\u0119dzie wy\u017csza. PureScale mo\u017ce nawet zauwa\u017cy\u0107, \u017ce pewien obszar danych jest przetwarzany przez jeden w\u0119ze\u0142, a wtedy wszystkie blokady dotycz\u0105ce tego obszaru b\u0119d\u0105 przetwarzane lokalnie przez w\u0119ze\u0142 bez komunikacji z PowerHA. Ale gdy tylko aplikacja spr\u00f3buje uzyska\u0107 dost\u0119p do tych danych przez inny w\u0119ze\u0142, centralne przetwarzanie blokad zostanie wznowione.<\/p>\n<p>Wewn\u0119trzne testy IBM z obci\u0105\u017ceniem sk\u0142adaj\u0105cym si\u0119 z 90% odczyt\u00f3w i 10% zapis\u00f3w, co bardzo przypomina rzeczywiste obci\u0105\u017cenie przemys\u0142owe, pokazuj\u0105 niemal\u017ce liniowe skalowanie do 128 w\u0119z\u0142\u00f3w. Warunki testowania niestety nie s\u0105 ujawniane.<\/p>\n<h4>HPE NonStop SQL<\/h4>\n<p>\nWysokodost\u0119pna platforma znajduje si\u0119 tak\u017ce w portfolio Hewlett-Packard Enterprise. Jest to platforma NonStop, wprowadzona na rynek w 1976 roku przez firm\u0119 Tandem Computers. W 1997 roku firma zosta\u0142a przej\u0119ta przez Compaq, kt\u00f3ry z kolei w 2002 roku po\u0142\u0105czy\u0142 si\u0119 z Hewlett-Packard.<\/p>\n<p>NonStop jest wykorzystywana do budowy aplikacji krytycznych \u2013 na przyk\u0142ad HLR lub przetwarzania kart bankowych. Platforma dostarczana jest jako zintegrowany system sprz\u0119towo-programowy, obejmuj\u0105cy jednostki obliczeniowe, system przechowywania danych oraz sprz\u0119t komunikacyjny. Sie\u0107 ServerNet (w nowoczesnych systemach \u2013 Infiniband) s\u0142u\u017cy zar\u00f3wno do komunikacji mi\u0119dzy jednostkami, jak i do dost\u0119pu do systemu przechowywania danych.<\/p>\n<p>W wcze\u015bniejszych wersjach systemu u\u017cywano w\u0142asno\u015bciowych procesor\u00f3w, kt\u00f3re by\u0142y synchronizowane ze sob\u0105: wszystkie operacje by\u0142y wykonywane synchronnie przez kilka procesor\u00f3w, a gdy jeden z procesor\u00f3w napotka\u0142 b\u0142\u0105d, by\u0142 wy\u0142\u0105czany, podczas gdy drugi kontynuowa\u0142 prac\u0119. P\u00f3\u017aniej system przeszed\u0142 na standardowe procesory (najpierw MIPS, potem Itanium, a w ko\u0144cu x86), a do synchronizacji zacz\u0119to u\u017cywa\u0107 innych mechanizm\u00f3w:<\/p>\n<ul>\n<li>wiadomo\u015bci: ka\u017cdy proces systemowy ma swojego bli\u017aniaka-\u00abcie\u0144\u00bb, kt\u00f3remu aktywny proces okresowo wysy\u0142a wiadomo\u015bci o swoim stanie; w przypadku awarii g\u0142\u00f3wnego procesu, proces cienia rozpoczyna prac\u0119 od momentu okre\u015blonego w ostatniej wiadomo\u015bci;<\/li>\n<li>g\u0142osowanie: system przechowywania danych ma specjalny komponent sprz\u0119towy, kt\u00f3ry przyjmuje kilka identycznych \u017c\u0105da\u0144 i wykonuje je tylko w przypadku, gdy \u017c\u0105dania si\u0119 pokrywaj\u0105; zamiast fizycznej synchronizacji procesory pracuj\u0105 asynchronicznie, a wyniki ich dzia\u0142ania s\u0105 por\u00f3wnywane tylko w momentach wej\u015bcia\/wyj\u015bcia.<\/li>\n<\/ul>\n<p>\nOd 1987 roku na platformie NonStop dzia\u0142a relacyjna baza danych \u2013 najpierw SQL\/MP, a p\u00f3\u017aniej SQL\/MX.<\/p>\n<p>Ca\u0142a baza danych dzieli si\u0119 na cz\u0119\u015bci, a za ka\u017cd\u0105 cz\u0119\u015b\u0107 odpowiada odpowiedni proces Data Access Manager (DAM). Zapewnia on zapis danych, cache'owanie oraz mechanizm blokad. Przetwarzaniem danych zajmuj\u0105 si\u0119 procesy wykonawcze (Executor Server Process), dzia\u0142aj\u0105ce na tych samych w\u0119z\u0142ach co odpowiadaj\u0105ce mened\u017cery danych. Planista SQL\/MX dzieli zadania mi\u0119dzy wykonawcami i \u0142\u0105czy wyniki. W razie potrzeby wprowadzenia sp\u00f3jnych zmian u\u017cywany jest protok\u00f3\u0142 dwuetapowego zatwierdzania, zapewniany przez bibliotek\u0119 TMF (Transaction Management Facility).<\/p>\n<p><img decoding=\"async\" alt=\"Rozproszone bazy danych dla przedsi\u0119biorstw\" src=\"\/wp-content\/uploads\/2020\/07\/00e9473dd95a78c409dd5283d299fe96.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNonStop SQL potrafi priorytetyzowa\u0107 procesy tak, aby d\u0142ugie zapytania analityczne nie przeszkadza\u0142y w realizacji transakcji. Jej g\u0142\u00f3wnym celem jest jednak przetwarzanie kr\u00f3tkich transakcji, a nie analityka. Producent gwarantuje dost\u0119pno\u015b\u0107 klastra NonStop na poziomie pi\u0119ciu \u201edziewi\u0105tek\u201d, co oznacza, \u017ce czas przestoju wynosi tylko 5 minut rocznie.<\/p>\n<h4>SAP HANA<\/h4>\n<p>\nPierwsza stabilna wersja bazy danych HANA (1.0) zosta\u0142a wydana w listopadzie 2010 roku, a pakiet SAP ERP przeszed\u0142 na HANA od maja 2013 roku. Platforma oparta jest na zakupionych technologiach: TREX Search Engine (do wyszukiwania w kolumnowej bazie danych), bazy danych P*TIME i MAX DB.<\/p>\n<p>Samo s\u0142owo \u201eHANA\u201d jest akronimem od High performance ANalytical Appliance. Ta baza danych dostarczana jest w postaci kodu, kt\u00f3ry mo\u017ce dzia\u0142a\u0107 na dowolnych serwerach x86, jednak przemys\u0142owe instalacje s\u0105 dozwolone tylko na sprz\u0119cie, kt\u00f3ry przeszed\u0142 certyfikacj\u0119. Dost\u0119pne s\u0105 rozwi\u0105zania HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC. Niekt\u00f3re konfiguracje Lenovo umo\u017cliwiaj\u0105 nawet u\u017cytkowanie bez SAN \u2013 rol\u0119 wsp\u00f3lnej pami\u0119ci masowej odgrywa klaster GPFS na lokalnych dyskach.<\/p>\n<p>W przeciwie\u0144stwie do wymienionych wcze\u015bniej platform, HANA jest baz\u0105 danych w pami\u0119ci, tzn. pierwotny obraz danych przechowywany jest w pami\u0119ci operacyjnej, a na dysk zapisywane s\u0105 jedynie dzienniki i okresowe zrzuty \u2013 w celu przywr\u00f3cenia w przypadku awarii.<\/p>\n<p><img decoding=\"async\" alt=\"Rozproszone bazy danych dla przedsi\u0119biorstw\" src=\"\/wp-content\/uploads\/2020\/07\/f64194ca6de13e1a93f7190dc38ad2d7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKa\u017cdy w\u0119ze\u0142 klastra HANA odpowiada za swoj\u0105 cz\u0119\u015b\u0107 danych, a mapa danych przechowywana jest w specjalnym komponencie \u2013 Name Server, znajduj\u0105cym si\u0119 na w\u0119\u017ale koordynuj\u0105cym. Dane nie s\u0105 duplikowane mi\u0119dzy w\u0119z\u0142ami. Informacje o blokadach r\u00f3wnie\u017c przechowywane s\u0105 na ka\u017cdym w\u0119\u017ale, ale w systemie istnieje globalny detektor blokad wzajemnych.<\/p>\n<p>Klient HANA podczas \u0142\u0105czenia z klastrem \u0142adowany jego topologi\u0119 i w p\u00f3\u017aniejszym czasie mo\u017ce zwraca\u0107 si\u0119 bezpo\u015brednio do dowolnego w\u0119z\u0142a w zale\u017cno\u015bci od tego, jakie dane s\u0105 mu potrzebne. Je\u015bli transakcja dotyczy danych jednego w\u0119z\u0142a, to mo\u017ce by\u0107 wykonana lokalnie przez ten w\u0119ze\u0142, ale je\u015bli zmieniaj\u0105 si\u0119 dane kilku w\u0119z\u0142\u00f3w, to w\u0119ze\u0142 inicjuj\u0105cy zwraca si\u0119 do w\u0119z\u0142a koordynatora, kt\u00f3ry otwiera i koordynuje rozproszon\u0105 transakcj\u0119, utrwalaj\u0105c j\u0105 za pomoc\u0105 zoptymalizowanego protoko\u0142u dwuetapowego.<\/p>\n<p>W\u0119ze\u0142 koordynatora jest zduplikowany, dlatego w przypadku awarii koordynatora natychmiast w\u0142\u0105cza si\u0119 w\u0119ze\u0142 zapasowy. Natomiast gdy awarii ulegnie w\u0119ze\u0142 z danymi, jedynym sposobem na uzyskanie dost\u0119pu do jego danych jest ponowne uruchomienie w\u0119z\u0142a. Zazwyczaj w klastrach HANA utrzymuje si\u0119 serwer zapasowy (spare), aby jak najszybciej uruchomi\u0107 utracony w\u0119ze\u0142.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/512298\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>CAP-\u0442\u0435\u043e\u0440\u0435\u043c\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043c\u043d\u0435\u043c \u0442\u0435\u043e\u0440\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043f\u043e\u0440\u044b \u0432\u043e\u043a\u0440\u0443\u0433 \u043d\u0435\u0451 \u043d\u0435 \u0443\u0442\u0438\u0445\u0430\u044e\u0442: \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432 \u043d\u0435\u0439 \u043d\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u0438 \u0441\u0442\u0440\u043e\u0433\u043e\u0433\u043e \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u043d\u0435\u0442\u2026 \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0442\u0432\u0451\u0440\u0434\u043e \u0441\u0442\u043e\u044f \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0445 \u0431\u044b\u0442\u043e\u0432\u043e\u0433\u043e \u0437\u0434\u0440\u0430\u0432\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430&trade;, \u043c\u044b \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u043c\u0430 \u0432\u0435\u0440\u043d\u0430. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0442\u0430\u043a \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u043a\u0432\u044b \u00abP\u00bb. \u041a\u043e\u0433\u0434\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0441\u044f, \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u2013 \u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":89873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-89872","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"CAP-\u0442\u0435\u043e\u0440\u0435\u043c\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043c\u043d\u0435\u043c \u0442\u0435\u043e\u0440\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/raspredelyonnye-subd-dlya-enterprajza\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0421\u0423\u0411\u0414 \u0434\u043b\u044f \u044d\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"CAP-\u0442\u0435\u043e\u0440\u0435\u043c\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043c\u043d\u0435\u043c \u0442\u0435\u043e\u0440\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/raspredelyonnye-subd-dlya-enterprajza\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-26T23:42:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-26T23:42:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rozproszone bazy danych dla przedsi\u0119biorstw | ProHoster","description":"Teoria CAP jest kamieniem w\u0119gielnym teorii system\u00f3w rozproszonych.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/raspredelyonnye-subd-dlya-enterprajza","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0421\u0423\u0411\u0414 \u0434\u043b\u044f \u044d\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437\u0430 | ProHoster","og:description":"CAP-\u0442\u0435\u043e\u0440\u0435\u043c\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043c\u043d\u0435\u043c \u0442\u0435\u043e\u0440\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/raspredelyonnye-subd-dlya-enterprajza","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-26T23:42:19+00:00","article:modified_time":"2020-07-26T23:42:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"89872","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:03:25","updated":"2026-02-22 15:29:33","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/89872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=89872"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/89872\/revisions"}],"predecessor-version":[{"id":162170,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/89872\/revisions\/162170"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/89873"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=89872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=89872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=89872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}