„Zestaw roboczy” to w zasadzie ilość danych ORAZ indeksów, które będą aktywne/używane przez twój system.
Załóżmy na przykład, że masz dane z 1 roku. Dla uproszczenia, każdy miesiąc odnosi się do 1 GB danych, co daje łącznie 12 GB, a aby pokryć dane z każdego miesiąca, masz indeksy o wartości 1 GB, co daje łącznie 12 GB na rok.
Jeśli zawsze uzyskujesz dostęp do danych z ostatnich 12 miesięcy, Twój zestaw roboczy to:12 GB (dane) + 12 GB (indeksy) =24 GB.
Jeśli jednak faktycznie uzyskujesz dostęp tylko do danych z ostatnich 3 miesięcy, Twój zestaw roboczy to:3 GB (dane) + 3 GB (indeksy) =6 GB. W tym scenariuszu, jeśli masz 8 GB pamięci RAM, a następnie zacząłeś regularnie uzyskiwać dostęp do danych z ostatnich 6 miesięcy, Twój zestaw roboczy zacznie przekraczać dostępną pamięć RAM i będzie miał wpływ na wydajność.
Ale ogólnie, jeśli masz wystarczająco dużo pamięci RAM, aby pokryć ilość danych/indeksów, do których spodziewasz się często uzyskiwać dostęp, wszystko będzie dobrze.
Edytuj:odpowiedź na pytanie w komentarzach
Nie jestem pewien, czy do końca nadążam, ale spróbuję odpowiedzieć. Po pierwsze, obliczenia dla zbioru roboczego to „figura parku kulowego”. Po drugie, jeśli masz indeks o wielkości (np.) 1 GB na identyfikatorze użytkownika, to tylko część tego indeksu, do którego często uzyskuje się dostęp, musi znajdować się w pamięci RAM (np. Załóżmy, że 50% użytkowników jest nieaktywnych, wtedy 0,5 GB indeksu będzie częściej wymagane/potrzebne w pamięci RAM). Ogólnie rzecz biorąc, im więcej masz pamięci RAM, tym lepiej, zwłaszcza że zestaw roboczy prawdopodobnie będzie się rozrastał z czasem ze względu na zwiększone zużycie. W tym miejscu pojawia się sharding — podziel dane na wiele węzłów i możesz oszczędnie skalować. Twój zestaw roboczy jest następnie podzielony na wiele komputerów, co oznacza, że im więcej można przechowywać w pamięci RAM. Potrzebujesz więcej pamięci RAM? Dodaj kolejną maszynę, na której chcesz dokonać fragmentacji.