Sharding
Sharding to praktyka optymalizacji systemów zarządzania bazami danych poprzez rozdzielenie wierszy lub kolumn większej tabeli bazy danych na wiele mniejszych tabel. Nowe tabele są nazywane” odłamkami „(lub partycjami), a każda nowa tabela ma ten sam schemat, ale unikalne wiersze (jak w przypadku” poziomego shardingu”) lub ma schemat, który jest odpowiednim podzbiorem oryginalnego schematu tabeli (jak w przypadku”pionowego shardingu”).
dlaczego stosuje się Sharding?
Sharding jest powszechnym pojęciem w skalowalnych architekturach baz danych. Dzięki shardowaniu większej tabeli można przechowywać nowe fragmenty danych, zwane odłamkami logicznymi, w wielu węzłach, aby uzyskać skalowalność poziomą i lepszą wydajność. Gdy odłamek logiczny jest przechowywany w innym węźle, jest określany jako odłamek fizyczny.
uruchamiając bazę danych na jednym komputerze, w końcu osiągniesz limit ilości zasobów obliczeniowych, które możesz zastosować do dowolnych zapytań, i oczywiście osiągniesz maksymalną ilość danych, z którymi możesz efektywnie pracować. Skalując poziomo, możesz włączyć elastyczny projekt bazy danych, który zwiększa wydajność na dwa kluczowe sposoby:
- dzięki przetwarzaniu masowo równoległemu możesz korzystać ze wszystkich zasobów obliczeniowych w klastrze dla każdego zapytania.
- ponieważ poszczególne odłamki są mniejsze niż tablica logiczna jako całość, każda maszyna musi skanować mniej wierszy podczas odpowiadania na zapytanie.
sharding poziomy jest skuteczny, gdy zapytania mają tendencję do zwracania podzbioru wierszy, które często są zgrupowane razem. Na przykład, zapytania filtrujące dane na podstawie krótkich zakresów dat są idealne do poziomego shardingu, ponieważ zakres dat musi ograniczać zapytania Tylko do podzbioru serwerów.
sharding pionowy jest skuteczny, gdy zapytania zwracają tylko podzbiór kolumn danych. Na przykład, jeśli niektóre zapytania żądają tylko nazw, a inne tylko adresów, to nazwy i adresy mogą być odłamane na osobnych serwerach.
ponadto, uszkodzone bazy danych mogą oferować wyższy poziom dostępności. W przypadku awarii w niestrzeżonej bazie danych, cała aplikacja jest bezużyteczna. W przypadku zniszczonej bazy danych tylko części aplikacji, które opierały się na brakujących fragmentach danych, są bezużyteczne. W praktyce uszkodzone bazy danych często dodatkowo łagodzą skutki takich przestojów, replikując odłamki kopii zapasowych na dodatkowych węzłach.
Jaka jest różnica między Shardingiem a partycjonowaniem?
Sharding i partycjonowanie polegają zarówno na rozbiciu dużego zestawu danych na mniejsze podzbiory. Różnica polega na tym, że sharding oznacza, że dane są rozłożone na wielu komputerach, podczas gdy partycjonowanie nie. Partycjonowanie polega na grupowaniu podzbiorów danych w ramach jednej instancji bazy danych. W wielu przypadkach terminy sharding i partycjonowanie są nawet używane synonimicznie, zwłaszcza gdy są poprzedzone terminami ” poziomy „i” pionowy.”Tak więc, „poziome sharding „i” poziome partycjonowanie ” mogą oznaczać to samo.
Tematy pokrewne
obliczenia w pamięci
Edge Computing
grid Computing
Czytaj dalej
Hazelcast IMDG 3.12 wprowadza podsystem CP