MongoDB użył blokady zapisu w całym procesie, aby zagwarantować, że tylko jedna operacja zapisu (aktualizacja/wstawienie/usunięcie) może zostać wykonana na raz. Jako taki automatycznie rozwiązuje problemy współbieżności, ponieważ współbieżność zapisu jest po prostu niedozwolona.
Jeśli 4 wątki podejmą próbę aktualizacji, jeden z nich wykona blokadę zapisu, wykona aktualizację i zwolni blokadę. Następnie jeden z pozostałych 3 pobierze blokadę, wykona aktualizację, itp.
Współbieżność wchodzi w grę, jeśli operacja nie może zostać zapakowana w pojedynczą operację zapisu. Zauważ, że dla najbardziej typowego użycia (znajdź dokument, zaktualizuj go i pobierz atomowo nową wersję) MongoDB oferuje polecenie "findAndModify", które właśnie to: http://www.mongodb.org/display/DOCS/findAndModify+Command
AKTUALIZACJA: Blokowanie jest bardziej ziarniste w tych dniach.
Dzięki, rozumiem, dlaczego wydawało się to powszechnie znane. – lollancf37
Nie ma za co. Wydaje się, że jest to funkcja ograniczająca, ale ponieważ zapisy są stosunkowo szybkie, rzadko jest to problem z wydajnością. Zwróć uwagę na "zablokowany%" w mongodzie, aby zobaczyć, ile czasu spędzasz przy zamkniętym zamku. –