2011-12-30 13 views
6

Zastanawiam się, jak i dlaczego "dołączyć" zmniejsza skalowalność w rozproszonym (relacyjnym) systemie baz danych na dużą skalę?Dlaczego "dołączenia" zmniejszają skalowalność w wielkoskalowym systemie rozproszonej bazy danych?

Dzięki.

+0

Ponieważ sprzężenia są (stosunkowo) kosztowną operacją w porównaniu do odzyskiwania ze zdenormalizowanej struktury. – Oded

+0

Mam na myśli, jak drogie jest? Dlaczego jest drogi? Dlaczego wszystko działa na jednym serwerze, ale nie działa poprawnie na wielu serwerach? – janetsmith

+2

Są również stosunkowo drogie na jednym serwerze. Jeśli mówisz o połączeniach _across_serwerach, jest to _nie, dużo, dużo drożej. – Oded

Odpowiedz

8

Ogólnie rzecz biorąc, w systemie rozproszonym istnieje znaczny narzut (na przykład obliczenia nieużytkowe), który przedstawia "spójną" i "zunifikowaną" elewację.

prostu następujące czynniki:

  • różne węzły (na przykład serwerami) są różne maszyny. Oznacza to prawdopodobieństwo posiadania n węzłów uczestniczących w akcji rozproszonej - np. sprzężenie - znajdowanie się w optymalnym stanie (np. posiadanie tylko właściwych tabel w pamięci podręcznej lub posiadanie odpowiednich blokad) jest niskie. Oto niektóre z narzutów dla każdego węzła, aby uzyskać odpowiedni stan.

  • naturalnie muszą komunikować się ze współrzędnymi. Tak więc między węzłami jest sieć rozmów i te opóźnienia nie są nieznaczące. Z kolei nadprogramy zwiększają średni czas obsługi żądań, a tym samym zmniejszają dostępność (pod względem pojemności systemu).

Skalowalność staje się problemem, ponieważ żadna z powyższych nie dotyczy O (1). W najlepszym razie możesz oczekiwać O (log n) i może być tak źle jak O (n^2). To czyni cuda dla zabijania skalowalności (która z definicji oznacza zdolność skalowania systemu do większej liczby węzłów).

Powyższe stanowi część motywacji dla systemów noSQL, np. jeśli nie potrzeba koordynacji między węzłami do zapytań serwisowych, wydajność jest znacznie lepsza. (Jak widać, nie jest to magia - po prostu poświęcamy systemową poprawność dla wydajności.)

Powiązane problemy