Jeg ønskede at give dette svar, da det kom op i et mongodb-eksamenspørgsmål til det gratis online mongodb-universitet. Det er grundigt og giver dokumentation.
Jeg har fundet ud af det og vil rydde op i en del forvirring, primært forårsaget af manglende forklaring i lektionerne. Jeg er ikke kritisk, men yderligere forklaring er påkrævet for at besvare dette spørgsmål korrekt.
For det første, når du opretter forbindelse til mongodb gennem et program, bruger du en driver. Denne driver har barrierer, den skal igennem for at kunne gøre noget med mongodb-serveren. Når du forstår dette barrierekoncept, vil du forstå dette spørgsmål.
Hver forbindelse, der i sidste ende laves til en liste over ting, skal ske for at passere gennem barriererne og i sidste ende udføre en skrive- eller læseoperation.
Visuelt kan du tænke på det sådan her:
*****Bemærk**:Hvor som helst langs denne pipeline opstår en fejl baseret på din logik, en vellykket skrive-/læseoperation forekommer muligvis ikke.
Vi kan tænke på barrierer 1 - 3 som netværksbarrierer for tilslutning. Hvis netværket er nede eller har problemer, er disse problemer, man vil bemærke gennem timeouts og undtagelseshåndtering af disse timeouts. Hvad man skal forstå er, at du ikke kan udføre en skriveoperation med skriveproblemer, hvis du ikke kan oprette forbindelse til serveren i første omgang. Lektionen kunne have illustreret disse punkter.
Det første sæt barrierer for en skrive- eller læseoperation skal have en etableret forbindelse til serveren... Dette er illustreret ovenfor ved barrierer 1 - 3.
Så, når du har en serverforbindelse via en klynge og/eller et replikasæt af klynger, kan du definere skriveproblemer.
Efter at vi har en etableret forbindelse, sker en skrivning muligvis ikke af andre årsager end netværksforbindelse. Disse kan være kollisioner af data eller en ekstrem tildeling af skrivninger på grund af DDOS eller hacking eller generelt ikke nok serverplads til at dataene kan skrives til serveren. Pointen er, at noget andet kan forårsage en reaktion på skrivebekymringen og dermed kontrollen gennem muligheder for at håndtere skrivebekymringsfejl.
Jeg håber, at dette hjælper, fordi det fik mig til at forstå spørgsmålet og det rigtige svar i overensstemmelse hermed. For det meste blev vi ikke rigtig undervist i dette, så jeg håber, at dette hjælper andre med at lære og forstå denne feedbackloop.
Her er nogle artikler, jeg læser for at hjælpe mig med at komme til dette svar/konklusion. Hvis nogen har en bedre eller forbedring af min forklaring, er du velkommen til at give feedback.
https://scalegrid.io/blog/understanding-mongodb-client- timeout-indstillinger/
https://scalegrid.io/blog/mongodb- skrive-bekymring-3-must-know-caveats/
https://docs.mongodb.com/manual/reference/write-concern/
https://www.mongodb.com/blog /post/server-selection-next-generation-mongodb-drivere