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

moveChunk nie zaangażował TO-shard w transfer danych:nie można zaakceptować nowych porcji, ponieważ

Nie jest to powszechne, aby zobaczyć tego rodzaju problemy, ale widziałem, że występują sporadycznie.

Najlepszym działaniem zaradczym, jakie należy podjąć w tym miejscu, jest wycofanie głównego fragmentu elementu TO, do którego się odwołuje, co spowoduje wyczyszczenie usunięcia tła. Wątki usuwania istnieją tylko w bieżącym głównym (zostaną zreplikowane z tego głównego przez oplog jak są przetwarzane). Kiedy go zmniejszysz, stanie się drugorzędnym, wątki nie będą już mogły pisać i otrzymasz nowy podstawowy bez oczekujących na usunięcie. Możesz chcieć zrestartować poprzednią podstawową po obniżeniu, aby usunąć stare kursory, ale zwykle nie jest to pilne.

Gdy to zrobisz, pozostanie duża liczba osieroconych dokumentów, którymi mogą być adresy z cleanUpOrphaned polecenie które polecam biegać w porach o małym natężeniu ruchu (jeśli masz takie czasy).

Dla odniesienia, jeśli jest to powtarzający się problem, prawdopodobnie podstawowe mają problemy z obciążeniem i aby uniknąć kolejkowania usunięć, możesz ustawić _waitForDelete opcja dla balancera na true (domyślnie false) w następujący sposób:

use config
db.settings.update(
   { "_id" : "balancer" },
   { $set : { "_waitForDelete" : true } },
   { upsert : true }
)

Oznacza to, że każda migracja jest wolniejsza (być może znacznie), ale nie spowoduje kumulacji usuwania w tle.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Węzeł referencyjny typu Mongodb

  2. Obejrzyj tworzenie dokumentów za pomocą strumieni MongoDB

  3. Jak testować indeksy Mongo w testach integracyjnych?

  4. W MongoDB jak mogę ograniczyć zapytanie, gdy mój callback znajduje się w find?

  5. Wypełnianie tylko określonych pól w manguście