Oto kilka wskazówek :Aurora ma wiele przykładów. Jeden to „writer” (Master), inni to „Reader” (Slaves).
Gdy zapisujący nie działa, jeden slave zostanie awansowany na nowego mastera, inne slave'y będą się teraz replikować z tego nowego mastera (automatyczne ponowne uruchomienie). Jeśli stary mistrz pojawi się ponownie, stanie się niewolnikiem.
Aurora ma punkt końcowy DNS dla klastra, taki jak „xx.cluster-yy.zz.rds.amazonaws.com”, który wskazuje na bieżący master. Gdy nastąpi przełączenie awaryjne, DNS jest odświeżany... ale nie natychmiast.
„Połączenie” z zorzą polarną oznacza dwa podstawowe połączenia z instancjami:jedno z nadrzędnym, drugie z podrzędnym. Sterownik użyje bazowego połączenia z masterem lub slaveem zgodnie z Connection.setReadonly().
Za każdym razem, gdy drajwer łączy się z instancją, sprawdza aktualny stan zmiennej globalnej "innodb_read_only" (OFF =master).
Można dodawać instancje Aurora, więc przy początkowym połączeniu, przy użyciu punktu końcowego klastra użytkownika, bieżąca lista instancji zostanie pobrana przy użyciu information_schema.replica_host_status.
Aby ustanowić 2 podstawowe połączenia, kierowca połączy się z losowym hostem, jeśli jest to aktualny master, dobrze, że wszystkie inne hosty są slave, jeśli nie, kierowca poprosi slavea o jego obecnego mastera, więc następne połączenie połączy się z hostem za pomocą information_schema. replika_host_status gdzie session_id ='MASTER_SESSION_ID' (bardziej niezawodne niż przy użyciu DNS). Jeśli połączenie z instancją nie powiedzie się, ta nazwa instancji zostanie umieszczona na czarnej liście na określony czas (ta czarna lista jest udostępniana przez jvm), aby uniknąć ponownego użycia. Sterownik spróbuje ponownie połączyć się z losowo dostępnym hostem, aż żaden nie znajduje się na czarnej liście, a następnie może ponowić próbę z hostem znajdującym się na czarnej liście przez jakiś czas (w zależności od parametrów). Jeśli połączenie się powiedzie, instancja jest „wyrejestrowana z czarnej listy”.
W przypadku przełączania awaryjnego podstawowego połączenia podrzędnego używane jest połączenie główne, a pewna podstawowa pula wątków będzie następnie próbowała ponownie połączyć instancję podrzędną w tle.