MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como o MongoDB lida com atualizações simultâneas?


O MongoDB usou um bloqueio de gravação em todo o processo para garantir que apenas uma operação de gravação (atualizar/inserir/remover) possa ser executada por vez. Como tal, ele resolve automaticamente os problemas de simultaneidade, pois a simultaneidade de gravação simplesmente não é permitida.

Se 4 threads tentarem uma operação de atualização, uma delas pegará o bloqueio de gravação, fará sua atualização e liberará o bloqueio. Depois disso, um dos 3 restantes pegará o cadeado, fará sua atualização, etc.

A simultaneidade só entra em jogo se sua operação não puder ser encapsulada em uma única operação de gravação. Observe que para o caso de uso mais comum (encontre um documento, atualize-o e pegue a nova versão atomicamente) o MongoDB oferece o comando "findAndModify" que faz exatamente isso:http://www.mongodb.org/display/DOCS/findAndModify+Command

ATUALIZAÇÃO:O bloqueio é mais granular nos dias de hoje.