Jak Plex zachowuje spójność podczas jednoczesnych zmian

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Plex chroni stan, koordynując transakcje bazodanowe i aktualizacje plików, ale intensywne równoczesne zmiany nadal mogą powodować rywalizację o zasoby i dłuższe oczekiwanie.

Skanowanie biblioteki, odświeżanie metadanych, aktualizacja stanu obejrzenia i zadanie konserwacyjne mogą nakładać się na siebie, nawet jeśli każde z nich z osobna jest prawidłowe. Celem nie jest wyeliminowanie współbieżności, lecz utrzymanie niezawodnej ścieżki obsługi stanu i unikanie wykonywania niespójnych kopii podczas zapisu. Zanim uznasz, że sama współbieżność powoduje uszkodzenia, monitoruj oczekiwanie na blokady i czas wykonywania kopii zapasowych.

Transakcje wymieniają współbieżność na spójność

Gdy dwie operacje wymagają sprzecznego stanu bazy danych, jedna z nich może musieć poczekać, aby baza mogła zachować uporządkowany wynik. Widocznym objawem jest opóźnienie lub komunikat o zajętej bazie danych, a niekoniecznie nieprawidłowe dane.

Gdy transakcje rywalizują o ten sam stan, rywalizacja o blokady może zmniejszyć przepustowość, ponieważ operacje muszą czekać na chronione dane zamiast wykonywać się niezależnie.

Powiąż komunikaty Plex o zajętej bazie danych ze skanowaniem, importowaniem i działaniami użytkowników. Jeśli oczekiwanie pojawia się wyłącznie podczas intensywnego zapisu, najpierw ogranicz nakładanie się zadań, zamiast uznawać bazę danych za uszkodzoną.

WAL i odroczone zapisy utrudniają przewidywanie czasu

Transakcja może zostać logicznie zatwierdzona, podczas gdy pamięć podręczna i operacje zapisu powiązane z pamięcią masową nadal trwają. Kopiowanie aktywnych plików bez zrozumienia tego stanu może utworzyć zestaw, któremu trudno zaufać.

Rozdzielenie zapisów aplikacji od fizycznego opróżniania buforów jest widoczne w mechanizmie writeback systemu Linux, dlatego pozornie bezczynna aplikacja nie jest jedynym warunkiem uzyskania spójnej kopii na poziomie plików.

W przypadku kopii zapasowych, jeśli to możliwe, używaj okna z obsługą aplikacji lub okna, w którym aplikacja jest wstrzymana, i weryfikuj przywróconą bazę danych. Nie utożsamiaj „zakończenia polecenia kopiowania” z „uzyskaniem spójnego punktu przywracania”.

Importowanie może powodować rywalizację bez ogólnego przeciążenia procesora

Dodawanie wielu elementów może intensywnie obciążać zapisy do bazy danych i metadanych, podczas gdy reszta hosta wydaje się lekko obciążona. Wąskim gardłem może być szeregowy dostęp do stanu, a nie procentowe użycie procesora.

Podczas intensywnego importowania mogą pojawiać się oczekiwania na zajętą bazę danych, nawet gdy użycie procesora i dysku przez hosta nie jest globalnie nasycone.

Wstrzymaj importowanie i ponów dotknięte problemem zapytanie lub czynność nawigacyjną. Jeśli oczekiwanie zniknie, planuj zadania generujące dużo zapisów poza najbardziej obciążonym oknem interaktywnym.

Oddziel stan odzyskiwania od danych możliwych do odtworzenia

Baza danych i trwałe metadane wymagają bardziej rygorystycznej obsługi kopii zapasowych niż tymczasowe pliki transkodowania lub pamięci podręcznej. Umieszczenie ich na jednym, niepodzielonym woluminie utrudnia zapewnienie spójności i testowanie przywracania.

Wiarygodny punkt przywracania musi zachowywać trwały stan bazy danych i metadanych potrzebny do ponownego uruchomienia serwera; tymczasowa pamięć podręczna i pliki transkodowania nie wymagają tej samej klasy odzyskiwania.

Przetestuj odzyskiwanie z przechwyconej kopii stanu na instancji nieprodukcyjnej. trwały układ danych kontenera ułatwia zachowanie granicy danych trwałych, gdy środowisko uruchomieniowe Plex zostanie zastąpione.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.