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

Consistência de leitura-sua-própria-gravação no Mongodb


Há alguns pontos sobre esta questão.

  1. Não há garantia de consistência de leitura após gravação, a menos que esteja usando "safe=true" , "w=1" (ou superior) ou "j=true" com sua escrita. Você pode incluí-los como parte do insert() ou update() comandos, ou então use set_lasterror_options() para definir essas opções para a conexão, banco de dados ou coleção que você está usando.

  2. Se você estiver permitindo leituras de nós secundários (por exemplo, um ReadPreference diferente de PRIMARY), você não obterá semântica de leitura após gravação, mas apenas consistência eventual.

  3. Se você estiver usando um ReadPreference de PRIMARY e estiver definindo as opções apropriadas de lasterror, é garantido que você obterá semântica de leitura após gravação em todas as operações que usam o mesmo soquete, ou seja, o mesmo thread.

  4. Se você estiver usando vários encadeamentos e NÃO estiver lendo de nós secundários, é garantido que você obterá consistência de leitura após gravação, desde que emita a leitura no segundo encadeamento após a conclusão da gravação no primeiro encadeamento. Você pode usar primitivas de sincronização de encadeamento padrão para garantir isso.