MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Co oznacza dopasowanie zestawu roboczego do pamięci RAM dla MongoDB?

„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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Niezawodne ponowne połączenie z MongoDB

  2. Grupuj według sumy mongodb

  3. znajdź identyfikator ostatniego poddokumentu wstawionego w manguście

  4. Konwertuj ciąg na liczbę w projekcji MongoDB

  5. Dlaczego moje identyfikatory MongooseJS ObjectId nie przechodzą testu równości?