2011-09-10 11 views
16

Per ogni richiesta stavo aprendo il database, interrogando, chiudendo il database.MongoDB: quanto spesso dovresti aprire e chiudere il database? Perché?

Mi è stato sporadicamente in esecuzione in un problema connection already opened.

Ho finito con la modifica della configurazione per aprire semplicemente mongo e tenerlo aperto.

Quali sono gli aspetti negativi di questo metodo?

Grazie!

(nota: utilizzando node.js)

risposta

0

Non posso parlare per il conducente node.js, ma il driver Java è stato progettato per essere utilizzato in questo modo: http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency - gestisce le connessioni internamente. Forse anche il driver node.js. Forse vale la pena inviare una mail agli sviluppatori del driver per chiedere?

+0

I driver Java e node.js si comportano in modo molto diverso. Il driver Java ha un pool di connessione configurabile integrato. Il driver node.js si sta muovendo in quella direzione, ma node.js è decisamente diverso. –

2

La risposta qui dipenderà dalla versione che stai utilizzando. Il metodo descritto su main github page prevede l'apertura/chiusura di una connessione "come richiesto".

Attualmente è in corso il lavoro per supportare correttamente i set di repliche e fornire alcuni pool di connessioni di base. Infatti, c'era un check-in proprio ieri per rivolgersi allo clean up of pooled connections on error.

Dato che i documenti forniscono questo metodo di apertura/chiusura, questa è probabilmente la strada da percorrere. È quello che sto facendo attualmente nelle mie app. Per quanto riguarda il problema che stai vedendo, questo potrebbe essere solo un bug. Ancora una volta, la versione sul driver è < 1.0 e c'era un check-in solo ieri per qualcosa di simile a quello che stai vivendo, quindi potrebbero esserci alcuni problemi.

Modifica: Devo aggiungere che Christian è un bravo ragazzo che fa questo lavoro nel suo tempo libero con il supporto limitato della squadra 10gen. Costruire un tale driver è molto, molto lavoro, quindi se si riscontrano errori come ri-usare le connessioni aperte, sicuramente inserire un bug e/o contribuire con una correzione.

Problemi correlati