Jak przeczytałem w tym poście na blogu wyłączone lub nieodpowiadające urządzenie podrzędne może powodować awarie aplikacji, ponieważ domyślnym zachowaniem Octopus jest zapisywanie wszystkich danych do urządzenia nadrzędnego i odczytywanie wszystkich danych z urządzeń podrzędnych (ponieważ dane zapisane do urządzenia nadrzędnego są następnie replikowane do wszystkich podłączonych urządzeń podrzędnych). Jak podano w Wiki Octopus, sekcja „Wiele niewolników” odczytywanie w środowisku wielu urządzeń podrzędnych odbywa się za pomocą metody okrężnej, więc domyślnie zawsze pobiera dane z urządzenia podrzędnego.
Również zaczerpnięte z wyżej wspomnianego bloga:jako mechanizm awaryjny należy bezpośrednio odczytywać dane z Mastera (za pomocą .using(:master)
), jeśli żaden z węzłów podrzędnych nie jest dostępny lub dane nie zostały jeszcze w pełni zreplikowane do podrzędnych. Może to być również opcja buforowania zmian/wyników pod kątem aplikacji, aby zapobiec powtarzającym się odczytom z węzłów bazy danych.